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 安装从重建的内核启动失败

Guru**** 2013580 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1073732/processor-sdk-j721e-j721e-tda4-dra8-som-pcie-endpoint-setup-booting-from-rebuilt-kernel-fails

部件号:processor-SDK-J721E
“线程:测试”中讨论的其它部件

您好,  

我正在设置自己的 EVM,使其作为 Linux SDK 之后的端点运行(我正在使用 SDK 8.0),但我遇到了一些问题。  

1.输入时  

Fullscreen
1
ls /sys/class/pci_epc/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
在 EVM 上,我看不到输出“2900000.PCIe-EP”。 当我尝试将测试设备绑定到 EP 控制器时,此问题将在以后出现:
Fullscreen
1
root@j7-evm:/sys/kernel/config/pci_ep# ln -s functions/pci_epf_test/func1 controllers/2900000.pcie-ep/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2.我根据7.x SDK (5.4内核)小节中的说明修改了 DTS 文件,并重建了内核,并根据 SDK 3.2.1中的说明复制了这些文件。 (我没有修改为 EP 启用所必需的驱动程序配置变量,因为默认情况下,这些变量都设置为=y)。 但是,在启动 EVM 时,如果将新映像和 DTB 文件复制到 rootfs/boot,则会显示以下错误:

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

我尝试重置环境,但不起作用。 我发现一些帖子存在类似问题,但它们与我的 EVM-issue 不匹配,因此我希望 TI 团队能就如何解决这两个问题提供一些反馈/建议。  

请提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,米歇尔,

    您使用什么命令来构建 dtbs? 导致上述错误的原因是,生成的 DTB 缺少错误提示的__symbols__节点,并且在应用覆盖图时,需要使用此节点进行交叉引用。

    此致

    苏曼  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    苏门,你好,

    我试过  

    Fullscreen
    1
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- dtbs
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    。 如果不起作用,我只尝试构建 J721E 特定文件:  
    Fullscreen
    1
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- ti/k3-j721e-common-proc-board.dtb
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    在每个内核重建之间,我也使用进行了清理  

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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,米歇尔,

    这是一个非常奇怪的错误,根本不应该发生。  

    ARCH/ARM64/BOOT/DTS/TI/Makefile 确实有以下行,这使 dtbs 可以使用符号构建。

    DTC_FLAGS += -@

    请确保在您的内部版本中不会删除此行。

    您 也可以使用以下命令从内置 DTB 生成 DTS 文件,并检查_symbols_node (应位于文件的最底部)。

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

    另外,请注意,如果您使用的是 Alpha EVM,则正确的 DTB 为 K3-j721e-proc-board-tps65917.DTB。

    此致

    苏曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    苏门,你好,

    是的, “DTC_flags +=-@”作为 Makefile 的第一行出现。 我没有“Interim PMIC”标签,所以我假设我有一个测试版板。

    我在 K3-j721e-commo-proc-board.dTB 所在的目录中尝试了该命令,并打开了 output.dts 以检查文件的最末尾。 我没有看到“_symbols_node”。 我是否应该在 K3-j721e-commo-proc-board.dts 中键入该命令并重建 DTS 文件?

    此外,您是否对如何解决原始帖子中第一个问题有建议?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,米歇尔,

    那么,您是在更改到 board-support/<linux>文件夹后构建内核的? 如果使用 make linux-dtbs 从 SDK 级别构建,您是否会看到不同?

    此外,您能否提供 DTC 版本的输出

    此致

    苏曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    是的,我正在主板支持/Linux 目录中构建。

    版本为1.4.5

    我确实 在  SDK 的顶层制作了 Linux-dtbs,并且 EVM 现在可以正确启动。 我的第一个关于 ls /sys/class/pci_EPC/未列出任何内容的问题现在似乎也已解决,因为显示了2900000。pcie-EP

    谢谢!