首页 文章

将UBIFS分区复制到NAND设备

提问于
浏览
0

我有一个工作系统,带有u-boot和SLC NAND上的UBIFS分区 .

我已经通过读取它占据的整个块区域(包括备用区域)将UBIFS分区复制到二进制图像文件中 .

我可以成功地将此映像编程到另一个NAND设备(跳过空页)并安装它,从而复制分区 . 但是,如果新的NAND设备中存在坏块,我不知道什么是正确的操作?

当我尝试跳过坏块(在编程期间),这似乎是最合理的解决方案,从u-boot安装失败! UBIFS挂载进程无法识别是否跳过了坏块?还有其他简单的解决方案吗?

1 回答

  • 0

    找到了一种工作方法!

    这样做的全部目的是找到一个简单的算法来编程NAND闪存部件,然后再将其焊接到电路板上 .

    这是在编程机器大规模 生产环境 期间完成的,并且没有办法使用Linux来做到这一点 . 由于NAND部分是新的,不需要磨损均衡信息,然而,它可能具有0到任意数量的坏块,随机地位于分区区域中 . 唯一可用的步骤是:

    • 跳过坏块

    • 擦除

    用于批量 生产环境 的Preparimg图像:

    • 确保UBI卷小于MTD分区(例如,小5%)

    • 创建UBI卷和UBIFS,并填充它 .

    • 转储NAND将页面备用区域阻塞为二进制文件 .

    可以使用mkfs和其他工具准备UBIFS,但是您需要添加ECC信息,编程机器可能无法动态计算,有时只是没有知识 .

    编程算法如下:

    • 从MTD分区偏移开始,将每个图像块编程为NAND块 .

    • 如果NAND块坏了跳过它,则将图像块N编程到NAND块N 1 .

    • 如果图像块为空,请不要编程,前进到图像和NAND芯片上的下一个块 .

    • 以相同的方式继续,直到UBI卷的最后一个块 .

    • 在NAND芯片的最后一块MTD分区上编程最后一块图像 .

    希望能帮到任何人:-)

相关问题