128[MB] NAND 플래시(4비트 ECC)를 사용하여 openwrt 환경에서 1[MB] 플래시를 JFFS2 FS로 마운트하려고 합니다.
나는 다음 순서를 사용하고 있습니다 -
flash_eraseall -j dev/mtd6
mount -t jffs2 -o noatime /dev/mtdblock6 /NAME_OF_MOUNT
이 시퀀스를 실행하면 설치가 완료된 것으로 나타나 액세스하고 읽고 쓸 수 있습니다.
설치 장소로 이동합니다.
시스템을 재부팅했을 때 문제가 시작되었습니다. 부팅 프로세스 중에 다음 메시지가 나타났습니다.
jffs2: mtd->read(0x800 bytes from 0x60000) returned ECC error
jffs2: notice: (667) read_dnode: wrong data CRC in data node at 0x00060000: read 0xf7a2ee2c, calculated 0x2f2a8b04
또한 mkfs.jffs2를 사용하여 nvm.jffs2 파일을 생성하고 요청한 파티션에 구워 보았지만 문제가 지속됩니다.
어떤 생각이나 아이디어라도 감사하겠습니다.
미리 감사드립니다!
답변1
문제의 원인은 클리어마커입니다.
설치하는 동안 블록 시작 부분에 투명 마커가 설정됩니다.
그러나 블록에 쓸 때 oob 데이터는 블록 끝에 추가됩니다.
따라서 클리어마커가 포함되지 않아 잘못된 CRC 데이터 보고가 발생합니다.
Fast WA는 시작 시 각 플래시 블록에 Clearmarker를 한 번 쓴 다음 Clearmarker를 쓰는 것입니다.
여기에 추가되면 모든 것이 잘 작동할 것입니다.