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 DEPRECATED
  24        bool
  25        help
  26          This option cannot be enabled.  It it used as a dependency for
  27          code that relies on deprecated features that will be removed and
  28          the conversion deadline has passed.
  29
  30config LOCALVERSION
  31        string "Local version - append to U-Boot release"
  32        help
  33          Append an extra string to the end of your U-Boot version.
  34          This will show up in your boot log, for example.
  35          The string you set here will be appended after the contents of
  36          any files with a filename matching localversion* in your
  37          object and source tree, in that order.  Your total string can
  38          be a maximum of 64 characters.
  39
  40config LOCALVERSION_AUTO
  41        bool "Automatically append version information to the version string"
  42        default y
  43        help
  44          This will try to automatically determine if the current tree is a
  45          release tree by looking for Git tags that belong to the current
  46          top of tree revision.
  47
  48          A string of the format -gxxxxxxxx will be added to the localversion
  49          if a Git-based tree is found.  The string generated by this will be
  50          appended after any matching localversion* files, and after the value
  51          set in CONFIG_LOCALVERSION.
  52
  53          (The actual string used here is the first eight characters produced
  54          by running the command:
  55
  56            $ git rev-parse --verify HEAD
  57
  58          which is done within the script "scripts/setlocalversion".)
  59
  60config CC_OPTIMIZE_FOR_SIZE
  61        bool "Optimize for size"
  62        default y
  63        help
  64          Enabling this option will pass "-Os" instead of "-O2" to gcc
  65          resulting in a smaller U-Boot image.
  66
  67          This option is enabled by default for U-Boot.
  68
  69config CC_COVERAGE
  70        bool "Enable code coverage analysis"
  71        depends on SANDBOX
  72        help
  73          Enabling this option will pass "--coverage" to gcc to compile
  74          and link code instrumented for coverage analysis.
  75
  76config DISTRO_DEFAULTS
  77        bool "Select defaults suitable for booting general purpose Linux distributions"
  78        select AUTO_COMPLETE
  79        select CMDLINE_EDITING
  80        select CMD_BOOTI if ARM64
  81        select CMD_BOOTZ if ARM && !ARM64
  82        select CMD_DHCP if CMD_NET
  83        select CMD_ENV_EXISTS
  84        select CMD_EXT2
  85        select CMD_EXT4
  86        select CMD_FAT
  87        select CMD_FS_GENERIC
  88        select CMD_PART if PARTITIONS
  89        select CMD_PING if CMD_NET
  90        select CMD_PXE if NET
  91        select ENV_VARS_UBOOT_CONFIG
  92        select HUSH_PARSER
  93        select SUPPORT_RAW_INITRD
  94        select SYS_LONGHELP
  95        imply CMD_MII if NET
  96        imply USB_STORAGE
  97        imply USE_BOOTCOMMAND
  98        help
  99          Select this to enable various options and commands which are suitable
 100          for building u-boot for booting general purpose Linux distributions.
 101
 102config ENV_VARS_UBOOT_CONFIG
 103        bool "Add arch, board, vendor and soc variables to default environment"
 104        help
 105          Define this in order to add variables describing the
 106          U-Boot build configuration to the default environment.
 107          These will be named arch, cpu, board, vendor, and soc.
 108          Enabling this option will cause the following to be defined:
 109          - CONFIG_SYS_ARCH
 110          - CONFIG_SYS_CPU
 111          - CONFIG_SYS_BOARD
 112          - CONFIG_SYS_VENDOR
 113          - CONFIG_SYS_SOC
 114
 115config NR_DRAM_BANKS
 116        int "Number of DRAM banks"
 117        default 4
 118        help
 119          This defines the number of DRAM banks.
 120
 121config SYS_BOOT_GET_CMDLINE
 122        bool "Enable kernel command line setup"
 123        help
 124          Enables allocating and saving kernel cmdline in space between
 125          "bootm_low" and "bootm_low" + BOOTMAPSZ.
 126
 127config SYS_BOOT_GET_KBD
 128        bool "Enable kernel board information setup"
 129        help
 130          Enables allocating and saving a kernel copy of the bd_info in
 131          space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
 132
 133config SYS_MALLOC_F
 134        bool "Enable malloc() pool before relocation"
 135        default y if DM
 136
 137        help
 138          Before relocation, memory is very limited on many platforms. Still,
 139          we can provide a small malloc() pool if needed. Driver model in
 140          particular needs this to operate, so that it can allocate the
 141          initial serial device and any others that are needed.
 142
 143config SYS_MALLOC_F_LEN
 144        hex "Size of malloc() pool before relocation"
 145        depends on SYS_MALLOC_F
 146        default 0x1000 if AM33XX
 147        default 0x2800 if SANDBOX
 148        default 0x2000 if (ARCH_IMX8 || ARCH_IMX8M || ARCH_MX7 || \
 149                           ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5)
 150        default 0x400
 151        help
 152          Before relocation, memory is very limited on many platforms. Still,
 153          we can provide a small malloc() pool if needed. Driver model in
 154          particular needs this to operate, so that it can allocate the
 155          initial serial device and any others that are needed.
 156
 157config SYS_MALLOC_LEN
 158        hex "Define memory for Dynamic allocation"
 159        depends on ARCH_ZYNQ || ARCH_VERSAL || ARCH_STM32MP
 160        help
 161          This defines memory to be allocated for Dynamic allocation
 162          TODO: Use for other architectures
 163
 164config SPL_SYS_MALLOC_F_LEN
 165        hex "Size of malloc() pool in SPL before relocation"
 166        depends on SYS_MALLOC_F
 167        default 0x2800 if RCAR_GEN3
 168        default SYS_MALLOC_F_LEN
 169        help
 170          Before relocation, memory is very limited on many platforms. Still,
 171          we can provide a small malloc() pool if needed. Driver model in
 172          particular needs this to operate, so that it can allocate the
 173          initial serial device and any others that are needed.
 174
 175config TPL_SYS_MALLOC_F_LEN
 176        hex "Size of malloc() pool in TPL before relocation"
 177        depends on SYS_MALLOC_F
 178        default SYS_MALLOC_F_LEN
 179        help
 180          Before relocation, memory is very limited on many platforms. Still,
 181          we can provide a small malloc() pool if needed. Driver model in
 182          particular needs this to operate, so that it can allocate the
 183          initial serial device and any others that are needed.
 184
 185menuconfig EXPERT
 186        bool "Configure standard U-Boot features (expert users)"
 187        default y
 188        help
 189          This option allows certain base U-Boot options and settings
 190          to be disabled or tweaked. This is for specialized
 191          environments which can tolerate a "non-standard" U-Boot.
 192          Use this only if you really know what you are doing.
 193
 194if EXPERT
 195        config SYS_MALLOC_CLEAR_ON_INIT
 196        bool "Init with zeros the memory reserved for malloc (slow)"
 197        default y
 198        help
 199          This setting is enabled by default. The reserved malloc
 200          memory is initialized with zeros, so first malloc calls
 201          will return the pointer to the zeroed memory. But this
 202          slows the boot time.
 203
 204          It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
 205          value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
 206          Then the boot time can be significantly reduced.
 207          Warning:
 208          When disabling this, please check if malloc calls, maybe
 209          should be replaced by calloc - if one expects zeroed memory.
 210
 211config TOOLS_DEBUG
 212        bool "Enable debug information for tools"
 213        help
 214          Enable generation of debug information for tools such as mkimage.
 215          This can be used for debugging purposes. With debug information
 216          it is possible to set breakpoints on particular lines, single-step
 217          debug through the source code, etc.
 218
 219endif # EXPERT
 220
 221config PHYS_64BIT
 222        bool "64bit physical address support"
 223        help
 224          Say Y here to support 64bit physical memory address.
 225          This can be used not only for 64bit SoCs, but also for
 226          large physical address extension on 32bit SoCs.
 227
 228config BUILD_ROM
 229        bool "Build U-Boot as BIOS replacement"
 230        depends on X86
 231        help
 232          This option allows to build a ROM version of U-Boot.
 233          The build process generally requires several binary blobs
 234          which are not shipped in the U-Boot source tree.
 235          Please, see doc/README.x86 for details.
 236
 237config SPL_IMAGE
 238        string "SPL image used in the combined SPL+U-Boot image"
 239        default "spl/boot.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
 240        default "spl/u-boot-spl.bin"
 241        help
 242          Select the SPL build target that shall be generated by the SPL
 243          build process (default spl/u-boot-spl.bin). This image will be
 244          used to generate a combined image with SPL and main U-Boot
 245          proper as one single image.
 246
 247config BUILD_TARGET
 248        string "Build target special images"
 249        default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_ARRIA10
 250        default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_GEN5
 251        default "u-boot-spl.kwb" if ARCH_MVEBU && SPL
 252        default "u-boot-elf.srec" if RCAR_GEN3
 253        default "u-boot.itb" if SPL_LOAD_FIT && (ROCKCHIP_RK3399 || ARCH_SUNXI)
 254        default "u-boot.kwb" if KIRKWOOD
 255        default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
 256        help
 257          Some SoCs need special image types (e.g. U-Boot binary
 258          with a special header) as build targets. By defining
 259          CONFIG_BUILD_TARGET in the SoC / board header, this
 260          special image will be automatically built upon calling
 261          make / buildman.
 262
 263config SYS_CUSTOM_LDSCRIPT
 264        bool "Use a custom location for the U-Boot linker script"
 265        help
 266          Normally when linking U-Boot we will look in the board directory,
 267          the CPU directory and finally the "cpu" directory of the architecture
 268          for the ile "u-boot.lds" and use that as our linker.  However, in
 269          some cases we need to provide a different linker script.  To do so,
 270          enable this option and then provide the location under
 271          CONFIG_SYS_LDSCRIPT.
 272
 273config SYS_LDSCRIPT
 274        depends on SYS_CUSTOM_LDSCRIPT
 275        string "Custom ldscript location"
 276        help
 277          Path within the source tree to the linker script to use for the
 278          main U-Boot binary.
 279
 280endmenu         # General setup
 281
 282menu "Boot images"
 283
 284config ANDROID_BOOT_IMAGE
 285        bool "Enable support for Android Boot Images"
 286        default y if FASTBOOT
 287        help
 288          This enables support for booting images which use the Android
 289          image format header.
 290
 291config FIT
 292        bool "Support Flattened Image Tree"
 293        select MD5
 294        select SHA1
 295        help
 296          This option allows you to boot the new uImage structure,
 297          Flattened Image Tree.  FIT is formally a FDT, which can include
 298          images of various types (kernel, FDT blob, ramdisk, etc.)
 299          in a single blob.  To boot this new uImage structure,
 300          pass the address of the blob to the "bootm" command.
 301          FIT is very flexible, supporting compression, multiple images,
 302          multiple configurations, verification through hashing and also
 303          verified boot (secure boot using RSA).
 304
 305if FIT
 306
 307config FIT_EXTERNAL_OFFSET
 308        hex "FIT external data offset"
 309        default 0x0
 310        help
 311          This specifies a data offset in fit image.
 312          The offset is from data payload offset to the beginning of
 313          fit image header. When specifies a offset, specific data
 314          could be put in the hole between data payload and fit image
 315          header, such as CSF data on i.MX platform.
 316
 317config FIT_ENABLE_SHA256_SUPPORT
 318        bool "Support SHA256 checksum of FIT image contents"
 319        default y
 320        select SHA256
 321        help
 322          Enable this to support SHA256 checksum of FIT image contents. A
 323          SHA256 checksum is a 256-bit (32-byte) hash value used to check that
 324          the image contents have not been corrupted. SHA256 is recommended
 325          for use in secure applications since (as at 2016) there is no known
 326          feasible attack that could produce a 'collision' with differing
 327          input data. Use this for the highest security. Note that only the
 328          SHA256 variant is supported: SHA512 and others are not currently
 329          supported in U-Boot.
 330
 331config FIT_SIGNATURE
 332        bool "Enable signature verification of FIT uImages"
 333        depends on DM
 334        select HASH
 335        select RSA
 336        help
 337          This option enables signature verification of FIT uImages,
 338          using a hash signed and verified using RSA. If
 339          CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
 340          hashing is available using hardware, then the RSA library will use
 341          it. See doc/uImage.FIT/signature.txt for more details.
 342
 343          WARNING: When relying on signed FIT images with a required signature
 344          check the legacy image format is disabled by default, so that
 345          unsigned images cannot be loaded. If a board needs the legacy image
 346          format support in this case, enable it using
 347          CONFIG_IMAGE_FORMAT_LEGACY.
 348
 349config FIT_SIGNATURE_MAX_SIZE
 350        hex "Max size of signed FIT structures"
 351        depends on FIT_SIGNATURE
 352        default 0x10000000
 353        help
 354          This option sets a max size in bytes for verified FIT uImages.
 355          A sane value of 256MB protects corrupted DTB structures from overlapping
 356          device memory. Assure this size does not extend past expected storage
 357          space.
 358
 359config FIT_ENABLE_RSASSA_PSS_SUPPORT
 360        bool "Support rsassa-pss signature scheme of FIT image contents"
 361        depends on FIT_SIGNATURE
 362        default n
 363        help
 364          Enable this to support the pss padding algorithm as described
 365          in the rfc8017 (https://tools.ietf.org/html/rfc8017).
 366
 367config FIT_VERBOSE
 368        bool "Show verbose messages when FIT images fail"
 369        help
 370          Generally a system will have valid FIT images so debug messages
 371          are a waste of code space. If you are debugging your images then
 372          you can enable this option to get more verbose information about
 373          failures.
 374
 375config FIT_BEST_MATCH
 376        bool "Select the best match for the kernel device tree"
 377        help
 378          When no configuration is explicitly selected, default to the
 379          one whose fdt's compatibility field best matches that of
 380          U-Boot itself. A match is considered "best" if it matches the
 381          most specific compatibility entry of U-Boot's fdt's root node.
 382          The order of entries in the configuration's fdt is ignored.
 383
 384config FIT_IMAGE_POST_PROCESS
 385        bool "Enable post-processing of FIT artifacts after loading by U-Boot"
 386        depends on TI_SECURE_DEVICE
 387        help
 388          Allows doing any sort of manipulation to blobs after they got extracted
 389          from FIT images like stripping off headers or modifying the size of the
 390          blob, verification, authentication, decryption etc. in a platform or
 391          board specific way. In order to use this feature a platform or board-
 392          specific implementation of board_fit_image_post_process() must be
 393          provided. Also, anything done during this post-processing step would
 394          need to be comprehended in how the images were prepared before being
 395          injected into the FIT creation (i.e. the blobs would have been pre-
 396          processed before being added to the FIT image).
 397
 398if SPL
 399
 400config SPL_FIT
 401        bool "Support Flattened Image Tree within SPL"
 402        depends on SPL
 403        select SPL_OF_LIBFDT
 404
 405config SPL_FIT_PRINT
 406        bool "Support FIT printing within SPL"
 407        depends on SPL_FIT
 408        help
 409          Support printing the content of the fitImage in a verbose manner in SPL.
 410
 411config SPL_FIT_SIGNATURE
 412        bool "Enable signature verification of FIT firmware within SPL"
 413        depends on SPL_DM
 414        select SPL_FIT
 415        select SPL_RSA
 416
 417config SPL_LOAD_FIT
 418        bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
 419        select SPL_FIT
 420        help
 421          Normally with the SPL framework a legacy image is generated as part
 422          of the build. This contains U-Boot along with information as to
 423          where it should be loaded. This option instead enables generation
 424          of a FIT (Flat Image Tree) which provides more flexibility. In
 425          particular it can handle selecting from multiple device tree
 426          and passing the correct one to U-Boot.
 427
 428config SPL_LOAD_FIT_FULL
 429        bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
 430        select SPL_FIT
 431        help
 432          Normally with the SPL framework a legacy image is generated as part
 433          of the build. This contains U-Boot along with information as to
 434          where it should be loaded. This option instead enables generation
 435          of a FIT (Flat Image Tree) which provides more flexibility. In
 436          particular it can handle selecting from multiple device tree
 437          and passing the correct one to U-Boot.
 438
 439config SPL_FIT_IMAGE_POST_PROCESS
 440        bool "Enable post-processing of FIT artifacts after loading by the SPL"
 441        depends on SPL_LOAD_FIT
 442        help
 443          Allows doing any sort of manipulation to blobs after they got extracted
 444          from the U-Boot FIT image like stripping off headers or modifying the
 445          size of the blob, verification, authentication, decryption etc. in a
 446          platform or board specific way. In order to use this feature a platform
 447          or board-specific implementation of board_fit_image_post_process() must
 448          be provided. Also, anything done during this post-processing step would
 449          need to be comprehended in how the images were prepared before being
 450          injected into the FIT creation (i.e. the blobs would have been pre-
 451          processed before being added to the FIT image).
 452
 453config SPL_FIT_SOURCE
 454        string ".its source file for U-Boot FIT image"
 455        depends on SPL_FIT
 456        help
 457          Specifies a (platform specific) FIT source file to generate the
 458          U-Boot FIT image. This could specify further image to load and/or
 459          execute.
 460
 461config SPL_FIT_GENERATOR
 462        string ".its file generator script for U-Boot FIT image"
 463        depends on SPL_FIT
 464        default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI
 465        default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
 466        help
 467          Specifies a (platform specific) script file to generate the FIT
 468          source file used to build the U-Boot FIT image file. This gets
 469          passed a list of supported device tree file stub names to
 470          include in the generated image.
 471
 472endif # SPL
 473
 474endif # FIT
 475
 476config IMAGE_FORMAT_LEGACY
 477        bool "Enable support for the legacy image format"
 478        default y if !FIT_SIGNATURE
 479        help
 480          This option enables the legacy image format. It is enabled by
 481          default for backward compatibility, unless FIT_SIGNATURE is
 482          set where it is disabled so that unsigned images cannot be
 483          loaded. If a board needs the legacy image format support in this
 484          case, enable it here.
 485
 486config OF_BOARD_SETUP
 487        bool "Set up board-specific details in device tree before boot"
 488        depends on OF_LIBFDT
 489        help
 490          This causes U-Boot to call ft_board_setup() before booting into
 491          the Operating System. This function can set up various
 492          board-specific information in the device tree for use by the OS.
 493          The device tree is then passed to the OS.
 494
 495config OF_SYSTEM_SETUP
 496        bool "Set up system-specific details in device tree before boot"
 497        depends on OF_LIBFDT
 498        help
 499          This causes U-Boot to call ft_system_setup() before booting into
 500          the Operating System. This function can set up various
 501          system-specific information in the device tree for use by the OS.
 502          The device tree is then passed to the OS.
 503
 504config OF_STDOUT_VIA_ALIAS
 505        bool "Update the device-tree stdout alias from U-Boot"
 506        depends on OF_LIBFDT
 507        help
 508          This uses U-Boot's serial alias from the aliases node to update
 509          the device tree passed to the OS. The "linux,stdout-path" property
 510          in the chosen node is set to point to the correct serial node.
 511          This option currently references CONFIG_CONS_INDEX, which is
 512          incorrect when used with device tree as this option does not
 513          exist / should not be used.
 514
 515config SYS_EXTRA_OPTIONS
 516        string "Extra Options (DEPRECATED)"
 517        help
 518          The old configuration infrastructure (= mkconfig + boards.cfg)
 519          provided the extra options field. If you have something like
 520          "HAS_BAR,BAZ=64", the optional options
 521            #define CONFIG_HAS
 522            #define CONFIG_BAZ  64
 523          will be defined in include/config.h.
 524          This option was prepared for the smooth migration from the old
 525          configuration to Kconfig. Since this option will be removed sometime,
 526          new boards should not use this option.
 527
 528config SYS_TEXT_BASE
 529        depends on !NIOS2 && !XTENSA
 530        depends on !EFI_APP
 531        default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
 532        default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
 533        default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
 534        default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S
 535        hex "Text Base"
 536        help
 537          The address in memory that U-Boot will be running from, initially.
 538
 539
 540
 541config SYS_CLK_FREQ
 542        depends on ARC || ARCH_SUNXI || MPC83xx
 543        int "CPU clock frequency"
 544        help
 545          TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
 546
 547config ARCH_FIXUP_FDT_MEMORY
 548        bool "Enable arch_fixup_memory_banks() call"
 549        default y
 550        help
 551          Enable FDT memory map syncup before OS boot. This feature can be
 552          used for booting OS with different memory setup where the part of
 553          the memory location should be used for different purpose.
 554
 555endmenu         # Boot images
 556
 557source "api/Kconfig"
 558
 559source "common/Kconfig"
 560
 561source "cmd/Kconfig"
 562
 563source "disk/Kconfig"
 564
 565source "dts/Kconfig"
 566
 567source "env/Kconfig"
 568
 569source "net/Kconfig"
 570
 571source "drivers/Kconfig"
 572
 573source "fs/Kconfig"
 574
 575source "lib/Kconfig"
 576
 577source "test/Kconfig"
 578