i.mx53 nand flash partitions
i.MX53 NAND Flash 最近在做i.mx53,对于将所有的映像烧进NAND Flash,有N多不理解。通过上网查资料和自己的总结,写了一下,如下: 因为bootloader,kernel parameter,kernel,rootfs都需要存储在NAND Flash上,故NAND Flash就得统一规划。将一整个大的空间分成N个分区,哪一个分区放什么,不能乱放。Uboot将内核参数放在指定的地址上,然后将控制权交给内核,内核也是去指定的地址读取传递给它的参数。所以NAND Flash的分区,uboot和内核要统一! ? Uboot中对NAND Flash的划分 定义在uboot/include/configs/board.h /*phy3250’s NAND Flash,32MB 16K size(Block,Sector)*/ #define CFG_ENV_SIZE????? 0x4000??? /*1 block,16k*/ #define CFG_ENV_OFFSET?????? 0x168000? /*90 blocks in total*/ 这里uboot将32MB的NAND分成一个扇区为16K(即0x4000),则总共有32MB/16K=90个扇区。 Uboot以扇区为单位对NAND进行操作。 另例: /*SmartARM NAND Flash,K9F2G08,256MB,128K size(Block,Sector)*/ #define CFG_ENV_SIZE????? 0x40000? /*2 block,256K*/ #define CFG_ENV_OFFSET?0x180000? /*6 blocks in total*/ 这里uboot以每2个扇区为单位进行操作,即128K*2=256K,0x40000B/1024=256KB 而这块NAND Flash总共会被划分出256MB/0x40000=6个扇区。 ? Kernel中对Nand Flash的划分 分区用途?????????????? 地址划分?????????????? 扇区范围?????????????? 大小 Bootloader??????????? 0x0000_0000~0x0018_0000? 0~11?block? 总共12个扇区,1.5MB Kernel parameter?? 0x0018_0000~0x001C_0000 12~13 block?? 总共2个扇区uboot传给内核的参数 reserved?????????????? 0x001C_0000~0x0020_0000 14~15 block ??保留2个扇区 kernel ????????????????? 0x0020_0000~0x0060_0000??? 16~47 block?? 总共32个扇区,4MB rootfs?????????????????? 0x0060_0000~0x1000_0000??? 48~2047 block 总共2000个扇区,250MB 从内核arch/arm/mach-mx5/mx53_ard.c中找到了NAND的分区信息: /*MX53 ROM require the boot FCB/DBBTsupport which need more space to store such info on NAND boot partition.16Mshould cover all kind of NAND boot support on MX53*/ /*NAND Flash Partitions*/ Static struct mtd_partitionnand_flash_partitions[]={ ?????? { ????????????? .name=”bootloader”, ????????????? .offset=0, ????????????? .size=16*1024*1024}, ?????? { ????????????? .name=”nand.kernel”, ????????????? .offset=MTDPART_OFS_APPEND, ????????????? .size=5*1024*1024}, ?????? { ?????? { ????????????? .name=”nand.rootfs”, ????????????? .size=256*1024*1024}, ?????? { ????????????? .name=”nand.userfs1”, ?????? { ????????????? .name=”nand.userfs2”, ????????????? .size=MTDPART_SIZ_FULL}, }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |