Merge branch '2020-01-27-master-imports'
[oweals/u-boot.git] / dts / Kconfig
index 3e85914d115399927379abd1ee4fd579a1c6f302..046a54a17366fc3b194b1941092f1ac353b659c7 100644 (file)
@@ -25,6 +25,7 @@ menu "Device Tree Control"
 config OF_CONTROL
        bool "Run-time configuration via Device Tree"
        select DTC
+       select OF_LIBFDT if !OF_PLATDATA
        help
          This feature provides for run-time configuration of U-Boot
          via a flattened device tree.
@@ -42,14 +43,16 @@ config OF_BOARD_FIXUP
 config SPL_OF_CONTROL
        bool "Enable run-time configuration via Device Tree in SPL"
        depends on SPL && OF_CONTROL
+       select SPL_OF_LIBFDT if !SPL_OF_PLATDATA
        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
+         which is not enough to support device tree. Disable 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
+       select TPL_OF_LIBFDT if !TPL_OF_PLATDATA
        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
@@ -130,6 +133,71 @@ config OF_LIST
          device tree files (without the directory or .dtb suffix)
          separated by <space>.
 
+config OF_OVERLAY_LIST
+       string "List of device tree overlays to include for DT control"
+       depends on SPL_LOAD_FIT_APPLY_OVERLAY
+       help
+         This option specifies a list of device tree overlays to use for DT
+         control. This option can then be used by a FIT generator to include
+         the overlays in the FIT image.
+
+choice
+       prompt "OF LIST compression"
+       depends on MULTI_DTB_FIT
+       default MULTI_DTB_FIT_NO_COMPRESSION
+
+config MULTI_DTB_FIT_LZO
+       bool "LZO"
+       depends on SYS_MALLOC_F
+       select LZO
+       help
+         Compress the FIT image containing the DTBs available for the SPL
+         using LZO compression. (requires lzop on host).
+
+config MULTI_DTB_FIT_GZIP
+       bool "GZIP"
+       depends on SYS_MALLOC_F
+       select GZIP
+       help
+         Compress the FIT image containing the DTBs available for the SPL
+         using GZIP compression. (requires gzip on host)
+
+config 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 (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
+       default MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
+
+config MULTI_DTB_FIT_DYN_ALLOC
+       bool "Dynamically allocate the memory"
+       depends on SYS_MALLOC_F
+
+config MULTI_DTB_FIT_USER_DEFINED_AREA
+       bool "User-defined location"
+endchoice
+
+config MULTI_DTB_FIT_UNCOMPRESS_SZ
+       hex "Size of memory reserved to uncompress the DTBs"
+       depends on (MULTI_DTB_FIT_GZIP || 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
+          SYS_MALLOC_F_LEN is big enough to contain it.
+
+config MULTI_DTB_FIT_USER_DEF_ADDR
+       hex "Address of memory where dtbs are uncompressed"
+       depends on 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 DTB_RESELECT
        bool "Support swapping dtbs at a later point in boot"
@@ -234,10 +302,10 @@ config SPL_MULTI_DTB_FIT_USER_DEF_ADDR
 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 && 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"
+       default "interrupt-parent interrupts" if SPL_PINCTRL && SPL_CLK
+       default "clocks clock-names interrupt-parent interrupts" if SPL_PINCTRL
+       default "pinctrl-0 pinctrl-names interrupt-parent interrupts" if SPL_CLK
+       default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent interrupts"
        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
@@ -246,6 +314,26 @@ config OF_SPL_REMOVE_PROPS
          can be discarded. This option defines the list of properties to
          discard.
 
+config OF_DTB_PROPS_REMOVE
+       bool "Enable removal of device tree properties"
+       depends on OF_CONTROL
+       help
+         Some boards have restricted amount of storage for U-Boot image.
+         If the generated binary doesn't fit into available image storage,
+         the built-in device tree could probably be cut down by removing
+         some not required device tree properties to reduce the image size.
+         Enable this option and define the properties to be removed in the
+         CONFIG_OF_REMOVE_PROPS list. Do not enable this option if you must
+         pass the built-in DTB directly to the kernel!
+
+config OF_REMOVE_PROPS
+       string "List of device tree properties to drop"
+       depends on OF_DTB_PROPS_REMOVE
+       default "interrupt-parent interrupts" if PINCTRL
+       help
+         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