隨著核心的更新,核心越來越大,uboot給nand的kernel分割槽預設是2m的
device nand0 , # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: root 0x0fda0000 0x00260000 0
修改分割槽如下,建議留給kernel4m大小:
第一步 在你的配置檔案下uboot/include/config/***.h 裡面有乙個巨集定義
#define mtdparts_default "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"2m(kernel)," \
"-(root)"
把2m改為4m(改好後重新編譯uboot),在cmd_jffs2.c裡面我們看到把預設的分割槽資訊分配給了mtdparts_default
#if defined(mtdparts_default)
static const char *const mtdparts_default = mtdparts_default;
#else
#warning "mtdparts_default not defined!"
static const char *const mtdparts_default = null;
#endif
然後在cmd_jffs2.c的函式int do_jffs2_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char *argv)中把mtdparts_default
給了環境變數setenv("mtdparts", (char *)mtdparts_default);
因此我們可以在uboot的中設定命令 mtdparts default,然後利用mtd檢視 分割槽一樣改好了
device nand0 , # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00400000 0x00060000 0
3: root 0x0fba0000 0x00460000 0
第二步 修改核心的分割槽資訊,\linux-3.4.2\arch\arm\mach-s3c24xx\common-smdk.c 這個檔案中把分割槽資訊修改的和uboot一樣
然後就可以使用了
uboot 和核心的分割槽關係
隨著核心的更新,核心越來越大,uboot給nand的kernel分割槽預設是2m的 device nand0 parts 4 name size offset mask flags 0 bootloader 0x00040000 0x00000000 0 1 params 0x00020000 0x...
uboot和核心的mtd分割槽保持一致
setenv bootargs mem 64m console ttyama0,115200 root dev mtdblock2 rootfstype yaffs2 mtdparts nand flash 1m boot 15m kernel 32m rootfs 16m test mtdpart...
U Boot如何向核心傳遞Flash的分割槽資訊
對於目前的u boot而言,是的.而且,設定了mtdparts變數之後,你可以在nand read write erase命令中直接使用分割槽的名字而不必指 定分割槽的偏移位置.set bootargs noinitrd console ttysac0 root dev mtdblock3 root...