您好、香榭丽舍
我的一位客户尝试在 C6678EVM 上启动大端 TFTP 引导、但他不能。 他已经完成了不存在任何问题的小端启动。
那么、有人有任何经过验证的 EVM 启动示例吗?
此致、
J-Breeze
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.
您好、香榭丽舍
我的一位客户尝试在 C6678EVM 上启动大端 TFTP 引导、但他不能。 他已经完成了不存在任何问题的小端启动。
那么、有人有任何经过验证的 EVM 启动示例吗?
此致、
J-Breeze
您好!
以下是我的最新结果。 我附加了 Wireshark 日志。
o 启用小端字节序和 BOOTP (文件名:TFTP_BOOT_LE_BOOTP_ENA.pcapng)
-第102号: 40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
-第104号: DHCP DHCP Offer -事务 ID 0x1
-105号: ARP 谁拥有192.168.2.3? 请告知192.168.2.201
-第107号: TFTP 读取请求、文件:app.out、传输类型:八位位组
-第109号: TFTP 数据包,块:1.
-第110号: TFTP 确认,块:1.
* TFTP 引导正常!
o 启用大端字节序和 BOOTP (文件名:TFTP_BOOT_BE_BOOTP_ENA.pcapng)
-第 82号: 40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
-第 83号: DHCP DHCP Offer -事务 ID 0x1
- 85号 ARP ,谁拥有192.168.2.101? 请告知192.168.2.3
-第122号: 40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
-第123号: DHCP DHCP Offer -事务 ID 0x1
-编号124 ARP ,谁拥有192.168.2.101? 请告知192.168.2.3
-第171号: 从 40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)发出 BOOTP 引导请求
-编号172: DHCP DHCP Offer -事务 ID 0x1
-174号: 具有 192.168.2.101的 ARP? 请告知192.168.2.3
* TFTP 引导 NG!
不使用大端字节序的原因是什么?
如有任何意见,请提出。
e2e.ti.com/.../TFTP_5F00_BOOT_5F00_BOOTP_5F00_ENA_5F00_Wireshark_5F00_Logs.zip
此致、
J-Breeze
J-Breeze、
请在此处查看我的回答:
另请参阅随附的文档、以在 BER 模式下运行 TFTP 引导。 这是使用 MCSDK 基线进行验证的。 使用 Processor SDK RTOS、我们仅在小端模式下测试了这一点。
e2e.ti.com/.../8637.How-to-test-BOOTP-C6678-EVM-in-BE-mode.pdf
此致、
Rahul
您好、Rahul、
感谢您的支持。
我认为您所附的文档是针对 ROM 以太网引导、而不是 IBL TFTP 引导。 因为 DEVSTAT 值为0x00001C84、它显示了 ROM 以太网引导模式。 您可以再次查看吗?
另外、您能否参阅我在上一个帖子中附加的 Wireshark 日志、并让我澄清为什么在引导环境模式下启用 BOOTP 时、从 PC 发出 ARP、而我用于 DHCP/TFTP 服务器、而不是 EVM?
此致、
J-Breeze
J-Breeze、
我从从基于 TFTP BOOTP 的引导中看到的内容中提供了 Wireshark 日志。
e2e.ti.com/.../IBL_5F00_TFTP_5F00_BE_5F00_WireShark_5F00_log.pcapng
我肯定会看到响应和图像传输在大端模式下发生。
此致、
Rahul
J-Breeze、
我n`t 了 MCSDK 映像、并使用了预构建的二进制文件、因为我在源代码中做了任何更改。
我使用 i2cConfig.gel 配置了引导参数表、如下所述:
修改了 GEL 以启用 BOOTP 并运行.out 以刷写参数表。
在主机上、我使用了一个名为 TFP32的工具、在这里进行了介绍:
我已附加工具设置的快照。:
为了测试这一点、我使用了一台不在办公室网络上的交换机、并使用静态 IP 配置了机器 LAN 并将其连接到交换机。
希望这对您有所帮助。
此致、
Rahul
你好、Raul、
非常感谢您的支持。
正如您所说的、我已经使用该工具并使用 GEL 文件配置了表、但引导剂量在我的环境中还不起作用。
我使用交叉电缆将 PC 直接连接到 C6678EVM。 出什么问题了吗?
而且、我发现 Wireshark 日志存在差异。
在日志中, BOOTP/Boot Reply (No.2)是在 BOOTP/Boot Request(No.1)和 ARPs (No.)之后发出的 3和4)、然后启动 TFTP 传输。
另一方面,DHCP/DHCP Offer (No.104)是在 BOOTP/Boot Request (No.102)和 ARPs (No.102)之后发出的 105和106)、然后 TFTP 传输在我的日志中开始(对于启动工作的小端模式)。
我不熟悉该协议。 如果您有的话、请允许我来说明一下区别吗?
此致、
J-Breeze
您好、Rahul、
我仍在将我的 PC 直接连接到 EVM。
顺便说一下、我想问您另一个问题。 我想调试 IBL、特别是 BOOTP.c 文件。
那么,您能告诉我我如何查看下面的 mprintf()输出吗?
我不确定、但我想引导应答/DHCP 服务数据包在 be 模式下无法正确解释。
o bootp.c
(C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)
-第312~320行
/*调试消息:*/
mprintf ("*****************) \n");
mprintf ("BOOTP complete\n");
mprintf (" IP 地址 :0x%x\n"、ntohl (netmcb.net_device.ip_address));
mprintf (" 网络掩码 :0x%x\n",子网掩码);
mprintf (" 默认路由器:0x%x\n"、默认路由器);
mprintf (" 服务器 IP :0x%x\n"、ntohl (serverIP));
mprintf (" 文件名 :%s\n"、 ptr_bootaddr->文件);
mprintf ("*****************) \n");
此致、
J-Breeze
您好、Rahul、
我想问您有关 IBL 代码的建议。
我正在尝试调试代码,我发现在引导模式下执行 bootp.c 中的 bootbootbootp_tmr_expire()函数后,它没有到达 bootp_receive()函数。 因此,我无法在 BOOTP_Receive()中的上一篇文章中看到我提到的 mprintf()输出。
那么、您能给我一些关于可能原因的建议吗?
此致、
J-Breeze
您好!
下面是我的 Tftpd64日志。 我希望这将是有用的信息。
o 低
IP 0.0.0.0、Mac 40:5F:C2:B8:FC:9A 的 Rcvd BootP 消息[08/06 15:50:43.155]
BOOTP:建议地址192.168.2.201 [08/06 15:50:43.155]
从端口1234上的192.168.2.201接收到的连接[08/06 15:50:43.171]
文件的读取请求 。 模式八位位组[08/06 15:50:43.171]
使用本地端口49175 [08/06 15:50:43.171]
:已发送994个 blks,0s. 0中的508780字节。0 blk resent [08/0615:50:43.405]
警告:收到来自的重复请求:[08/0615:50:43.405]
从端口1234上的192.168.2.201接收到的连接[08/06 15:50:43.663]
文件的读取请求 。 模式八位位组[08/06 15:50:43.663]
使用本地端口50022 [08/06 15:50:43.663]
:已发送994个 blks,0s. 0中的508780字节。0 blk resent [08/06 15:50:43.881]
O be
IP 0.0.0.0、Mac 40:5F:C2:B8:FC:9A 的 Rcvd BootP 消息[08/06 15:57:01.839]
BOOTP:建议地址192.168.2.201 [08/06 15:57:01.839]
IP 0.0.0.0、Mac 40:5F:C2:B8:FC:9A 的 Rcvd BootP 消息[08/06 15:57:09.808]
BOOTP:建议地址192.168.2.201 [08/06 15:57:09.808]
IP 0.0.0.0、Mac 40:5F:C2:B8:FC:9A 的 Rcvd BootP 消息[08/06 15:57:21.764]
BOOTP:建议地址192.168.2.201 [08/06 15:57:21.764]
。
。
。
此致、
J-Breeze
您好、香榭丽舍
Dose、有人帮助我吗? 我还没有得到解决。
处于 be 模式的 IBL 在下面的 arp_resplve()中重复一条 if 语句,然后执行另一条 if 语句,该语句显示错误"BOOTP failure: Max reTransmissions exceeded"。 这可能会有什么问题? 接下来应该检查什么?
如有任何意见,请提出。
o arp.c
(C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)
-第127~142行
//特殊情况:我们是否将数据包发送到255.255.255.255? *
IF (DST_IP =(IPN) 0xFFFFFFFF)
{
/*是。 这意味着数据包中的目的 MAC 地址是广播地址
*我们不需要查找高速缓存。 *
PTR_ethhdr = net_create_eth_header (((uint8 *) PTR_iphdr、(void *)&BroadcastMac[0]、0x800);
if (ptr_ethhdr ==空)
返回;
/*我们现在有一个完整的以太网数据包,通过发送。 *
net_send_packet (ptr_ethhdr、sizeof (ETHHDR)+ L3_pkt_size);
/*数据包已传输,我们现在可以清除它。 *
net_free_tx_packet (((uint8 *) ptr_iphdr);
返回;
}
o bootp.c
(C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)
-第141~149行
/*检查我们是否超出了最大值 是否允许? *
if (bootpmcb.num_request > bootp_MAX_retries)
{
/*错误:已超出最大重传;指示错误。 *
mprintf ("BOOTP 失败:超出最大重传\n);
net_set_error ();
udp_sock_close (bootpmcb.sock);
返回;
}
此致、
J-Breeze
您好、Rahul、
我的客户自行解决了此问题、并告诉我他们的临时解决方法、如下所示(以红色突出显示)。 我想关闭这个线程。
非常感谢您的支持。
o icmp.c
(C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)
-第77~82行
//#ifdef BigEndian
if (tmp1)
Tsum +=(uint32)(* PW & 0xFF00);
//#else
// if (tmp1)
// Tsum +=(UINT32)(*PW & 0x00FF);
//#endif
o udp.c
(C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)
-第96~102行
//#ifdef BigEndian
if (tmp1)
Tsum +=(uint32)(* PW & 0xFF00);
//#else
// if (tmp1)
// Tsum +=(UINT32)(*PW & 0x00FF);
//#endif
此致、
J-Breeze
J-Breeze、
感谢您在此处发布更新、感谢您在处理此问题时的耐心。 我很高兴问题得到解决。
我可以确认、这是由不一致的 BigEndian 宏定义导致的错误。 C6000编译器将此宏定义为_BIG_ENDIAN、以便在 IBL 代码中错误地定义宏。我将报告错误并要求开发团队修复错误。 如果您希望代码在小端字节序和大端字节序模式下都工作、则可以将 BigEndian 替换为_big_ENDIAN。
此致、
Rahul