Пример таблицы MTD перегородки в арку/руки/маш-omap2/борт-omap3beagle.c для BeagleBoard http://lxr.free-electrons.com/source/arch/arm/mach-omap2/board-omap3beagle.cКак ядро Linux создает узлы/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> Если я прав, то omap3_beagle_init
функция в файле /board-omap3beagle.c будет вызывать функцию omap_nand_flash_init
это будет инициализировать NAND & создать/DEV/mdtx узлы ,
Если я не прав, то что создает узлы/dev/mtd0? Создает ли ядро его или драйвер NAND?
2> Также является ли функция omap3_beagle_init
первой функцией, вызываемой ядром? С какого файла в ядре Linux вызывается?
Пожалуйста, любой, кто может предложить на этом посту .. !! – Katoch