uboot对iNand的分区情况
x210 # fdisk -p 0 partion # size(MB) block start # block count partition_Id 1 258 22374 529518 0x83 2 258 551892 529518 0x83 3 101 1081410 208824 0x83 4 3084 1290234 6316926 0x83
- 可以看到有4个分区
- block start表示该分区从iNand的哪个块开始
- block count表示该分区占用的块的个数,经过计算其大小刚好等于size的大小
查看fdisk命令的源码,有如下代码
/// block_start = calc_unit(_10MB, sdInfo); block_offset = calc_unit(CONFIG_PART_SIZE, sdInfo); partInfo[0].bootable = 0x00; partInfo[0].partitionId = 0x83; make_partitionInfo(block_start, block_offset, sdInfo, &partInfo[0]); /// block_start += block_offset; block_offset = calc_unit(SYSTEM_PART_SIZE, sdInfo); partInfo[1].bootable = 0x00; partInfo[1].partitionId = 0x83; make_partitionInfo(block_start, block_offset, sdInfo, &partInfo[1]); /// block_start += block_offset; block_offset = calc_unit(CACHE_PART_SIZE, sdInfo); partInfo[2].bootable = 0x00; partInfo[2].partitionId = 0x83; make_partitionInfo(block_start, block_offset, sdInfo, &partInfo[2]); /// block_start += block_offset; block_offset = BLOCK_END; partInfo[3].bootable = 0x00; partInfo[3].partitionId = 0x83; make_partitionInfo(block_start, block_offset, sdInfo, &partInfo[3]); ///
int calc_unit(int length, SDInfo sdInfo) { if (sdInfo.addr_mode == CHS_MODE) return ( (length / BLOCK_SIZE / sdInfo.unit + 1 ) * sdInfo.unit); else return ( (length / BLOCK_SIZE) ); }
代码中对块设备进行了4次分区
此处是
x210:iNand分区情况
最新推荐文章于 2022-12-22 10:28:59 发布