300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > uboot分区和内核MTD分区

uboot分区和内核MTD分区

时间:2020-10-14 10:00:04

相关推荐

uboot分区和内核MTD分区

如果你是通过uboot的内核命令行给MTD层传递MTD分区信息,这种情况下,内核读取到的分区信息始终和u-boot中的保持一致(推荐的做法)

如果你是把分区信息写在内核源代码MTD里定义好的方法,那最好保证它和u-boot中的保持一致,即同步修改uboot及内核的相关部分。

例如:以下是uboot环境变量和分区情况

bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0

mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),4m(kernel),-(root)

要想使内核和根文件系统能够正确引导:内核中分区应该是

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "bootloader",

.offset = 0,

.size = SZ_256K,

},

[1] = {

.name = "params",

.offset = SZ_256K,

.size = SZ_128K,

},

[2] = {

.name = "kernel",

.offset = SZ_256K + SZ_128K,

.size = SZ_4M,

},

[3] = {

.name = "root",

.offset = SZ_256K + SZ_128K + SZ_4M,

.size = SZ_256M - SZ_256K - SZ_128K - SZ_4M,

}

};

当然也可以是

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "bootloader",

.offset = 0,

.size = SZ_256K,

},

[1] = {

.name = "kernel",

.offset = SZ_256K + SZ_128K,

.size = SZ_4M,

},

[2] = {

.name = "root",

.offset = SZ_256K + SZ_128K + SZ_4M,

.size = SZ_256M - SZ_256K - SZ_128K - SZ_4M,

}

};

但这里bootargs中的root应该是/dev/mtdblock2,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。