在我的linux / dev /文件夹中,我有mtd0 - mtd7和mtdblock0 - mtdblock7。我想在这里有更多的mtd设备。构建内核时应该更改什么?
由于
答案 0 :(得分:3)
您需要更多mtd分区。在启动时,内核为每个创建一个mtd和一个/ dev下的mtdblock。 MTD分区通常写在电路板的BSP文件中。您可以通过传递内核mtdparts
选项来覆盖它。
更多信息here。 mtdinfo和/proc/mtd
也描述了每个分区的起始端及其名称。
修改强>:
对于beagleboard here,mtd分区表的示例位于arch/arm/mach-omap2/board-omap3beagle.c
。
static struct mtd_partition omap3beagle_nand_partitions[] = {
/* All the partition sizes are listed in terms of NAND block size */
{
.name = "X-Loader",
.offset = 0,
.size = 4 * NAND_BLOCK_SIZE,
.mask_flags = MTD_WRITEABLE, /* force read-only */
},
{
.name = "U-Boot",
.offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
.size = 15 * NAND_BLOCK_SIZE,
.mask_flags = MTD_WRITEABLE, /* force read-only */
},
{
.name = "U-Boot Env",
.offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */
.size = 1 * NAND_BLOCK_SIZE,
},
{
.name = "Kernel",
.offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */
.size = 32 * NAND_BLOCK_SIZE,
},
{
.name = "File System",
.offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */
.size = MTDPART_SIZ_FULL,
},
};
在mernel映像中有5个分区mtd0到mtd4,其大小是硬编码的。