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.

[参考译文] Linux:从 SDCard 引导时、AM572x IDK 可减轻 PRU 负载

Guru**** 2559760 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610692/linux-pru-offload-with-am572x-idk-when-booting-from-sdcard

工具/软件:Linux

 我在 SDard 上具有带有 SDK 04.00.00.04图像的 AM572x IDK。

我想知道如何为 SDCard 引导和 PRU 卸载设置 Uboot env 变量。

在"processors.wiki.ti.com/index.php/Processor_SDK_Linux_HSR_PRP_PRU_Offload"中、显示了用于 NFS 引导的文件 、但我想知道如何为 SDCard 引导设置 PRU 卸载。

谢谢、Chris

 

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

    第一步是使用 dotconfig 中的 CONFIG_HSR_PRP=y 设置构建 Linux 内核。
    在 AM572x IDK 上、仅支持 PRU-ICSS2、因此应仅设置 pruss2_ethtype。 有关详细信息:
    processors.wiki.ti.com/.../Processor_SDK_Linux_HSR_PRP
    根据您应该设置的现有环境变量配置

    => setenv bootargs console=${console}${optargets}root=PARTUUID =${uuid}RW rootfstype=${mmcrootfsteth}prueth.pruss2_ethtype=${prusype_ethtype}
    => setenv pruss2_ethtype 2
    => saveenv

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

    感谢您的回答。

    好的、我问: 文档中没有任何提示、我应该设置"CONFIG_HSR_PRP=y"并重新编译内核!

    我使用的是预编译映像、该映像位于:"software-dl.ti.com/.../am57xx-evm-linux-rt-sdk-bin-04.00.00.04.tar.xz"

    设置 bootargs 后、我在键入"pri bootargs"时得到此值:

    bootargs=console=ttyO2,115200n8 root=PARTUUID = rw rootfstype=ext4 rootwait prueth.pruss2_ethtype=1

    是这样吗?

    关于"CONFIG_HSR_PRP=y":对于 HSR、我应该将 y 设置为什么?

    谢谢、此致、Chris

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

    我同意我们可以更清楚和明确地说明这一点... 此处通常提到 kconfig:
    processors.wiki.ti.com/.../Processor_SDK_Linux_HSR_PRP

    但我还认为这是最新版本中的默认设置。
    现在、内核配置仅启用常规 HSR/PRP 支持。 因此、您应始终将其设置为"y"。
    选择 HSR 或 PRP 的最后一个选项是通过 prueth.pruss2_ethtype 内核参数完成的(请注意、我认为 wiki 上仍有一些拼写错误)。
    此处的表格显示了以下选项:
    processors.wiki.ti.com/.../Processor_SDK_Linux_HSR_PRP

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

    您好!

    默认映像是在启用了 HSR 和 PRP 的情况下构建的。 因此、如果您使用的是预构建映像、则无需重建内核。 请查看 wiki 上的文档、其中详细介绍了使用 SD 卡时的一些已知问题、并提供了解决方法。 使用这些器件、您应该能够测试 HSR/PRP。

    此致、


    Murali Karicheri

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

    好的。 您能给我一个更具体的提示吗?"有关使用 SD 卡并解决可用问题的一些已知问题的详细信息"?

    I SET

    按照 Tsvetolin Shulev 的建议、"bootargs=console=ttyO2,115200n8 root=pARTUUID = RW rootfstype=ext4 rootwait prueth.pruss2_ethtype=1"、它仍在将错误的固件加载到 PRU 中

    下一提示:-)?

    此致、Chris

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

    由于无法粘贴位图:此处显示加载了错误 FW 的控制台输出。 应该是 pruhsr、而不是 prueth。

    [13.828867] remoteproc remoteproc6:启动4b2b4000.pru0

    [13.830294] remoteproc remoteproc6:引导 FW 映像 ti-pruss/am57xx-pru0-prueth-fw.elf、大小为4284

    [13.830489] ti-prusss 4b280000.pruss:已配置 system_events = 0x0000060000500000 intr 通道= 0x00000095 host_intr = 0x00000115

    [13.830497] remoteproc remoteproc6:远程处理器4b2b4000.pru0现已启动

    [13.830532] net eth2:已启动

    [13.830685] IPv6:ADDRCONF (NETDEV_UP):ETH2:链路未就绪

    [13.832591] prueth pruss2_eth eth2:链路向上- 100Mbps/全-流量控制关闭

    [13.832605] IPv6:ADDRCONF (NETDEV_CHANGE):ETH2:链路就绪

    [13.882406] remoteproc remoteproc 7:为4b2b8000.pru1加电

    [13.883235] remoteproc remoteproc 7:引导 FW 映像 ti-pruss/am57xx-pru1-prueth-fw.elf、大小4316

    [13.883406] ti-prusss 4b280000.pruss:已配置 system_events = 0x0060000000a00000 intr 通道= 0x0000012a host_intr = 0x0000022a

    [13.883414] remoteproc remoteproc7:远程处理器4b2b8000.pru1现已启动

    [13.884588] prueth pruss2_eth eth3:链路已建立- 100Mbps/全-流量控制已关闭

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

    您能否使用引导参数检查/显示内核日志部分? 我想知道是否有内容覆盖 PRU 配置。
    无论如何、我明天也会尝试使用默认的二进制映像运行它...
    此致、
    弗兰克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、

    有关已知问题、请参阅 processors.wiki.ti.com/.../Processor_SDK_Linux_HSR_PRP

    bootargets 在 processors.wiki.ti.com/.../Processor_SDK_Linux_HSR_PRP 上有明确的记录

    您需要设置两个参数:

    这是我在文档中看到的内容

    => setenv netargs 'setenv bootargs console=${console}${optargets}root=/dev/nfs nfsroot=${serverip}:${rootpath}、${nfsopts}RW IP=DHCP prueth.pruss1_ethtype=${pruseth_ethtype}{pruss2$}
    => setenv pruss1_ethtype 1
    => setenv pruss2_ethtype 2
    => saveenv


    此致、

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

    Chris、

    您可以在内核日志的开头看到应用的引导参数。:

    [0.000000]   内核命令行:console=ttyO2,115200n8 root=PARTUUUUID=e465781    6-02 RW rootfstype=ext4 rootwait

    您可以使用'dmesg'命令来显示此内容。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris、
    我终于成功加载了正确的 PRU 固件。 我无法进一步测试、因为我现在只有一个 IDK。
    以下是适用于您的说明:
    -刻录4.0.0.4的二进制 SD 卡映像
    -进入 uBoot
    -输入以下命令:
    -setenv args_mmc 'run finduid;setenv bootargs console=${console}${optargets}root=pARTUUID =${uuid}rw rootfstype=${mmcrootfstype}prueth.pruss2_ethtype=1'
    -saveenv
    -引导

    观察引导日志。
    我找到了:
    [14.965411] remoteproc remoteproc6:引导 FW 映像 ti-pruss/am57xx-pru0-pruhsr-FW.elf、大小为8442

    这是:
    --------
    root@am57xx-EVM:~# cat /sys/kernel/debug
    48890000.usb/ DRI/ mmc0/ PM_DEBUG/ Remoteproc/
    488d0000.usb/ 扩展/ mmc1/ PM_QOS/ 计划特征
    ASOC/ fault_arn_bytes omap_iommu/ prueth-HSR/ SLEEP_TIME
    BDI/ GPIO OMAP_mux/ PWM ubI/
    蓝牙/ HID/ omapdss/ RAS/ 子/
    CLK/ IIO/ OPP/ regmap/ USB/
    dma_buf/ 内存块/ pinctrl/ 稳压器/ Virtio 端口/
    root@am57xx-EVM:~# cat /sys/kernel/debug/prueth-hsr
    DUP_LIST_LOAD_max_TIME ERROR_STATS node_table
    Duplicate 丢弃 HSR_MODE node_table_clear
    root@am57xx-EVM:~# cat /sys/kernel/debug/prueth-hsr/node_table

    网络中的远程节点:0
    --------
    对于进一步的测试、我假设您也需要检查"已知问题"部分。

    此致、