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

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

 
(не показано 45 промежуточных версий 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 =
+
{| border="1"
 
+
|- style="background:#bfbfbf; font-weight: bold"
ATAG_CORE Заголовок структуры
+
! Tag
Value
+
! Tag Name
0x54410001
+
! Value
Size
+
! Size
5 (2 if no data)
+
! Structure members
<code><pre>Structure members
+
! Description
struct atag_core {
+
|-
 +
| ATAG_CORE
 +
| Заголовок структуры
 +
| 0x54410001
 +
| 5 (2 if no data)
 +
| <code><pre>struct atag_core {
 
         u32 flags;              /* bit 0 = read-only */  
 
         u32 flags;              /* bit 0 = read-only */  
 
         u32 pagesize;          /* systems page size (usually 4k)*/  
 
         u32 pagesize;          /* systems page size (usually 4k)*/  
 
         u32 rootdev;            /* root device number */
 
         u32 rootdev;            /* root device number */
 
}; </pre></code>
 
}; </pre></code>
--------------------------------------------------------------------------------------------------
+
| Нет
ATAG_NONE
+
|-
 
+
| ATAG_NONE
ATAG_NONE — нулевой Тэг
+
| Нулевой тэг
Value
+
| 0x00000000
0x00000000
+
| 2
Size
+
| None
2
+
| В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000. Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгов данных).
Structure members
+
|-
None
+
| ATAG_CMDLINE
Description
+
| Тэг коммандная строка
В Z6 flags=0x00000000,pagesize=0x00000100,rootdev=0x00000000.
+
| 0x54410009
Этот Тэг используется для завершения структкры ATAG его размер должен быть 0 (а не 2 как у тэгоф данных).
+
| 2 + ((length_of_cmdline + 3) / 4)
--------------------------------------------------------------------------------------------------
+
| <code><pre>atag_cmdline {
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 */
 
         char    cmdline[1];    /* this is the minimum size */
};
+
}; </pre></code>
 
+
| Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).
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)
+
* 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
 +
Эти параметры используются только для загрузки специфического ядра телефона
  
Используется для передачи коммандной строки ядру.Строка длжна быть 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