What is cleanmarker and what it is used for?Cleanmarker is a special JFFS2 node which is written to the beginning of ablock just after the block has been erased. On NOR flashes it is a specialsmall JFFS2 node at the beginning of the block. On NAND flashes it
is placed tothe spare area of the first page.
The main reason why cleanmarkers are used is the need to be sure that the blockerase operation was correctly completed. All 0xFF bytes in the block are notnecessarily mean the block is ready to be utilized. For example, if an uncleanreboot happened just at the end of the block erase cycle, the block might haveunstable bits, which are read as "1" one time and might be read as "0" nexttime.
When preparing a flash partition for JFFS2, it is recommended to putcleanmarkers to the erased blocks. This might be done my means of "-j" optionof the "flash_eraseall" MTD utility. Otherwise, JFFS2 will re-erase the blockswhich contain all 0xFF and have no cleanmarker. This is an unneeded wasting oftime.
flash_eraseall -j得到的结果是:(from 0x800 is spare area start)
07F0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0800 : FF FF 19 85 20 03 00 00 00 08 FF FF FF FF FF FF
0810 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0820 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0830 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
The main reason why cleanmarkers are used is the need to be sure that the blockerase operation was correctly completed. All 0xFF bytes in the block are notnecessarily mean the block is ready to be utilized. For example, if an uncleanreboot happened just at the end of the block erase cycle, the block might haveunstable bits, which are read as "1" one time and might be read as "0" nexttime.
When preparing a flash partition for JFFS2, it is recommended to putcleanmarkers to the erased blocks. This might be done my means of "-j" optionof the "flash_eraseall" MTD utility. Otherwise, JFFS2 will re-erase the blockswhich contain all 0xFF and have no cleanmarker. This is an unneeded wasting oftime.
flash_eraseall -j得到的结果是:(from 0x800 is spare area start)
07F0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0800 : FF FF 19 85 20 03 00 00 00 08 FF FF FF FF FF FF
0810 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0820 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0830 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
本文介绍了JFFS2文件系统中Clean Marker的概念及其作用。Clean Marker是一种特殊节点,用于标记刚被擦除的块,确保擦除操作正确完成。文章还解释了为什么在准备JFFS2分区时推荐使用Clean Marker。
439

被折叠的 条评论
为什么被折叠?



