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

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

(Структура ATAG)
(Убрал cmdline от Z6 (в статье он не нужен), поправил форматирование)
Строка 78:Строка 78:
 
         char    cmdline[1];    /* this is the minimum size */
 
         char    cmdline[1];    /* this is the minimum size */
 
}; </pre></code>
 
}; </pre></code>
| В ROKR Z6 используется такая строка
+
| Используется для передачи коммандной строки ядру.Строка длжна быть NULL terminated. Значения length_of_cmdline указывает на завершающий символ(/n).
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).
 
 
|}
 
|}
 
Загрузчик телефона также передаёт ядру и нетипичные параметры такие как
 
Загрузчик телефона также передаёт ядру и нетипичные параметры такие как
ATAG_POWERUP_REASON  
+
* ATAG_POWERUP_REASON  
ATAG_IPU_BUFFER_ADDRESS  
+
* ATAG_IPU_BUFFER_ADDRESS  
ATAG_IS_IPU_INITIALIZED  
+
* ATAG_IS_IPU_INITIALIZED  
ATAG_GPU_CONTEXT  
+
* ATAG_GPU_CONTEXT  
ATAG_USB_FIRMWARE_ADDRESS  
+
* ATAG_USB_FIRMWARE_ADDRESS  
ATAG_USB_FIRMWARE_SIZE  
+
* ATAG_USB_FIRMWARE_SIZE  
ATAG_MBM_VERSION  
+
* ATAG_MBM_VERSION  
ATAG_MBM_LOADER_VERSION
+
* ATAG_MBM_LOADER_VERSION
ATAG_BOARDID 0xf1000409
+
* ATAG_BOARDID 0xf1000409
ATAG_FLAT_DEV_TREE_ADDRESS
+
* ATAG_FLAT_DEV_TREE_ADDRESS
ATAG_FLASHING_COMPLETED  
+
* ATAG_FLASHING_COMPLETED  
MOT_LOGO_VERSION_SIZE_OLD
+
* MOT_LOGO_VERSION_SIZE_OLD
MOT_LOGO_VERSION_SIZE
+
* MOT_LOGO_VERSION_SIZE
ATAG_LOGO_VERSION  
+
* ATAG_LOGO_VERSION  
ATAG_MEMORY_TYPE
+
* ATAG_MEMORY_TYPE
ATAG_BATTERY_STATUS_AT_BOOT  
+
* ATAG_BATTERY_STATUS_AT_BOOT  
ATAG_BOOT_FREQUENCY  
+
* ATAG_BOOT_FREQUENCY  
ATAG_MEDL_INFO
+
* ATAG_MEDL_INFO
ATAG_MBM_BOOTUP_TIME  
+
* ATAG_MBM_BOOTUP_TIME  
ATAG_BP_LOADER_VERSION
+
* ATAG_BP_LOADER_VERSION
ATAG_CLI_LOGO_VERSION  
+
* ATAG_CLI_LOGO_VERSION  
 
Эти параметры используются только для загрузки специфического ядра телефона
 
Эти параметры используются только для загрузки специфического ядра телефона
  
---------------------------------------------------------------------------------------------------
+
== См. также ==
 
Подробное описание стандартных тэгов можно найти на [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]
 
Подробное описание стандартных тэгов можно найти на [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]

Версия 06:30, 4 марта 2009

Определение

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