4. Setup boot data
The boot loader should provide a tagged list or a dtb image for sending configuration data to the kernel. The physical address of the boot data is passed to the kernel in register r2.
4a. Setup the kernel tagged list
The boot loader should create and initialize the kernel tagged list. A tagged list must always start with ATAG_CORE and it should end with ATAG_NONE. The ATAG_CORE tag may or may not be empty. An empty tag has the size field is '2' (0x00000002). To set the size field to zero ATAG_NONE should be used. In the list any number of tags can be placed .it is undefined whether a repeated tag appends to the information which is carried by the previous tag. Few tags behave as the latter and few tags as former.…show more content… Setup the device tree
The device tree image should load into the system Ram at a 64bit address and also it should initialize with the boot data. The kernel will look for the dtb magic value of 0xd00dfeed at the dtb physical address to determine whether a dtb has been passed instead of a tagged list.
The boot loader should pass at a minimum size and location of the system memory and the root filesystem location. A safe location is present just above the 128MiB from starting of RAM.
5. Load initramfs.
If an initramfs is in use with the dtb, then it must be placed in a region of memory where the kernel decompressor will not overwrite it and also with the region which will be covered by the low-memory mapping. A safe location is present above the device tree blob which itself will be loaded just above the 128MiB boundary from the start of RAM.
6. Calling the kernel image
For calling the kernel zImage there are two options.
1. It is said to be legal for the boot loader to call the zimage in flash directly only when the zimage is stored in flash and then it should be linked to be run from…show more content… The zImage may also be placed in system RAM and called there. The kernel should be placed in the first 128MiB of RAM. It is recommended that it is loaded above 32MiB in order to avoid the need to relocate
So that it will make the boot process slightly faster.while booting a non-Zimage the constraints are tighter. For this case the kernel should be loaded at an offset from system equal to TEXT_OFFSET –