Home | History | Annotate | Download | only in u-boot
      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 #
      6 mainmenu "U-Boot $UBOOTVERSION Configuration"
      7 
      8 config UBOOTVERSION
      9 	string
     10 	option env="UBOOTVERSION"
     11 
     12 # Allow defaults in arch-specific code to override any given here
     13 source "arch/Kconfig"
     14 
     15 menu "General setup"
     16 
     17 config BROKEN
     18 	bool
     19 	help
     20 	  This option cannot be enabled. It is used as dependency
     21 	  for broken and incomplete features.
     22 
     23 config 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 
     33 config 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 
     53 config 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 
     62 config 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 
     69 config 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 
     94 config 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 
    107 config 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 
    113 config 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 
    119 config 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 
    128 config 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 
    139 config 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 
    149 config 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 
    159 menuconfig 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 
    168 if 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 
    185 config 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 
    193 endif # EXPERT
    194 
    195 config 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 
    202 config 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 
    211 endmenu		# General setup
    212 
    213 menu "Boot images"
    214 
    215 config 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 
    222 config 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 
    236 if FIT
    237 
    238 config 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 
    252 config 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 
    270 config 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 
    278 config 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 
    287 config 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 
    301 if SPL
    302 
    303 config SPL_FIT
    304 	bool "Support Flattened Image Tree within SPL"
    305 	depends on SPL
    306 	select SPL_OF_LIBFDT
    307 
    308 config 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 
    314 config 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 
    320 config 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 
    331 config 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 
    342 config 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 
    356 config 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 
    364 config 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 
    374 endif # SPL
    375 
    376 endif # FIT
    377 
    378 config 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 
    388 config 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 
    397 config 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 
    406 config 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 
    417 config 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 
    430 config 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 
    443 config 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 
    449 config 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 
    457 endmenu		# Boot images
    458 
    459 source "api/Kconfig"
    460 
    461 source "common/Kconfig"
    462 
    463 source "cmd/Kconfig"
    464 
    465 source "disk/Kconfig"
    466 
    467 source "dts/Kconfig"
    468 
    469 source "env/Kconfig"
    470 
    471 source "net/Kconfig"
    472 
    473 source "drivers/Kconfig"
    474 
    475 source "fs/Kconfig"
    476 
    477 source "lib/Kconfig"
    478 
    479 source "test/Kconfig"
    480