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.

[参考译文] TMS320C6657:引导模式(DEVSTAT)读取错误

Guru**** 2558250 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/597311/tms320c6657-bootmode-devstat-read-incorrectly

器件型号:TMS320C6657

我目前正尝试直接从 NAND 引导、结果"不稳定"。  core0有时会从 NAND 中正确引导、有时会"挂起"到 BootROM 中(很明显)。

我的引导模式引脚都通过电阻器连接到上拉/下拉电阻器、不由任何其他信号驱动。  

我将所有上拉和下拉电阻更改为1K 欧姆电阻器(这似乎应该足够"强、即使是使用内部上拉/下拉电阻器)。

我尝试添加二级复位(在最初退出复位后)、但这也没有解决问题。  我认为我看到了一个提及添加二级复位的用于直接 NAND 引导的 E2E 主题、但我在 E2E 页面上似乎找不到我阅读此建议的原始论坛主题。  

当我通过仿真器连接并在 Code Composer 中执行 CPU 复位后单步执行汇编(在 BootROM 中)时、处理器似乎从 DEVSTAT 寄存器中读取了一个不正确的值。  它的读数为0x11807、而我的电阻上拉/下拉将其设置为0x0C03 (NAND、无 i2c 参数、nand 块0源)。  我还使用 DMM 探测了这些线路、电压对于所需的引导模式似乎是正确的。

当器件脱离复位状态并获得二次复位时、我附加了复位线路的捕捉

这是一个屏幕截图、我在其中捕获了 C6657读取错误的引导模式值。  

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

    我已将此事转交给专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、您好!
    让我提出两个问题。 首先、在引导序列图中、您不会显示应用系统时钟的位置。 在 PORz 和 RESETFULLz 变为高电平之前、您能否确认时钟是否存在指定时间? 其次、RESETFULLz 变为高电平后、RESETz 信号变为低电平。 您能否告诉我该信号为什么会降低?
    谢谢、
    Bill
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bill、

    1) 1)在任何复位激活之前很长时间应用系统时钟(电源也是如此)。  我之前已在 O 示波器上验证这些信号。  我的逻辑分析仪没有正确捕获时钟的带宽、因此我特意省略了时钟。  我附加了一个图、其中包括 PLL_LOCK 信号变为有效、这是任何复位信号取消置位前25ms 的时间。

    2)第二次重置是指 这个线程(我刚刚被重新发现)、 它在 Rahul Prabhu 的答复中、在第二个选项中是"建议的变通办法"-

    如何生成 C6657和引导引导表? 

    3)有趣的事实...如果我运行提供的"evmc6657.gel"文件的"Global_default_setup()",请在 Code Composer 中执行"CPU Reset",则电路板会正确引导。  

    我"逆向工程"了文件名信息、并引用"ROM 引导加载程序"的另一个线程的引导日志   

    以下是 bootlog 部分中的数据"snip":

    1651 9 8ffa80 0 160 4
    00000004
    0000000A
    00000001
    20B15BA8
    00000298
    0000006A
    20B15BA8
    000000AE
    0000006A
    20B15BA8
    00000071
    00000066
    20B15AF0
    000000C3
    00000000 

    下面是我解析的文件名信息:

    ===========================================================================================================================================
    文件名:BootFailure-Filename.dat
    魔法号码:1651
    支持的格式:9
    起始地址:0x20b15a40
    页:0
    长度:0x400
    格式:0x10
    ====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    [0x20b15a40]./../../../devices/gauss/gaussDsp.c
    [0x20B15A68]./../../../devices/gauss/gauss.c
    [0x20B15A90]./../../bootproc/bootproc.c
    [0x20B15AB0]./../../main/mainemif4cfg.c
    [0x20B15AD0]./../../main/emifmain25.c
    [0x20B15AF0]./../../main/nandmain.c
    [0x20B15B10]./../../main/pciemain.c
    
    
    /../../main/vusrmain.c
    
    
    /../../main/spimain.c [0x20B1520.0][0x20B150./../../main/riomain2.c [0x20B1520.B1520.0][0x20B150./../../main/uartmain.c。[0x20B1520.B1520.0][0x20B1520.B150./../../main/ethmain.c。[0x20B1520.B1520.B15.0][0x20B150.[0x20B1520.B15.0]./../../hw/nand/nand.c 

    它看起来在引导加载程序的"nand.c"部分出现了故障。  即使当我在仿真器/CCS Studio 环境中复位 DSP 时、"DEVSTAT"似乎被读取为"超链接启动"。  

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

    C6657受 TCI6614器件的相同 NAND 引导通报的影响、如需参考、请查看此处的通报:
    www.ti.com/.../sprz370e.pdf

    我们已在 EVM 上复制此内容、并提供了您之前提到的第二个复位解决方案。 n`t 在第二次复位期间 DEVSTAT 值发生变化、此操作才有效。 此解决方案仅适用于 EVM。 在您的n`t 硬件上、您可以确保在 NAND 加电后 SOC 上电、这样您就不需要实施第二个复位解决方案。 检查勘误文档中讨论的解决方法。

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

    您好、Rahul、

    我做了以下工作:

    1) 1)将我的 CORECLKP/CORECLKN 频率降至50MHz

    2) 2)我为8倍多倍频器设置引导模式引脚、这意味着应该是400 MHz 内核时钟

    我仍然看到引导失败、但这些是我遇到的引导日志错误:

    1651 9 8ffa80 0 160 4
    00000007
    0000000A
    00000001
    20B15BA8
    00000291
    00000069
    20B15BA8
    00000291
    00000069
    20B15BA8
    00000291
    00000069
    20B15BA8
    00000291
    00000069
    20B15BA8
    000000B6
    0000006F
    20B15BA8
    00000071
    00000071 00000067
    20B15BA0 00000000 C3
    
    

    这似乎表明 RBL 缺少"忙标志"、但我仍然收到此错误:

    #define NAND_BOOT_ERROR_OPEN_GET_FLASH_details 103.

    对此有什么想法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否指定您尝试从哪个 NAND 器件引导的相关内容。 我建议您先尝试使用 C6657 EVM 启动映像、然后再在定制硬件上进行测试。 这将为我们提供一个数据点。

    n`t 日志仅指示该函数进入 NAND 主函数和 Nand 驱动程序、但无法根据从 NAND 闪存获取的数据获取 NAND 几何体。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    EVM 使用我的代码包进行引导。  这里的问题是、事情似乎在 RBL 中挂起、甚至没有达到我的代码。  这似乎表明在 RBL 中读取 NAND 时出现问题。 代码本身不会出现问题。  

    我们设计中的 NAND 器件为 :MT29F1G08ABCHC-ET:C

    但是、该器件已转换为更小的工艺、即 MT29F1G08ABBDAHC-IT:D
    我可以为数据表做的最好的事情是: MT29F1G08ABCHC-ET:C (Micron 的站点)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我查看了 NAND 数据表、它似乎是一个具有1位 ECC 要求的 ONFI NAND。

    您是否可以提供原理图的 NAND 部分。 您正在使用什么 CS/CE? 数据还是仅在 SOC 和 NAND 之间连接 CS/CE? 您如何刷写 NAND?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、

    更改引导模式引脚上的 PLL 设置(下拉至上拉)对我们的设计产生了意外的后果。 引导后、引导模式引脚12至10用作 GPIO 输出、以驱动某些缓冲器的输出使能。 这些缓冲器允许我们连接到 UPP 总线。 问题在于所需的较慢 PLL 设置、即 BOOTMODE 引脚上的下拉电阻、将缓冲器置于 UPP 接口上(与 NAND 接口共享信号)的错误状态。 我能够通过跳线来解决这个问题、而且似乎是在正确的轨道上。 我需要更多地练习该修复程序、以增强对它的信心。 但是、如果经过一段时间和测试后看起来不错、我将验证答案。

    在返回之前、我需要重点关注 CCSv7问题、但我很快就会重新检查。

    谢谢、
    标记