X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=dts%2FKconfig;h=8917f4244459210e258b23c222571b826b63f164;hb=430c166bcedd22e0ce93ce298747275f814b172f;hp=b3009af03f593e1fe10de352150b050b0ab24c88;hpb=821560fd8e43eecc208c1c52ad24faadb6b52703;p=oweals%2Fu-boot.git diff --git a/dts/Kconfig b/dts/Kconfig index b3009af03f..8917f42444 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -5,11 +5,26 @@ config SUPPORT_OF_CONTROL bool +config DTC + bool + +config PYLIBFDT + bool + +config DTOC + bool + select PYLIBFDT + +config BINMAN + bool + select DTOC + menu "Device Tree Control" depends on SUPPORT_OF_CONTROL config OF_CONTROL bool "Run-time configuration via Device Tree" + select DTC help This feature provides for run-time configuration of U-Boot via a flattened device tree. @@ -32,13 +47,21 @@ config SPL_OF_CONTROL which is not enough to support device tree. Enable this option to allow such boards to be supported by U-Boot SPL. +config TPL_OF_CONTROL + bool "Enable run-time configuration via Device Tree in TPL" + depends on TPL && OF_CONTROL + help + Some boards use device tree in U-Boot but only have 4KB of SRAM + which is not enough to support device tree. Enable this option to + allow such boards to be supported by U-Boot TPL. + config OF_LIVE bool "Enable use of a live tree" depends on OF_CONTROL help Normally U-Boot uses a flat device tree which saves space and avoids the need to unpack the tree before use. However a flat - tree does not support modifcation from within U-Boot since it + tree does not support modification from within U-Boot since it can invalidate driver-model device tree offsets. This option enables a live tree which is available after relocation, and can be adjusted as needed. @@ -78,6 +101,13 @@ config OF_HOSTFILE This is only useful for Sandbox. Use the -d flag to U-Boot to specify the file to read. +config OF_PRIOR_STAGE + bool "Prior stage bootloader DTB for DT control" + help + If this option is enabled, the device tree used for DT + control will be read from a device tree binary, at a memory + location passed to U-Boot by the prior stage bootloader. + endchoice config DEFAULT_DEVICE_TREE @@ -90,14 +120,116 @@ config DEFAULT_DEVICE_TREE config OF_LIST string "List of device tree files to include for DT control" - depends on SPL_LOAD_FIT + depends on SPL_LOAD_FIT || MULTI_DTB_FIT default DEFAULT_DEVICE_TREE help This option specifies a list of device tree files to use for DT - control. These will be packaged into a FIT. At run-time, SPL will - select the correct DT to use by examining the hardware (e.g. - reading a board ID value). This is a list of device tree files - (without the directory or .dtb suffix) separated by . + control. These will be packaged into a FIT. At run-time, U-boot + or SPL will select the correct DT to use by examining the + hardware (e.g. reading a board ID value). This is a list of + device tree files (without the directory or .dtb suffix) + separated by . + + +config DTB_RESELECT + bool "Support swapping dtbs at a later point in boot" + depends on MULTI_DTB_FIT + help + It is possible during initial boot you may need to use a generic + dtb until you can fully determine the board your running on. This + config allows boards to implement a function at a later point + during boot to switch to the "correct" dtb. + +config MULTI_DTB_FIT + bool "Support embedding several DTBs in a FIT image for u-boot" + help + This option provides hooks to allow U-boot to parse an + appended FIT image and enable board specific code to then select + the correct DTB to be used. Use this if you need to support + multiple DTBs but don't use the SPL. + + +config SPL_MULTI_DTB_FIT + depends on SPL_LOAD_FIT && SPL_OF_CONTROL && !SPL_OF_PLATDATA + bool "Support embedding several DTBs in a FIT image for the SPL" + help + This option provides the SPL with the ability to select its own + DTB at runtime from an appended FIT image containing several DTBs. + This allows using the same SPL binary on multiple platforms. + The primary purpose is to handle different versions of + the same platform without tweaking the platform code if the + differences can be expressed in the DTBs (common examples are: bus + capabilities, pad configurations). + +config SPL_OF_LIST + string "List of device tree files to include for DT control in SPL" + depends on SPL_MULTI_DTB_FIT + default OF_LIST + help + This option specifies a list of device tree files to use for DT + control in the SPL. These will be packaged into a FIT. At run-time, + the SPL will select the correct DT to use by examining the + hardware (e.g. reading a board ID value). This is a list of + device tree files (without the directory or .dtb suffix) + separated by . + +choice + prompt "SPL OF LIST compression" + depends on SPL_MULTI_DTB_FIT + default SPL_MULTI_DTB_FIT_LZO + +config SPL_MULTI_DTB_FIT_LZO + bool "LZO" + depends on SYS_MALLOC_F + select SPL_LZO + help + Compress the FIT image containing the DTBs available for the SPL + using LZO compression. (requires lzop on host). + +config SPL_MULTI_DTB_FIT_GZIP + bool "GZIP" + depends on SYS_MALLOC_F + select SPL_GZIP + help + Compress the FIT image containing the DTBs available for the SPL + using GZIP compression. (requires gzip on host) + +config SPL_MULTI_DTB_FIT_NO_COMPRESSION + bool "No compression" + help + Do not compress the FIT image containing the DTBs available for the SPL. + Use this options only if LZO is not available and the DTBs are very small. +endchoice + +choice + prompt "Location of uncompressed DTBs" + depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO) + default SPL_MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F + +config SPL_MULTI_DTB_FIT_DYN_ALLOC + bool "Dynamically allocate the memory" + depends on SYS_MALLOC_F + +config SPL_MULTI_DTB_FIT_USER_DEFINED_AREA + bool "User-defined location" +endchoice + +config SPL_MULTI_DTB_FIT_UNCOMPRESS_SZ + hex "Size of memory reserved to uncompress the DTBs" + depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO) + default 0x8000 + help + This is the size of this area where the DTBs are uncompressed. + If this area is dynamically allocated, make sure that + SPL_SYS_MALLOC_F_LEN is big enough to contain it. + +config SPL_MULTI_DTB_FIT_USER_DEF_ADDR + hex "Address of memory where dtbs are uncompressed" + depends on SPL_MULTI_DTB_FIT_USER_DEFINED_AREA + help + the FIT image containing the DTBs is uncompressed in an area defined + at compilation time. This is the address of this area. It must be + aligned on 2-byte boundary. config OF_SPL_REMOVE_PROPS string "List of device tree properties to drop for SPL" @@ -117,6 +249,29 @@ config OF_SPL_REMOVE_PROPS config SPL_OF_PLATDATA bool "Generate platform data for use in SPL" depends on SPL_OF_CONTROL + select DTOC + help + For very constrained SPL environments the overhead of decoding + device tree nodes and converting their contents into platform data + is too large. This overhead includes libfdt code as well as the + device tree contents itself. The latter is fairly compact, but the + former can add 3KB or more to a Thumb 2 Image. + + This option enables generation of platform data from the device + tree as C code. This code creates devices using U_BOOT_DEVICE() + declarations. The benefit is that it allows driver code to access + the platform data directly in C structures, avoidin the libfdt + overhead. + + This option works by generating C structure declarations for each + compatible string, then adding platform data and U_BOOT_DEVICE + declarations for each node. See README.platdata for more + information. + +config TPL_OF_PLATDATA + bool "Generate platform data for use in TPL" + depends on TPL_OF_CONTROL + select DTOC help For very constrained SPL environments the overhead of decoding device tree nodes and converting their contents into platform data @@ -136,3 +291,12 @@ config SPL_OF_PLATDATA information. endmenu + +config MKIMAGE_DTC_PATH + string "Path to dtc binary for use within mkimage" + default "dtc" + help + The mkimage host tool will, in order to generate FIT images make + calls to the dtc application in order to create the output. In + some cases the system dtc may not support all required features + and the path to a different version should be given here.