doc: devicetree: Align documentation to use Kconfig options
Since U-Boot switched away from manual CONFIG_* defines to Kconfig options, align devicetree documentation accordingly. Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
This commit is contained in:
@@ -29,7 +29,7 @@ a number of similar boards with different peripherals, you can describe
|
||||
the features of each board in the devicetree file, and have a single
|
||||
generic source base.
|
||||
|
||||
To enable this feature, add CONFIG_OF_CONTROL to your board config file.
|
||||
To enable this feature, select `OF_CONTROL` via Kconfig.
|
||||
|
||||
|
||||
What is a Flattened Devicetree?
|
||||
@@ -81,12 +81,8 @@ Failing that, you could write one from scratch yourself!
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Use::
|
||||
|
||||
#define CONFIG_DEFAULT_DEVICE_TREE "<name>"
|
||||
|
||||
to set the filename of the devicetree source. Then put your devicetree
|
||||
file into::
|
||||
Set up "<name>" when prompted for `DEFAULT_DEVICE_TREE` by Kconfig. Then put
|
||||
your devicetree file into::
|
||||
|
||||
arch/<arch>/dts/<name>.dts
|
||||
|
||||
@@ -94,24 +90,24 @@ This should include your CPU or SOC's devicetree file, placed in
|
||||
`arch/<arch>/dts`, and then make any adjustments required using a u-boot-dtsi
|
||||
file for your board.
|
||||
|
||||
If CONFIG_OF_EMBED is defined, then it will be picked up and built into
|
||||
If `OF_EMBED` is selected by Kconfig, then it will be picked up and built into
|
||||
the U-Boot image (including u-boot.bin). This is suitable for debugging
|
||||
and development only and is not recommended for production devices.
|
||||
|
||||
If CONFIG_OF_SEPARATE is defined, then it will be built and placed in
|
||||
If `OF_SEPARATE` is selected by Kconfig, then it will be built and placed in
|
||||
a u-boot.dtb file alongside u-boot-nodtb.bin with the combined result placed
|
||||
in u-boot.bin so you can still just flash u-boot.bin onto your board. If you are
|
||||
using CONFIG_SPL_FRAMEWORK, then u-boot.img will be built to include the device
|
||||
tree binary.
|
||||
in u-boot.bin so you can still just flash u-boot.bin onto your board. If Kconfig
|
||||
option `SPL_FRAMEWORK` is enabled, then u-boot.img will be built to include the
|
||||
device tree binary.
|
||||
|
||||
If CONFIG_OF_BOARD is defined, a board-specific routine will provide the
|
||||
If `OF_BOARD` is selected by Kconfig, a board-specific routine will provide the
|
||||
devicetree at runtime, for example if an earlier bootloader stage creates
|
||||
it and passes it to U-Boot.
|
||||
|
||||
If CONFIG_BLOBLIST is defined, the devicetree may come from a bloblist passed
|
||||
from a previous stage, if present.
|
||||
If `BLOBLIST` is selected by Kconfig, the devicetree may come from a bloblist
|
||||
passed from a previous stage, if present.
|
||||
|
||||
If CONFIG_SANDBOX is defined, then it will be read from a file on
|
||||
If `SANDBOX` is selected by Kconfig, then it will be read from a file on
|
||||
startup. Use the -d flag to U-Boot to specify the file to read, -D for the
|
||||
default and -T for the test devicetree, used to run sandbox unit tests.
|
||||
|
||||
@@ -145,7 +141,7 @@ Build:
|
||||
After the board configuration is done, fdt supported u-boot can be built in two
|
||||
ways:
|
||||
|
||||
# build the default dts which is defined from CONFIG_DEFAULT_DEVICE_TREE::
|
||||
# build the default dts which is selected by DEFAULT_DEVICE_TREE Kconfig::
|
||||
|
||||
$ make
|
||||
|
||||
@@ -198,8 +194,8 @@ As mentioned above, the U-Boot build system automatically includes a
|
||||
`*-u-boot.dtsi` file, if found, containing U-Boot specific
|
||||
quirks. However, some data, such as the mentioned public keys, are not
|
||||
appropriate for upstream U-Boot but are better kept and maintained
|
||||
outside the U-Boot repository. You can use CONFIG_DEVICE_TREE_INCLUDES
|
||||
to specify a list of .dtsi files that will also be included when
|
||||
outside the U-Boot repository. You can use `DEVICE_TREE_INCLUDES` Kconfig
|
||||
option to specify a list of .dtsi files that will also be included when
|
||||
building .dtb files.
|
||||
|
||||
|
||||
@@ -213,14 +209,14 @@ The full devicetree is available to U-Boot proper, but normally only a subset
|
||||
'SPL Support' in doc/driver-model/design.rst for more details.
|
||||
|
||||
|
||||
Using several DTBs in the SPL (CONFIG_SPL_MULTI_DTB)
|
||||
----------------------------------------------------
|
||||
Using several DTBs in the SPL (SPL_MULTI_DTB_FIT Kconfig option)
|
||||
----------------------------------------------------------------
|
||||
In some rare cases it is desirable to let SPL be able to select one DTB among
|
||||
many. This usually not very useful as the DTB for the SPL is small and usually
|
||||
fits several platforms. However the DTB sometimes include information that do
|
||||
work on several platforms (like IO tuning parameters).
|
||||
In this case it is possible to use CONFIG_SPL_MULTI_DTB. This option appends to
|
||||
the SPL a FIT image containing several DTBs listed in SPL_OF_LIST.
|
||||
In this case it is possible to use SPL_MULTI_DTB_FIT Kconfig option. This option
|
||||
appends to the SPL a FIT image containing several DTBs listed in SPL_OF_LIST.
|
||||
board_fit_config_name_match() is called to select the right DTB.
|
||||
|
||||
If board_fit_config_name_match() relies on DM (DM driver to access an EEPROM
|
||||
@@ -247,10 +243,10 @@ architectures.
|
||||
|
||||
It is important to understand that the fdt only selects options
|
||||
available in the platform / drivers. It cannot add new drivers (yet). So
|
||||
you must still have the CONFIG option to enable the driver. For example,
|
||||
you need to define CONFIG_SYS_NS16550 to bring in the NS16550 driver,
|
||||
you must still have the Kconfig option to enable the driver. For example,
|
||||
you need to enable SYS_NS16550 Kconfig option to bring in the NS16550 driver,
|
||||
but can use the fdt to specific the UART clock, peripheral address, etc.
|
||||
In very broad terms, the CONFIG options in general control *what* driver
|
||||
In very broad terms, the Kconfig options in general control *what* driver
|
||||
files are pulled in, and the fdt controls *how* those files work.
|
||||
|
||||
History
|
||||
|
||||
Reference in New Issue
Block a user