mtd 에 마운트시 에러에 대한 질문입니다.

cg4jins의 이미지

arm9 을 쓰고 있으며

커널 2.4.20 인 임베디드 평가 보드를 쓰고 있는데

mtd (플래쉬메모리) 에 마운트를 하니

jffs2: Erase block size too small (16KiB). Using virtual blocks size(32KiB) instead

에러 메시지가 나오네요

마운트해서 데이터(루트파일시스템 jffs2) 쓰면 재부팅하면 다 날라갑니다.

인터넷으로 검색해보니

-> Output for larger NAND devices to reduce memory allocation.

라는데 Erase block size 를 어떻게 해줘야 하는지 잘 모르겟습니다.

커널의 어느 부분을 고쳐야 할지

부팅 메시지를 보면 삼성의 unknown 64MB 로 재대로 잡히고

erase_size 는 0x2000 으로 잡히는데... (id : 0x76)

휴 어찌 해야 할지 망막합니다. ㅠㅠ

참고사항

# mtd_debug info /dev/mtd2
mtd.type = MTD_NANDFLASH
mtd.flags = MTD_CLEAR_BITS | MTD_ERASEABLE | MTD_OOB | MTD_ECC
mtd.size = 50331648(48M)
mtd.erasesize = 16384 (16K)
mtd.oobblock = 512
mtd.oobsize = 16
mtd.ecctype = MTD_ECC_SW
regions = 0

# flash_info /dev/mtd2
Device /dev/mtd2 has 0 erase regions

cf. 근데 의문사항은 mtd1 은 mtd2 와 비슷한 환경인데..사이즈만 1MB 인데

여기에다는 커널 이미지가 쓰여져서 아무 이상없이 부팅되는데 데이터를 쓰면

왜 저런 오류가 뜨는지 ㅠㅠ (mtd1.erasesize = 16384 (16K) 입니다)