This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: PCIe connection between two EVMs

Other Parts Discussed in Thread: AM5728

hi.

i want to connect two evm board for testing pcie...

i use this link and follow. http://processors.wiki.ti.com/index.php/Linux_Core_PCIe_EP_User's_Guide

echo "51000000.pcie_ep" > epc

i confront with these errors :

[ 189.280149] dra7-pcie 51000000.pcie_ep: no free inbound window

[ 189.286050] pci_epf_test pci_epf_test.0: failed to set BAR4

[ 189.291739] dra7-pcie 51000000.pcie_ep: no free inbound window

[ 189.297792] pci_epf_test pci_epf_test.0: failed to set BAR5

also when i used from lspci command in RC evm board :

root@am57xx-evm:~# lspci
00:00.0 PCI bridge: Texas Instruments Device 8888 (rev 01)
root@am57xx-evm:~#

please help me to solve this problem.

  • The PCIe experts have been notified. They will respond here.
  • Hi,

    Please let us know what AM5728 EVM? IDK? How the two EVM connected? And what the Linux release for this testing?

    Regards, Eric
  • Hi, Saman,

    The error messages are ok and due to non availability of free inbound windows. So the function drivers in dra7xx can use only 4 (BAR0..BAR3) BARs

    What ProcSDK release are you using? If you are not using ProcSDK 3.2, please try with ProcSDK 3.2 release.
    Do you have EP up first then powering up RC? I assume that you are running different Kernel image for RC EVM. They should be built with different KConfig.

    Rex
  • hi.
    in order to this problem i want to initialize MSC9922cv-aa on my board(am57xx-evm) but when i plug this module on pci interface and when use lspci command only show one answer an it is:
    root@am57xx-evm:~# lspci
    00:00.0 PCI bridge: Texas Instruments Device 8888 (rev 01)
    root@am57xx-evm:~#
    how can initialize other pci or pcie on my board?
  • HI, Saman,

    To connect MSC9922cv to AM57xx EVM, you need to be sure kernel driver for MSC9922 is enabled through KConfig. You also need to download driver for MSC9922 and put it in the file system. AM57x EVM is the root complex. If you don't have the MSC9922 driver enabled, it won't detect the MSC card.

    If you don't have other question regarding connecting 2 AM57x EVMs for PCIe testing, I'll close this thread. If you have more question regarding how to bring up MSC9922, you can find info in Open Source Forum, or open another thread for discussion.

    Rex
  • Hi Rex.
    i download source driver of MCS9922 and i try to install this driver but this driver is specialized for PC in other words its Makefile is specialized for PC i bring this make file here.
    how could i change this makefile to install driver on my evm board?
    KDIR:=/lib/modules/$(shell uname -r)/build/

    DEBIAN_VERSION_FILE:=/etc/debian_version
    DEBIAN_DISTRO:=$(wildcard $(DEBIAN_VERSION_FILE))
    CURRENT=$(shell uname -r)
    MAJORVERSION=$(shell uname -r | cut -d '.' -f 1)
    MINORVERSION=$(shell uname -r | cut -d '.' -f 2)
    SUBLEVEL=$(shell uname -r | cut -d '.' -f 3)

    ifeq ($(MAJORVERSION),4)
    MDIR=drivers/tty/serial
    else
    ifeq ($(MAJORVERSION),3)
    MDIR=drivers/tty/serial
    else
    ifeq ($(MAJORVERSION),2)
    ifneq (,$(filter $(SUBLEVEL),38 39))
    MDIR=drivers/tty/serial
    else
    MDIR=drivers/serial
    endif
    else
    MDIR=drivers/serial
    endif
    endif
    endif

    obj-m +=99xx.o

    default:
    $(RM) *.mod.c *.o *.ko .*.cmd *.symvers
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    gcc -pthread select_BR.c -o select_BR
    gcc -pthread advanced_BR.c -o advanced_BR
    gcc -pthread gpio_99xx.c -o gpio_99xx


    install:
    cp 99xx.ko /lib/modules/$(shell uname -r)/kernel/$(MDIR)
    depmod -A
    chmod +x mcs99xx
    cp mcs99xx /etc/init.d/
    ifeq ($(DEBIAN_DISTRO), $(DEBIAN_VERSION_FILE))
    ln -s /etc/init.d/mcs99xx /etc/rcS.d/Smcs99xx || true
    else
    ln -s /etc/init.d/mcs99xx /etc/rc.d/rc3.d/Smcs99xx || true
    ln -s /etc/init.d/mcs99xx /etc/rc.d/rc5.d/Smcs99xx || true
    endif
    modprobe 99xx



    i know that i must change MDIR and KDIR . i want to know that how to make module for this board?

  • Hi Rex you said " To connect MSC9922cv to AM57xx EVM, you need to be sure kernel driver for MSC9922 is enabled through KConfig " how could i be sure that Kconfig is Ok?
    where is Kconfig file?
    thanks for your helps...
  • hi.

    i used to am5728-evm board and i want to setup MCS9922 (pcie to dual serial controller) on my board.

    when i connect this device to my board and when use lspci command i show nothing....

    root@am57xx-evm:~# lspci
    00:00.0 PCI bridge: Texas Instruments Device 8888 (rev 01)

    but when i connect this device to my PC and use lspci command i show that add pci device to my PC and report MCS9922.

    now i do not know how can solve this problem.

    please help me... 

  • Hi, Saman,

    In Linux, it is different. You may want to google search on how to add 3rd party device to a Linux system. In general, this is how it works, at least, how we added a 3rd party card to TI AM57x platform.

    1) you need to run menuconfig to recofigure the kernel to include the 3rd party device driver, and rebuild the kernel. I am not sure which device to enable in the menuconfig though.

    2) Usually the 3rd party device company will have the driver to run on the device itself, and can be downloaded either in Windows or Linux format. For example, Intel wifi N-1000 card have driver for Linux, iwlwifi-1000-5.ucode. After it is downloaded, it needs to be in AM57x file system under /lib/firmware. In your case, I believe you will need to cross-compile it so it works with AM57x.

    When kernel boots up, it detects the device, a kernel device driver will download the driver code in /lib/firmware to the 3rd party device

    Hope these info helps.

    Rex

  • Hi Rex.
    i still dont understand when connect MCS9922 on to my evm board why my board didnt know this device and when use lspci shows nothing?
    in my config file "tisdk_am57xx-evm-rt_defconfig" in pci part every thing is yes.