mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-08 06:04:34 +00:00
6a055c0f91
This question comes up every now and then with people coming from Linux. Add some notes about it so we can point to it in the mailing list. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
44 lines
1.7 KiB
ReStructuredText
44 lines
1.7 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+
|
|
|
|
Devicetree Introduction
|
|
=======================
|
|
|
|
U-Boot uses a devicetree for configuration. This includes the devices used by
|
|
the board, the format of the image created with binman, which UART to use for
|
|
the console, public keys used for secure boot and many other things.
|
|
|
|
See :doc:`control` for more information.
|
|
|
|
Why does U-Boot put <thing> in the devicetree?
|
|
----------------------------------------------
|
|
|
|
This question comes up a lot with people new to U-Boot, particular those coming
|
|
from Linux who are used to quite strict rules about what can go into the
|
|
devicetree.
|
|
|
|
U-Boot uses the same devicetree as Linux but adds more things necessary for the
|
|
bootloader environment (see :ref:`dttweaks`).
|
|
|
|
U-Boot does not have a user space to provide policy and configuration. It cannot
|
|
do what Linux does and run programs and look up filesystems to figure out how to
|
|
boot. So configuration and runtime information goes into the devicetree in
|
|
U-Boot.
|
|
|
|
Of course it is possible to:
|
|
|
|
- add tables into the rodata section of the U-Boot binary
|
|
- append some info to the end of U-Boot in a different format
|
|
- modify the linker script to bring in a file with some info in it
|
|
- put things in ACPI tables
|
|
- link in a UEFI hand-off block structure and put things in there
|
|
|
|
but *please don't*. In general, devicetree is the sane place to hold U-Boot's
|
|
configuration.
|
|
|
|
So, please, do NOT ask why U-Boot puts <thing> in the devicetree. It is the only
|
|
place it can go. It is a highly suitable data structure for just about anything
|
|
that U-Boot needs to know at runtime.
|
|
|
|
Note, it is possible to use platdata directly so drivers avoid devicetreee in
|
|
SPL. But of-platdata is the modern way of avoiding devicetree overhead, so
|
|
please use that instead.
|