uboot/Kconfig
<<
>>
Prefs
   1#
   2# For a description of the syntax of this configuration file,
   3# see the file Documentation/kbuild/kconfig-language.txt in the
   4# Linux kernel source tree.
   5#
   6mainmenu "U-Boot $UBOOTVERSION Configuration"
   7
   8config UBOOTVERSION
   9        string
  10        option env="UBOOTVERSION"
  11
  12# Allow defaults in arch-specific code to override any given here
  13source "arch/Kconfig"
  14
  15menu "General setup"
  16
  17config BROKEN
  18        bool
  19        help
  20          This option cannot be enabled. It is used as dependency
  21          for broken and incomplete features.
  22
  23config LOCALVERSION
  24        string "Local version - append to U-Boot release"
  25        help
  26          Append an extra string to the end of your U-Boot version.
  27          This will show up in your boot log, for example.
  28          The string you set here will be appended after the contents of
  29          any files with a filename matching localversion* in your
  30          object and source tree, in that order.  Your total string can
  31          be a maximum of 64 characters.
  32
  33config LOCALVERSION_AUTO
  34        bool "Automatically append version information to the version string"
  35        default y
  36        help
  37          This will try to automatically determine if the current tree is a
  38          release tree by looking for Git tags that belong to the current
  39          top of tree revision.
  40
  41          A string of the format -gxxxxxxxx will be added to the localversion
  42          if a Git-based tree is found.  The string generated by this will be
  43          appended after any matching localversion* files, and after the value
  44          set in CONFIG_LOCALVERSION.
  45
  46          (The actual string used here is the first eight characters produced
  47          by running the command:
  48
  49            $ git rev-parse --verify HEAD
  50
  51          which is done within the script "scripts/setlocalversion".)
  52
  53config CC_OPTIMIZE_FOR_SIZE
  54        bool "Optimize for size"
  55        default y
  56        help
  57          Enabling this option will pass "-Os" instead of "-O2" to gcc
  58          resulting in a smaller U-Boot image.
  59
  60          This option is enabled by default for U-Boot.
  61
  62config DISTRO_DEFAULTS
  63        bool "Select defaults suitable for booting general purpose Linux distributions"
  64        default y if ARCH_SUNXI || TEGRA
  65        default y if ARCH_LS2080A
  66        default y if ARCH_MESON
  67        default y if ARCH_ROCKCHIP
  68        default n
  69        select CMD_BOOTZ if ARM && !ARM64
  70        select CMD_BOOTI if ARM64
  71        select CMD_DHCP
  72        select CMD_PXE
  73        select CMD_EXT2
  74        select CMD_EXT4
  75        select CMD_FAT
  76        select CMD_FS_GENERIC
  77        select CMD_MII
  78        select CMD_PING
  79        select CMD_PART
  80        select HUSH_PARSER
  81        help
  82          Select this to enable various options and commands which are suitable
  83          for building u-boot for booting general purpose Linux distributions.
  84
  85config SYS_MALLOC_F
  86        bool "Enable malloc() pool before relocation"
  87        default y if DM
  88        help
  89          Before relocation, memory is very limited on many platforms. Still,
  90          we can provide a small malloc() pool if needed. Driver model in
  91          particular needs this to operate, so that it can allocate the
  92          initial serial device and any others that are needed.
  93
  94config SYS_MALLOC_F_LEN
  95        hex "Size of malloc() pool before relocation"
  96        depends on SYS_MALLOC_F
  97        default 0x400
  98        help
  99          Before relocation, memory is very limited on many platforms. Still,
 100          we can provide a small malloc() pool if needed. Driver model in
 101          particular needs this to operate, so that it can allocate the
 102          initial serial device and any others that are needed.
 103
 104config SPL_SYS_MALLOC_F_LEN
 105        hex "Size of malloc() pool in SPL before relocation"
 106        depends on SYS_MALLOC_F
 107        default SYS_MALLOC_F_LEN
 108        help
 109          Before relocation, memory is very limited on many platforms. Still,
 110          we can provide a small malloc() pool if needed. Driver model in
 111          particular needs this to operate, so that it can allocate the
 112          initial serial device and any others that are needed.
 113
 114config TPL_SYS_MALLOC_F_LEN
 115        hex "Size of malloc() pool in TPL before relocation"
 116        depends on SYS_MALLOC_F
 117        default SYS_MALLOC_F_LEN
 118        help
 119          Before relocation, memory is very limited on many platforms. Still,
 120          we can provide a small malloc() pool if needed. Driver model in
 121          particular needs this to operate, so that it can allocate the
 122          initial serial device and any others that are needed.
 123
 124menuconfig EXPERT
 125        bool "Configure standard U-Boot features (expert users)"
 126        default y
 127        help
 128          This option allows certain base U-Boot options and settings
 129          to be disabled or tweaked. This is for specialized
 130          environments which can tolerate a "non-standard" U-Boot.
 131          Use this only if you really know what you are doing.
 132
 133if EXPERT
 134        config SYS_MALLOC_CLEAR_ON_INIT
 135        bool "Init with zeros the memory reserved for malloc (slow)"
 136        default y
 137        help
 138          This setting is enabled by default. The reserved malloc
 139          memory is initialized with zeros, so first malloc calls
 140          will return the pointer to the zeroed memory. But this
 141          slows the boot time.
 142
 143          It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
 144          value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
 145          Then the boot time can be significantly reduced.
 146          Warning:
 147          When disabling this, please check if malloc calls, maybe
 148          should be replaced by calloc - if one expects zeroed memory.
 149
 150config TOOLS_DEBUG
 151        bool "Enable debug information for tools"
 152        help
 153          Enable generation of debug information for tools such as mkimage.
 154          This can be used for debugging purposes. With debug information
 155          it is possible to set breakpoints on particular lines, single-step
 156          debug through the source code, etc.
 157
 158endif # EXPERT
 159
 160config PHYS_64BIT
 161        bool "64bit physical address support"
 162        help
 163          Say Y here to support 64bit physical memory address.
 164          This can be used not only for 64bit SoCs, but also for
 165          large physical address extention on 32bit SoCs.
 166
 167config BUILD_ROM
 168        bool "Build U-Boot as BIOS replacement"
 169        depends on X86
 170        help
 171          This option allows to build a ROM version of U-Boot.
 172          The build process generally requires several binary blobs
 173          which are not shipped in the U-Boot source tree.
 174          Please, see doc/README.x86 for details.
 175
 176endmenu         # General setup
 177
 178menu "Boot images"
 179
 180config ANDROID_BOOT_IMAGE
 181        bool "Enable support for Android Boot Images"
 182        default y if FASTBOOT
 183        help
 184          This enables support for booting images which use the Android
 185          image format header.
 186
 187config FIT
 188        bool "Support Flattened Image Tree"
 189        select MD5
 190        select SHA1
 191        help
 192          This option allows you to boot the new uImage structure,
 193          Flattened Image Tree.  FIT is formally a FDT, which can include
 194          images of various types (kernel, FDT blob, ramdisk, etc.)
 195          in a single blob.  To boot this new uImage structure,
 196          pass the address of the blob to the "bootm" command.
 197          FIT is very flexible, supporting compression, multiple images,
 198          multiple configurations, verification through hashing and also
 199          verified boot (secure boot using RSA).
 200
 201if FIT
 202
 203config FIT_ENABLE_SHA256_SUPPORT
 204        bool "Support SHA256 checksum of FIT image contents"
 205        select SHA256
 206        default y
 207        help
 208          Enable this to support SHA256 checksum of FIT image contents. A
 209          SHA256 checksum is a 256-bit (32-byte) hash value used to check that
 210          the image contents have not been corrupted. SHA256 is recommended
 211          for use in secure applications since (as at 2016) there is no known
 212          feasible attack that could produce a 'collision' with differing
 213          input data. Use this for the highest security. Note that only the
 214          SHA256 variant is supported: SHA512 and others are not currently
 215          supported in U-Boot.
 216
 217config FIT_SIGNATURE
 218        bool "Enable signature verification of FIT uImages"
 219        depends on DM
 220        select RSA
 221        help
 222          This option enables signature verification of FIT uImages,
 223          using a hash signed and verified using RSA. If
 224          CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
 225          hashing is available using hardware, then the RSA library will use
 226          it. See doc/uImage.FIT/signature.txt for more details.
 227
 228          WARNING: When relying on signed FIT images with a required signature
 229          check the legacy image format is disabled by default, so that
 230          unsigned images cannot be loaded. If a board needs the legacy image
 231          format support in this case, enable it using
 232          CONFIG_IMAGE_FORMAT_LEGACY.
 233
 234config FIT_VERBOSE
 235        bool "Show verbose messages when FIT images fail"
 236        help
 237          Generally a system will have valid FIT images so debug messages
 238          are a waste of code space. If you are debugging your images then
 239          you can enable this option to get more verbose information about
 240          failures.
 241
 242config FIT_BEST_MATCH
 243        bool "Select the best match for the kernel device tree"
 244        help
 245          When no configuration is explicitly selected, default to the
 246          one whose fdt's compatibility field best matches that of
 247          U-Boot itself. A match is considered "best" if it matches the
 248          most specific compatibility entry of U-Boot's fdt's root node.
 249          The order of entries in the configuration's fdt is ignored.
 250
 251config FIT_IMAGE_POST_PROCESS
 252        bool "Enable post-processing of FIT artifacts after loading by U-Boot"
 253        depends on TI_SECURE_DEVICE
 254        help
 255          Allows doing any sort of manipulation to blobs after they got extracted
 256          from FIT images like stripping off headers or modifying the size of the
 257          blob, verification, authentication, decryption etc. in a platform or
 258          board specific way. In order to use this feature a platform or board-
 259          specific implementation of board_fit_image_post_process() must be
 260          provided. Also, anything done during this post-processing step would
 261          need to be comprehended in how the images were prepared before being
 262          injected into the FIT creation (i.e. the blobs would have been pre-
 263          processed before being added to the FIT image).
 264
 265if SPL
 266
 267config SPL_FIT
 268        bool "Support Flattened Image Tree within SPL"
 269        depends on SPL
 270        select SPL_OF_LIBFDT
 271
 272config SPL_FIT_SIGNATURE
 273        bool "Enable signature verification of FIT firmware within SPL"
 274        depends on SPL_DM
 275        select SPL_FIT
 276        select SPL_RSA
 277
 278config SPL_LOAD_FIT
 279        bool "Enable SPL loading U-Boot as a FIT"
 280        select SPL_FIT
 281        help
 282          Normally with the SPL framework a legacy image is generated as part
 283          of the build. This contains U-Boot along with information as to
 284          where it should be loaded. This option instead enables generation
 285          of a FIT (Flat Image Tree) which provides more flexibility. In
 286          particular it can handle selecting from multiple device tree
 287          and passing the correct one to U-Boot.
 288
 289config SPL_FIT_IMAGE_POST_PROCESS
 290        bool "Enable post-processing of FIT artifacts after loading by the SPL"
 291        depends on SPL_LOAD_FIT
 292        help
 293          Allows doing any sort of manipulation to blobs after they got extracted
 294          from the U-Boot FIT image like stripping off headers or modifying the
 295          size of the blob, verification, authentication, decryption etc. in a
 296          platform or board specific way. In order to use this feature a platform
 297          or board-specific implementation of board_fit_image_post_process() must
 298          be provided. Also, anything done during this post-processing step would
 299          need to be comprehended in how the images were prepared before being
 300          injected into the FIT creation (i.e. the blobs would have been pre-
 301          processed before being added to the FIT image).
 302
 303config SPL_FIT_SOURCE
 304        string ".its source file for U-Boot FIT image"
 305        depends on SPL_FIT
 306        help
 307          Specifies a (platform specific) FIT source file to generate the
 308          U-Boot FIT image. This could specify further image to load and/or
 309          execute.
 310
 311config SPL_FIT_GENERATOR
 312        string ".its file generator script for U-Boot FIT image"
 313        depends on SPL_FIT
 314        default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI
 315        help
 316          Specifies a (platform specific) script file to generate the FIT
 317          source file used to build the U-Boot FIT image file. This gets
 318          passed a list of supported device tree file stub names to
 319          include in the generated image.
 320
 321endif # SPL
 322
 323endif # FIT
 324
 325config OF_BOARD_SETUP
 326        bool "Set up board-specific details in device tree before boot"
 327        depends on OF_LIBFDT
 328        help
 329          This causes U-Boot to call ft_board_setup() before booting into
 330          the Operating System. This function can set up various
 331          board-specific information in the device tree for use by the OS.
 332          The device tree is then passed to the OS.
 333
 334config OF_SYSTEM_SETUP
 335        bool "Set up system-specific details in device tree before boot"
 336        depends on OF_LIBFDT
 337        help
 338          This causes U-Boot to call ft_system_setup() before booting into
 339          the Operating System. This function can set up various
 340          system-specific information in the device tree for use by the OS.
 341          The device tree is then passed to the OS.
 342
 343config OF_STDOUT_VIA_ALIAS
 344        bool "Update the device-tree stdout alias from U-Boot"
 345        depends on OF_LIBFDT
 346        help
 347          This uses U-Boot's serial alias from the aliases node to update
 348          the device tree passed to the OS. The "linux,stdout-path" property
 349          in the chosen node is set to point to the correct serial node.
 350          This option currently references CONFIG_CONS_INDEX, which is
 351          incorrect when used with device tree as this option does not
 352          exist / should not be used.
 353
 354config SYS_EXTRA_OPTIONS
 355        string "Extra Options (DEPRECATED)"
 356        help
 357          The old configuration infrastructure (= mkconfig + boards.cfg)
 358          provided the extra options field. If you have something like
 359          "HAS_BAR,BAZ=64", the optional options
 360            #define CONFIG_HAS
 361            #define CONFIG_BAZ  64
 362          will be defined in include/config.h.
 363          This option was prepared for the smooth migration from the old
 364          configuration to Kconfig. Since this option will be removed sometime,
 365          new boards should not use this option.
 366
 367config SYS_TEXT_BASE
 368        depends on ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
 369                (M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS || \
 370                ARCH_ZYNQ || ARCH_KEYSTONE || ARCH_OMAP2PLUS
 371        depends on !EFI_APP
 372        hex "Text Base"
 373        help
 374          TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
 375
 376        default 0x80800000 if ARCH_OMAP2PLUS
 377
 378
 379config SYS_CLK_FREQ
 380        depends on ARC || ARCH_SUNXI
 381        int "CPU clock frequency"
 382        help
 383          TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
 384
 385config ARCH_FIXUP_FDT_MEMORY
 386        bool "Enable arch_fixup_memory_banks() call"
 387        default y
 388        help
 389          Enable FDT memory map syncup before OS boot. This feature can be
 390          used for booting OS with different memory setup where the part of
 391          the memory location should be used for different purpose.
 392
 393endmenu         # Boot images
 394
 395source "api/Kconfig"
 396
 397source "common/Kconfig"
 398
 399source "cmd/Kconfig"
 400
 401source "disk/Kconfig"
 402
 403source "dts/Kconfig"
 404
 405source "env/Kconfig"
 406
 407source "net/Kconfig"
 408
 409source "drivers/Kconfig"
 410
 411source "fs/Kconfig"
 412
 413source "lib/Kconfig"
 414
 415source "test/Kconfig"
 416