1

我想根据其内容填充分区。在系统启动期间,我想检查闪存区域是否包含任何数据。如果为真 - 使其只读或可重写可见。

我想自动制作,没有U-boot shell ...

在 Linux 内核级别上,我只能在分区表中静态地制作它。是否可以在 U-boot 中做到这一点?

谢谢你的任何提示。

更新: CmdLine 和 mtd_partition 检查

我检查了两种可能性: U-boot mtd-parts

U-Boot> 
setenv mtdparts mtdparts=atmel_nand:2M@0x40000(u-boot),30M@0x200000(kernel),-@0x2000000(user),**0x20000@0x100000(u)**

U-Boot>
mtdparts

填满分区后不允许分区

不幸的是,它不可能在表和表中添加分区。0x100000如果数据存在于区域中,我希望将 mtd4 作为单独的分区。

在内核 mtd_partition 表中是可能的。但是这个表是在 arch/arm...board 文件中声明的(早期启动阶段)。在这个启动阶段,我无法读取 nand。我无权访问 nand 驱动程序提供的 nand 读取接口。

更新:解决方案

谢谢你的所有提示。遵循“无艺术噪音”的提示,我决定在 u-boot 中读取 nand 区域,并通过不同的内核命令行参数发送有用的参数。这是非常灵活的。其他一些硬件配置可以存储在闪存中并用于内核初始化。

捕获内核参数可以通过以下方式完成:early_param()函数。

4

0 回答 0