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.

[参考译文] SK-AM62:u-Boot -通过以太网引导

Guru**** 1774980 points
Other Parts Discussed in Thread: SK-AM62, AM625
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1350579/sk-am62-u-boot---boot-via-ethernet

器件型号:SK-AM62
主题中讨论的其他器件: AM625

我正在尝试通过以太网加载 U-Boot。

我已下载 SDK 9.02.01.09 (2024年3月)并使用以下配置文件构建了新的二进制文件:

  • am62x_EVM_R5_ethboot_config
  • am62x_EVM_A53_defconfig

我还尝试了补丁"add-support-for-Ethernet-boot-on-SK-AM62.patch"。 其中许多更改已在 SDK 源代码中找到。

tiboot3.bin 正在传输到目标板、但最后一个数据包未得到确认、并且 tispl.bin 和 u-boot.img 未被加载。

我是否错误地构建了 tiboot3.bin?

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

    您好 Kyle:

    您从何处获得"Add-support-for-Ethernet-Boot-on-SK-AM62.patch"

    之前、在 SDK 9.1中使用默认"am62x_evm_r5_ethboot_defconfig"构建 tiboot3.bin 时、我确切地看到了这个问题。 修复方法是使用 defconfig 构建 tiboot3.bin、并具有可以在 https://patchwork.ozlabs.org/project/uboot/list/?series=390216&archive=both&state=*中找到的正确 Ethboot 设置。我目前不知道这些补丁是否已应用于 SDK 9.2、但我会进行检查并回复您。

    您可能也会发现此常见问题解答很有用: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1328520/faq-how-to-boot-sk-am62b-sk-am62a-via-ethernet-and-flash-u-boot-and-linux-binaries-into-emmc-via-ethernet

    -道林

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

    最后一个数据包仍然没有得到确认。 但是、我在控制台上收到了一些不同的消息:

    以前、我没有使用顶级 makefile (make u-boot)来构建 u-boot 二进制文件。 我更改了 Rules.mk 文件中的配置文件并构建。 上述结果。

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

    您好、Kyle、

    您看到的是"U-Boot SPL..."这一事实 指示 tiboot3.bin、通过 R5加载的第一个 bootloader 已成功传输。 我认为 tispl.bin 可能传输不正确、或者"am62x_EVM_A53_defconfig"没有正确的配置、无法使 ethtoot 为 ethtboot 构建 tispl.bin。  

    您能否检查"am62x_evm_a53_defconfig"是否具有与 https://patchwork.ozlabs.org/project/uboot/patch/20240112064759.1801600-10-s-vadapalli@ti.com/相同的配置 ?

    您还可以检查当您在控制台上看到这些消息时 Wireshark 显示什么?

    -道林

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

    是的、我已经添加了在 am62x_EVM_A53_defconfig 补丁中找到的所有语句。 我可以在哪里找到此文件的源、而不是只查找加法/减法? 可能我在 defconfig 中配置了太多。

    Wireshark 显示与上面的图像相同。 没有对最后一个数据块的确认,我也没有看到第二个文件(tispl.bin)的 BOOTP 请求。

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

    您好、Kyle、

    您能否确切地阐明对开箱即用 u-boot 文件所做的更改(如果有)以及针对所看到的问题采取了哪些步骤?

    我将尝试先在设置中重现问题、从开箱即用的 SDK 9.2构建 u-boot 二进制文件。

    ------------------

    目前、我还在努力弄清楚 https://patchwork.ozlabs.org/project/uboot/list/?series=390216&archive=both&state=*中的这些补丁是否 应用于9.2。 我被告知、这些引脚等待上传到主线 U-boot、一旦接受、就会在 SDK 10.0中可用

    当 SDK 9.2的可用内容与 am62x_EVM_R5_ethboot_defconfig 的补丁之间最初发生差异时、似乎存在一些差异、这表明我尚未应用补丁。

    -道林

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

    我附加了一个补丁文件、其中显示了我所做的更改。

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

    e2e.ti.com/.../mydiffs.c

    好的、现在我已经上传了我的散射。 它只是一个补丁文件。

    需要注意的一点是、我使用的是 tiboot3-am62x-gp-evm.bin 文件。

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

    您好、Kyle、

    在从开箱即用 SDK 中更改 Rules.mk 的以下段后、从 SDK 顶级目录中进行"make u-boot"时是否会看到此错误(未应用补丁)?

    # u-boot machine configs for A53 and R5
    UBOOT_MACHINE=am62x_evm_a53_defconfig
    UBOOT_MACHINE_R5=am62x_evm_r5_ethboot_defconfig
    

    /home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/k3r5-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/arm-oe-eabi-ld.bfd: drivers/net/ti/am65-cpsw-nuss.o: in function `am65_cpsw_am654_get_efuse_macid':
    /home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674/drivers/net/ti/am65-cpsw-nuss.c:550: undefined reference to `syscon_regmap_lookup_by_phandle'
    make[3]: *** [/home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674/scripts/Makefile.spl:527: spl/u-boot-spl] Error 1
    make[2]: *** [/home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674/Makefile:2044: spl/u-boot-spl] Error 2
    make[2]: Leaving directory '/home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/board-support/u-boot-build/r5'
    make[1]: *** [Makefile:177: sub-make] Error 2
    make[1]: Leaving directory '/home/a0500327/ti-processor-sdk-linux-rt-am62xx-evm-09.02.01.09/board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674'
    make: *** [makerules/Makefile_u-boot:28: u-boot-r5] Error 2
    

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    需要注意的一点是,我正在使用 tiboot3-am62x-gp-evm.bin 文件[/报价]

    您指示使用的是"SK-AM62"、它通常是 GP 器件。 您能否验证您的器件是否为 GP?

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

    可以。 然后、我将以下2项添加到 ethboot defconfig 文件中:

    • CONFIG_SYSCON=y
    • CONFIG_SPL_SYSCON=y

    然后它会正确构建。

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

    是的、这是一个 GP 器件。

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

    如果我只将 am62x_evm_ethboot_defconfig 更改为我之前共享的补丁集版本、我就能够重现您在控制台中看到的以下问题。

    U-Boot SPL 2023.04-dirty (Apr 17 2024 - 16:45:57 -0500)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    SPL initial stack usage: 13408 bytes
    Trying to boot from eth device
    Loading Environment from nowhere... OK
    No ethernet found.
    
    No Ethernet devices found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###
    

    我注意到、我发送的补丁集中还有其他几个文件 、例如 patchwork.ozlabs.org/.../am625_init)、这些文件在您的设置中似乎没有更改(查看您的补丁文件)。

    您能否也应用这些更改、看看会发生什么情况?

    -道林

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

    我已经应用了所有这些更改、并收到相同的结果。 下载的 SDK 中已经存在其中的许多更改。

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

    您是否可以尝试将这些更改(在 ti-u-boot.patch 中)应用到顶级 SDK 中的 board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674目录?

    e2e.ti.com/.../ti_2D00_u_2D00_boot.patch

    构建此 ti-u-boot 目录后、用户应该能够使用生成的 u-boot 二进制文件引导到 U-boot 提示符。

    这对我来说是有用的。

    U-Boot SPL 2023.04-29979-gf0af5208e0-dirty (Apr 17 2024 - 17:22:04 -0500)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    SPL initial stack usage: 13384 bytes
    Trying to boot from eth device
    eth0: ethernet@8000000port@1
    ethernet@8000000port@1 Waiting for PHY auto negotiation to complete....... done
    link up on port 1, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    DHCP client bound to address 172.168.1.170 (1258 ms)
    Using ethernet@8000000port@1 device
    TFTP from server 172.168.1.1; our IP address is 172.168.1.170
    Filename 'tispl.bin'.
    Load address: 0x82000000
    Loading: #################################################################
             #################################################################
             #################################################################
             ####################################  0 Bytes
             5.1 MiB/s
    done
    Bytes transferred = 1182655 (120bbf hex)
    udma_stop_mem2dev: peer not stopped TIMEOUT !
    Authentication passed
    Authentication passed
    Authentication passed
    init_env from device 4 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    
    U-Boot SPL 2023.04-29979-gf0af5208e0-dirty (Apr 17 2024 - 17:22:15 -0500)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:1
    Error: could not access storage.
    Trying to boot from eth device
    Loading Environment from nowhere... OK
    eth0: ethernet@8000000port@1
    ethernet@8000000port@1 Waiting for PHY auto negotiation to complete....... done
    link up on port 1, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    DHCP client bound to address 172.168.1.170 (1758 ms)
    Using ethernet@8000000port@1 device
    TFTP from server 172.168.1.1; our IP address is 172.168.1.170
    Filename 'u-boot.img'.
    Load address: 0x82000000
    Loading: #################################################################
             #################################################################
             ###########################################################  0 Bytes
             183.6 KiB/s
    done
    Bytes transferred = 966155 (ebe0b hex)
    Authentication passed
    Authentication passed
    
    
    U-Boot 2023.04-dirty (Apr 17 2024 - 16:46:09 -0500)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Board: AM62B-SKEVM rev A
    DRAM:  2 GiB
    Core:  72 devices, 32 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial
    Out:   serial
    Err:   serial
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0

    另一个问题是、您打算如何将以太网引导用于开发还是生产目的? 请记住、AM62x 器件中存在勘误表、这导致它不适用于以太网引导以用于生产目的。

    如果你想知道为什么我之前指向的补丁集与我现在提供的不同。 很好的问题、我目前正在内部团队寻求为什么会出现这种情况。

    -道林

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

    到目前为止、我无法应用此补丁。 该补丁是如何生成的? 我正在使用 git、但也尝试过 Linux 补丁命令。

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

    成功!! 我费尽力气手动应用补丁、并且电路板已成功启动到 U-Boot 中。

    我的任务是测试一个电路板、该电路板错误地 移除了 SD 卡接口、因此我需要一种通过以太网引导的方法。 我们不会将其用于生产目的。

    我对您可能发现的有关需要此补丁但上一个补丁不起作用的原因感到好奇。

    我还想知道为什么无法在我的环境中自动应用此修补程序。 该补丁是如何创建的?

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

    对延迟回复深表歉意。  

    它不是一个 git 修补程序,它只是在整个 u-boot 目录之间的"diff -r "输出,工作和开箱目录。 这是因为我没有在我的环境中使用 git。  

    我试图跟踪哪一个是 u-boot 中最后一个允许 ethboot 工作的提交、并发现 ea155ff62af9f25a3295bd19ee869d97d2eb0299可能会重置为。 但是、我想先进行测试、然后再与您分享、以防万一失败。 您可以重置该确认尝试、然后查看 ethboot 是否也能正常工作。  

    我猜是,从 ea155ff62af9f25a3295bd19ee869d97d2eb0299到9.2标签的 ti-u-boot 头以来,有几个变化,包括一些针对 ethboot 的 defconfig 文件的更改,导致了回归错误。  

    感谢您通过以太网引导澄清您的意图。

    -道林

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

    更新:无需退回该提交...  这会导致生成错误

    我提供给您的原始 diff 补丁文件基于来自 git.ti.com 的 ti-u-boot 目录的同事分支、这是工作方法。 我发现的提交是最后一次提交,据说将同事的分支合并到主 ti-u-boot 分支。  

    我不知道同事的分支中具体允许通过以太网启动的是什么。 但我会尝试研究一下。

    我没有提供 Git 补丁的原因很简单... 我不知道如何正确地创建一个。 此后我学到了: e2e.ti.com/.../ti_2D00_u_2D00_boot_2D00_2023.04_2D00_ethernet_2D00_boot_2D00_patches_2D00_for_2D00_09.01.00.008.tar_2800_1_2900_.gz

    这是 SDK 9.1及更高版本中支持以太网引导的所有补丁的 tarball。  

    -道林

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

    道林,这是伟大的信息,非常感谢您!

    我将尝试这些更改。

    我遇到了另一个问题。 当尝试加载 VxWorks 映像时(是的! VxWorks)时、我会收到一条消息"引导命令的图像格式错误"。 VxWorks 图像是已知的工作图像。

    TFTP 0x93000000 uVxWorks;tftp 0x90000000 dts.dtb;bootm 0x93000000 - 0x90000000;

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

    您好、Kyle、

    该线程有用吗?  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1265393/am625-vxworks-boot-with-sdk-u-boot?tisearch=e2e-sitesearch&keymatch=%25252522Wrong%25252520image%25252520format%25252520for%25252520bootm%25252520command%25252522#

    -道林

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

    可以、添加 CONFIG_LEGACY_IMAGE_FORMAT=y 可以使 bootm 命令正常运行。 但是、在我删除 cpsw3g_mDIO 器件之前、VxWorks 无法正确加载。 VxWorks 似乎与 U-Boot 对以太网 PHY 所做的事情不一样、

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

    只是为了澄清一下、bootm 命令现在正常工作是否意味着现在没有看到"引导命令的图像格式错误"? 当 VxWorks 无法正确加载时、您能否向我显示控制台输出?

    当您说"删除 cpsw3g_mDIO 器件"时、意味着在 ti-u-boot K3-am625-sk.dts 中设置 status="已禁用"?

    -道林

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

    是的、bootm 命令现在可以运行。 下面是 VxWorks 停止加载的屏幕截图。 在尝试探测和连接 MDIO 器件时可以看到。 是的、我在 cpsw3g_mDIO 器件的 DTS 文件中放置了 status="禁用"。 这将允许 VxWorks 完全启动。

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

    我假设 cpsw3g_mDIO 的此禁用不是一个很好的权变措施、因为您的应用需要以太网 MAC 到 PHY 的通信?

    TI 提供的默认 DTS 在 DTS 文件中有没有其他变化? 我需要与团队成员进一步讨论此问题、并在当天或明天结束时提供最新信息。

    -道林

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

    更新:

    根据控制台输出、这似乎是 MDIO 模块的 VxWorks 初始化问题。 一般而言,我们不支持 VxWorks,最好与拥有 VxWorks 的供应商联系,以解决此问题。

    -道林

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

    道林、感谢您在这方面的支持。 非常感谢。 由于我不会永久使用这种方法、所以必须禁用以太网才能使 VxWorks 正常运行。 以太网引导是针对缺少用于测试装置的 SD 卡的一种权变措施。