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