Because bootloadrer, Params, and kernel and file systems are all on NAND Flash, unified planning is required for partitions. The system's NAND Flash partition depends on the U-boot and Linux kernel settings. The NAND partition file in U-boot: Include/configs/Development Board. h: This is a parameter of phy3250. phy3250 adopts a 32 mb nand Flash with a sector size of 16 KB: 189/* phy3250's NAND Flash, 32 MB, and 16 K size (Block, sector) */190 // # define 1__env_size 0X4000/* 1 block, 16 K */191 // # define 1__env_offset 0x168000/* block 90 */The following is the smartarm3250 NAND Flash, k9f2g08, 256 MB, and the slice size is 128 K: 193/* smartarm3250's NAND Flash, k9f2g08, 256 MB, 128 K size (Block, Sector) */194 # define 1__en V_size 0x40000/* 2 block, 256 K */195 # define 1__env_offset 0x180000/* Block 12 */NAND Flash partition in the kernel NAND Flash plan the address range in different regions. The sector range is small and the bootloader 0x0000 is used. ~ 0x0018 0000 0 ~ 11 12 sectors, 1.50 m s1l and U-boot Param 0x0018 0000 ~ 0x001c 0000 12 ~ 13 2 sectors, 256 k u-boot parameter reserved 0x001c 0000 ~ 0x0020 0000 14 ~ 15 Linux kernel 0x0020 0000 ~ 0x0060 0000 16 ~ 47 32 sectors, 4.00 m Linux kernel rootfs 0x0060 0000 ~ 0x1000 0000 48 ~ 2047 2000 sectors, 250 m Linux File System
Rootfs |
2047 48 |
2000 sectors in total |
Kernel |
47 16 |
32 sectors in total |
Retained |
15 14 |
2 sectors in total |
Param |
13 12 |
2 sectors in total |
Bootlloader |
11 0 |
12 sectors in total |
Partition implementation code in linux-2.6.27.8/ARCH/ARM/mach-lpc32xx/board-smartarm3250.c: 153 # define blk_size (0x20000) // 128kb154 static struct mtd_partition _ initdata smartarm3250_nand_partition [] = {155 {156. name = "smartarm3250-boot", 157. offsets = 0,158. size = (blk_size * 12) 159}, 160 {161. name = "smartarm3250-ubt-prms", 162. offset = (blk_size * 12), 163. size = (blk_size * 2) 164}, 165 {166. name = "smartarm3250-kernel", 167. offset = (blk_size * 16), 168. size = (blk_size * 32) 169}, 170 {171. name = "smartarm3250-rootfs", 172. offset = (blk_size * 48), 173. size = mtdpart_siz_full174}, 175 };