Kconfig.boot 34 KB

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