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.

[参考译文] AM3358:采用 Micron MT29F8G08 NAND 的 AM335x BCH16 ECC 生成示例申请

Guru**** 2427060 points
Other Parts Discussed in Thread: AM3356, AM3358, UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1528959/am3358-request-for-bch16-ecc-generation-example-for-am335x-with-micron-mt29f8g08-nand

部件号:AM3358
主题中讨论的其他器件:AM3356UNIFLASH

工具/软件:

您好:

我们正在为基于 TI AM3356/AM3358 SoC 的定制电路板开发一款 NAND 闪存映像写入器工具(类似于 imagemergewizard)。

我们使用的 NAND 器件是:Micron MT29F8G08ABACAWP-IT:C


我们知道 AM335x NAND 控制器在硬件中支持 BCH16 ECC、并需要生成 BCH16 ECC 代码、

与 TI ROM 引导加载程序或 Linux NAND 驱动程序预期的格式相同。

请提供:

1. TI 的 ROM 或 NAND 驱动器中使用的 BCH16 ECC 生成的 C 或 C++参考实现?
2.关于如何在 BCH16 模式的 OOB/备件区域中安排 ECC 字节的文档?
3.是否有工具、API 或 ROM 规范可在系统外生成 BCH16 ECC(离线 ECC 编码)?

我们计划预生成 ECC 并将其嵌入到映像文件中。

谢谢!

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

    -这是一个离线工具,用于在 Linux 上生成 BCH。 在 Linux 主机上生成 ECC (BCH)“
    https://e2e.ti.com/support/processors-group/processors/f/791/t/1422565
    -请参阅 AM335x TRM 中有关 ROM 中 BCH 布局的“26.1.8.4.2.1 NAND 读取扇区过程“
    此致、
    - Hong

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

    尊敬的 Hong Guan64,

    目前、我们正在使用 AM3358 处理器和 Micron NAND 闪存 (MT29F8G08ABACAWP-IT:C) 开发一款产品、该产品的页面结构为 4096+224 字节。
    为了支持这种 NAND、我们需要在定制 NAND 映像生成工具中实现 BCH16 ECC。

    我们找到以下 TI 论坛帖子、其中提到了 StarterWare v02.00.00.07 中 BCH16 ECC 的补丁:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/241321/patch-for-16-bit-bch-ecc-in-starterware

    我们还查看了有关在 AM62x 上使用 Lauterbach JTAG 刷写 NAND 的相关文章:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1422565/faq-how-to-flash-gpmc-nand-with-lauterbach-jtag-on-am62x

    但是、第二个链接仅提供预编译的二进制文件。
    对于我们的工具开发,我们需要 BCH16 ECC 的完整源代码实现(例如,,bch_global.cnandlib或任何等效模块)。

    如果 StarterWare 中包含此源代码、能否提供完整的 StarterWare 软件包(最好是最新版本)?
    如果代码分发到其他地方、我们非常感谢您提供有关如何访问代码的指导。

    我们正在开发一款与非闪存工具、并需要采用与 AM335x 硬件 ECC (BCH16) 和 Micron NAND 规范相匹配的 ECC 编码。

    感谢您的支持。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“483002" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1528959/am3358-request-for-bch16-ecc-generation-example-for-am335x-with-micron-mt29f8g08-nand/5880342 #5880342“]我们找到以下 TI 论坛文章、其中提到了 StarterWare v02.00.00.07 中 BCH16 ECC 的补丁:

    e2e 位于在 AM335x 目标上运行的裸机代码上、与您无关、因为我想您正在寻找在主机端运行的参考源代码。

    我向您发送了 e2e 论坛朋友申请、并在您接受朋友申请后分享参考主机端代码。
    此致、
    - Hong

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

    尊敬的 GIHWAN:
    我通过私人 e2e 通信通道共享了参考主机端代码。
    请阅读并接受软件包中包含的许可协议“EULA.rtf"。“。
    此致、
    - Hong

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

    您好:

    我已阅读许可协议(比音奥龙股份有限公司.rtf)、并代表我本人和汇丰接受条款

    此致、

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

    尊敬的 Hong Guan64,

    我们目前正在使用bin2nand基于 TI BCH16 ECC 源代码的定制实用程序验证我们的 NAND 编程过程。

    根据提供的主参考图像、页面布局似乎遵循以下结构:

    4096 +{2 (0xFF)+(26 × 8)+ 14 (0xFF)}

    但是、在运行您提供的 ECC 代码时、我们观察到了 最终 14 字节区域的第一个字节 器件的示例 0x00而不是 0xFF

    *请参考下图进行比较:

    如图所示、主映像和参考 ECC 输出0xFF在该填充区域中始终使用、但我们的结果不同。

    请确认:

    • 此行为(在该区域)是否0x00是有意的、和

    • 是否可以0xFF改用手动填充这个 14 字节填充区域、以确保与主映像的兼容性并避免生产过程中的验证不匹配?

    我们非常感谢您为确保一致性和正确性提供的指导。

    感谢您的支持。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“483002" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1528959/am3358-request-for-bch16-ecc-generation-example-for-am335x-with-micron-mt29f8g08-nand/5885845 #5885845“]

    根据提供的主参考图像、页面布局似乎遵循以下结构:

    4096 +{2 (0xFF)+(26 × 8)+ 14 (0xFF)}

    [/报价]

    您的 nand 设备的格式正确。
    此链接是有关 BCH 方案与 NAND 器件几何布局的良好参考。
    https://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
    实际上、所有填充字节都不会在代码中用于 BCH 检查 (ROM/u-boot/kernel...)
    但可以根据需要将“0xFF"填“填充到第一个填充字节以匹配基准二进制文件。

    此致、
    - Hong

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

     第六十四章

    感谢您的持续帮助。

    在开发基于 TI BCH16 ECC 源代码的 NAND 编程实用程序时、我们观察到 OOB 区域中最终填充区域的第一个字节生成为0x00

    根据您的文档、我们理解该填充区域不涉及实际的 ECC 验证。 但是、由 TI UniFlash 生成的主映像始终使用填充此区域0xFF、这种差异可能会导致生产过程中验证不匹配。

    我们非常感谢你澄清以下几点:

    1. 0x00 TI 的 BCH16 ECC 代码 () 在此填充字节中的输出 预期行为

    2. 如果预期的行为是输出0xFF、则可能 获取 ECC 生成代码的修改版本 这会相应地填充该区域?

    3. 如果无法修改代码、是否可行 在功能上可接受 使用0x00生成的值、而不会导致任何可靠性或兼容性问题?

    我们请求此确认、以确保在生产和验证过程中的兼容性和一致性。

    非常感谢您的支持。

    此致、

    比赛奥龙(上海)信息技术有限公司

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

    尊敬的 GIHWAN:

    实际上、所有填充字节都不用于代码中的 BCH 检查 (ROM/u-boot/kernel...)
    但可以根据需要将“0xFF"填“填充到第一个填充字节以匹配引用二进制文件。

    请随时尝试随附的补丁。
    此致、
    - Hong

    e2e.ti.com/.../nand_5F00_image_5F00_2.patch

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

    尊敬的 Hong Guan64,

    再次感谢您对我们的支持。

    关于 ECC 填充行为、我们要确认以下内容:

    1. 是否可以获得.exe用填充 ECC 填充区域的实用程序版本 0xFF 、由 UniFlash 完成?

    2. 如果不可用、您能否使用当前提供的.exe来确认填充填充填充填充 0x00 可以接受、不会引起任何问题?

    我们衷心感谢您在整个过程中提供的支持和帮助。
    非常感谢。

    此致、
    安吉万
    比赛奥龙(上海)信息技术有限公司

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以获得一个.exe用填充 ECC 填充区域的实用程序版本 0xFF 、由 UniFlash 完成?

    我们是否尝试过在我最后一个回复中的补丁、即在 BCH16 的第一个填充字节上填充 0xFF?

    如果不可用、能否使用当前提供的.exe来确认填充填充填充 0x00 、是可以接受的、不会导致任何问题?

    是的、正如我在上一次答复中所说的

    实际上、所有填充字节都不用于代码中的 BCH 检查 (ROM/u-boot/kernel...)
    但可以根据需要将“0xFF"填“填充到第一个填充字节以匹配引用二进制文件。

    此致、
    - Hong

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

    Hi Hong Guan64,

    非常感谢您的答复。 我们已经测试了更改、并可以确认问题已解决。 您的帮助对我们非常有价值。

    此致、