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 的一些信息来解决此问题、我将不胜感激。
DM816x 配置为 NAND 启动。 BTMODE[3:0]= 10010 (Boot Stat 寄存器的值为20312)。 该处理器板连接到另一个 FPGA 板(Xilinx FPGA)、与 FPGA 的通信模式为 GPMC 接口(控制信号、地址[16:1]和数据总线[15:0])。
2. DM816x 电路板独立时会启动。 但是、当它连接到上电的 FPGA 板时、它不会从 NAND 引导。
3、FPGA 上所有 IO 对应于包括启动模式在内的 GPMC 信号均处于三态状态、FPGA 板上没有外部上拉或下拉电阻。
4.在无法引导的状态下、已建立 CCS 连接并读取了 RBL 跟踪向量寄存器、这表明 NAND 引导失败、器件将进入 UART 引导、 (在 UART0上打印时、我们可以在控制台上观察到这种情况)。 CCS 中的程序计数器还指向 RBL 地址范围内的地址。
请分享一些可能导致 NAND 启动失败的输入。
此致、
分享
[引用 user="Khader Shareef")-- RBL 跟踪矢量寄存器中的差异
0x4031D040电流跟踪矢量、字1 0x9E 0x907F[/引用]
这表明未找到图像标头(非工作情况下位7为0)。 NAND 存储器引导:映像必须以包含映像大小和目标地址信息的标头开头。 当引导存储器器件为 NAND 时、映像必须包含一个小头、其大小为要加载的软件以及存储该头的目标地址。
[引用用户="Khader Shareef">0x50000010 GPMC_SysConfig 0x8 0x0[/引用]
在非工作情况下、GPMC 设置为强制空闲模式、因此 GPMC 可能处于空闲模式、因此无法运行。 您能否检查 GPMC_SysConfig[4:3] SIDLEMODE 为何为0? 尝试将 SIDLEMODE 设置为1
[引用用户="Khader Shareef">0x50000060 CONFIG1 0x1810 0x401810[/QUERP]
在非工作模式下、[22] WAITREADMONITORING 为0x1。 WAIT 引脚配置是否有差异? 请注意、NAND ROM 代码需要将 WAITPIN0信号连接到 NAND BUSY 输出。
NAND ROM 代码还需要:
-55MHz GPMC 时钟
-连接到 CS0的设备
-针对 NAND 访问调整了 GPMC 时序、有关详细信息、请参阅 TRM 部分的图25-11。 GPMC NAND 时序和表25-10。 NAND 时序参数
由于 NAND 器件不使用 GPMC 地址总线、因此 GPMC 地址总线被释放。 ROM 代码首先执行初始等待器件自动初始化(超时250ms)并轮询就绪信息。 然后、它需要识别连接到 GPMC 接口的 NAND 类型。
一般建议尝试使用工作案例中的 GPMC 寄存器设置。
您还可以测试 FPGA 是否以某种方式损坏写入 NAND 中的映像。 首先尝试独立启动、然后尝试 FPGA 模式(此处的启动失败)、然后再次尝试独立启动(不在 NAND 中写入新映像)。
此致、
帕维尔
您好、Pavel、
请按相同顺序查看我在下面的回复、以了解上述问题。
1:当独立测试电路板并使用 FPGA 电路板时、NAND 映像是相同的、并且不会被更改。
2.我尝试从 CCS 中设置此 GPMC_SysConfig 寄存器、SIDLEMODE 设置为0x8、然后通过将 PC 设置为0x20000来执行 RBL。 但仍然是不幸运的。
等待引脚仅连接到 NAND 和 DM816x 处理器之间、因为我们还尝试移除了 FPGA BUSY 输出之间的缓冲器、该输出与 NAND 的 BUSY 输出进行了 AND 运算。
最后一点、我们在使用 FPGA 板进行测试后尝试移除 DM816x 板、它启动正常、这意味着即使在连接 FPGA 板和从 FPGA 板上移除之后、NAND 映像也是完美的。
我们已在 FPGA 中添加了逻辑分析仪 IP、并看到 NAND 读取正在开始并传递到 sprugx8c TRM 文档中图25-12中的"从器件参数页提取 NAND 参数"。
我们无法更改 GPMC 配置寄存器、因为 RBL 对它们进行配置、然后相应地从 NAND 引导。
RBL 是否独立于 SYSBOOT 引脚之外的任何信号?
在这种情况下、您能告诉我们什么会导致 GPMC 进入空闲状态、NAND 启动失败?
此致、
分享
Shareef、
[引用用户="Khader Shareef">1. 当电路板独立测试且使用 FPGA 电路板时、NAND 映像是相同的、并且不会发生更改。
[引用 USER="Khader Shareef"]我们无法更改 GPMC 配置寄存器,因为 RBL 会配置它们,然后相应地从 NAND 引导。
因此、您对这两种情况(独立和 FPGA)都使用相同的软件(u-boot.noxip.bin)、对吧? 如果是、则这应该是硬件问题。
[引用 USER="Khader Shareef"] RBL 是否对除 SYSBOOT 引脚之外的任何信号都有依赖?[/QUERE]
是的、请参阅 TRM 第25.7.3.2节"使用的引脚"。 除了 sysboot 引脚 BTMODE[4:0]、您还可以比较其余的引导引脚:CS0BW、CS0MUX[0]、CS0MUX[1]和 CS0WAIT、请参阅数据表4.2.1引导配置
[报价用户="Khader Shareef"]在这种情况下、您能否告诉我们什么会导致 GPMC 进入空闲状态、NAND 启动失败?[/报价]
我们不确定 GPMC 模块是否进入空闲状态。 您能否在两种情况下检查寄存器 CM_ALWON_GPMC_CLKCTRL。 您有什么价值?
另请参阅以下 wiki:
此致、
帕维尔
您好、Pavel、
1.是的、我们认为这是与硬件相关的问题、因为软件在 NAND 上没有变化。
2、我们已检查所有管脚的默认值不变、GPMC_Address [16:1]为0x912。
在 工作和非工作情况下、控制寄存器 CM_ALWON_GPMC_CLKCTRL 的值均为0x2。
还有一些观察结果表明、RBL 正在成功执行以下操作:
读取器件 ONFI 签名。
读取"NAND 参数"页的101个字节。
给出一个地址00、04、00、00、00、 00 (C1、C2、R1、R2、R3)后跟读取页面命令30h。 之后、我们不会看到发生任何数据传输。 我们不确定原因是什么? 你有什么想法吗?
此致、
Khader
Khader、
我与我们的硬件工程师交谈过。 我们的意见是、您很可能会在 NAND 芯片和 FPGA 板之间共享的引脚上遇到信号冲突。 对于这两种情况、您应该使用示波器和/或逻辑分析仪检查引脚上的信号、并比较结果。 检查信号电平和波形。
此致、
帕维尔