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