Kconfig.boot 38 KB

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