Skip to main content.
Navigation:
DENX
>
DULG
>
LinuxFDTBlob
Translations:
Edit
|
Attach
|
Raw
|
Ref-By
|
Printable
|
More
DULG
Sections of this site:
DENX Home
|
DULG
|
ELDK-5
|
Know
|
Training
|
U-Boot
|
U-Bootdoc
Topics
DULG Home
BoardSelect
Manual
FAQ
Application Notes
Changes
Index
List of pages in DULG
Search
%SECTION0{name=LinuxFDTBlob}% Flattened Device Tree Blob Linux kernel expects certain information on the hardware that it runs on. For kernels compiled with fdt support, this information has the form of a device tree, which is based on the Open Firmware specification. Bootloaders like U-Boot that do not implement the Open Firmware API, are expected to pass to the kernel a binary form of the flattened device tree, commonly referred to as _FDT blob_ or simply _the blob_. Device trees are defined in human-readable text files, which are part of the Linux 2.6 source tree. Device tree source for the %BOARDNAME% board is found in =arch/%ARCH%/boot/dts/%BOARD%.dts= file. Before the device tree can be passed to the kernel, it has to be compiled to the binary form by the =dtc= compiler. The =dtc= compiler is included with the Linux kernel since 2.6.25. Since 2.6.26 there is also a simple makefile rule to generate the blob: <pre> make ARCH=%ARCH% CROSS_COMPILE=%CROSS_COMPILE% %BOARD%.dtb </pre> After the blob has been compiled, it has to be transferred from where it was built (="arch/%ARCH%/boot/%BOARD%.dtb"=) to target's memory, for example over the TFTP protocol using U-Boot's =tftp= command. Then, the blob is passed to the kernel by the =bootm= command, and its address in memory is one of the arguments to =bootm= - refer to the description of this command in UBootCmdGroupExec for more details. Note that U-Boot makes some automatic modifications to the blob before passing it to the kernel - mainly adding and modifying information that is learnt at run-time. See the board-specific function ft_board_setup() and related routines. U-Boot also has provisions to alter a flattened device tree in arbitrary ways from the command line, refer to the description of the =fdt= commands found in UBootCmdFDT. Notes: * Flattened Device Tree custodian's page at http://www.denx.de/wiki/U-Boot/UBootFdtInfo contains useful information, and a number of references. * At the time of this writing (September 2007) blob handling is still a very fresh feature and undergoing frequent changes. Reader is encouraged to watch the =u-boot-users= and =linuxppc-dev= mailing lists for important news (required version of the dtc compiler, blob compilation options, flattened device tree source file structure, etc.).
7.1. Introduction
1. Abstract
7.3. Passing Kernel Arguments
Prev
Home
Next