0

It may be very basic question but I'm really confused to get this.

Some boards don't need device tree dtb file in the booting process like beagleboard and some should have the dtb file in the booting process like Zynq.

is this assumption correct ?

also, in the booting process. when does the boot loader gets the dtb file and loads it ?

any reference to know the whole process ?

sawdust
  • 16,103
  • 3
  • 40
  • 50
becks
  • 2,656
  • 8
  • 35
  • 64
  • *"any reference to know the whole process?"* -- [Device Tree for Dummies](http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf) – sawdust Aug 26 '14 at 08:51

2 Answers2

0

Linux is slowly moving to the device tree. It all started in the PowerPC, and now ARM has it. It is a better method of passing system information than using, for example ATAGS in ARM.

Since you mentioned the Xilinx's Zynq, the bootloader (u-boot) is assigned this task of reading the kernel and the device tree off of the non-volatile memory area (in this case SD card). The kernel and device tree is passed to the boot command.

You should read more about the Zynq and u-boot to understand it. Find the "Device Tree" sub section.

sessyargc.jp
  • 573
  • 5
  • 15
0

Traditionally, you had to write a "board-file" (in C) for each board to describe which components where on the board and how they where connected. That is, a procedural description.

With a device tree, you use a declarative approach to describe the HW and let the kernel call the appropriate device registration functions.

So for older boards, if a board-file is available (arch/arm/mach-omap2/board-omap3beagle.c in the case of the Beagleboard), a device tree is not needed. But if there is no board-file and no device tree, the kernel has no way of knowing which type of hardware it is running on.

The device tree blob (dtb) is loaded into RAM by the bootloader which then notifies the kernel of the location via a predetermined register.

wkz
  • 2,203
  • 1
  • 15
  • 21