= u-boot = -- [김도집] [[DateTime(2005-08-12T07:51:50)]] [[TableOfContents]] == u-boot란? == == u-boot 구할 수 있는 곳은? == == u-boot 소스 분석 == === Nand 플래시 === common/cmd_nand.c 기본 데이터 구조체 {{{#!vim c struct nand_chip int page_shift; u_char *data_buf; u_char *data_cache; int cache_page; u_char ecc_code_buf[6] u_char reserved[2]; ... uint oobblock; uint oobsize; uint eccsize; int bus16; }; }}} ||'''field'''||'''설명'''|| ||data_buf||oobblock+oobsize. eg. 528|| ||oobblock||OOB를 제외한 페이지의 크기 eg. 512|| ||oobsize||OOB의 크기 eg. 16|| 위에서 data_buf는 nand_probe()함수에서 malloc을 통해 할당 받는다. data_buf의 크기는 oobblock+oobsize 이다. 즉 낸드 플래시 페이지가 512바이트이고 OOB 크기가 16바이트라고 한다면 data_buf의 크기는 528바이트가 된다. ECC {{BR}} JFFS2에서 ECC에 대한 것이다. ||'''OOB 영역의 비트'''||'''설명'''|| ||비트 0||JFFS2_OOB_ECCPOS0|| ||비트 1||JFFS2_OOB_ECCPOS1|| ||비트 2||JFFS2_OOB_ECCPOS2|| ||비트 3||JFFS2_OOB_ECCPOS3|| ||비트 4||ECCVALID_POS|| ||비트 5||BADBLOCK_POS|| ||비트 6||JFFS2_OOB_ECCPOS4|| ||비트 7||JFFS2_OOB_ECCPOS5|| ||비트 8||cleanmark. 0x85|| ||비트 9||cleanmark. 0x19|| ||비트 10||cleanmark. 0x03|| ||비트 11||cleanmark. 0x20|| ||비트 12||cleanmark. 0x08|| ||비트 13-15||cleanmark. 0x00|| == 참고 == * [http://www.denx.de/twiki/bin/view/DULG/Manual U-Boot Manual]