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.
工具与软件:
尊敬的 TI 专家:
我们正在离线讨论以太网主引导和备用引导的支持。 按照您的建议、我还在此处创建了 E2E 主题来邀请客户参与、以便我们可以保持浏览同一页面。
在最后一个电子邮件主题中、客户按照以下步骤查看以太网备份引导在其电路板上是否正常工作。
客户得到了 下面的 Wireshark 屏幕截图。
客户 非常确定 其电路板上的 MAC 地址88:0C:E0:67:D6:18用于 AM2431、因为电路板的以太网端口通过电缆直接连接到计算机的以太网端口、而计算机的 MAC 完全不同。
顺便说一下、客户注意到、对于备用引导、 AM2431上电后仅发送约117秒的 BOOTP 请求。 时间有点太长了。
如果以太网引导程序/工具准备就绪、客户将 在下一个电路板版本中将以太网更改为主引导(使用模式更改开关)。
因此、请确保 我们正在 使用的以太网引导工具既可以用于主引导、也可以用于备份引导。
谢谢!
Kevin
尊敬的 Kevin:
感谢您提供的信息。
看上去一切正常、 ROM 已按预期启动以太网引导。
我正在着手下一步、使 PC 工具能够发送所需的二进制文件、一旦在我这边进行测试、将会更新。
此致、
Nitika
尊敬的 Kevin:
为了根据要求重新调整、下面是预期的功能:
1.设备切换到以太网引导(ROM 发送 BOOTP 数据包)
2. ROM 通过以太网(通过 TFTP 传输)接收引导加载程序。
3.接下来、引导加载程序通过以太网接收应用程序映像、将其刷写到 板载 QSPI NOR 闪存中。
如果我错了、请更正我。
关于上述问题的几个问题:
1.设备是否也应以以太网模式启动,还是仅用作闪存实用程序?
2.刷写完成后、客户是在未来所有的电路板下电上电期间切换回 OSPI 引导模式还是继续以太网引导?
此致、
Nitika
从上面可以看出、我们在客户的电路板上测试了1个。
我们已经在设置中验证了2项、现在我们要在客户的板上对其进行测试、以便我们根据进度保持一致。
请查找以下步骤、以便使用 Linux 系统通过 TFTP 进行映像传输(这是一次性设置):
1. 安装 DHCP 服务器
sudo apt install isc-dhcp-server
sudo systemctl disable --now isc-dhcp-server.service isc-dhcp-server6.service
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 170.0.0.100 netmask 255.255.254.0 broadcast 170.0.0.255 inet6 fefe::bbdd:3434:3d3d:5d5d prefixlen 64 scopeid 0x20<link> ether aa:bb:cc:dd:ee:ff txqueuelen 1000 (Ethernet) RX packets 2733979 bytes 1904440459 (1.9 GB) RX errors 0 dropped 3850 overruns 0 frame 0 TX packets 796807 bytes 84534764 (84.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enxf8e43b8c: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether ff:ee:bb:88:ff:cc txqueuelen 1000 (Ethernet) RX packets 95 bytes 31160 (31.1 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 89 bytes 17445 (17.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 85238 bytes 7244462 (7.2 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 85238 bytes 7244462 (7.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
subnet 192.168.0.0 netmask 255.255.254.0 { range dynamic-bootp 192.168.0.2 192.168.0.5; if substring (option vendor-class-identifier, 0, 16) = "TI K3 Bootp Boot" { filename "sbl_null.release.hs_fs.tiimage"; } default-lease-time 60000; max-lease-time 720000; next-server 192.168.0.1; }
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf INTERFACESv4="enxf8e43b8cffe8" INTERFACESv6=""
sudo ifconfig enxf8e43b8cffe8 192.168.0.1 netmask 255.255.254.0
sudo systemctl enable --now isc-dhcp-server
要查看是否存在任何配置错误或 DHCP 是否正在运行、请运行以下命令。
如果它显示错误、则说明配置有问题
sudo service isc-dhcp-server status
2. 使用此链接安装 tftp - linuxhint.com/.../
假设 tftp 目录为/tftp。 您需要放入 /tools/boot/sbl_prebuilt/am243x-evm sbl_null.release.hs_fs.tiimage /tftp 文件夹中。
3. 将引导模式更改为以太网引导并在电路板上进行切换。
要验证图像传输:
1.连接到 R5F0_0内核、您会看到它在 wfi 指令下停止(在"Disassembly"选项卡中)
2.或者、如果连接到 UART 终端并对电路板进行下电上电。 加载 SBL 后、可以在终端上看到以下日志。
如果您在配置方面遇到任何问题、敬请告知。
此致、
Nitika
嗨、Nitika、
关于您的问题:
1. 我们只使用以太网和您正在开发的刷写工具,即解毛/解毛。
刷写完成后、 电路板将切换回 OSPI 模式。
此致、
Larry
嗨、Nitika、
非常感谢您的支持。
很抱歉遗漏了此信息。 我们的开发环境是 Windows。 我们可以让该工具在 Windows 中运行吗?
非常感谢。
Larry
Larry、您好!
感谢您提供的信息。
请允许我花些时间联系您了解 Windows 要求。
此致、
Nitika
Larry、您好!
要执行上述步骤、您需要在 Windows 系统中设置 TFTP 和 DHCP 服务器、与上述步骤相同。
以太网 SBL 开发更新:我们正在研究基于 ENET 的新 SBL 和基于 python 的 PC 工具来满足闪存要求、我们目前正在调试数据包丢弃问题、这会在本周结束时被阻止。 我们将在进度中就此主题发布更新内容。
请注意: SBL 是使用 AM64x-SK EVM (使用 DP83867 ETHPHY、RGMII 接口和 OSPI 作为闪存介质)开发的。 还必须根据您的定制板对此进行进一步修改。
此致、
Nitika
大家好、Larry、Kevin
我们能够解决数据包丢弃问题、并且能够通过上述器件配置在我们的终端成功测试以太网引导。
明天我会将此项目与以太网引导指南一起分享。
此致、
Nitika
嗨、Nitika、
感谢您的好消息、感谢您的参与!
Kevin
大家好、Larry、Kevin
请在下面的 zip 文件中找到该工程。 其中的自述文件提供了有关这些文件以及如何将它们添加到 MCU+ SDK 安装程序中的信息。
e2e.ti.com/.../Ethernet_5F00_boot.zip
请注意:该工程已在 MCU+ MCU-PLUS-SDK 10.0基线上创建- https://www.ti.com/tool/download/SDK-AM64X/10.00.00.20
以太网引导文档: e2e.ti.com/.../Ethernet-Boot-Guide_2D00_v1_2D00_20241108.pdf
此致、
Nitika
嗨、Nitika、
非常感谢您提供的工具。 我们正在测试它。 Tftpd64用作 DHCP 服务器和 TFTP 服务器、因为我们的开发环境是 Windows。
我们注意到 DHCP 服务器收到来自我们的主板的 BOOTP 请求、但未按预期分配主板的 IP 地址。
您可以帮助测试 Tftpd64是否 与该工具兼容、并使用它更新指南吗?
当我们编译您发布的项目时、CCS 会提示以下两个错误。 您可以帮助打包正确的文件并重新发布该项目吗? 提前非常感谢。
1.
配置文件(AMxxx -> AM64x)中似乎有一个拼写错误:
2. 缺少 edma.h。
此致、
Larry
Larry、您好!
您正在使用哪个 SDK 版本?
此致、
Nitika
嗨、Nitika、
我们使用的是 AM64x MCU Plus SDK 10.0.0.20。
关于错误1、 如果我们按如下所示将文本字符串从 AMxxx 更改为 AM64x、则 错误将消失。 我们想知道这一变化是否正确。
此致、
Larry
Larry、您好!
是的、该更改是正确的、我共享的示例是从内部存储库创建的、因此存在版本不匹配问题。
请在下面找到 AM64x MCU+ SDK 10.0.0.20修改的工程
e2e.ti.com/.../4505.Ethernet_5F00_boot.zip
此致、
Nitika
嗨、Nitika、
非常感谢更新后的项目。 现在可以成功编译它。
由于我们的开发环境是 Windows 10、因此 我们使用 Tftpd64、这是一种广泛使用的用于 Windows 的开源 DHCP 和 TFTP 服务器。 可从 Github 下载: https://pjo2.github.io/tftpd64/
您可以帮助验证/测试您提供的 Python 工具是否可以与 Tftpd64顺利运行吗?
我们不熟悉 Python 工具、因此 运行测试将非常困难。 非常感谢。
Larry
Larry、您好!
让我来看看这个问题、过一段时间回来与您联系。
此致、
Nitika
嗨、Nitika、
Tftpd64不一定是必须使用的软件。
我们需要的是经过验证的工具软件包和任何 DHCP 服务器和 TFTP 服务器软件、 它们可以在 Windows 10中顺利协同工作。
希望这对您有所帮助。 非常感谢。
此致、
Larry
嗨、Nitika、
感谢您的支持。 正如您所知道的,使用以太网引导的背景是为"解串情况",所以在这种情况下,它主要发生在生产线上,在生产线上的人只能访问 Windows 而不是 Linux。 因此、客户拥有经过验证且可在 Windows 10中使用的软件非常重要。
客户希望能在11月底之前获得这个解决方案 您能对此提供帮助吗?
非常感谢、
Kevin
尊敬的 Kevin、Larry:
以太网引导实现的一些背景知识、此过程主要有2个步骤:
我们不熟悉 Python 工具、 运行测试将非常困难。 [报价]选择 TFTP 和 DHCP 服务器不依赖于 TI 软件。
任何 TFTP 和 DHCP 服务器都应在主机上运行、只需使用 Linux 以太网引导指南中给出的相同参数(IP 地址、IP 范围等)进行配置即可。
一旦主板达到上面的步骤2、TFTP 和 DHCP 服务器就不再使用了。
[/quote]我们使用 Tftpd64、这是一种广泛使用的用于 Windows 的开源 DHCP 和 TFTP 服务器。 [报价]Tftpd64是合适的选择。 您能告诉我您在此过程中遇到了哪些问题吗?
此致、
Nitika
嗨、Nitika、
我们设置 Tftpd64并使用以太网引导模式为电路板加电。 Wireshark 显示分配给电路板的 IP 地址。 然后、我们运行 Python 工具、但它会响应 IP 地址绑定错误。 并且板仍发送 BOOTP 请求。
在我看来、该工具尚未在 Windows 系统中验证映像。 我们还不知道如何使该工具在 Windows 中运行、如果还没有经过验证。
比如、我看到 Python 工具使用套接字库。 我不确定该工具是否依赖于某个 系统服务来运行。 我不知道 Windows 是否提供此类服务。 我不知道应该如何配置 Tftpd64来提供服务以满足工具的要求、或者调整该工具以在 Windows 系统上运行。
我们的项目日程安排非常严格、我们不能在尚未验证的平台中调试该工具。 我们需要先在 Windows 系统中验证该工具、然后再对其进行测试。
谢谢、此致、
Larry
Larry、您好!
对不起、如果我的解释不清楚、让我详细阐述我的上述答复。 首先、 Python 脚本不能与配合使用 Tftpd64 .
电路板通电后、
步骤1:主板发送 BOOTP 请求、您的 DHCP 服务器将对其作出响应并分配 IP。
步骤2:电路板发送 TFTP 读取请求、TFTP 服务器将 sbl_opsi_enet 映像发送到电路板。
超过此值后、该软件不再使用 TFTP 和 DHCP 服务器。
第3步:SBL 开始执行、将静态 IP 分配给电路板、进行端口链接并发送链路完成数据包。
步骤4:python 脚本已将电路板静态 IP 硬编码为源 IP、以接收链接数据包并启动 appimage 传输。
您仍然看到 BOOTP 数据包的原因可能是 Tftpd64 配置不正确导致 SBL 传输失败。
您能否与我共享 Wireshark 日志、以便我能够准确找出问题?
此致、
Nitika
此外、请注意、我们也已在 Windows 下测试了 python 脚本(步骤3和步骤4)。 以太网引导指南的第4页上提供了相同的步骤。
从我们的测试来看、Windows 系统运行 python 脚本只有2个要求:
1.不应有防火墙阻止 python 通过主机以太网端口发送和接收数据包
2.您应该具有管理权限来运行 PowerShell 并添加静态 ARP 条目(指南第4页上的步骤)
此致、
Nitika
嗨、Nitika、
感谢您的反馈!
根据您的请求、请查看 在客户使用如下所示的以太网引导工具进行测试期间捕获的 Wireshark 日志。
e2e.ti.com/.../EthernetBoot.pcapng
如果你在日志上找到任何线索,请告诉我们,非常感谢!
Kevin
尊敬的 Nikita:
Kevin 老师的上面已经出版的 Wireshark 日志、
MAC 88:0c:e0:67:d6:2D 与 AM2431搭配使用。
192.168.57.90是运行引导工具和 Tftpd64 (和 Wireshark)的 PC 的 IP。
192.168.57.60是分配给 AM2431电路板的 IP。
Tftpd64的屏幕截图如下:
我们已看到您提供了两个分别具有 OSPI 和 QSPI 的项目。 我们将这两个映像都放在 TFTP 目录中。 在电路板上、我们使用 QSPI 芯片 GD25Q64ESIG。
此致、
Larry
您好!
根据 Wireshark 日志、电路板按预期从 DHCP 服务器获取 IP、但 TFTP 传输失败、并显示错误代码:"file not found (找不到文件)"。 这通常在 TFTP 根目录中不存在文件或文件名不正确时发生。
目录看起来正确。 您能否确认您已在 DHCP 服务器的 Boot File 选项中添加了 sbl_ospi_enet.Release.hs_fs.tiimage? 请同时分享您的 DHCP 设置。
此致、
Nitika
尊敬的 Nikita:
以下是 DHCP 服务器设置的屏幕截图:
我们没有找到 DHCP 的 Boot File (启动文件)选项。 点击按钮"Show Dir"会显示与上一帖子相同的文件列表。
此致、
Larry
在您的设置中、这里是 Boot File 选项
请在此处添加文件名(sbl_ospi_enet.Release.hs_fs.tiimage)并重试。
此致、
Nitika
嗨、Nitika、
我们在 th 启动文件选项中添加文件名、然后再次运行测试。 电路板开始通过 TFTP 获取映像。
但 Wireshark 日志显示的是最后一个数据包的 TFTP 传输卡住。 在多次重新传输后、主板将再次开始发送 BOOTP。
192.168.57.60是电路板。 192.168.57.88是运行 Tftpd64的 PC。
有时、电路板会通过 UART 打印消息、如下所示:
您可以提供任何意见/建议吗?
谢谢、此致、
Larry
Larry、您好!
只需确认一下、您是在哪个板(AM64x-SK 或您的定制板)上运行该板?
预计最后一个 TFTP 数据包将出现多个打印。 您在 UART 终端上看到日志表明 SBL 传输成功、并且电路板已开始执行 SBL。
从 UART 日志来看、PHY 启用似乎失败。 您能告诉我您的板载 PHY 是什么吗?
此致、
Nitika
尊敬的 Nikita:
我们在定制电路板上运行。 MCU 为 AM2431BSDGHIALVR、以太网 PHY 为 DP83826、 闪存是 GigaDevice 提供的 QSPI 芯片 GD25Q64ESIG。
需要添加的一点是、 我们看到整个过程(BOOTP+TFTP)通常重复两次:第一次 TFTP 服务器发送最后一个数据包 几次( 板上没有 ACK)、 然后 板从 BOOTP 开始。 同样、TFTP 服务器仅发送最后一个数据包两次(未接收到 ACK)。 然后经过很长一段时间(几十分钟),主板通过 UART 打印消息。
您的意思是、电路板不会向最后一个数据包发送 ACK、这符合预期吗?
此致、
Larry
Larry、您好!
每个 SBL 中都实现了一个热复位权变措施、该权变措施在收到 SBL 后重新启动电路板以防止 CPSW 寄存器锁定。
我认为、在您的用例中、它不是必需的、因为它不是一个生产系统。 您可以在示例中注释掉该部分代码。
在 main.c 文件中、可以删除以下代码部分
#ifndef DISABLE_WARM_REST_WA /* Warm Reset Workaround to prevent CPSW register lockup */ if (!Bootloader_socIsMCUResetIsoEnabled()) { Bootloader_socResetWorkaround(); } #endif
重新构建发布模式下的示例、并将 tftp 文件夹中的.tiimage 文件替换为新生成的文件。
在运行 SBL 的测试过程中我们还没有看到过几十分钟的延迟、您能否进行上述更改并告诉我是否仍然看到延迟?
此致、
Nitika
嗨、Nitika、
长延迟的原因是错误的闪存配置。 在正确的闪存配置下、延迟消失(最后一个数据包仍然没有 ACK。)。
但开发板和 Python 工具都卡住了 LinkUp。 而电路板没有响应 Ping (请参阅 Wireshark 日志)。 Windows 防火墙已禁用。
下面是屏幕截图:
对我们可以研究的方向有什么意见?
谢谢、此致、
Larry
Larry、您好!
从 UART 日志来看、似乎电路板上没有端口链接、python 脚本失败的原因与未从电路板发出链接确认数据包的原因相同。
是否可以确保以太网电缆连接正确?
此外、您板上的 PHY 与 AM64x-SK 板上的 PHY 不同。 如前所述、您还必须对其进行修改。
此致、
Nitika
嗨、Nitika、
以太网电缆连接良好。
在我们的电路板中、DP83826已使用硬件自动加载(bootstrap)进行了配置、如下所示:
增强模式、
启用自协商、 启用奇半字节检测
PHY 地址= 0x07、
RMII 主模式、 引脚31上为 LED1、
RMII_CRS_DV、启用了信号能量检测、
自动 MDIX 已启用、MDIX 已禁用。
我们根据电路板上的 PHY DP83826进行了以下更改:
1.在 SysConfig 中、更改 MAC 地址列表;相应地分配 MDIO 和其他引脚。
2.在 SysConfig 中、 禁用 MAC 端口1并启用 MAC 端口2、因为 DP83826连接到 AM2431的 RMII2。
3.在 sbl_enet.h 中,相应地更改主机 MAC 地址,源 IP(192.168.57.61,板的 IP ),目的 IP(192.168.57.88, PC 的 IP )。
4.在 sbl_enet.c 中、将 macMode 更改为 RMII。
您可以说明我们可以修改哪些内容以适应 PHY 和电路板吗?
顺便说一下、 SDK 文档和示例项目似乎都基于 ETHPHY 模块(在 SysConfig 中)。
在工程中、未添加 SysConfig 中的 ETHPHY 模块。
我不知道如果使用 ETHPHY 模块、它是否会简化 PHY 适应工作、因为可以参考 SDK 文档和示例。
我想知道 在添加和配置 ETHPHY 模块的情况下、您项目中的哪些代码可以被注释掉。
谢谢、此致、
Larry
Larry、您好!
ETHPHY 模块是最近新增的一项功能、用于简化 PHY 集成过程。
我可以帮助您进行新配置。 请允许我用您在上面提供的信息来修改项目。
此致、
Nitika
Larry、您好!
您是对 DP83826使用自己的 PHY 驱动程序、还是使用 TI 提供的 PHY 驱动程序? 您能否共享您正在使用的 PHY 驱动程序?
此致、
Nitika
嗨、Nitika、
我们只需修改您提供的工程。 我们更改的内容已在我的上一篇文章中列出。
请注意、DP83826配置是通过硬件自动加载(bootstrap)实现的。 我想我们不需要再次在固件中配置这些功能。
此致、
Larry
Larry、您好!
[报价 userid="622982" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423298/am2431-support-of-ethernet-primary-boot-backup-boot/5542074 #5542074"]注意、DP83826配置是通过硬件引导程序实现的。 我想我们不需要在固件中再次配置这些功能。正确、应用不再需要进行任何配置、但应用需要将 PHY 驱动程序绑定 到 PHY 器件、此驱动程序实现了处理 PHY 生命周期( 从初始化到链路建立)所需的 PHY 状态机。
在 board.c 文件中可看到、我们使用了 DP83867驱动程序(AM64x-SK 上存在 PHY)。 我想知道、您是否有自己的电路板上使用的 DP83826定制驱动器?
此致、
Nitika
嗨、Nitika、
我们还没有适用于 DP83826的定制 PHY 驱动程序。 因此、我们要使用 ETHPHY 模块来简化工作。
问题是、如果我们在您的项目中添加 ETHPHY 模块、应该修改/删除哪些文件/代码(由于您的项目已经有 PHY 驱动程序、 添加 ETHPHY 将会产生重复、可能会发生冲突)?
此致、
Larry
嗨、Nitika、
我们还有一个 AM243-LP 电路板。 是否可以在此电路板上测试此示例? 它使用 DP83869、也不使用 DP83867
BR、
建宇
您好、建宇、
AM243-LP 电路板上是否提供了以太网引导开关? 如果是、我们也可以对其进行测试。
我们必须为其更改 board.c 文件中使用的 PHY。
此致、
Nitika
嗨、Nitika、
我已检查引导模式开关。 它将 B3-B9映射到开关1-8。 我仅设置 B5、其余设置为0。
但 DHCP 服务器不会为设备分配任何 IP。
我在网上搜索发现了这是2年前发布的、
这是否意味着 https://www.ti.com/tool/LP-AM243中的 LP-AM243板 也不支持以太网引导?
谢谢!
建宇
您好、建宇、
由于 勘误表 i2331、我们开箱即用器件不支持以太网引导。 我尚未在设置中测试 AM243x-LP 的以太网引导。
如果要验证器件上的压降、可以在 AM64x-SK 板( https://www.ti.com/tool/SK-AM64B)上执行此操作
正如 Kevin 所述、我已在 SDK 版本10.1上移植了以太网引导支持、并支持 Ethphy 和 DP83826、我今天将分享相同的内容。
请注意:这将是一个仅用于使用 DP83826 PHY 测试电路板上功能的早期应用包、在 TI.com 上发布(计划本月发布)后、请确保迁移到官方 SDK 10.1。
此致、
Nitika
您好、Larry、Jianyu、
我希望您已收到包含以太网引导示例的 SDK 10.1安装程序、为了在 PHY 驱动程序中添加一些微小更改、您必须遵循随附的自述文件。
完成此操作后、下一步将是根据您的定制板要求修改示例。
对于与 PHY 相关的更改、可以转到示例 SysConfig 中的 ETHPHY (Enet CPSW/ICSS)模块、并 相应地将"ETHPHY Device"更改为 DP83826和"PHY Address":
如果您需要任何帮助、请告诉我。
此致、
Nitika
嗨、Nitika、
感谢您的支持、客户反馈说、现在可以使用您提供的83826 PHY 驱动程序检测到以太网。
但是、您提供的示例基于 AM64x、客户希望再次确认他们是否可以直接在 AM24上应用此示例?
谢谢!
Kevin
尊敬的 Kevin、Larry:
我们在结束时进行了一些测试、相同的基于 AM64x 的示例也适用于 AM243x-EVM。
请注意、由于 RGMII 2端口上存在电路板设计限制、开箱即用的 AM243x TI EVM 无法支持以太网引导(在 ROM 引导加载程序级别、该端口配置为 ICSSG 而不是 CPSW)。
[报价 userid="546471" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423298/am2431-support-of-ethernet-primary-boot-backup-boot/5525426 #5525426"]步骤1:主板发送 BOOTP 请求、您的 DHCP 服务器将对其作出响应并分配 IP。
步骤2:电路板发送 TFTP 读取请求、TFTP 服务器将 sbl_opsi_enet 映像发送到电路板。
[报价]由于硬件限制、无法在 AM243x-EVM 上完成上述2个步骤(实际上是 ROM 引导加载程序选择 SBL 的部分)。 作为测试的权变措施、我们通过 UART 发送 sbl_ospi_Enet 并切换到 OSPI 引导模式以执行它。
在这种设置下、 我们已彻底测试了 SBL、并且闪存实用程序已按预期运行。
由于您的定制电路板没有此类硬件限制、并且我们已经看到 ROM 引导加载程序器件正常工作、因此您可以按照以太网引导指南操作、同一个 AM64x 示例应该可以直接使用。
Kevin
如果您对上述内容有任何疑问、我们可以拨打电话。
此致、
Nitika
我已经在我们的板上测试了演示、UART 的日志如下所示。
==========================================
DMSC 固件版本10.0.8--v10.00.08 (Fiery Fox)
DMSC 固件版本0xA
DMSC ABI 修订版4.0
[ ENETSBL ]开始以太网传输...
启用时钟!
EnetAppUtils_reduceCoreMacAllocation:将 CoreID:1的 MAC 地址分配从4减少到2
打开 MAC 端口2
EnetPhy_bindDriver:Phy 7:OUI:080028型号:13 Ver:01 <->"generic":好
PHY 7处于活动状态
EnetMod_ioctl:cpsw3G.macport1:模块未打开
Cpsw_registerIoctlHandler:注册 IOCTL 处理程序失败:-11001000502,70031AF1
EnetPer_ioctl:cpsw3g:无法执行 IOCTL cmd 0x01000110:-1
enet_ioctl:cpsw3g:ioctl 0x01000110失败:-1
无法为端口1 --1设置 DSCP 优先级映射
[ ENETSBL ] initQs() txFreePktInfoQ 用8个 pkts 初始化
[ ENETSBL ] EVM MAC 地址:88:0c:e0:67:d6:2d
[ ENETSBL ] PHY 7处于活动状态
[ ENETSBL ]请等待 LinkUp ...
[ 2024年12月11日05:42:54.578]
Rx:Cpsw_handleLinkUp:端口2:链路接通:100Mbps 全双工
==================================================================
我对电路板上的演示 enet_l2_multi_channel_am243x-evm 进行了一点调试。 似乎未初始化模块 cspsw3G.macport1地址0x7012d478。
由于仅使用端口2、因此我不确定为什么要使用 macport1进行初始化。
目前电路板可检测到网络链路。 python 无法链接到电路板。
昨天我在 演示 enet_l2_multi_channel_am243x-evm 上遇到了这个问题、但我认为原因可能是 SDK 版本问题。
建宇
您好、建宇、
端口1的错误是由于 DSCP 故障导致的、开发团队正在研究该错误。 由于这些错误仅针对端口1出现、因此端口2的功能不受影响、我已经对此进行了测试。
此外、我从日志中看到另一个问题-
EnetPhy_bindDriver:Phy 7:OUI:080028型号:13 Ver:01 <->"generic":确定
EnetPhy_bindDriver 会将通用 PHY 驱动程序连接至您的板载 PHY、而不是 DP83826。
您能否与我共享生成的 ti_board_config.c 文件?
此致、
Nitika
文件已附加
e2e.ti.com/.../8204.ti_5F00_board_5F00_config.c
由于硬件限制、上述2个步骤(基本上是 ROM 引导加载程序选择 SBL 的部件)无法在 AM243x-EVM 上完成。 作为测试的权变措施、我们通过 UART 发送 sbl_ospi_Enet 并切换到 OSPI 引导模式以执行它。[/QUOT]今天、我将在 LP-AM243x 上试用这一点。
我已经重建了 SDK、现在 phy 可以正确绑定到83826。 这是 UART 输出。
DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox) DMSC Firmware revision 0xa DMSC ABI revision 4.0 [ ENETSBL ] Starting Ethernet Transfer ... Enabling clocks! EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 2 Open MAC port 2 EnetPhy_bindDriver: PHY 7: OUI:080028 Model:13 Ver:01 <-> 'DP83826' : OK PHY 7 is alive EnetMod_ioctl: cpsw3G.macport1: Module is not open Cpsw_registerIoctlHandler: Failed to register IOCTL handler: -1, 1000502, 70031001 EnetPer_ioctl: cpsw3g: Failed to do IOCTL cmd 0x01000110: -1 Enet_ioctl: cpsw3g: IOCTL 0x01000110 failed: -1 Failed to set dscp Priority map for Port 1 - -1 [ ENETSBL ] initQs() txFreePktInfoQ initialized with 8 pkts [ ENETSBL ] EVM MAC address: 88:0c:e0:67:d6:2d [ ENETSBL ] PHY 7 is alive [ ENETSBL ] Please wait for Linkup ... [2024-12-12 11:09:22.395] RX:Cpsw_handleLinkUp: Port 2: Link up: 100-Mbps Full-Duplex
然后我启动 python 脚本、输出为:
D:\CD3E-AP\Ethernet\Ethernet_boot>python enet_uniflash.py --cfg=default_sbl_enet_app.cfg [LOG] Parsing config file ... [LOG] Ensure that sbl_qspi_enet has already been sent over before running this script. [LOG] Found 1 command(s) !!! [LOG] Creating socket Starting Linkup ... Starting Linkup ... Starting Linkup ... Starting Linkup ... Starting Linkup ... [ERROR] Connection timed out too many times for link-up. Check connection to EVM. Power cycle EVM and run this script again !!!