Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are ATAGs for a device that uses Linux Kernel?

I am trying to understand how a kernel boots. I am currently trying to port a new kernel to hTC Incredible S VIVO (s710e) device, but I cannot get it to boot. So, I looked into the device's original kernel, and looked through some documentation, and found out that the device uses ATAGs. Now, I have several questions that I cannot find a clear answer for:

  • What are ATAGs?
  • What are they used for?
  • How does the kernel boot using ATAGs?
  • Do ATAGs play a vital role in booting a kernel?
like image 215
rqmok Avatar asked Jun 27 '14 09:06

rqmok


1 Answers

ATAGS are ARM tags. They are used to carry information such as memory size from boot code to kernel. Some references (which in turn lead to other references): booting standards, customized ATAG.

This reference arm/Booting explains theory, but does not much tell a user what to do.

On my target I use the following in my U-Boot config: CONFIG_CMDLINE_TAG, CONFIG_SETUP_MEMORY_TAGS, and these in my kernel config: CONFIG_ATAGS=y, CONFIG_USE_OF is not set. Not sure if that is sufficient for you but it gives you clues to search on, good luck.

like image 119
Joe Kul Avatar answered Sep 18 '22 05:09

Joe Kul