美文网首页@IT·互联网路由联盟
33-Openwrt nand flash生产烧录

33-Openwrt nand flash生产烧录

作者: Creator_Ly | 来源:发表于2024-05-21 16:58 被阅读0次

    openwrt编译生产的sysupgrade.bin文件是一个升级文件,无法直接提供给工厂进行nand flash烧录使用。因为flash的每一个page是由data+ecc组成的,烧录的时候需要一起烧录,但是sysupgade.bin是原始data内容,没有ecc。

    1、ECC的大小和内容

    1.1 flash page差异

    第一步我们需要先确认主CPU支持哪些类型的nand flash,比如mt7621手册上的bootstrap写明,支持的不通page。

    image.png

    比如我们选择的是MX30LF1G28AD这个nand flash,芯片手册的features写明了是2048+128,所以硬件电路必须是10(1010)。


    image.png
    1.2 芯片差异

    知道了flash的page大小之后,还有根据芯片手册的要求进行计算ECC内容,不同芯片描述不一样,比如mt7621的芯片要求,如下:

    image.png
    • 原本flash芯片虽然是2048+64,但是mt7621要求的是512+16,所以实际每隔512字节需要填充16字节的ECC到后面。
    • 原本flash芯片虽然是2048+128,但是mt7621要求的是512+28,所以实际每隔512字节需要填充28字节的ECC到后面;到一个page的最后填充剩余的16字节FF。

    但是mt7620的芯片就没有这个要求,就是按标准的flash page要求即可。

    2、填充ECC

    增对mt7621,mtk官方提供了BCH工具用来生产追加ecc后的文件。

    命令如下:

    USAGE: ./BCH ENC|DEC PAGE_SIZE SPARE_SIZE input_file output_file
    SPARE_SIZE 64/128/224
    PAGE_SIZE 2048/4096
    
    example: ./BCH e 2048 64 roger_image linux_4bitECC.bin
    

    对于mt760就是标准算法

    example : ./mt7620nand 64 uboot.img
    
    Note : 64 means spare area size, if the spare area size is 128, should change it 128
    

    相关文章

      网友评论

        本文标题:33-Openwrt nand flash生产烧录

        本文链接:https://www.haomeiwen.com/subject/wveafjtx.html