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.

[参考译文] Linux/PROCESSOR-SDK-AM335X:从 MLO 中检测 NAND 总线宽度

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/666986/linux-processor-sdk-am335x-detecting-nand-bus-width-from-mlo

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我正在寻找一种机制来检测 MLO 内的 NAND 总线宽度。

这样做的原因是、我们计划将现有的16位 NAND 更改为相应的8位 NAND (这意味着页面大小、OOB 和 ECC 保持不变)。

BootROM 代码能够执行该操作、其含义是以8位总线宽度开始检测 NAND、如果失败、则以16位总线宽度尝试。

但我无法找到如何从 MLO 中实现它?

感谢您的任何帮助。

此致

Ankur

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

    首先、您对引导 ROM 的假设不完全正确。 GPMC 数据总线宽度最初设置为16位、并在确定器件参数后根据需要更改为8位。 请注意、这只是引脚多路复用、对于通信、GPMC 使用8位异步模式进行初始化。 接下来、NAND 器件被复位(命令 FFh)并且其状态被轮询、直到操作准备就绪(超时200ms)。 ONFI 读取 ID (命令90h/地址20h)被发送到 NAND 器件。 如果它使用 ONFI 签名(4字节)进行回复、则会发送读取参数页面(命令 ECH)。 如果参数页面没有 ONFI 签名、则 ONFI 标识将失败。 如果 ONFI 标识通过、则提取表26-13 (AM335x TRM Rev. P)中显示的信息:页面大小、备件区域大小、每个块的页数和寻址模式。 参数页流中的剩余数据字节将被忽略。 如果 ONFI READ ID 命令失败(对于任何不支持 ONFI 的器件、都会出现这种情况)、则器件会再次复位、并轮询器件是否准备就绪(超时200ms)。 然后、发送标准读取 ID (命令90h/地址00h)。 如果器件 ID (ID 字节流的第二个字节)被识别为支持的器件、则从内部 ROM 代码表中提取器件参数。 支持的器件列表如表26-14所示。

    这就是 ROM 代码的作用。 我看不出您为什么要尝试在 MLO 中复制相同内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    原因很简单、引导 ROM 代码可以动态检测 NAND 总线宽度以加载 MLO。

    到目前为止、MLO 只能具有有关总线宽度的静态配置。 但是、如果 MLO 配置不正确、则会无法加载 u-boot。

    因此、在 MLO 中进行总线宽度检测是安全的并且更好的、以避免依赖于静态配置。

    是否有任何可以将此功能添加到 MLO 的待处理修补程序?

    此致

    Ankur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您未在 MLO 中更改 GPMC 设置、则每次都将成功加载 U-boot。 不、我认为没有任何补丁正在等待处理。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的帮助。