友善之臂的nand flash分区表可以修改吗?以下为友善之臂的nandflash分区表:
static struct mtd_partition mini2440_default_nand_part[] = {
[0] = {
.name = "U-boot",//这里是 bootloader所在的分区,可以放置 u-boot,
.size = 0x00040000,//对应/dev/mtdblock0
.offset = 0,
},
[1] = {
.name = "param",// ;这里是supervivi的参数区,其实也属于bootloader的
.offset = 0x00040000,//一部分,如果u-boot 比较大,可以把此区域覆盖掉
.size = 0x00020000,//不会影响系统启动,对应/dev/mtdblock1
},
[2] = {
.name = "Kernel",//内核所在的分区,大小为 5M,足够放下大部分自己定制的
.offset = 0x00060000,//巨型内核了,比如内核使用了更大的Linux Logo图片
.size = 0x00500000,//对应/dev/mtdblock2 等
},
[3] = {
.name = "root",//文件系统分区,主要用来存放yaffs2 文件系统
.offset = 0x00560000,//内容,对应/dev/mtdblock3
.size = 1024 * 1024 * 1024, //
},
//此区域代表了整片的nand flash,主要是预留使用,比如以后可以通过应用程序访
问读取/dev/mtdblock4就能实现备份整片nand flash了。 可以没哟这个分区
[4] = {
.name = "nand",
.offset = 0x00000000,
.size = 1024 * 1024 * 1024, //
}
};
我的板子是mini2440 128M的flash,但是我的板子如果按照以上这个分区表去下载,内核无法启动,貌似我的板子的0x6000附近的nand有坏块,所以我就自己修改了内核里面的nand分区表,具体修改如下:
我的具体修改如下:0--0x60000为u-boot,0x60000--0x80000为parameters,0x80000--0x580000为内核,0x580000以后为根文件系统,
但是,板子启动时出现错误如下:
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3,
"mtdblock3"block 769 is bad
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs2 filesystem) on device 31:3.
Freeing init memory: 132KWarning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.,
貌似是我制作的yaffs2文件系统挂载了,但是无法启动,我想问问,这个错误是不是因为我自己修改了nand的分区表啊?? 请各位帮忙,谢谢,另外,我如何去修改啊??
我的yaffs2根文件系统根据友善之臂的参考文献制作的,nand分区是唯一的不同点,