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.

PROCESSOR-SDK-J721E: J721E TDA4/DRA8 SoM PCIe Endpoint setup booting from rebuilt kernel fails

Part Number: PROCESSOR-SDK-J721E

Hi, 

I am setting up my EVM to function as an endpoint following the Linux SDK (I'm using SDK 8.0), but I've ran into some issues. 

1. When inputting 

Fullscreen
1
ls /sys/class/pci_epc/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
on the EVM, I don't see the output "2900000.pcie-ep". This becomes a problem later on when I try to bind the test device to EP controller:
Fullscreen
1
root@j7-evm:/sys/kernel/config/pci_ep# ln -s functions/pci_epf_test/func1 controllers/2900000.pcie-ep/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2. I modified the DTS file based on instructions in 7.x SDK (5.4 Kernel) subsection and rebuilt the kernel and copied the files according to instructions in 3.2.1 of SDK. (I did not modify the driver configuration variables necessary to be enabled for EP, since by default they were all set to =y). However, when booting the EVM with the new Image and dtb files copied to rootfs/boot, the following error shows up:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB0, 20:59:06
Press CTRL-A Z for help on special keys
U-Boot SPL 2021.01-g53e79d0e89 (Aug 04 2021 - 23:32:00 +0000)
Model: Texas Instruments K3 J721E SoC
Board: J721EX-PM2-SOM rev E8
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
Trying to boot from MMC2
Starting ATF on ARM64 core...
NOTICE: BL31: v2.5(release):08.00.00.004-dirty
NOTICE: BL31: Built : 22:30:09, Aug 4 2021
U-Boot SPL 2021.01-g53e79d0e89 (Aug 04 2021 - 22:33:28 +0000)
Model: Texas Instruments K3 J721E SoC
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

I tried resetting the environment, didn't work. I found a few posts with similar issues, but they're not exactly matching my EVM/issue, so I'm hoping the TI team can give me some feedback/advice on how to address these 2 problems. 

Thanks in advance.

  • Hi Michelle,

    What command did you use to build your dtbs? The above error is caused because the built dtb is missing the __symbols__ node as the error suggests, and this node is needed for cross-referencing nodes when applying overlays..

    regards

    Suman 

  • Hi Suman,

    I tried 

    Fullscreen
    1
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- dtbs
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    . When that didn't work, I tried to built only the J721E specific file: 
    Fullscreen
    1
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- ti/k3-j721e-common-proc-board.dtb
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Between each Kernel rebuild I also cleaned with 

    Fullscreen
    1
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- distclean
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    .

  • Hi Michelle,

    That is a very strange error, and should not have happened at all. 

    The arch/arm64/boot/dts/ti/Makefile does have the following line, which enables the dtbs to be built with symbols.

    DTC_FLAGS += -@

    Please ensure this line is not deleted somehow in your build.

    You can also generate back the dts file from the built dtb using the following command and check for the _symbols_ node (should be at the very bottom of the file).

    dtc -I dtb -O dts <k3-j721e-common-proc-board.dtb> -o <output.dts>

    Also, note that if you are using the Alpha EVM, the right dtb is k3-j721e-proc-board-tps65917.dtb.

    regards

    Suman

  • Hi Suman,

    Yes, "DTC_FLAGS += -@" is present as the first line in the Makefile. And I do not have a "Interim PMIC" sticker, so I'm assuming I have a beta board.

    I tried that command in the directory where k3-j721e-common-proc-board.dtb is located, and opened the output.dts to check the very end of the file. I don't see a "_symbols_node". Should I just type that in into the k3-j721e-common-proc-board.dts and rebuild the dts files?

    Also, do you have suggestions on how I could address the problem in my first question in the original post?

    Thanks!

  • Hi Michelle,

    So, you are building the kernel after changing to the the board-support/<linux> folder? Do you see a difference if building from SDK level using make linux-dtbs?

    Also, can you provide the output of dtc --version?

    regards

    Suman

  • Hi,

    Yes, I am building in the board-support/linux directory.

    Version is 1.4.5

    I did make linux-dtbs at SDK top level and EVM boots up correctly now. My first problem with ls /sys/class/pci_epc/ not listing anything also seems to be resolved now since 2900000.pcie-ep shows up.

    Thank you!