您好!
我们有一款使用 DM6446处理器从 NAND 器件引导 Linux 的成熟产品。 最初、我们使用了 Numonyx NAND01GR3B2CZA6F 并迁移到 Micron MT29F1G08ABBDAH4-ITX。 现在该闪存也已停产、Micron 建议使用 Micron MT29F1G08ABBFAUH4-ITE。 我列出了几种情形 C 和 D、并想知道它们是否可行。
A. Numonyx NAND01GR3B2CZA6F (原件)
-内部片上 ECC:无
-所需的最小 ECC: 每512字节1位 ECC
闪存布局:
RBL - DM6446 1位硬件 ECC、用于加载 UBL
UBL - DM6446 1位硬件 ECC、用于加载 uBoot
UBoot -用于加载 Linux 的4位 BCH 软件 ECC
Linux 内核/FS - 4位 BCH 软件 ECC
B. Micron MT29F1G08ABBDAH4-ITX (已迁移)
-内部片上 ECC:4位 ECC、最初被禁用、但可被启用
-所需的最小 ECC: 每528字节4位 ECC
-如果编程/擦除周期小于1000、则块0所需的最小 ECC:每528字节1位 ECC
闪存布局:
RBL - DM6446 1位硬件 ECC、用于加载 UBL
UBL -用于加载 UBoot 的 Micron 内部4位 ECC
UBoot -用于加载 Linux 的4位 BCH 软件 ECC
Linux 内核/FS - 4位 BCH 软件 ECC
c. Micron MT29F1G08ABBEAH4-ITX
-内部片上 ECC:无
-所需的最小 ECC: 每528字节4位 ECC
-如果编程/擦除周期小于1000、则块0所需的最小 ECC:每528字节1位 ECC
闪存布局:
RBL - DM6446 1位硬件 ECC、用于加载 UBL
UBL -用于加载 UBoot 的4位 BCH 软件 ECC
UBoot -用于加载 Linux 的4位 BCH 软件 ECC
Linux 内核/FS - 4位 BCH 软件 ECC
D. Micron MT29F1G08ABBFAUH4-ITE
-内部片上 ECC:8位 ECC、始终启用且不能禁用
-所需的最小 ECC: 每544字节8位 ECC
闪存布局:
RBL - DM6446 1位硬件 ECC、用于加载 UBL
UBL -用于加载 UBoot 的 Micron 内部8位 ECC
UBoot -用于加载 Linux 的 Micron 内部8位 ECC
Linux 内核/FS - Micron 内部8位 ECC
问题:
方案 C 或 D 是否可行?
2. 对于方案 C、是否有更新的 UBL 具有用于读写 UBoot 的4位 BCH 软件 ECC? UBL 只能是14KiB、我们现在使用的是大约13KiB。
3. 对于方案 D、DM6446 1位硬件 ECC 是否会导致内部片上 ECC 出现任何问题?
4. 对于方案 D、是否有使用8位片上闪存 ECC 进行 UBoot 和 Linux 内核修改的示例?
提前感谢您。
Danny