Kconfig.boot 35 KB

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