X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=dts%2FKconfig;h=4b7d8b15cc04d7f3a81ab7edf50268901ee4cf8c;hb=1425a87b1478bdb2620a46f2a23af7ca2e4b6073;hp=ca5bd6fb46626eafb7b0f15d023d243b79783f93;hpb=d648964fc2495f1184af5782a0b7fc670ba5826e;p=u-boot diff --git a/dts/Kconfig b/dts/Kconfig index ca5bd6fb46..4b7d8b15cc 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -1,9 +1,6 @@ # # Device Tree Control # -# TODO: -# This feature is not currently supported for SPL, -# but this restriction should be removed in the future. config SUPPORT_OF_CONTROL bool @@ -17,6 +14,14 @@ config OF_CONTROL This feature provides for run-time configuration of U-Boot via a flattened device tree. +config SPL_OF_CONTROL + bool "Enable run-time configuration via Device Tree in SPL" + depends on SPL && 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 SPL. + choice prompt "Provider of DTB for DT control" depends on OF_CONTROL @@ -32,7 +37,9 @@ config OF_EMBED bool "Embedded DTB for DT control" help If this option is enabled, the device tree will be picked up and - built into the U-Boot image. + built into the U-Boot image. This is suitable for local debugging + and development only and is not recommended for production devices. + Boards in the mainline U-Boot tree should not use it. config OF_HOSTFILE bool "Host filed DTB for DT control" @@ -46,9 +53,57 @@ endchoice config DEFAULT_DEVICE_TREE string "Default Device Tree for DT control" + depends on OF_CONTROL help This option specifies the default Device Tree used for DT control. It can be overridden from the command line: $ make DEVICE_TREE= +config OF_LIST + string "List of device tree files to include for DT control" + depends on SPL_LOAD_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 . + +config OF_SPL_REMOVE_PROPS + string "List of device tree properties to drop for SPL" + depends on SPL_OF_CONTROL + default "interrupt-parent" if SPL_PINCTRL_FULL && SPL_CLK + default "clocks clock-names interrupt-parent" if SPL_PINCTRL_FULL + default "pinctrl-0 pinctrl-names interrupt-parent" if SPL_CLK + default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent" + help + Since SPL normally runs in a reduced memory space, the device tree + is cut down to only what is needed to load and start U-Boot. Only + nodes marked with the property "u-boot,dm-pre-reloc" will be + included. In addition, some properties are not used by U-Boot and + can be discarded. This option defines the list of properties to + discard. + +config SPL_OF_PLATDATA + bool "Generate platform data for use in SPL" + depends on SPL_OF_CONTROL + 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. + endmenu