uboot/dts/Kconfig
<<
>>
Prefs
   1#
   2# Device Tree Control
   3#
   4
   5config SUPPORT_OF_CONTROL
   6        bool
   7
   8config DTC
   9        bool
  10
  11config PYLIBFDT
  12        bool
  13
  14config DTOC
  15        bool
  16        select PYLIBFDT
  17
  18config BINMAN
  19        bool
  20        select DTOC
  21
  22menu "Device Tree Control"
  23        depends on SUPPORT_OF_CONTROL
  24
  25config OF_CONTROL
  26        bool "Run-time configuration via Device Tree"
  27        select DTC
  28        help
  29          This feature provides for run-time configuration of U-Boot
  30          via a flattened device tree.
  31
  32config OF_BOARD_FIXUP
  33        bool "Board-specific manipulation of Device Tree"
  34        help
  35          In certain circumstances it is necessary to be able to modify
  36          U-Boot's device tree (e.g. to delete device from it). This option
  37          make the Device Tree writeable and provides a board-specific
  38          "board_fix_fdt" callback (called during pre-relocation time), which
  39          enables the board initialization to modifiy the Device Tree. The
  40          modified copy is subsequently used by U-Boot after relocation.
  41
  42config SPL_OF_CONTROL
  43        bool "Enable run-time configuration via Device Tree in SPL"
  44        depends on SPL && OF_CONTROL
  45        help
  46          Some boards use device tree in U-Boot but only have 4KB of SRAM
  47          which is not enough to support device tree. Enable this option to
  48          allow such boards to be supported by U-Boot SPL.
  49
  50config TPL_OF_CONTROL
  51        bool "Enable run-time configuration via Device Tree in TPL"
  52        depends on TPL && OF_CONTROL
  53        help
  54          Some boards use device tree in U-Boot but only have 4KB of SRAM
  55          which is not enough to support device tree. Enable this option to
  56          allow such boards to be supported by U-Boot TPL.
  57
  58config OF_LIVE
  59        bool "Enable use of a live tree"
  60        depends on OF_CONTROL
  61        help
  62          Normally U-Boot uses a flat device tree which saves space and
  63          avoids the need to unpack the tree before use. However a flat
  64          tree does not support modifcation from within U-Boot since it
  65          can invalidate driver-model device tree offsets. This option
  66          enables a live tree which is available after relocation,
  67          and can be adjusted as needed.
  68
  69choice
  70        prompt "Provider of DTB for DT control"
  71        depends on OF_CONTROL
  72
  73config OF_SEPARATE
  74        bool "Separate DTB for DT control"
  75        depends on !SANDBOX
  76        help
  77          If this option is enabled, the device tree will be built and
  78          placed as a separate u-boot.dtb file alongside the U-Boot image.
  79
  80config OF_EMBED
  81        bool "Embedded DTB for DT control"
  82        help
  83          If this option is enabled, the device tree will be picked up and
  84          built into the U-Boot image. This is suitable for local debugging
  85          and development only and is not recommended for production devices.
  86          Boards in the mainline U-Boot tree should not use it.
  87
  88config OF_BOARD
  89        bool "Provided by the board at runtime"
  90        depends on !SANDBOX
  91        help
  92          If this option is enabled, the device tree will be provided by
  93          the board at runtime if the board supports it, instead of being
  94          bundled with the image.
  95
  96config OF_HOSTFILE
  97        bool "Host filed DTB for DT control"
  98        depends on SANDBOX
  99        help
 100          If this option is enabled, DTB will be read from a file on startup.
 101          This is only useful for Sandbox.  Use the -d flag to U-Boot to
 102          specify the file to read.
 103
 104endchoice
 105
 106config DEFAULT_DEVICE_TREE
 107        string "Default Device Tree for DT control"
 108        depends on OF_CONTROL
 109        help
 110          This option specifies the default Device Tree used for DT control.
 111          It can be overridden from the command line:
 112          $ make DEVICE_TREE=<device-tree-name>
 113
 114config OF_LIST
 115        string "List of device tree files to include for DT control"
 116        depends on SPL_LOAD_FIT || MULTI_DTB_FIT
 117        default DEFAULT_DEVICE_TREE
 118        help
 119          This option specifies a list of device tree files to use for DT
 120          control. These will be packaged into a FIT. At run-time, U-boot
 121          or SPL will select the correct DT to use by examining the
 122          hardware (e.g. reading a board ID value). This is a list of
 123          device tree files (without the directory or .dtb suffix)
 124          separated by <space>.
 125
 126
 127config DTB_RESELECT
 128        bool "Support swapping dtbs at a later point in boot"
 129        depends on MULTI_DTB_FIT
 130        help
 131          It is possible during initial boot you may need to use a generic
 132          dtb until you can fully determine the board your running on. This
 133          config allows boards to implement a function at a later point
 134          during boot to switch to the "correct" dtb.
 135
 136config MULTI_DTB_FIT
 137        bool "Support embedding several DTBs in a FIT image for u-boot"
 138        help
 139          This option provides hooks to allow U-boot to parse an
 140          appended FIT image and enable board specific code to then select
 141          the correct DTB to be used. Use this if you need to support
 142          multiple DTBs but don't use the SPL.
 143
 144
 145config SPL_MULTI_DTB_FIT
 146        depends on SPL_LOAD_FIT && SPL_OF_CONTROL && !SPL_OF_PLATDATA
 147        bool "Support embedding several DTBs in a FIT image for the SPL"
 148        help
 149          This option provides the SPL with the ability to select its own
 150          DTB at runtime from an appended FIT image containing several DTBs.
 151          This allows using the same SPL binary on multiple platforms.
 152          The primary purpose is to handle different versions of
 153          the same platform without tweaking the platform code if the
 154          differences can be expressed in the DTBs (common examples are: bus
 155          capabilities, pad configurations).
 156
 157config SPL_OF_LIST
 158        string "List of device tree files to include for DT control in SPL"
 159        depends on SPL_MULTI_DTB_FIT
 160        default OF_LIST
 161        help
 162          This option specifies a list of device tree files to use for DT
 163          control in the SPL. These will be packaged into a FIT. At run-time,
 164          the SPL will select the correct DT to use by examining the
 165          hardware (e.g. reading a board ID value). This is a list of
 166          device tree files (without the directory or .dtb suffix)
 167          separated by <space>.
 168
 169choice
 170        prompt "SPL OF LIST compression"
 171        depends on SPL_MULTI_DTB_FIT
 172        default SPL_MULTI_DTB_FIT_LZO
 173
 174config SPL_MULTI_DTB_FIT_LZO
 175        bool "LZO"
 176        depends on SYS_MALLOC_F
 177        select SPL_LZO
 178        help
 179          Compress the FIT image containing the DTBs available for the SPL
 180          using LZO compression. (requires lzop on host).
 181
 182config SPL_MULTI_DTB_FIT_GZIP
 183        bool "GZIP"
 184        depends on SYS_MALLOC_F
 185        select SPL_GZIP
 186        help
 187          Compress the FIT image containing the DTBs available for the SPL
 188          using GZIP compression. (requires gzip on host)
 189
 190config SPL_MULTI_DTB_FIT_NO_COMPRESSION
 191        bool "No compression"
 192        help
 193          Do not compress the FIT image containing the DTBs available for the SPL.
 194          Use this options only if LZO is not available and the DTBs are very small.
 195endchoice
 196
 197choice
 198        prompt "Location of uncompressed DTBs "
 199        depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
 200        default SPL_MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
 201
 202config SPL_MULTI_DTB_FIT_DYN_ALLOC
 203        bool "Dynamically allocate the memory"
 204        depends on SYS_MALLOC_F
 205
 206config SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
 207        bool "User-defined location"
 208endchoice
 209
 210config SPL_MULTI_DTB_FIT_UNCOMPRESS_SZ
 211        hex "Size of memory reserved to uncompress the DTBs"
 212        depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
 213        default 0x8000
 214        help
 215           This is the size of this area where the DTBs are uncompressed.
 216           If this area is dynamically allocated, make sure that
 217           SPL_SYS_MALLOC_F_LEN is big enough to contain it.
 218
 219config SPL_MULTI_DTB_FIT_USER_DEF_ADDR
 220        hex "Address of memory where dtbs are uncompressed"
 221        depends on SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
 222        help
 223           the FIT image containing the DTBs is uncompressed in an area defined
 224           at compilation time. This is the address of this area. It must be
 225           aligned on 2-byte boundary.
 226
 227config OF_SPL_REMOVE_PROPS
 228        string "List of device tree properties to drop for SPL"
 229        depends on SPL_OF_CONTROL
 230        default "interrupt-parent" if SPL_PINCTRL && SPL_CLK
 231        default "clocks clock-names interrupt-parent" if SPL_PINCTRL
 232        default "pinctrl-0 pinctrl-names interrupt-parent" if SPL_CLK
 233        default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent"
 234        help
 235          Since SPL normally runs in a reduced memory space, the device tree
 236          is cut down to only what is needed to load and start U-Boot. Only
 237          nodes marked with the property "u-boot,dm-pre-reloc" will be
 238          included. In addition, some properties are not used by U-Boot and
 239          can be discarded. This option defines the list of properties to
 240          discard.
 241
 242config SPL_OF_PLATDATA
 243        bool "Generate platform data for use in SPL"
 244        depends on SPL_OF_CONTROL
 245        select DTOC
 246        help
 247          For very constrained SPL environments the overhead of decoding
 248          device tree nodes and converting their contents into platform data
 249          is too large. This overhead includes libfdt code as well as the
 250          device tree contents itself. The latter is fairly compact, but the
 251          former can add 3KB or more to a Thumb 2 Image.
 252
 253          This option enables generation of platform data from the device
 254          tree as C code. This code creates devices using U_BOOT_DEVICE()
 255          declarations. The benefit is that it allows driver code to access
 256          the platform data directly in C structures, avoidin the libfdt
 257          overhead.
 258
 259          This option works by generating C structure declarations for each
 260          compatible string, then adding platform data and U_BOOT_DEVICE
 261          declarations for each node. See README.platdata for more
 262          information.
 263
 264config TPL_OF_PLATDATA
 265        bool "Generate platform data for use in TPL"
 266        depends on TPL_OF_CONTROL
 267        select DTOC
 268        help
 269          For very constrained SPL environments the overhead of decoding
 270          device tree nodes and converting their contents into platform data
 271          is too large. This overhead includes libfdt code as well as the
 272          device tree contents itself. The latter is fairly compact, but the
 273          former can add 3KB or more to a Thumb 2 Image.
 274
 275          This option enables generation of platform data from the device
 276          tree as C code. This code creates devices using U_BOOT_DEVICE()
 277          declarations. The benefit is that it allows driver code to access
 278          the platform data directly in C structures, avoidin the libfdt
 279          overhead.
 280
 281          This option works by generating C structure declarations for each
 282          compatible string, then adding platform data and U_BOOT_DEVICE
 283          declarations for each node. See README.platdata for more
 284          information.
 285
 286endmenu
 287
 288config MKIMAGE_DTC_PATH
 289        string "Path to dtc binary for use within mkimage"
 290        default "dtc"
 291        help
 292          The mkimage host tool will, in order to generate FIT images make
 293          calls to the dtc application in order to create the output.  In
 294          some cases the system dtc may not support all required features
 295          and the path to a different version should be given here.
 296