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