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.

[参考译文] TMS320DM6446:从 AZWTA 迁移到 BZWTA 的 UBL NAND 启动问题

Guru**** 2609925 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/655743/tms320dm6446-ubl-nand-boot-issues-migrating-from-azwta-to-bzwta

器件型号:TMS320DM6446

我们有一款使用 AZWTA 的成熟产品、我们从2007年左右推出了 DVFlasher 1.14的修改版本和相关的 UBL。  我们根据定制硬件的需要对其进行了修改、并已使用此配置多年。  我们尝试更新到 BZWTA、并在加载和引导 NAND 闪存时遇到一些问题。

首先、我尝试通过修改 makefile 中的 padding 选项来调整 UBL 大小。  我尝试删除所有填充、并将其大小调整为12KB 和13.5KB。  在所有情况下、我在擦除 NAND 闪存时都得到超时:

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

用于 DM644x 的 TI DVFlasher 主机程序
(C) 2007、Texas Instruments、Inc.
------------------------------------


用 u-boot.bin 刷写 NAND。


正在尝试连接到设备 COM6。。。
按任意键可随时结束此程序。


正在等待 DVEVM...
收到 BOOTME 命令。 正在返回 ACK 和标头...
ACK 命令已发送。 正在等待开始命令...
DVEVM:开始
已收到开始命令。 正在发送 CRC 表...
CRC 表已发送。 正在等待完成...
已接收。 正在发送 UART UBL 文件...
已接收。 接受 UART UBL 文件。
UART UBL 发送成功。

DVEVM:FFFFFFFF DDR2内存在位置0失败
DVEVM:TI UBL 版本:2.00、闪存类型:NAND
DVEVM:引导 PSP 引导加载程序
DVEVM:PSPBootMode = NAND

警告! DM644x 未处于 UART 引导模式!
仅当您确定正在执行的操作时、才继续。

继续(是/否)? Y

正在等待 DVEVM 上的 UBL ...
收到 UBL 的 BOOTPSP 命令。 正在返回 CMD 和命令...
发送的 CMD 值。
SENDUBL 已接收。 正在返回 UBL 数据的 ACK 和标头...
ACK 命令已发送。 正在等待开始命令...
接收到 UART UBL 的 BEGIN 命令。 正在发送闪存 UBL 代码...
闪存 UBL 代码已发送。 正在等待完成...
已接收。 接收到所有字节的闪存 UBL 代码...
已接收。 闪存 UBL S 记录已正确解码。
DVEVM:正在初始化 NAND 闪存...
DVEVM:制造商 ID = 0x00000020
DVEVM:器件 ID = 0x00000036
DVEVM:每块页数= 0x00000020
DVEVM:块数= 0x00001000
DVEVM:每页字节数= 0x00000200
DVEVM:将 UBL 写入 NAND 闪存
DVEVM:标头和数据所需的块数:0x00000001
DVEVM:尝试在块编号0x00000001中启动。
DVEVM:取消保护块0x00000001至0x00000001。
DVEVM:擦除块0x00000001至0x00000001。
DVEVM:NANDWaitForRdy()超时!

接下来,使用12KB UBL,我更新了 NAND_EraseBlocks()中对 NAND_WaitForRdy (NAND_TIMEOUT)的调用,将超时增加到10*NAND_TIMEOUT。  这会导致我的所有超时错误消失、并且我的所有刷写步骤似乎都正常工作。  但是、在重置达芬奇时、我发现 UBL 不会引导、RBL 继续打印"BOOTME"。  我尝试擦除 NAND 并重试、但发现 U-boot 已正确刷写、当从串行端口加载 UBL 时、它会引导 U-boot 而不是打印"BOOTPSP"。  我必须使用"nand erase clear"从 U-boot 中擦除 NAND、但在多次尝试和不同的硬件上也发生了同样的情况。

由于迁移指南仅提到引导加载程序大小是一个问题、我发现了延迟问题、我想知道是否有其他 UBL 更新被认为存在。  我们不想对这个成熟的产品和相关的构建/加载机器进行重大更改、因此我希望可能有一个补丁可以应用到 U-boot、而不是尝试为我们的定制硬件提供新的闪存实用程序。

UBL 是否需要进行任何其他已知更改才能使用新的芯片版本从 NAND 闪存启动?