什么是使用Linux内核的设备的ATAG?

时间:2014-06-27 09:40:23

标签: linux-kernel arm embedded-linux boot

我试图了解内核是如何启动的。我目前正在尝试将新内核移植到hTC Incredible S VIVO(s710e)设备,但我无法启动它。所以,我查看了设备的原始内核,并查看了一些文档,发现该设备使用了ATAG。现在,我有几个问题,我找不到明确的答案:

  • 什么是ATAG?
  • 它们用于什么?
  • 内核如何使用ATAG启动?
  • ATAG在启动内核方面起着至关重要的作用吗?

2 个答案:

答案 0 :(得分:7)

ATAGS是ARM标签。它们用于将内存大小等信息从引导代码传送到内核。一些参考文献(反过来导致其他参考文献):booting standards, customized ATAG

此参考文献arm/Booting解释了理论,但没有太多告诉用户该做什么。

在我的目标上,我在我的U-Boot配置中使用以下内容:CONFIG_CMDLINE_TAG,CONFIG_SETUP_MEMORY_TAGS,以及我的内核配置中的这些:CONFIG_ATAGS = y,未设置CONFIG_USE_OF。不确定这对你来说是否足够,但它为你提供了搜索的线索,祝你好运。

答案 1 :(得分:0)

ATAGS不仅与手臂相关。看看其他拱门。它们是特殊的参数,可以通过一些寄存器和指针传递给内核。