Открыть главное меню

ATAG: различия между версиями

 
(не показаны 44 промежуточные версии 8 участников)
Строка 1:Строка 1:
 +
<metadesc>ATAG - структура, содержащая параметры загрузки ядра Linux. В MOTOMAGX находится в CG41</metadesc>
 +
 
= Определение =
 
= Определение =
  
Строка 42:Строка 44:
 
|}
 
|}
  
Несмотря на столь огромное разнообразие структур, все они не используются; например, в [[ROKR]] [[Z6]] используются только ATAG_CORE, ATAG_CMDLINE и ATAG_NONE.
+
В [[ROKR]] [[Z6]] из стандартных используются только ATAG_CORE, ATAG_CMDLINE и ATAG_NONE.
 
 
= ATAG_CORE =
 
 
 
ATAG_CORE — Заголовок структуры
 
Value
 
0x54410001
 
Size
 
5 (2 if no data)
 
<code><pre>Structure members
 
struct atag_core {
 
        u32 flags;              /* bit 0 = read-only */
 
        u32 pagesize;          /* systems page size (usually 4k)*/
 
        u32 rootdev;            /* root device number */
 
}; </pre></code>
 
--------------------------------------------------------------------------------------------------
 
ATAG_NONE
 
 
 
ATAG_NONE — нулевой Тэг
 
Value
 
0x00000000
 
Size
 
2
 
Structure members
 
None
 
Description
 
В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000.
 
Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгов данных).
 
 
----
 
----
 
{| border="1"
 
{| border="1"
Строка 79:Строка 54:
 
! Structure members
 
! Structure members
 
! Description
 
! Description
 +
|-
 +
| ATAG_CORE
 +
| Заголовок структуры
 +
| 0x54410001
 +
| 5 (2 if no data)
 +
| <code><pre>struct atag_core {
 +
        u32 flags;              /* bit 0 = read-only */
 +
        u32 pagesize;          /* systems page size (usually 4k)*/
 +
        u32 rootdev;            /* root device number */
 +
}; </pre></code>
 +
| Нет
 
|-
 
|-
 
| ATAG_NONE
 
| ATAG_NONE
Строка 86:Строка 72:
 
| None
 
| None
 
| В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000. Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгов данных).
 
| В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000. Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгов данных).
 +
|-
 +
| ATAG_CMDLINE
 +
| Тэг коммандная строка
 +
| 0x54410009
 +
| 2 + ((length_of_cmdline + 3) / 4)
 +
| <code><pre>atag_cmdline {
 +
        char    cmdline[1];    /* this is the minimum size */
 +
}; </pre></code>
 +
| Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).
 
|}
 
|}
--------------------------------------------------------------------------------------------------
+
Загрузчик телефона также передаёт ядру и нетипичные параметры такие как
ATAG_CMDLINE
+
* ATAG_POWERUP_REASON
 
+
* ATAG_IPU_BUFFER_ADDRESS
ATAG_CMDLINE — Тэг коммандная строка
+
* ATAG_IS_IPU_INITIALIZED
Value
+
* ATAG_GPU_CONTEXT
 
+
* ATAG_USB_FIRMWARE_ADDRESS
0x54410009
+
* ATAG_USB_FIRMWARE_SIZE
Size
+
* ATAG_MBM_VERSION
 
+
* ATAG_MBM_LOADER_VERSION
2 + ((length_of_cmdline + 3) / 4)
+
* ATAG_BOARDID 0xf1000409
Structure membersstruct
+
* ATAG_FLAT_DEV_TREE_ADDRESS
atag_cmdline {
+
* ATAG_FLASHING_COMPLETED
        char    cmdline[1];    /* this is the minimum size */
+
* MOT_LOGO_VERSION_SIZE_OLD
};
+
* MOT_LOGO_VERSION_SIZE
 
+
* ATAG_LOGO_VERSION
Description
+
* ATAG_MEMORY_TYPE
В ROKR Z6 используется такая строка
+
* ATAG_BATTERY_STATUS_AT_BOOT
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)
+
* ATAG_BOOT_FREQUENCY
 +
* ATAG_MEDL_INFO
 +
* ATAG_MBM_BOOTUP_TIME
 +
* ATAG_BP_LOADER_VERSION
 +
* ATAG_CLI_LOGO_VERSION
 +
Эти параметры используются только для загрузки специфического ядра телефона
  
Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).
+
== См. также ==
---------------------------------------------------------------------------------------------------
+
Подробное описание стандартных тэгов можно найти на [http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE]
Остальные тэги в телефонах Motorola в часности ROKR Z6 не используются подробное описание можно найти на [http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE]
 

Текущая версия на 05:25, 1 апреля 2019


Определение

ATAG - структура, содержащая параметры загрузки ядра Linux. В MOTOMAGX находится в CG41.Получив управление, Bootloader должен после инициализации оборудования заполнить структуру ATAG, после чего передать её ядру.

Структура ATAG

Тип структурыИдентификатор
ATAG_CORE0x54410001
ATAG_MEM0x54410002
ATAG_VIDEOTEXT0x54410003
ATAG_RAMDISK0x54410004
ATAG_INITRD20x54420005
ATAG_SERIAL0x54410006
ATAG_REVISION0x54410007
ATAG_VIDEOLFB0x54410008
ATAG_CMDLINE0x54410009
ATAG_NONE0x00000000

В ROKR Z6 из стандартных используются только ATAG_CORE, ATAG_CMDLINE и ATAG_NONE.


TagTag NameValueSizeStructure membersDescription
ATAG_COREЗаголовок структуры0x544100015 (2 if no data)
struct atag_core { u32 flags; /* bit 0 = read-only */ u32 pagesize; /* systems page size (usually 4k)*/ u32 rootdev; /* root device number */
}; 
Нет
ATAG_NONEНулевой тэг0x000000002NoneВ Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000. Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгов данных).
ATAG_CMDLINEТэг коммандная строка0x544100092 + ((length_of_cmdline + 3) / 4)
atag_cmdline { char cmdline[1]; /* this is the minimum size */
}; 
Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).

Загрузчик телефона также передаёт ядру и нетипичные параметры такие как

  • ATAG_POWERUP_REASON
  • ATAG_IPU_BUFFER_ADDRESS
  • ATAG_IS_IPU_INITIALIZED
  • ATAG_GPU_CONTEXT
  • ATAG_USB_FIRMWARE_ADDRESS
  • ATAG_USB_FIRMWARE_SIZE
  • ATAG_MBM_VERSION
  • ATAG_MBM_LOADER_VERSION
  • ATAG_BOARDID 0xf1000409
  • ATAG_FLAT_DEV_TREE_ADDRESS
  • ATAG_FLASHING_COMPLETED
  • MOT_LOGO_VERSION_SIZE_OLD
  • MOT_LOGO_VERSION_SIZE
  • ATAG_LOGO_VERSION
  • ATAG_MEMORY_TYPE
  • ATAG_BATTERY_STATUS_AT_BOOT
  • ATAG_BOOT_FREQUENCY
  • ATAG_MEDL_INFO
  • ATAG_MBM_BOOTUP_TIME
  • ATAG_BP_LOADER_VERSION
  • ATAG_CLI_LOGO_VERSION

Эти параметры используются только для загрузки специфического ядра телефона

См. также

Подробное описание стандартных тэгов можно найти на http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_CORE