How uboot transfers hardware information to the kernel without using DTS

I am new to embedded Linux development. I have to connect uboot and custom Linux distro to a new ARM based board.

The Ubot we are using (2009.08) does not have Arch and DTS folders. I believe this is an older version that does not use DTS to pass hardware information to the kernel (v 3.0). I read a lot about DTS, but there is not enough information here about this (deprecated?) Method of transferring hardware information from uboot to the kernel that we are using. The internet tells me that there are C files for this task in both the Uboot source and the kernel source that need to be in sync, but can anyone point me in that direction? Also, please correct me if my assumptions are wrong and ask for more information if needed.

+1


source to share


1 answer


The (old) method of transferring data between U-Boot and the Linux ARM kernel is called the ATAG memory list. Information such as usable memory areas, machine type and board information are transferred from U-Boot to the Linux ARM kernel using this list of data.

The U-Boot ATAGs are created in lib_arm/armlinux.c

(1.1.5) or lib_arm/bootm.c

(2009.08) or arch/arm/lib/bootm.c

(2015.04) and require the CONFIG_SETUP_MEMORY_TAGS CONFIG_xxx_TAG configuration parameters .
Then ATAG is handled by Linux in arch/arm/kernel/setup.c

.

For documentation see Section 8 this or this alt site .



Adding

Also see slide # 4 of this presentation on loading up-Device_Tree

+5


source







All Articles