Kconfig 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036
  1. menu "Boot options"
  2. menu "Boot images"
  3. config ANDROID_BOOT_IMAGE
  4. bool "Enable support for Android Boot Images"
  5. default y if FASTBOOT
  6. help
  7. This enables support for booting images which use the Android
  8. image format header.
  9. config FIT
  10. bool "Support Flattened Image Tree"
  11. select HASH
  12. select MD5
  13. select SHA1
  14. imply SHA256
  15. help
  16. This option allows you to boot the new uImage structure,
  17. Flattened Image Tree. FIT is formally a FDT, which can include
  18. images of various types (kernel, FDT blob, ramdisk, etc.)
  19. in a single blob. To boot this new uImage structure,
  20. pass the address of the blob to the "bootm" command.
  21. FIT is very flexible, supporting compression, multiple images,
  22. multiple configurations, verification through hashing and also
  23. verified boot (secure boot using RSA).
  24. if FIT
  25. config FIT_EXTERNAL_OFFSET
  26. hex "FIT external data offset"
  27. default 0x0
  28. help
  29. This specifies a data offset in fit image.
  30. The offset is from data payload offset to the beginning of
  31. fit image header. When specifies a offset, specific data
  32. could be put in the hole between data payload and fit image
  33. header, such as CSF data on i.MX platform.
  34. config FIT_FULL_CHECK
  35. bool "Do a full check of the FIT before using it"
  36. default y
  37. help
  38. Enable this do a full check of the FIT to make sure it is valid. This
  39. helps to protect against carefully crafted FITs which take advantage
  40. of bugs or omissions in the code. This includes a bad structure,
  41. multiple root nodes and the like.
  42. config FIT_SIGNATURE
  43. bool "Enable signature verification of FIT uImages"
  44. depends on DM
  45. select HASH
  46. imply RSA
  47. imply RSA_VERIFY
  48. select IMAGE_SIGN_INFO
  49. select FIT_FULL_CHECK
  50. help
  51. This option enables signature verification of FIT uImages,
  52. using a hash signed and verified using RSA. If
  53. CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
  54. hashing is available using hardware, then the RSA library will use
  55. it. See doc/uImage.FIT/signature.txt for more details.
  56. WARNING: When relying on signed FIT images with a required signature
  57. check the legacy image format is disabled by default, so that
  58. unsigned images cannot be loaded. If a board needs the legacy image
  59. format support in this case, enable it using
  60. CONFIG_LEGACY_IMAGE_FORMAT.
  61. config FIT_SIGNATURE_MAX_SIZE
  62. hex "Max size of signed FIT structures"
  63. depends on FIT_SIGNATURE
  64. default 0x10000000
  65. help
  66. This option sets a max size in bytes for verified FIT uImages.
  67. A sane value of 256MB protects corrupted DTB structures from overlapping
  68. device memory. Assure this size does not extend past expected storage
  69. space.
  70. config FIT_RSASSA_PSS
  71. bool "Support rsassa-pss signature scheme of FIT image contents"
  72. depends on FIT_SIGNATURE
  73. help
  74. Enable this to support the pss padding algorithm as described
  75. in the rfc8017 (https://tools.ietf.org/html/rfc8017).
  76. config FIT_CIPHER
  77. bool "Enable ciphering data in a FIT uImages"
  78. depends on DM
  79. select AES
  80. help
  81. Enable the feature of data ciphering/unciphering in the tool mkimage
  82. and in the u-boot support of the FIT image.
  83. config FIT_VERBOSE
  84. bool "Show verbose messages when FIT images fail"
  85. help
  86. Generally a system will have valid FIT images so debug messages
  87. are a waste of code space. If you are debugging your images then
  88. you can enable this option to get more verbose information about
  89. failures.
  90. config FIT_BEST_MATCH
  91. bool "Select the best match for the kernel device tree"
  92. help
  93. When no configuration is explicitly selected, default to the
  94. one whose fdt's compatibility field best matches that of
  95. U-Boot itself. A match is considered "best" if it matches the
  96. most specific compatibility entry of U-Boot's fdt's root node.
  97. The order of entries in the configuration's fdt is ignored.
  98. config FIT_IMAGE_POST_PROCESS
  99. bool "Enable post-processing of FIT artifacts after loading by U-Boot"
  100. depends on TI_SECURE_DEVICE || SOCFPGA_SECURE_VAB_AUTH
  101. help
  102. Allows doing any sort of manipulation to blobs after they got extracted
  103. from FIT images like stripping off headers or modifying the size of the
  104. blob, verification, authentication, decryption etc. in a platform or
  105. board specific way. In order to use this feature a platform or board-
  106. specific implementation of board_fit_image_post_process() must be
  107. provided. Also, anything done during this post-processing step would
  108. need to be comprehended in how the images were prepared before being
  109. injected into the FIT creation (i.e. the blobs would have been pre-
  110. processed before being added to the FIT image).
  111. config FIT_PRINT
  112. bool "Support FIT printing"
  113. default y
  114. help
  115. Support printing the content of the fitImage in a verbose manner.
  116. if SPL
  117. config SPL_FIT
  118. bool "Support Flattened Image Tree within SPL"
  119. depends on SPL
  120. select SPL_HASH
  121. select SPL_OF_LIBFDT
  122. config SPL_FIT_PRINT
  123. bool "Support FIT printing within SPL"
  124. depends on SPL_FIT
  125. help
  126. Support printing the content of the fitImage in a verbose manner in SPL.
  127. config SPL_FIT_FULL_CHECK
  128. bool "Do a full check of the FIT before using it"
  129. help
  130. Enable this do a full check of the FIT to make sure it is valid. This
  131. helps to protect against carefully crafted FITs which take advantage
  132. of bugs or omissions in the code. This includes a bad structure,
  133. multiple root nodes and the like.
  134. config SPL_FIT_SIGNATURE
  135. bool "Enable signature verification of FIT firmware within SPL"
  136. depends on SPL_DM
  137. depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
  138. select FIT_SIGNATURE
  139. select SPL_FIT
  140. select SPL_CRYPTO
  141. select SPL_HASH
  142. imply SPL_RSA
  143. imply SPL_RSA_VERIFY
  144. select SPL_IMAGE_SIGN_INFO
  145. select SPL_FIT_FULL_CHECK
  146. config SPL_FIT_SIGNATURE_MAX_SIZE
  147. hex "Max size of signed FIT structures in SPL"
  148. depends on SPL_FIT_SIGNATURE
  149. default 0x10000000
  150. help
  151. This option sets a max size in bytes for verified FIT uImages.
  152. A sane value of 256MB protects corrupted DTB structures from overlapping
  153. device memory. Assure this size does not extend past expected storage
  154. space.
  155. config SPL_FIT_RSASSA_PSS
  156. bool "Support rsassa-pss signature scheme of FIT image contents in SPL"
  157. depends on SPL_FIT_SIGNATURE
  158. help
  159. Enable this to support the pss padding algorithm as described
  160. in the rfc8017 (https://tools.ietf.org/html/rfc8017) in SPL.
  161. config SPL_LOAD_FIT
  162. bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
  163. select SPL_FIT
  164. help
  165. Normally with the SPL framework a legacy image is generated as part
  166. of the build. This contains U-Boot along with information as to
  167. where it should be loaded. This option instead enables generation
  168. of a FIT (Flat Image Tree) which provides more flexibility. In
  169. particular it can handle selecting from multiple device tree
  170. and passing the correct one to U-Boot.
  171. This path has the following limitations:
  172. 1. "loadables" images, other than FDTs, which do not have a "load"
  173. property will not be loaded. This limitation also applies to FPGA
  174. images with the correct "compatible" string.
  175. 2. For FPGA images, only the "compatible" = "u-boot,fpga-legacy"
  176. loading method is supported.
  177. 3. FDTs are only loaded for images with an "os" property of "u-boot".
  178. "linux" images are also supported with Falcon boot mode.
  179. config SPL_LOAD_FIT_ADDRESS
  180. hex "load address of fit image"
  181. depends on SPL_LOAD_FIT
  182. default 0x0
  183. help
  184. Specify the load address of the fit image that will be loaded
  185. by SPL.
  186. config SPL_LOAD_FIT_APPLY_OVERLAY
  187. bool "Enable SPL applying DT overlays from FIT"
  188. depends on SPL_LOAD_FIT
  189. select OF_LIBFDT_OVERLAY
  190. help
  191. The device tree is loaded from the FIT image. Allow the SPL is to
  192. also load device-tree overlays from the FIT image an apply them
  193. over the device tree.
  194. config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
  195. depends on SPL_LOAD_FIT_APPLY_OVERLAY
  196. default 0x10000
  197. hex "size of temporary buffer used to load the overlays"
  198. help
  199. The size of the area where the overlays will be loaded and
  200. uncompress. Must be at least as large as biggest overlay
  201. (uncompressed)
  202. config SPL_LOAD_FIT_FULL
  203. bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
  204. select SPL_FIT
  205. help
  206. Normally with the SPL framework a legacy image is generated as part
  207. of the build. This contains U-Boot along with information as to
  208. where it should be loaded. This option instead enables generation
  209. of a FIT (Flat Image Tree) which provides more flexibility. In
  210. particular it can handle selecting from multiple device tree
  211. and passing the correct one to U-Boot.
  212. config SPL_FIT_IMAGE_POST_PROCESS
  213. bool "Enable post-processing of FIT artifacts after loading by the SPL"
  214. depends on SPL_LOAD_FIT
  215. help
  216. Allows doing any sort of manipulation to blobs after they got extracted
  217. from the U-Boot FIT image like stripping off headers or modifying the
  218. size of the blob, verification, authentication, decryption etc. in a
  219. platform or board specific way. In order to use this feature a platform
  220. or board-specific implementation of board_fit_image_post_process() must
  221. be provided. Also, anything done during this post-processing step would
  222. need to be comprehended in how the images were prepared before being
  223. injected into the FIT creation (i.e. the blobs would have been pre-
  224. processed before being added to the FIT image).
  225. config SPL_FIT_SOURCE
  226. string ".its source file for U-Boot FIT image"
  227. depends on SPL_FIT
  228. help
  229. Specifies a (platform specific) FIT source file to generate the
  230. U-Boot FIT image. This could specify further image to load and/or
  231. execute.
  232. config USE_SPL_FIT_GENERATOR
  233. bool "Use a script to generate the .its script"
  234. default y if SPL_FIT && (!ARCH_SUNXI && !RISCV)
  235. config SPL_FIT_GENERATOR
  236. string ".its file generator script for U-Boot FIT image"
  237. depends on USE_SPL_FIT_GENERATOR
  238. default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
  239. default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
  240. help
  241. Specifies a (platform specific) script file to generate the FIT
  242. source file used to build the U-Boot FIT image file. This gets
  243. passed a list of supported device tree file stub names to
  244. include in the generated image.
  245. endif # SPL
  246. endif # FIT
  247. config LEGACY_IMAGE_FORMAT
  248. bool "Enable support for the legacy image format"
  249. default y if !FIT_SIGNATURE
  250. help
  251. This option enables the legacy image format. It is enabled by
  252. default for backward compatibility, unless FIT_SIGNATURE is
  253. set where it is disabled so that unsigned images cannot be
  254. loaded. If a board needs the legacy image format support in this
  255. case, enable it here.
  256. config SUPPORT_RAW_INITRD
  257. bool "Enable raw initrd images"
  258. help
  259. Note, defining the SUPPORT_RAW_INITRD allows user to supply
  260. kernel with raw initrd images. The syntax is slightly different, the
  261. address of the initrd must be augmented by it's size, in the following
  262. format: "<initrd address>:<initrd size>".
  263. config OF_BOARD_SETUP
  264. bool "Set up board-specific details in device tree before boot"
  265. depends on OF_LIBFDT
  266. help
  267. This causes U-Boot to call ft_board_setup() before booting into
  268. the Operating System. This function can set up various
  269. board-specific information in the device tree for use by the OS.
  270. The device tree is then passed to the OS.
  271. config OF_SYSTEM_SETUP
  272. bool "Set up system-specific details in device tree before boot"
  273. depends on OF_LIBFDT
  274. help
  275. This causes U-Boot to call ft_system_setup() before booting into
  276. the Operating System. This function can set up various
  277. system-specific information in the device tree for use by the OS.
  278. The device tree is then passed to the OS.
  279. config OF_STDOUT_VIA_ALIAS
  280. bool "Update the device-tree stdout alias from U-Boot"
  281. depends on OF_LIBFDT
  282. help
  283. This uses U-Boot's serial alias from the aliases node to update
  284. the device tree passed to the OS. The "linux,stdout-path" property
  285. in the chosen node is set to point to the correct serial node.
  286. This option currently references CONFIG_CONS_INDEX, which is
  287. incorrect when used with device tree as this option does not
  288. exist / should not be used.
  289. config SYS_EXTRA_OPTIONS
  290. string "Extra Options (DEPRECATED)"
  291. help
  292. The old configuration infrastructure (= mkconfig + boards.cfg)
  293. provided the extra options field. If you have something like
  294. "HAS_BAR,BAZ=64", the optional options
  295. #define CONFIG_HAS
  296. #define CONFIG_BAZ 64
  297. will be defined in include/config.h.
  298. This option was prepared for the smooth migration from the old
  299. configuration to Kconfig. Since this option will be removed sometime,
  300. new boards should not use this option.
  301. config HAVE_SYS_TEXT_BASE
  302. bool
  303. depends on !NIOS2 && !XTENSA
  304. depends on !EFI_APP
  305. default y
  306. config SYS_TEXT_BASE
  307. depends on HAVE_SYS_TEXT_BASE
  308. default 0x0 if POSITION_INDEPENDENT
  309. default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
  310. default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
  311. default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
  312. default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S
  313. hex "Text Base"
  314. help
  315. The address in memory that U-Boot will be running from, initially.
  316. config SYS_CLK_FREQ
  317. depends on ARC || ARCH_SUNXI || MPC83xx
  318. int "CPU clock frequency"
  319. help
  320. TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
  321. config ARCH_FIXUP_FDT_MEMORY
  322. bool "Enable arch_fixup_memory_banks() call"
  323. default y
  324. help
  325. Enable FDT memory map syncup before OS boot. This feature can be
  326. used for booting OS with different memory setup where the part of
  327. the memory location should be used for different purpose.
  328. config CHROMEOS
  329. bool "Support booting Chrome OS"
  330. help
  331. Chrome OS requires U-Boot to set up a table indicating the boot mode
  332. (e.g. Developer mode) and a few other things. Enable this if you are
  333. booting on a Chromebook to avoid getting an error about an invalid
  334. firmware ID.
  335. config CHROMEOS_VBOOT
  336. bool "Support Chrome OS verified boot"
  337. help
  338. This is intended to enable the full Chrome OS verified boot support
  339. in U-Boot. It is not actually implemented in the U-Boot source code
  340. at present, so this option is always set to 'n'. It allows
  341. distinguishing between booting Chrome OS in a basic way (developer
  342. mode) and a full boot.
  343. config RAMBOOT_PBL
  344. bool "Freescale PBL(pre-boot loader) image format support"
  345. help
  346. Some SoCs use PBL to load RCW and/or pre-initialization instructions.
  347. For more details refer to doc/README.pblimage
  348. config SYS_FSL_PBL_PBI
  349. string "PBI(pre-boot instructions) commands for the PBL image"
  350. depends on RAMBOOT_PBL
  351. help
  352. PBI commands can be used to configure SoC before it starts the execution.
  353. Please refer doc/README.pblimage for more details.
  354. config SYS_FSL_PBL_RCW
  355. string "Aadditional RCW (Power on reset configuration) for the PBL image"
  356. depends on RAMBOOT_PBL
  357. help
  358. Enables addition of RCW (Power on reset configuration) in built image.
  359. Please refer doc/README.pblimage for more details.
  360. endmenu # Boot images
  361. menu "Boot timing"
  362. config BOOTSTAGE
  363. bool "Boot timing and reporting"
  364. help
  365. Enable recording of boot time while booting. To use it, insert
  366. calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
  367. bootstage.h. Only a single entry is recorded for each ID. You can
  368. give the entry a name with bootstage_mark_name(). You can also
  369. record elapsed time in a particular stage using bootstage_start()
  370. before starting and bootstage_accum() when finished. Bootstage will
  371. add up all the accumulated time and report it.
  372. Normally, IDs are defined in bootstage.h but a small number of
  373. additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
  374. as the ID.
  375. Calls to show_boot_progress() will also result in log entries but
  376. these will not have names.
  377. config SPL_BOOTSTAGE
  378. bool "Boot timing and reported in SPL"
  379. depends on BOOTSTAGE
  380. help
  381. Enable recording of boot time in SPL. To make this visible to U-Boot
  382. proper, enable BOOTSTAGE_STASH as well. This will stash the timing
  383. information when SPL finishes and load it when U-Boot proper starts
  384. up.
  385. config TPL_BOOTSTAGE
  386. bool "Boot timing and reported in TPL"
  387. depends on BOOTSTAGE
  388. help
  389. Enable recording of boot time in SPL. To make this visible to U-Boot
  390. proper, enable BOOTSTAGE_STASH as well. This will stash the timing
  391. information when TPL finishes and load it when U-Boot proper starts
  392. up.
  393. config BOOTSTAGE_REPORT
  394. bool "Display a detailed boot timing report before booting the OS"
  395. depends on BOOTSTAGE
  396. help
  397. Enable output of a boot time report just before the OS is booted.
  398. This shows how long it took U-Boot to go through each stage of the
  399. boot process. The report looks something like this:
  400. Timer summary in microseconds:
  401. Mark Elapsed Stage
  402. 0 0 reset
  403. 3,575,678 3,575,678 board_init_f start
  404. 3,575,695 17 arch_cpu_init A9
  405. 3,575,777 82 arch_cpu_init done
  406. 3,659,598 83,821 board_init_r start
  407. 3,910,375 250,777 main_loop
  408. 29,916,167 26,005,792 bootm_start
  409. 30,361,327 445,160 start_kernel
  410. config BOOTSTAGE_RECORD_COUNT
  411. int "Number of boot stage records to store"
  412. depends on BOOTSTAGE
  413. default 30
  414. help
  415. This is the size of the bootstage record list and is the maximum
  416. number of bootstage records that can be recorded.
  417. config SPL_BOOTSTAGE_RECORD_COUNT
  418. int "Number of boot stage records to store for SPL"
  419. depends on SPL_BOOTSTAGE
  420. default 5
  421. help
  422. This is the size of the bootstage record list and is the maximum
  423. number of bootstage records that can be recorded.
  424. config TPL_BOOTSTAGE_RECORD_COUNT
  425. int "Number of boot stage records to store for TPL"
  426. depends on TPL_BOOTSTAGE
  427. default 5
  428. help
  429. This is the size of the bootstage record list and is the maximum
  430. number of bootstage records that can be recorded.
  431. config BOOTSTAGE_FDT
  432. bool "Store boot timing information in the OS device tree"
  433. depends on BOOTSTAGE
  434. help
  435. Stash the bootstage information in the FDT. A root 'bootstage'
  436. node is created with each bootstage id as a child. Each child
  437. has a 'name' property and either 'mark' containing the
  438. mark time in microseconds, or 'accum' containing the
  439. accumulated time for that bootstage id in microseconds.
  440. For example:
  441. bootstage {
  442. 154 {
  443. name = "board_init_f";
  444. mark = <3575678>;
  445. };
  446. 170 {
  447. name = "lcd";
  448. accum = <33482>;
  449. };
  450. };
  451. Code in the Linux kernel can find this in /proc/devicetree.
  452. config BOOTSTAGE_STASH
  453. bool "Stash the boot timing information in memory before booting OS"
  454. depends on BOOTSTAGE
  455. help
  456. Some OSes do not support device tree. Bootstage can instead write
  457. the boot timing information in a binary format at a given address.
  458. This happens through a call to bootstage_stash(), typically in
  459. the CPU's cleanup_before_linux() function. You can use the
  460. 'bootstage stash' and 'bootstage unstash' commands to do this on
  461. the command line.
  462. config BOOTSTAGE_STASH_ADDR
  463. hex "Address to stash boot timing information"
  464. default 0
  465. help
  466. Provide an address which will not be overwritten by the OS when it
  467. starts, so that it can read this information when ready.
  468. config BOOTSTAGE_STASH_SIZE
  469. hex "Size of boot timing stash region"
  470. default 0x1000
  471. help
  472. This should be large enough to hold the bootstage stash. A value of
  473. 4096 (4KiB) is normally plenty.
  474. config SHOW_BOOT_PROGRESS
  475. bool "Show boot progress in a board-specific manner"
  476. help
  477. Defining this option allows to add some board-specific code (calling
  478. a user-provided function show_boot_progress(int) that enables you to
  479. show the system's boot progress on some display (for example, some
  480. LEDs) on your board. At the moment, the following checkpoints are
  481. implemented:
  482. Legacy uImage format:
  483. Arg Where When
  484. 1 common/cmd_bootm.c before attempting to boot an image
  485. -1 common/cmd_bootm.c Image header has bad magic number
  486. 2 common/cmd_bootm.c Image header has correct magic number
  487. -2 common/cmd_bootm.c Image header has bad checksum
  488. 3 common/cmd_bootm.c Image header has correct checksum
  489. -3 common/cmd_bootm.c Image data has bad checksum
  490. 4 common/cmd_bootm.c Image data has correct checksum
  491. -4 common/cmd_bootm.c Image is for unsupported architecture
  492. 5 common/cmd_bootm.c Architecture check OK
  493. -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
  494. 6 common/cmd_bootm.c Image Type check OK
  495. -6 common/cmd_bootm.c gunzip uncompression error
  496. -7 common/cmd_bootm.c Unimplemented compression type
  497. 7 common/cmd_bootm.c Uncompression OK
  498. 8 common/cmd_bootm.c No uncompress/copy overwrite error
  499. -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
  500. 9 common/image.c Start initial ramdisk verification
  501. -10 common/image.c Ramdisk header has bad magic number
  502. -11 common/image.c Ramdisk header has bad checksum
  503. 10 common/image.c Ramdisk header is OK
  504. -12 common/image.c Ramdisk data has bad checksum
  505. 11 common/image.c Ramdisk data has correct checksum
  506. 12 common/image.c Ramdisk verification complete, start loading
  507. -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
  508. 13 common/image.c Start multifile image verification
  509. 14 common/image.c No initial ramdisk, no multifile, continue.
  510. 15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
  511. -30 arch/powerpc/lib/board.c Fatal error, hang the system
  512. -31 post/post.c POST test failed, detected by post_output_backlog()
  513. -32 post/post.c POST test failed, detected by post_run_single()
  514. 34 common/cmd_doc.c before loading a Image from a DOC device
  515. -35 common/cmd_doc.c Bad usage of "doc" command
  516. 35 common/cmd_doc.c correct usage of "doc" command
  517. -36 common/cmd_doc.c No boot device
  518. 36 common/cmd_doc.c correct boot device
  519. -37 common/cmd_doc.c Unknown Chip ID on boot device
  520. 37 common/cmd_doc.c correct chip ID found, device available
  521. -38 common/cmd_doc.c Read Error on boot device
  522. 38 common/cmd_doc.c reading Image header from DOC device OK
  523. -39 common/cmd_doc.c Image header has bad magic number
  524. 39 common/cmd_doc.c Image header has correct magic number
  525. -40 common/cmd_doc.c Error reading Image from DOC device
  526. 40 common/cmd_doc.c Image header has correct magic number
  527. 41 common/cmd_ide.c before loading a Image from a IDE device
  528. -42 common/cmd_ide.c Bad usage of "ide" command
  529. 42 common/cmd_ide.c correct usage of "ide" command
  530. -43 common/cmd_ide.c No boot device
  531. 43 common/cmd_ide.c boot device found
  532. -44 common/cmd_ide.c Device not available
  533. 44 common/cmd_ide.c Device available
  534. -45 common/cmd_ide.c wrong partition selected
  535. 45 common/cmd_ide.c partition selected
  536. -46 common/cmd_ide.c Unknown partition table
  537. 46 common/cmd_ide.c valid partition table found
  538. -47 common/cmd_ide.c Invalid partition type
  539. 47 common/cmd_ide.c correct partition type
  540. -48 common/cmd_ide.c Error reading Image Header on boot device
  541. 48 common/cmd_ide.c reading Image Header from IDE device OK
  542. -49 common/cmd_ide.c Image header has bad magic number
  543. 49 common/cmd_ide.c Image header has correct magic number
  544. -50 common/cmd_ide.c Image header has bad checksum
  545. 50 common/cmd_ide.c Image header has correct checksum
  546. -51 common/cmd_ide.c Error reading Image from IDE device
  547. 51 common/cmd_ide.c reading Image from IDE device OK
  548. 52 common/cmd_nand.c before loading a Image from a NAND device
  549. -53 common/cmd_nand.c Bad usage of "nand" command
  550. 53 common/cmd_nand.c correct usage of "nand" command
  551. -54 common/cmd_nand.c No boot device
  552. 54 common/cmd_nand.c boot device found
  553. -55 common/cmd_nand.c Unknown Chip ID on boot device
  554. 55 common/cmd_nand.c correct chip ID found, device available
  555. -56 common/cmd_nand.c Error reading Image Header on boot device
  556. 56 common/cmd_nand.c reading Image Header from NAND device OK
  557. -57 common/cmd_nand.c Image header has bad magic number
  558. 57 common/cmd_nand.c Image header has correct magic number
  559. -58 common/cmd_nand.c Error reading Image from NAND device
  560. 58 common/cmd_nand.c reading Image from NAND device OK
  561. -60 common/env_common.c Environment has a bad CRC, using default
  562. 64 net/eth.c starting with Ethernet configuration.
  563. -64 net/eth.c no Ethernet found.
  564. 65 net/eth.c Ethernet found.
  565. -80 common/cmd_net.c usage wrong
  566. 80 common/cmd_net.c before calling net_loop()
  567. -81 common/cmd_net.c some error in net_loop() occurred
  568. 81 common/cmd_net.c net_loop() back without error
  569. -82 common/cmd_net.c size == 0 (File with size 0 loaded)
  570. 82 common/cmd_net.c trying automatic boot
  571. 83 common/cmd_net.c running "source" command
  572. -83 common/cmd_net.c some error in automatic boot or "source" command
  573. 84 common/cmd_net.c end without errors
  574. FIT uImage format:
  575. Arg Where When
  576. 100 common/cmd_bootm.c Kernel FIT Image has correct format
  577. -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
  578. 101 common/cmd_bootm.c No Kernel subimage unit name, using configuration
  579. -101 common/cmd_bootm.c Can't get configuration for kernel subimage
  580. 102 common/cmd_bootm.c Kernel unit name specified
  581. -103 common/cmd_bootm.c Can't get kernel subimage node offset
  582. 103 common/cmd_bootm.c Found configuration node
  583. 104 common/cmd_bootm.c Got kernel subimage node offset
  584. -104 common/cmd_bootm.c Kernel subimage hash verification failed
  585. 105 common/cmd_bootm.c Kernel subimage hash verification OK
  586. -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
  587. 106 common/cmd_bootm.c Architecture check OK
  588. -106 common/cmd_bootm.c Kernel subimage has wrong type
  589. 107 common/cmd_bootm.c Kernel subimage type OK
  590. -107 common/cmd_bootm.c Can't get kernel subimage data/size
  591. 108 common/cmd_bootm.c Got kernel subimage data/size
  592. -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
  593. -109 common/cmd_bootm.c Can't get kernel subimage type
  594. -110 common/cmd_bootm.c Can't get kernel subimage comp
  595. -111 common/cmd_bootm.c Can't get kernel subimage os
  596. -112 common/cmd_bootm.c Can't get kernel subimage load address
  597. -113 common/cmd_bootm.c Image uncompress/copy overwrite error
  598. 120 common/image.c Start initial ramdisk verification
  599. -120 common/image.c Ramdisk FIT image has incorrect format
  600. 121 common/image.c Ramdisk FIT image has correct format
  601. 122 common/image.c No ramdisk subimage unit name, using configuration
  602. -122 common/image.c Can't get configuration for ramdisk subimage
  603. 123 common/image.c Ramdisk unit name specified
  604. -124 common/image.c Can't get ramdisk subimage node offset
  605. 125 common/image.c Got ramdisk subimage node offset
  606. -125 common/image.c Ramdisk subimage hash verification failed
  607. 126 common/image.c Ramdisk subimage hash verification OK
  608. -126 common/image.c Ramdisk subimage for unsupported architecture
  609. 127 common/image.c Architecture check OK
  610. -127 common/image.c Can't get ramdisk subimage data/size
  611. 128 common/image.c Got ramdisk subimage data/size
  612. 129 common/image.c Can't get ramdisk load address
  613. -129 common/image.c Got ramdisk load address
  614. -130 common/cmd_doc.c Incorrect FIT image format
  615. 131 common/cmd_doc.c FIT image format OK
  616. -140 common/cmd_ide.c Incorrect FIT image format
  617. 141 common/cmd_ide.c FIT image format OK
  618. -150 common/cmd_nand.c Incorrect FIT image format
  619. 151 common/cmd_nand.c FIT image format OK
  620. config SPL_SHOW_BOOT_PROGRESS
  621. bool "Show boot progress in a board-specific manner"
  622. depends on SPL
  623. help
  624. Defining this option allows to add some board-specific code (calling
  625. a user-provided function show_boot_progress(int) that enables you to
  626. show the system's boot progress on some display (for example, some
  627. LEDs) on your board. For details see SHOW_BOOT_PROGRESS.
  628. endmenu
  629. menu "Boot media"
  630. config NOR_BOOT
  631. bool "Support for booting from NOR flash"
  632. depends on NOR
  633. help
  634. Enabling this will make a U-Boot binary that is capable of being
  635. booted via NOR. In this case we will enable certain pinmux early
  636. as the ROM only partially sets up pinmux. We also default to using
  637. NOR for environment.
  638. config NAND_BOOT
  639. bool "Support for booting from NAND flash"
  640. imply MTD_RAW_NAND
  641. help
  642. Enabling this will make a U-Boot binary that is capable of being
  643. booted via NAND flash. This is not a must, some SoCs need this,
  644. some not.
  645. config ONENAND_BOOT
  646. bool "Support for booting from ONENAND"
  647. imply MTD_RAW_NAND
  648. help
  649. Enabling this will make a U-Boot binary that is capable of being
  650. booted via ONENAND. This is not a must, some SoCs need this,
  651. some not.
  652. config QSPI_BOOT
  653. bool "Support for booting from QSPI flash"
  654. help
  655. Enabling this will make a U-Boot binary that is capable of being
  656. booted via QSPI flash. This is not a must, some SoCs need this,
  657. some not.
  658. config SATA_BOOT
  659. bool "Support for booting from SATA"
  660. help
  661. Enabling this will make a U-Boot binary that is capable of being
  662. booted via SATA. This is not a must, some SoCs need this,
  663. some not.
  664. config SD_BOOT
  665. bool "Support for booting from SD/EMMC"
  666. help
  667. Enabling this will make a U-Boot binary that is capable of being
  668. booted via SD/EMMC. This is not a must, some SoCs need this,
  669. some not.
  670. config SPI_BOOT
  671. bool "Support for booting from SPI flash"
  672. help
  673. Enabling this will make a U-Boot binary that is capable of being
  674. booted via SPI flash. This is not a must, some SoCs need this,
  675. some not.
  676. endmenu
  677. menu "Autoboot options"
  678. config AUTOBOOT
  679. bool "Autoboot"
  680. default y
  681. help
  682. This enables the autoboot. See doc/README.autoboot for detail.
  683. config BOOTDELAY
  684. int "delay in seconds before automatically booting"
  685. default 2
  686. depends on AUTOBOOT
  687. help
  688. Delay before automatically running bootcmd;
  689. set to 0 to autoboot with no delay, but you can stop it by key input.
  690. set to -1 to disable autoboot.
  691. set to -2 to autoboot with no delay and not check for abort
  692. If this value is >= 0 then it is also used for the default delay
  693. before starting the default entry in bootmenu. If it is < 0 then
  694. a default value of 10s is used.
  695. See doc/README.autoboot for details.
  696. config AUTOBOOT_KEYED
  697. bool "Stop autobooting via specific input key / string"
  698. help
  699. This option enables stopping (aborting) of the automatic
  700. boot feature only by issuing a specific input key or
  701. string. If not enabled, any input key will abort the
  702. U-Boot automatic booting process and bring the device
  703. to the U-Boot prompt for user input.
  704. config AUTOBOOT_FLUSH_STDIN
  705. bool "Enable flushing stdin before starting to read the password"
  706. depends on AUTOBOOT_KEYED && !SANDBOX
  707. help
  708. When this option is enabled stdin buffer will be flushed before
  709. starting to read the password.
  710. This can't be enabled for the sandbox as flushing stdin would
  711. break the autoboot unit tests.
  712. config AUTOBOOT_PROMPT
  713. string "Autoboot stop prompt"
  714. depends on AUTOBOOT_KEYED
  715. default "Autoboot in %d seconds\\n"
  716. help
  717. This string is displayed before the boot delay selected by
  718. CONFIG_BOOTDELAY starts. If it is not defined there is no
  719. output indicating that autoboot is in progress.
  720. Note that this define is used as the (only) argument to a
  721. printf() call, so it may contain '%' format specifications,
  722. provided that it also includes, sepearated by commas exactly
  723. like in a printf statement, the required arguments. It is
  724. the responsibility of the user to select only such arguments
  725. that are valid in the given context.
  726. config AUTOBOOT_ENCRYPTION
  727. bool "Enable encryption in autoboot stopping"
  728. depends on AUTOBOOT_KEYED
  729. help
  730. This option allows a string to be entered into U-Boot to stop the
  731. autoboot.
  732. The behavior depends whether CONFIG_CRYPT_PW from lib is enabled
  733. or not.
  734. In case CONFIG_CRYPT_PW is enabled, the string will be forwarded
  735. to the crypt-based functionality and be compared against the
  736. string in the environment variable 'bootstopkeycrypt'.
  737. In case CONFIG_CRYPT_PW is disabled the string itself is hashed
  738. and compared against the hash in the environment variable
  739. 'bootstopkeysha256'.
  740. If it matches in either case then boot stops and
  741. a command-line prompt is presented.
  742. This provides a way to ship a secure production device which can also
  743. be accessed at the U-Boot command line.
  744. config AUTOBOOT_SHA256_FALLBACK
  745. bool "Allow fallback from crypt-hashed password to sha256"
  746. depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
  747. help
  748. This option adds support to fall back from crypt-hashed
  749. passwords to checking a SHA256 hashed password in case the
  750. 'bootstopusesha256' environment variable is set to 'true'.
  751. config AUTOBOOT_DELAY_STR
  752. string "Delay autobooting via specific input key / string"
  753. depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
  754. help
  755. This option delays the automatic boot feature by issuing
  756. a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
  757. or the environment variable "bootdelaykey" is specified
  758. and this string is received from console input before
  759. autoboot starts booting, U-Boot gives a command prompt. The
  760. U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
  761. used, otherwise it never times out.
  762. config AUTOBOOT_STOP_STR
  763. string "Stop autobooting via specific input key / string"
  764. depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
  765. help
  766. This option enables stopping (aborting) of the automatic
  767. boot feature only by issuing a specific input key or
  768. string. If CONFIG_AUTOBOOT_STOP_STR or the environment
  769. variable "bootstopkey" is specified and this string is
  770. received from console input before autoboot starts booting,
  771. U-Boot gives a command prompt. The U-Boot prompt never
  772. times out, even if CONFIG_BOOT_RETRY_TIME is used.
  773. config AUTOBOOT_KEYED_CTRLC
  774. bool "Enable Ctrl-C autoboot interruption"
  775. depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
  776. help
  777. This option allows for the boot sequence to be interrupted
  778. by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
  779. Setting this variable provides an escape sequence from the
  780. limited "password" strings.
  781. config AUTOBOOT_NEVER_TIMEOUT
  782. bool "Make the password entry never time-out"
  783. depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION && CRYPT_PW
  784. help
  785. This option removes the timeout from the password entry
  786. when the user first presses the <Enter> key before entering
  787. any other character.
  788. config AUTOBOOT_STOP_STR_ENABLE
  789. bool "Enable fixed string to stop autobooting"
  790. depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
  791. help
  792. This option enables the feature to add a fixed stop
  793. string that is defined at compile time.
  794. In every case it will be tried to load the stop
  795. string from the environment.
  796. In case this is enabled and there is no stop string
  797. in the environment, this will be used as default value.
  798. config AUTOBOOT_STOP_STR_CRYPT
  799. string "Stop autobooting via crypt-hashed password"
  800. depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW
  801. help
  802. This option adds the feature to only stop the autobooting,
  803. and therefore boot into the U-Boot prompt, when the input
  804. string / password matches a values that is hashed via
  805. one of the supported crypt-style password hashing options
  806. and saved in the environment variable "bootstopkeycrypt".
  807. config AUTOBOOT_STOP_STR_SHA256
  808. string "Stop autobooting via SHA256 hashed password"
  809. depends on AUTOBOOT_STOP_STR_ENABLE
  810. help
  811. This option adds the feature to only stop the autobooting,
  812. and therefore boot into the U-Boot prompt, when the input
  813. string / password matches a values that is encypted via
  814. a SHA256 hash and saved in the environment variable
  815. "bootstopkeysha256". If the value in that variable
  816. includes a ":", the portion prior to the ":" will be treated
  817. as a salt value.
  818. config AUTOBOOT_USE_MENUKEY
  819. bool "Allow a specify key to run a menu from the environment"
  820. depends on !AUTOBOOT_KEYED
  821. help
  822. If a specific key is pressed to stop autoboot, then the commands in
  823. the environment variable 'menucmd' are executed before boot starts.
  824. config AUTOBOOT_MENUKEY
  825. int "ASCII value of boot key to show a menu"
  826. default 0
  827. depends on AUTOBOOT_USE_MENUKEY
  828. help
  829. If this key is pressed to stop autoboot, then the commands in the
  830. environment variable 'menucmd' will be executed before boot starts.
  831. For example, 33 means "!" in ASCII, so pressing ! at boot would take
  832. this action.
  833. config AUTOBOOT_MENU_SHOW
  834. bool "Show a menu on boot"
  835. depends on CMD_BOOTMENU
  836. help
  837. This enables the boot menu, controlled by environment variables
  838. defined by the board. The menu starts after running the 'preboot'
  839. environmnent variable (if enabled) and before handling the boot delay.
  840. See README.bootmenu for more details.
  841. endmenu
  842. config USE_BOOTARGS
  843. bool "Enable boot arguments"
  844. help
  845. Provide boot arguments to bootm command. Boot arguments are specified
  846. in CONFIG_BOOTARGS option. Enable this option to be able to specify
  847. CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
  848. will be undefined and won't take any space in U-Boot image.
  849. config BOOTARGS
  850. string "Boot arguments"
  851. depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE
  852. help
  853. This can be used to pass arguments to the bootm command. The value of
  854. CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
  855. this value will also override the "chosen" node in FDT blob.
  856. config BOOTARGS_SUBST
  857. bool "Support substituting strings in boot arguments"
  858. help
  859. This allows substituting string values in the boot arguments. These
  860. are applied after the commandline has been built.
  861. One use for this is to insert the root-disk UUID into the command
  862. line where bootargs contains "root=${uuid}"
  863. setenv bootargs "console= root=${uuid}"
  864. # Set the 'uuid' environment variable
  865. part uuid mmc 2:2 uuid
  866. # Command-line substitution will put the real uuid into the
  867. # kernel command line
  868. bootm
  869. config USE_BOOTCOMMAND
  870. bool "Enable a default value for bootcmd"
  871. help
  872. Provide a default value for the bootcmd entry in the environment. If
  873. autoboot is enabled this is what will be run automatically. Enable
  874. this option to be able to specify CONFIG_BOOTCOMMAND as a string. If
  875. this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
  876. won't take any space in U-Boot image.
  877. config BOOTCOMMAND
  878. string "bootcmd value"
  879. depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
  880. default "run distro_bootcmd" if DISTRO_DEFAULTS
  881. help
  882. This is the string of commands that will be used as bootcmd and if
  883. AUTOBOOT is set, automatically run.
  884. config USE_PREBOOT
  885. bool "Enable preboot"
  886. help
  887. When this option is enabled, the existence of the environment
  888. variable "preboot" will be checked immediately before starting the
  889. CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp.
  890. entering interactive mode.
  891. This feature is especially useful when "preboot" is automatically
  892. generated or modified. For example, the boot code can modify the
  893. "preboot" when a user holds down a certain combination of keys.
  894. config PREBOOT
  895. string "preboot default value"
  896. depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE
  897. default "usb start" if USB_KEYBOARD
  898. default ""
  899. help
  900. This is the default of "preboot" environment variable.
  901. config DEFAULT_FDT_FILE
  902. string "Default fdt file"
  903. help
  904. This option is used to set the default fdt file to boot OS.
  905. endmenu # Booting