Basically, ATAGs were used to send information to the linux kernel about specific information about the machine in the panel, such as memory, console information, etc., and these ATAGs were used by the linux kernel to initialize the MMU and other subsystems.
But with the advent of the device tree (moreover, using it with the hand because it is already used to the powerpc architecture.), Now all the information related to the machine can be transmitted using FDT (device tree block).
Some ideas were expressed for sending device tree information to the kernel using the new atag "atag_dtd", but later a discussion arose about not using ATAG at all, because it was not necessary to use two seprate methods to do one thing. So, The kernel now expects the bootloader to provide the following information.
r0 = 0 r1 = Same type of SOC fdt machine id. r2 = physical address where the dtd can be found.
It uses the same structure that the loader used to send atag information so that it can be backward compatible.
Hope this helps.
Tripathi anurag
source share