Other Parts Discussed in Thread: AM6421
器件型号: AM6421
您好、
我们正在开发基于 FS EVM 的定制 AM6421 HS-AM64x 电路板。 我们的定制电路板没有 EEPROM、因此我们修改了 U-Boot 中的 EEPROM 检测流程、以绕过 EEPROM 读取。
我们 do_board_detect() 在中修改了函数:
board/ti/am64x/evm.c
并按如下所示手动填充 EEPROM 结构:
int do_board_detect(void)
{
struct ti_am6_eeprom *ep = TI_AM6_EEPROM_DATA;
// Manually populate the data structure to bypass I2C read
strlcpy(ep->name, "AM64-SK", sizeof(ep->name));
strlcpy(ep->version, "E1", sizeof(ep->version));
ep->header = TI_EEPROM_HEADER_MAGIC;
return 0;
}
通过以下更改、我们能够绕过 EEPROM 检测错误。 但是、我们观察到构建似乎是选择 SK DTS 而不是 EVM DTS。
我们通过分别修改两个 DTS 文件来确定这一点:
-
中所做的更改
k3-am642-evm.dts未得到反映。 -
中所做的更改
k3-am642-sk.dts是在引导期间正确应用的。
这表示在当前启动流程中选择 SK DTB 代替 EVM DTB。
如果我们不绕过 EEPROM 检测、则电路板会在 DFU 刷写期间断开连接、并且我们无法刷写其余的引导加载程序二进制文件。
为了解决此问题、我们修改了电路板检测流程并手动填充 EEPROM 结构。
我们还尝试更改:
strlcpy(ep->name, "AM64-EVM", sizeof(ep->name));
而不是 AM64-SKEVM、但我们仍然面临着同样的问题、即编译/运行时行为似乎选择了 SK DTS 而不是 EVM DTS。
因此不绕过 EEPROM
U-Boot SPL 2024.07 (May 27 2026 - 16:18:35 +0530)
Resetting on cold boot to workaround ErrataID:i2331
Please resend tiboot3.bin in case of UART/DFU boot
resetting ...
U-Boot SPL 2024.07 (May 27 2026 - 16:18:35 +0530)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
board_fit_config_name_match in.
is_am64x.
SPL initial stack usage: 13368 bytes