Merge branch '2020-01-27-master-imports'
[oweals/u-boot.git] / dts / Kconfig
index daa757dd56631601faa437467ef26662e3ac97a9..046a54a17366fc3b194b1941092f1ac353b659c7 100644 (file)
@@ -8,12 +8,24 @@ config SUPPORT_OF_CONTROL
 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
+       select OF_LIBFDT if !OF_PLATDATA
        help
          This feature provides for run-time configuration of U-Boot
          via a flattened device tree.
@@ -31,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
@@ -50,7 +64,7 @@ config OF_LIVE
        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.
@@ -90,6 +104,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
@@ -112,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"
@@ -184,7 +270,7 @@ config SPL_MULTI_DTB_FIT_NO_COMPRESSION
 endchoice
 
 choice
-       prompt "Location of uncompressed DTBs "
+       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
 
@@ -216,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
@@ -228,9 +314,30 @@ 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
+       select DTOC
        help
          For very constrained SPL environments the overhead of decoding
          device tree nodes and converting their contents into platform data
@@ -246,12 +353,12 @@ config SPL_OF_PLATDATA
 
          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.
+         declarations for each node. See of-plat.txt 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
@@ -267,8 +374,7 @@ config TPL_OF_PLATDATA
 
          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.
+         declarations for each node. See of-plat.txt for more information.
 
 endmenu