MTD的分區表的一個例子是在拱/臂/馬赫 - OMAP2 /板omap3beagle.c爲BeagleBoard的http://lxr.free-electrons.com/source/arch/arm/mach-omap2/board-omap3beagle.cLinux內核如何創建/ dev/mtdx節點?
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,
},
};
另一個鏈路狀態這樣的: http://landley.net/kdocs/Documentation/DocBook/xhtml-nochunks/mtdnand.html 在該鏈路NAND閃速驅動器board_init
函數通過mtd_partition structure
傳遞給 add_mtd_partitions(board_mtd, partition_info, NUM_PARTITIONS);
函數文件mtdcore.c
文件。
如果我是對的,那麼mtdcores.c
文件是否創建了mtd分區?
現在我有兩個問題:
1>如果我是正確的,那麼在文件/board-omap3beagle.c的omap3_beagle_init
函數將調用omap_nand_flash_init
功能,這將初始化NAND &創建的/ dev/mdtx節點。
如果我不正確那麼什麼創建/ dev/mtd0節點?內核是創建它還是NAND驅動程序?
2>另外,omap3_beagle_init
函數是內核調用的第一個函數嗎? Linux內核中的哪個文件是從哪裏調用的?
請任何人誰可以建議這個職位.. !! – Katoch