ATAG
Определение
ATAG - структура, содержащая параметры загрузки ядра Linux. В MOTOMAGX находится в CG41.Получив управление, Bootloader должен после инициализации оборудования заполнить структуру ATAG, после чего передать её ядру.
Структура ATAG
Тип структуры | Идентификатор |
---|---|
ATAG_CORE | 0x54410001 |
ATAG_MEM | 0x54410002 |
ATAG_VIDEOTEXT | 0x54410003 |
ATAG_RAMDISK | 0x54410004 |
ATAG_INITRD2 | 0x54420005 |
ATAG_SERIAL | 0x54410006 |
ATAG_REVISION | 0x54410007 |
ATAG_VIDEOLFB | 0x54410008 |
ATAG_CMDLINE | 0x54410009 |
ATAG_NONE | 0x00000000 |
Несмотря на столь огромное разнообразие структур, все они не используются; например, в ROKR Z6 используются только ATAG_CORE, ATAG_CMDLINE и ATAG_NONE.
ATAG_CORE
ATAG_CORE — Заголовок структуры Value 0x54410001 Size 5 (2 if no data)
Structure members
struct atag_core { u32 flags; /* bit 0 = read-only */ u32 pagesize; /* systems page size (usually 4k)*/ u32 rootdev; /* root device number */
}; </code>
ATAG_NONE
ATAG_NONE — нулевой Тэг
Value
0x00000000
Size
2
Structure members
None
Description
В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000.
Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгоф данных).
ATAG_CMDLINE
ATAG_CMDLINE — Тэг коммандная строка
Value
0x54410009
Size
2 + ((length_of_cmdline + 3) / 4)
Structure membersstruct
atag_cmdline {
char cmdline[1]; /* this is the minimum size */
};
Description
В ROKR Z6 используется такая строка
ipu_mem=4444K@0x93700000 brdrev=P3A noinitrd console=/dev/null rw mem=60M@0x90000000 init=/linuxrc ip=off root=/dev/mtdblock/root mtdparts=nand0:192k@256k(pds),128k(setup),256k(logo),128k(secure),1536k@1088k(kern)ro,3968k(bpsw),29680k(root)ro,7680k(lang),7m(user),10752k(resrc),66512k(mass_storage),16k(kpanic),2672k(rsv)
Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).
Остальные тэги в телефонах Motorola в часности ROKR Z6 не используются подробное описание можно найти на http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE