]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - dts/Kconfig
dm: core: Add livetree definitions
[people/ms/u-boot.git] / dts / Kconfig
index c56c1299c09f65e445e80fe1da6e12516b74834c..b3009af03f593e1fe10de352150b050b0ab24c88 100644 (file)
@@ -14,6 +14,16 @@ config OF_CONTROL
          This feature provides for run-time configuration of U-Boot
          via a flattened device tree.
 
+config OF_BOARD_FIXUP
+       bool "Board-specific manipulation of Device Tree"
+       help
+         In certain circumstances it is necessary to be able to modify
+         U-Boot's device tree (e.g. to delete device from it). This option
+         make the Device Tree writeable and provides a board-specific
+         "board_fix_fdt" callback (called during pre-relocation time), which
+         enables the board initialization to modifiy the Device Tree. The
+         modified copy is subsequently used by U-Boot after relocation.
+
 config SPL_OF_CONTROL
        bool "Enable run-time configuration via Device Tree in SPL"
        depends on SPL && OF_CONTROL
@@ -22,6 +32,17 @@ 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 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
+         can invalidate driver-model device tree offsets. This option
+         enables a live tree which is available after relocation,
+         and can be adjusted as needed.
+
 choice
        prompt "Provider of DTB for DT control"
        depends on OF_CONTROL
@@ -41,6 +62,14 @@ config OF_EMBED
          and development only and is not recommended for production devices.
          Boards in the mainline U-Boot tree should not use it.
 
+config OF_BOARD
+       bool "Provided by the board at runtime"
+       depends on !SANDBOX
+       help
+         If this option is enabled, the device tree will be provided by
+         the board at runtime if the board supports it, instead of being
+         bundled with the image.
+
 config OF_HOSTFILE
        bool "Host filed DTB for DT control"
        depends on SANDBOX
@@ -73,8 +102,8 @@ config OF_LIST
 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 "interrupt-parent" if SPL_PINCTRL && SPL_CLK
+       default "clocks clock-names interrupt-parent" if SPL_PINCTRL
        default "pinctrl-0 pinctrl-names interrupt-parent" if SPL_CLK
        default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent"
        help
@@ -85,4 +114,25 @@ config OF_SPL_REMOVE_PROPS
          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