Kconfig 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047
  1. menu "Boot timing"
  2. config BOOTSTAGE
  3. bool "Boot timing and reporting"
  4. help
  5. Enable recording of boot time while booting. To use it, insert
  6. calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
  7. bootstage.h. Only a single entry is recorded for each ID. You can
  8. give the entry a name with bootstage_mark_name(). You can also
  9. record elapsed time in a particular stage using bootstage_start()
  10. before starting and bootstage_accum() when finished. Bootstage will
  11. add up all the accumulated time and report it.
  12. Normally, IDs are defined in bootstage.h but a small number of
  13. additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
  14. as the ID.
  15. Calls to show_boot_progress() will also result in log entries but
  16. these will not have names.
  17. config SPL_BOOTSTAGE
  18. bool "Boot timing and reported in SPL"
  19. depends on BOOTSTAGE
  20. help
  21. Enable recording of boot time in SPL. To make this visible to U-Boot
  22. proper, enable BOOTSTAGE_STASH as well. This will stash the timing
  23. information when SPL finishes and load it when U-Boot proper starts
  24. up.
  25. config TPL_BOOTSTAGE
  26. bool "Boot timing and reported in TPL"
  27. depends on BOOTSTAGE
  28. help
  29. Enable recording of boot time in SPL. To make this visible to U-Boot
  30. proper, enable BOOTSTAGE_STASH as well. This will stash the timing
  31. information when TPL finishes and load it when U-Boot proper starts
  32. up.
  33. config BOOTSTAGE_REPORT
  34. bool "Display a detailed boot timing report before booting the OS"
  35. depends on BOOTSTAGE
  36. help
  37. Enable output of a boot time report just before the OS is booted.
  38. This shows how long it took U-Boot to go through each stage of the
  39. boot process. The report looks something like this:
  40. Timer summary in microseconds:
  41. Mark Elapsed Stage
  42. 0 0 reset
  43. 3,575,678 3,575,678 board_init_f start
  44. 3,575,695 17 arch_cpu_init A9
  45. 3,575,777 82 arch_cpu_init done
  46. 3,659,598 83,821 board_init_r start
  47. 3,910,375 250,777 main_loop
  48. 29,916,167 26,005,792 bootm_start
  49. 30,361,327 445,160 start_kernel
  50. config BOOTSTAGE_RECORD_COUNT
  51. int "Number of boot stage records to store"
  52. default 30
  53. help
  54. This is the size of the bootstage record list and is the maximum
  55. number of bootstage records that can be recorded.
  56. config SPL_BOOTSTAGE_RECORD_COUNT
  57. int "Number of boot stage records to store for SPL"
  58. default 5
  59. help
  60. This is the size of the bootstage record list and is the maximum
  61. number of bootstage records that can be recorded.
  62. config TPL_BOOTSTAGE_RECORD_COUNT
  63. int "Number of boot stage records to store for TPL"
  64. default 5
  65. help
  66. This is the size of the bootstage record list and is the maximum
  67. number of bootstage records that can be recorded.
  68. config BOOTSTAGE_FDT
  69. bool "Store boot timing information in the OS device tree"
  70. depends on BOOTSTAGE
  71. help
  72. Stash the bootstage information in the FDT. A root 'bootstage'
  73. node is created with each bootstage id as a child. Each child
  74. has a 'name' property and either 'mark' containing the
  75. mark time in microseconds, or 'accum' containing the
  76. accumulated time for that bootstage id in microseconds.
  77. For example:
  78. bootstage {
  79. 154 {
  80. name = "board_init_f";
  81. mark = <3575678>;
  82. };
  83. 170 {
  84. name = "lcd";
  85. accum = <33482>;
  86. };
  87. };
  88. Code in the Linux kernel can find this in /proc/devicetree.
  89. config BOOTSTAGE_STASH
  90. bool "Stash the boot timing information in memory before booting OS"
  91. depends on BOOTSTAGE
  92. help
  93. Some OSes do not support device tree. Bootstage can instead write
  94. the boot timing information in a binary format at a given address.
  95. This happens through a call to bootstage_stash(), typically in
  96. the CPU's cleanup_before_linux() function. You can use the
  97. 'bootstage stash' and 'bootstage unstash' commands to do this on
  98. the command line.
  99. config BOOTSTAGE_STASH_ADDR
  100. hex "Address to stash boot timing information"
  101. default 0
  102. help
  103. Provide an address which will not be overwritten by the OS when it
  104. starts, so that it can read this information when ready.
  105. config BOOTSTAGE_STASH_SIZE
  106. hex "Size of boot timing stash region"
  107. default 0x1000
  108. help
  109. This should be large enough to hold the bootstage stash. A value of
  110. 4096 (4KiB) is normally plenty.
  111. config SHOW_BOOT_PROGRESS
  112. bool "Show boot progress in a board-specific manner"
  113. help
  114. Defining this option allows to add some board-specific code (calling
  115. a user-provided function show_boot_progress(int) that enables you to
  116. show the system's boot progress on some display (for example, some
  117. LEDs) on your board. At the moment, the following checkpoints are
  118. implemented:
  119. Legacy uImage format:
  120. Arg Where When
  121. 1 common/cmd_bootm.c before attempting to boot an image
  122. -1 common/cmd_bootm.c Image header has bad magic number
  123. 2 common/cmd_bootm.c Image header has correct magic number
  124. -2 common/cmd_bootm.c Image header has bad checksum
  125. 3 common/cmd_bootm.c Image header has correct checksum
  126. -3 common/cmd_bootm.c Image data has bad checksum
  127. 4 common/cmd_bootm.c Image data has correct checksum
  128. -4 common/cmd_bootm.c Image is for unsupported architecture
  129. 5 common/cmd_bootm.c Architecture check OK
  130. -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
  131. 6 common/cmd_bootm.c Image Type check OK
  132. -6 common/cmd_bootm.c gunzip uncompression error
  133. -7 common/cmd_bootm.c Unimplemented compression type
  134. 7 common/cmd_bootm.c Uncompression OK
  135. 8 common/cmd_bootm.c No uncompress/copy overwrite error
  136. -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
  137. 9 common/image.c Start initial ramdisk verification
  138. -10 common/image.c Ramdisk header has bad magic number
  139. -11 common/image.c Ramdisk header has bad checksum
  140. 10 common/image.c Ramdisk header is OK
  141. -12 common/image.c Ramdisk data has bad checksum
  142. 11 common/image.c Ramdisk data has correct checksum
  143. 12 common/image.c Ramdisk verification complete, start loading
  144. -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
  145. 13 common/image.c Start multifile image verification
  146. 14 common/image.c No initial ramdisk, no multifile, continue.
  147. 15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
  148. -30 arch/powerpc/lib/board.c Fatal error, hang the system
  149. -31 post/post.c POST test failed, detected by post_output_backlog()
  150. -32 post/post.c POST test failed, detected by post_run_single()
  151. 34 common/cmd_doc.c before loading a Image from a DOC device
  152. -35 common/cmd_doc.c Bad usage of "doc" command
  153. 35 common/cmd_doc.c correct usage of "doc" command
  154. -36 common/cmd_doc.c No boot device
  155. 36 common/cmd_doc.c correct boot device
  156. -37 common/cmd_doc.c Unknown Chip ID on boot device
  157. 37 common/cmd_doc.c correct chip ID found, device available
  158. -38 common/cmd_doc.c Read Error on boot device
  159. 38 common/cmd_doc.c reading Image header from DOC device OK
  160. -39 common/cmd_doc.c Image header has bad magic number
  161. 39 common/cmd_doc.c Image header has correct magic number
  162. -40 common/cmd_doc.c Error reading Image from DOC device
  163. 40 common/cmd_doc.c Image header has correct magic number
  164. 41 common/cmd_ide.c before loading a Image from a IDE device
  165. -42 common/cmd_ide.c Bad usage of "ide" command
  166. 42 common/cmd_ide.c correct usage of "ide" command
  167. -43 common/cmd_ide.c No boot device
  168. 43 common/cmd_ide.c boot device found
  169. -44 common/cmd_ide.c Device not available
  170. 44 common/cmd_ide.c Device available
  171. -45 common/cmd_ide.c wrong partition selected
  172. 45 common/cmd_ide.c partition selected
  173. -46 common/cmd_ide.c Unknown partition table
  174. 46 common/cmd_ide.c valid partition table found
  175. -47 common/cmd_ide.c Invalid partition type
  176. 47 common/cmd_ide.c correct partition type
  177. -48 common/cmd_ide.c Error reading Image Header on boot device
  178. 48 common/cmd_ide.c reading Image Header from IDE device OK
  179. -49 common/cmd_ide.c Image header has bad magic number
  180. 49 common/cmd_ide.c Image header has correct magic number
  181. -50 common/cmd_ide.c Image header has bad checksum
  182. 50 common/cmd_ide.c Image header has correct checksum
  183. -51 common/cmd_ide.c Error reading Image from IDE device
  184. 51 common/cmd_ide.c reading Image from IDE device OK
  185. 52 common/cmd_nand.c before loading a Image from a NAND device
  186. -53 common/cmd_nand.c Bad usage of "nand" command
  187. 53 common/cmd_nand.c correct usage of "nand" command
  188. -54 common/cmd_nand.c No boot device
  189. 54 common/cmd_nand.c boot device found
  190. -55 common/cmd_nand.c Unknown Chip ID on boot device
  191. 55 common/cmd_nand.c correct chip ID found, device available
  192. -56 common/cmd_nand.c Error reading Image Header on boot device
  193. 56 common/cmd_nand.c reading Image Header from NAND device OK
  194. -57 common/cmd_nand.c Image header has bad magic number
  195. 57 common/cmd_nand.c Image header has correct magic number
  196. -58 common/cmd_nand.c Error reading Image from NAND device
  197. 58 common/cmd_nand.c reading Image from NAND device OK
  198. -60 common/env_common.c Environment has a bad CRC, using default
  199. 64 net/eth.c starting with Ethernet configuration.
  200. -64 net/eth.c no Ethernet found.
  201. 65 net/eth.c Ethernet found.
  202. -80 common/cmd_net.c usage wrong
  203. 80 common/cmd_net.c before calling net_loop()
  204. -81 common/cmd_net.c some error in net_loop() occurred
  205. 81 common/cmd_net.c net_loop() back without error
  206. -82 common/cmd_net.c size == 0 (File with size 0 loaded)
  207. 82 common/cmd_net.c trying automatic boot
  208. 83 common/cmd_net.c running "source" command
  209. -83 common/cmd_net.c some error in automatic boot or "source" command
  210. 84 common/cmd_net.c end without errors
  211. FIT uImage format:
  212. Arg Where When
  213. 100 common/cmd_bootm.c Kernel FIT Image has correct format
  214. -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
  215. 101 common/cmd_bootm.c No Kernel subimage unit name, using configuration
  216. -101 common/cmd_bootm.c Can't get configuration for kernel subimage
  217. 102 common/cmd_bootm.c Kernel unit name specified
  218. -103 common/cmd_bootm.c Can't get kernel subimage node offset
  219. 103 common/cmd_bootm.c Found configuration node
  220. 104 common/cmd_bootm.c Got kernel subimage node offset
  221. -104 common/cmd_bootm.c Kernel subimage hash verification failed
  222. 105 common/cmd_bootm.c Kernel subimage hash verification OK
  223. -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
  224. 106 common/cmd_bootm.c Architecture check OK
  225. -106 common/cmd_bootm.c Kernel subimage has wrong type
  226. 107 common/cmd_bootm.c Kernel subimage type OK
  227. -107 common/cmd_bootm.c Can't get kernel subimage data/size
  228. 108 common/cmd_bootm.c Got kernel subimage data/size
  229. -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
  230. -109 common/cmd_bootm.c Can't get kernel subimage type
  231. -110 common/cmd_bootm.c Can't get kernel subimage comp
  232. -111 common/cmd_bootm.c Can't get kernel subimage os
  233. -112 common/cmd_bootm.c Can't get kernel subimage load address
  234. -113 common/cmd_bootm.c Image uncompress/copy overwrite error
  235. 120 common/image.c Start initial ramdisk verification
  236. -120 common/image.c Ramdisk FIT image has incorrect format
  237. 121 common/image.c Ramdisk FIT image has correct format
  238. 122 common/image.c No ramdisk subimage unit name, using configuration
  239. -122 common/image.c Can't get configuration for ramdisk subimage
  240. 123 common/image.c Ramdisk unit name specified
  241. -124 common/image.c Can't get ramdisk subimage node offset
  242. 125 common/image.c Got ramdisk subimage node offset
  243. -125 common/image.c Ramdisk subimage hash verification failed
  244. 126 common/image.c Ramdisk subimage hash verification OK
  245. -126 common/image.c Ramdisk subimage for unsupported architecture
  246. 127 common/image.c Architecture check OK
  247. -127 common/image.c Can't get ramdisk subimage data/size
  248. 128 common/image.c Got ramdisk subimage data/size
  249. 129 common/image.c Can't get ramdisk load address
  250. -129 common/image.c Got ramdisk load address
  251. -130 common/cmd_doc.c Incorrect FIT image format
  252. 131 common/cmd_doc.c FIT image format OK
  253. -140 common/cmd_ide.c Incorrect FIT image format
  254. 141 common/cmd_ide.c FIT image format OK
  255. -150 common/cmd_nand.c Incorrect FIT image format
  256. 151 common/cmd_nand.c FIT image format OK
  257. endmenu
  258. menu "Boot media"
  259. config NOR_BOOT
  260. bool "Support for booting from NOR flash"
  261. depends on NOR
  262. help
  263. Enabling this will make a U-Boot binary that is capable of being
  264. booted via NOR. In this case we will enable certain pinmux early
  265. as the ROM only partially sets up pinmux. We also default to using
  266. NOR for environment.
  267. config NAND_BOOT
  268. bool "Support for booting from NAND flash"
  269. default n
  270. imply MTD_RAW_NAND
  271. help
  272. Enabling this will make a U-Boot binary that is capable of being
  273. booted via NAND flash. This is not a must, some SoCs need this,
  274. some not.
  275. config ONENAND_BOOT
  276. bool "Support for booting from ONENAND"
  277. default n
  278. imply MTD_RAW_NAND
  279. help
  280. Enabling this will make a U-Boot binary that is capable of being
  281. booted via ONENAND. This is not a must, some SoCs need this,
  282. some not.
  283. config QSPI_BOOT
  284. bool "Support for booting from QSPI flash"
  285. default n
  286. help
  287. Enabling this will make a U-Boot binary that is capable of being
  288. booted via QSPI flash. This is not a must, some SoCs need this,
  289. some not.
  290. config SATA_BOOT
  291. bool "Support for booting from SATA"
  292. default n
  293. help
  294. Enabling this will make a U-Boot binary that is capable of being
  295. booted via SATA. This is not a must, some SoCs need this,
  296. some not.
  297. config SD_BOOT
  298. bool "Support for booting from SD/EMMC"
  299. default n
  300. help
  301. Enabling this will make a U-Boot binary that is capable of being
  302. booted via SD/EMMC. This is not a must, some SoCs need this,
  303. some not.
  304. config SPI_BOOT
  305. bool "Support for booting from SPI flash"
  306. default n
  307. help
  308. Enabling this will make a U-Boot binary that is capable of being
  309. booted via SPI flash. This is not a must, some SoCs need this,
  310. some not.
  311. endmenu
  312. config BOOTDELAY
  313. int "delay in seconds before automatically booting"
  314. default 2
  315. depends on AUTOBOOT
  316. help
  317. Delay before automatically running bootcmd;
  318. set to 0 to autoboot with no delay, but you can stop it by key input.
  319. set to -1 to disable autoboot.
  320. set to -2 to autoboot with no delay and not check for abort
  321. If this value is >= 0 then it is also used for the default delay
  322. before starting the default entry in bootmenu. If it is < 0 then
  323. a default value of 10s is used.
  324. See doc/README.autoboot for details.
  325. config USE_BOOTARGS
  326. bool "Enable boot arguments"
  327. help
  328. Provide boot arguments to bootm command. Boot arguments are specified
  329. in CONFIG_BOOTARGS option. Enable this option to be able to specify
  330. CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
  331. will be undefined and won't take any space in U-Boot image.
  332. config BOOTARGS
  333. string "Boot arguments"
  334. depends on USE_BOOTARGS
  335. help
  336. This can be used to pass arguments to the bootm command. The value of
  337. CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
  338. this value will also override the "chosen" node in FDT blob.
  339. config USE_BOOTCOMMAND
  340. bool "Enable a default value for bootcmd"
  341. help
  342. Provide a default value for the bootcmd entry in the environment. If
  343. autoboot is enabled this is what will be run automatically. Enable
  344. this option to be able to specify CONFIG_BOOTCOMMAND as a string. If
  345. this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
  346. won't take any space in U-Boot image.
  347. config BOOTCOMMAND
  348. string "bootcmd value"
  349. depends on USE_BOOTCOMMAND
  350. default "run distro_bootcmd" if DISTRO_DEFAULTS
  351. help
  352. This is the string of commands that will be used as bootcmd and if
  353. AUTOBOOT is set, automatically run.
  354. config USE_PREBOOT
  355. bool "Enable preboot"
  356. help
  357. When this option is enabled, the existence of the environment
  358. variable "preboot" will be checked immediately before starting the
  359. CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp.
  360. entering interactive mode.
  361. This feature is especially useful when "preboot" is automatically
  362. generated or modified. For example, the boot code can modify the
  363. "preboot" when a user holds down a certain combination of keys.
  364. config PREBOOT
  365. string "preboot default value"
  366. depends on USE_PREBOOT
  367. default ""
  368. help
  369. This is the default of "preboot" environment variable.
  370. menu "Console"
  371. config MENU
  372. bool
  373. help
  374. This is the library functionality to provide a text-based menu of
  375. choices for the user to make choices with.
  376. config CONSOLE_RECORD
  377. bool "Console recording"
  378. help
  379. This provides a way to record console output (and provide console
  380. input) through circular buffers. This is mostly useful for testing.
  381. Console output is recorded even when the console is silent.
  382. To enable console recording, call console_record_reset_enable()
  383. from your code.
  384. config CONSOLE_RECORD_OUT_SIZE
  385. hex "Output buffer size"
  386. depends on CONSOLE_RECORD
  387. default 0x400 if CONSOLE_RECORD
  388. help
  389. Set the size of the console output buffer. When this fills up, no
  390. more data will be recorded until some is removed. The buffer is
  391. allocated immediately after the malloc() region is ready.
  392. config CONSOLE_RECORD_IN_SIZE
  393. hex "Input buffer size"
  394. depends on CONSOLE_RECORD
  395. default 0x100 if CONSOLE_RECORD
  396. help
  397. Set the size of the console input buffer. When this contains data,
  398. tstc() and getc() will use this in preference to real device input.
  399. The buffer is allocated immediately after the malloc() region is
  400. ready.
  401. config DISABLE_CONSOLE
  402. bool "Add functionality to disable console completely"
  403. help
  404. Disable console (in & out).
  405. config IDENT_STRING
  406. string "Board specific string to be added to uboot version string"
  407. help
  408. This options adds the board specific name to u-boot version.
  409. config LOGLEVEL
  410. int "loglevel"
  411. default 4
  412. range 0 10
  413. help
  414. All Messages with a loglevel smaller than the console loglevel will
  415. be compiled in. The loglevels are defined as follows:
  416. 0 - emergency
  417. 1 - alert
  418. 2 - critical
  419. 3 - error
  420. 4 - warning
  421. 5 - note
  422. 6 - info
  423. 7 - debug
  424. 8 - debug content
  425. 9 - debug hardware I/O
  426. config SPL_LOGLEVEL
  427. int
  428. default LOGLEVEL
  429. config TPL_LOGLEVEL
  430. int
  431. default LOGLEVEL
  432. config SILENT_CONSOLE
  433. bool "Support a silent console"
  434. help
  435. This option allows the console to be silenced, meaning that no
  436. output will appear on the console devices. This is controlled by
  437. setting the environment variable 'silent' to a non-empty value.
  438. Note this also silences the console when booting Linux.
  439. When the console is set up, the variable is checked, and the
  440. GD_FLG_SILENT flag is set. Changing the environment variable later
  441. will update the flag.
  442. config SILENT_U_BOOT_ONLY
  443. bool "Only silence the U-Boot console"
  444. depends on SILENT_CONSOLE
  445. help
  446. Normally when the U-Boot console is silenced, Linux's console is
  447. also silenced (assuming the board boots into Linux). This option
  448. allows the linux console to operate normally, even if U-Boot's
  449. is silenced.
  450. config SILENT_CONSOLE_UPDATE_ON_SET
  451. bool "Changes to the 'silent' environment variable update immediately"
  452. depends on SILENT_CONSOLE
  453. default y if SILENT_CONSOLE
  454. help
  455. When the 'silent' environment variable is changed, update the
  456. console silence flag immediately. This allows 'setenv' to be used
  457. to silence or un-silence the console.
  458. The effect is that any change to the variable will affect the
  459. GD_FLG_SILENT flag.
  460. config SILENT_CONSOLE_UPDATE_ON_RELOC
  461. bool "Allow flags to take effect on relocation"
  462. depends on SILENT_CONSOLE
  463. help
  464. In some cases the environment is not available until relocation
  465. (e.g. NAND). This option makes the value of the 'silent'
  466. environment variable take effect at relocation.
  467. config PRE_CONSOLE_BUFFER
  468. bool "Buffer characters before the console is available"
  469. help
  470. Prior to the console being initialised (i.e. serial UART
  471. initialised etc) all console output is silently discarded.
  472. Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
  473. buffer any console messages prior to the console being
  474. initialised to a buffer. The buffer is a circular buffer, so
  475. if it overflows, earlier output is discarded.
  476. Note that this is not currently supported in SPL. It would be
  477. useful to be able to share the pre-console buffer with SPL.
  478. config PRE_CON_BUF_SZ
  479. int "Sets the size of the pre-console buffer"
  480. depends on PRE_CONSOLE_BUFFER
  481. default 4096
  482. help
  483. The size of the pre-console buffer affects how much console output
  484. can be held before it overflows and starts discarding earlier
  485. output. Normally there is very little output at this early stage,
  486. unless debugging is enabled, so allow enough for ~10 lines of
  487. text.
  488. This is a useful feature if you are using a video console and
  489. want to see the full boot output on the console. Without this
  490. option only the post-relocation output will be displayed.
  491. config PRE_CON_BUF_ADDR
  492. hex "Address of the pre-console buffer"
  493. depends on PRE_CONSOLE_BUFFER
  494. default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
  495. default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
  496. default 0x0f000000 if ROCKCHIP_RK3288
  497. help
  498. This sets the start address of the pre-console buffer. This must
  499. be in available memory and is accessed before relocation and
  500. possibly before DRAM is set up. Therefore choose an address
  501. carefully.
  502. We should consider removing this option and allocating the memory
  503. in board_init_f_init_reserve() instead.
  504. config CONSOLE_MUX
  505. bool "Enable console multiplexing"
  506. default y if DM_VIDEO || VIDEO || LCD
  507. help
  508. This allows multiple devices to be used for each console 'file'.
  509. For example, stdout can be set to go to serial and video.
  510. Similarly, stdin can be set to come from serial and keyboard.
  511. Input can be provided from either source. Console multiplexing
  512. adds a small amount of size to U-Boot. Changes to the environment
  513. variables stdout, stdin and stderr will take effect immediately.
  514. config SYS_CONSOLE_IS_IN_ENV
  515. bool "Select console devices from the environment"
  516. default y if CONSOLE_MUX
  517. help
  518. This allows multiple input/output devices to be set at boot time.
  519. For example, if stdout is set to "serial,video" then output will
  520. be sent to both the serial and video devices on boot. The
  521. environment variables can be updated after boot to change the
  522. input/output devices.
  523. config SYS_CONSOLE_OVERWRITE_ROUTINE
  524. bool "Allow board control over console overwriting"
  525. help
  526. If this is enabled, and the board-specific function
  527. overwrite_console() returns 1, the stdin, stderr and stdout are
  528. switched to the serial port, else the settings in the environment
  529. are used. If this is not enabled, the console will not be switched
  530. to serial.
  531. config SYS_CONSOLE_ENV_OVERWRITE
  532. bool "Update environment variables during console init"
  533. help
  534. The console environment variables (stdout, stdin, stderr) can be
  535. used to determine the correct console devices on start-up. This
  536. option writes the console devices to these variables on console
  537. start-up (after relocation). This causes the environment to be
  538. updated to match the console devices actually chosen.
  539. config SYS_CONSOLE_INFO_QUIET
  540. bool "Don't display the console devices on boot"
  541. help
  542. Normally U-Boot displays the current settings for stdout, stdin
  543. and stderr on boot when the post-relocation console is set up.
  544. Enable this option to suppress this output. It can be obtained by
  545. calling stdio_print_current_devices() from board code.
  546. config SYS_STDIO_DEREGISTER
  547. bool "Allow deregistering stdio devices"
  548. default y if USB_KEYBOARD
  549. help
  550. Generally there is no need to deregister stdio devices since they
  551. are never deactivated. But if a stdio device is used which can be
  552. removed (for example a USB keyboard) then this option can be
  553. enabled to ensure this is handled correctly.
  554. endmenu
  555. menu "Logging"
  556. config LOG
  557. bool "Enable logging support"
  558. depends on DM
  559. help
  560. This enables support for logging of status and debug messages. These
  561. can be displayed on the console, recorded in a memory buffer, or
  562. discarded if not needed. Logging supports various categories and
  563. levels of severity.
  564. config SPL_LOG
  565. bool "Enable logging support in SPL"
  566. depends on LOG
  567. help
  568. This enables support for logging of status and debug messages. These
  569. can be displayed on the console, recorded in a memory buffer, or
  570. discarded if not needed. Logging supports various categories and
  571. levels of severity.
  572. config TPL_LOG
  573. bool "Enable logging support in TPL"
  574. depends on LOG
  575. help
  576. This enables support for logging of status and debug messages. These
  577. can be displayed on the console, recorded in a memory buffer, or
  578. discarded if not needed. Logging supports various categories and
  579. levels of severity.
  580. config LOG_MAX_LEVEL
  581. int "Maximum log level to record"
  582. depends on LOG
  583. default 5
  584. help
  585. This selects the maximum log level that will be recorded. Any value
  586. higher than this will be ignored. If possible log statements below
  587. this level will be discarded at build time. Levels:
  588. 0 - emergency
  589. 1 - alert
  590. 2 - critical
  591. 3 - error
  592. 4 - warning
  593. 5 - note
  594. 6 - info
  595. 7 - debug
  596. 8 - debug content
  597. 9 - debug hardware I/O
  598. config SPL_LOG_MAX_LEVEL
  599. int "Maximum log level to record in SPL"
  600. depends on SPL_LOG
  601. default 3
  602. help
  603. This selects the maximum log level that will be recorded. Any value
  604. higher than this will be ignored. If possible log statements below
  605. this level will be discarded at build time. Levels:
  606. 0 - emergency
  607. 1 - alert
  608. 2 - critical
  609. 3 - error
  610. 4 - warning
  611. 5 - note
  612. 6 - info
  613. 7 - debug
  614. 8 - debug content
  615. 9 - debug hardware I/O
  616. config TPL_LOG_MAX_LEVEL
  617. int "Maximum log level to record in TPL"
  618. depends on TPL_LOG
  619. default 3
  620. help
  621. This selects the maximum log level that will be recorded. Any value
  622. higher than this will be ignored. If possible log statements below
  623. this level will be discarded at build time. Levels:
  624. 0 - emergency
  625. 1 - alert
  626. 2 - critical
  627. 3 - error
  628. 4 - warning
  629. 5 - note
  630. 6 - info
  631. 7 - debug
  632. 8 - debug content
  633. 9 - debug hardware I/O
  634. config LOG_DEFAULT_LEVEL
  635. int "Default logging level to display"
  636. default 6
  637. help
  638. This is the default logging level set when U-Boot starts. It can
  639. be adjusted later using the 'log level' command. Note that setting
  640. this to a value above LOG_MAX_LEVEL will be ineffective, since the
  641. higher levels are not compiled in to U-Boot.
  642. 0 - emergency
  643. 1 - alert
  644. 2 - critical
  645. 3 - error
  646. 4 - warning
  647. 5 - note
  648. 6 - info
  649. 7 - debug
  650. 8 - debug content
  651. 9 - debug hardware I/O
  652. config LOG_CONSOLE
  653. bool "Allow log output to the console"
  654. depends on LOG
  655. default y
  656. help
  657. Enables a log driver which writes log records to the console.
  658. Generally the console is the serial port or LCD display. Only the
  659. log message is shown - other details like level, category, file and
  660. line number are omitted.
  661. config SPL_LOG_CONSOLE
  662. bool "Allow log output to the console in SPL"
  663. depends on SPL_LOG
  664. default y
  665. help
  666. Enables a log driver which writes log records to the console.
  667. Generally the console is the serial port or LCD display. Only the
  668. log message is shown - other details like level, category, file and
  669. line number are omitted.
  670. config TPL_LOG_CONSOLE
  671. bool "Allow log output to the console in TPL"
  672. depends on TPL_LOG
  673. default y
  674. help
  675. Enables a log driver which writes log records to the console.
  676. Generally the console is the serial port or LCD display. Only the
  677. log message is shown - other details like level, category, file and
  678. line number are omitted.
  679. config LOG_TEST
  680. bool "Provide a test for logging"
  681. depends on LOG
  682. default y if SANDBOX
  683. help
  684. This enables a 'log test' command to test logging. It is normally
  685. executed from a pytest and simply outputs logging information
  686. in various different ways to test that the logging system works
  687. correctly with various settings.
  688. config LOG_ERROR_RETURN
  689. bool "Log all functions which return an error"
  690. depends on LOG
  691. help
  692. When an error is returned in U-Boot it is sometimes difficult to
  693. figure out the root cause. For example, reading from SPI flash may
  694. fail due to a problem in the SPI controller or due to the flash part
  695. not returning the expected information. This option changes
  696. log_ret() to log any errors it sees. With this option disabled,
  697. log_ret() is a nop.
  698. You can add log_ret() to all functions which return an error code.
  699. endmenu
  700. config SUPPORT_RAW_INITRD
  701. bool "Enable raw initrd images"
  702. help
  703. Note, defining the SUPPORT_RAW_INITRD allows user to supply
  704. kernel with raw initrd images. The syntax is slightly different, the
  705. address of the initrd must be augmented by it's size, in the following
  706. format: "<initrd address>:<initrd size>".
  707. config DEFAULT_FDT_FILE
  708. string "Default fdt file"
  709. help
  710. This option is used to set the default fdt file to boot OS.
  711. config MISC_INIT_R
  712. bool "Execute Misc Init"
  713. default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
  714. default y if ARCH_OMAP2PLUS && !AM33XX
  715. help
  716. Enabling this option calls 'misc_init_r' function
  717. config VERSION_VARIABLE
  718. bool "add U-Boot environment variable vers"
  719. default n
  720. help
  721. If this variable is defined, an environment variable
  722. named "ver" is created by U-Boot showing the U-Boot
  723. version as printed by the "version" command.
  724. Any change to this variable will be reverted at the
  725. next reset.
  726. config BOARD_LATE_INIT
  727. bool "Execute Board late init"
  728. help
  729. Sometimes board require some initialization code that might
  730. require once the actual init done, example saving board specific env,
  731. boot-modes etc. which eventually done at late.
  732. So this config enable the late init code with the help of board_late_init
  733. function which should defined on respective boards.
  734. config DISPLAY_CPUINFO
  735. bool "Display information about the CPU during start up"
  736. default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
  737. help
  738. Display information about the CPU that U-Boot is running on
  739. when U-Boot starts up. The function print_cpuinfo() is called
  740. to do this.
  741. config DISPLAY_BOARDINFO
  742. bool "Display information about the board during early start up"
  743. default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
  744. help
  745. Display information about the board that U-Boot is running on
  746. when U-Boot starts up. The board function checkboard() is called
  747. to do this.
  748. config DISPLAY_BOARDINFO_LATE
  749. bool "Display information about the board during late start up"
  750. help
  751. Display information about the board that U-Boot is running on after
  752. the relocation phase. The board function checkboard() is called to do
  753. this.
  754. config BOUNCE_BUFFER
  755. bool "Include bounce buffer API"
  756. help
  757. Some peripherals support DMA from a subset of physically
  758. addressable memory only. To support such peripherals, the
  759. bounce buffer API uses a temporary buffer: it copies data
  760. to/from DMA regions while managing cache operations.
  761. A second possible use of bounce buffers is their ability to
  762. provide aligned buffers for DMA operations.
  763. config BOARD_TYPES
  764. bool "Call get_board_type() to get and display the board type"
  765. help
  766. If this option is enabled, checkboard() will call get_board_type()
  767. to get a string containing the board type and this will be
  768. displayed immediately after the model is shown on the console
  769. early in boot.
  770. menu "Start-up hooks"
  771. config ARCH_EARLY_INIT_R
  772. bool "Call arch-specific init soon after relocation"
  773. help
  774. With this option U-Boot will call arch_early_init_r() soon after
  775. relocation. Driver model is running by this point, and the cache
  776. is on. Note that board_early_init_r() is called first, if
  777. enabled. This can be used to set up architecture-specific devices.
  778. config ARCH_MISC_INIT
  779. bool "Call arch-specific init after relocation, when console is ready"
  780. help
  781. With this option U-Boot will call arch_misc_init() after
  782. relocation to allow miscellaneous arch-dependent initialisation
  783. to be performed. This function should be defined by the board
  784. and will be called after the console is set up, after relocation.
  785. config BOARD_EARLY_INIT_F
  786. bool "Call board-specific init before relocation"
  787. help
  788. Some boards need to perform initialisation as soon as possible
  789. after boot. With this option, U-Boot calls board_early_init_f()
  790. after driver model is ready in the pre-relocation init sequence.
  791. Note that the normal serial console is not yet set up, but the
  792. debug UART will be available if enabled.
  793. config BOARD_EARLY_INIT_R
  794. bool "Call board-specific init after relocation"
  795. help
  796. Some boards need to perform initialisation as directly after
  797. relocation. With this option, U-Boot calls board_early_init_r()
  798. in the post-relocation init sequence.
  799. config LAST_STAGE_INIT
  800. bool "Call board-specific as last setup step"
  801. help
  802. Some boards need to perform initialisation immediately before control
  803. is passed to the command-line interpreter (e.g. for initializations
  804. that depend on later phases in the init sequence). With this option,
  805. U-Boot calls last_stage_init() before the command-line interpreter is
  806. started.
  807. endmenu
  808. menu "Security support"
  809. config HASH
  810. bool # "Support hashing API (SHA1, SHA256, etc.)"
  811. help
  812. This provides a way to hash data in memory using various supported
  813. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  814. and the algorithms it supports are defined in common/hash.c. See
  815. also CMD_HASH for command-line access.
  816. config AVB_VERIFY
  817. bool "Build Android Verified Boot operations"
  818. depends on LIBAVB && FASTBOOT
  819. depends on PARTITION_UUIDS
  820. help
  821. This option enables compilation of bootloader-dependent operations,
  822. used by Android Verified Boot 2.0 library (libavb). Includes:
  823. * Helpers to process strings in order to build OS bootargs.
  824. * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
  825. * Helpers to alloc/init/free avb ops.
  826. config SPL_HASH
  827. bool # "Support hashing API (SHA1, SHA256, etc.)"
  828. help
  829. This provides a way to hash data in memory using various supported
  830. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  831. and the algorithms it supports are defined in common/hash.c. See
  832. also CMD_HASH for command-line access.
  833. config TPL_HASH
  834. bool # "Support hashing API (SHA1, SHA256, etc.)"
  835. help
  836. This provides a way to hash data in memory using various supported
  837. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  838. and the algorithms it supports are defined in common/hash.c. See
  839. also CMD_HASH for command-line access.
  840. endmenu
  841. menu "Update support"
  842. config UPDATE_TFTP
  843. bool "Auto-update using fitImage via TFTP"
  844. depends on FIT
  845. help
  846. This option allows performing update of NOR with data in fitImage
  847. sent via TFTP boot.
  848. config UPDATE_TFTP_CNT_MAX
  849. int "The number of connection retries during auto-update"
  850. default 0
  851. depends on UPDATE_TFTP
  852. config UPDATE_TFTP_MSEC_MAX
  853. int "Delay in mSec to wait for the TFTP server during auto-update"
  854. default 100
  855. depends on UPDATE_TFTP
  856. config ANDROID_AB
  857. bool "Android A/B updates"
  858. default n
  859. help
  860. If enabled, adds support for the new Android A/B update model. This
  861. allows the bootloader to select which slot to boot from based on the
  862. information provided by userspace via the Android boot_ctrl HAL. This
  863. allows a bootloader to try a new version of the system but roll back
  864. to previous version if the new one didn't boot all the way.
  865. endmenu
  866. menu "Blob list"
  867. config BLOBLIST
  868. bool "Support for a bloblist"
  869. help
  870. This enables support for a bloblist in U-Boot, which can be passed
  871. from TPL to SPL to U-Boot proper (and potentially to Linux). The
  872. blob list supports multiple binary blobs of data, each with a tag,
  873. so that different U-Boot components can store data which can survive
  874. through to the next stage of the boot.
  875. config SPL_BLOBLIST
  876. bool "Support for a bloblist in SPL"
  877. depends on BLOBLIST
  878. default y if SPL
  879. help
  880. This enables a bloblist in SPL. If this is the first part of U-Boot
  881. to run, then the bloblist is set up in SPL and passed to U-Boot
  882. proper. If TPL also has a bloblist, then SPL uses the one from there.
  883. config TPL_BLOBLIST
  884. bool "Support for a bloblist in TPL"
  885. depends on BLOBLIST
  886. default y if TPL
  887. help
  888. This enables a bloblist in TPL. The bloblist is set up in TPL and
  889. passed to SPL and U-Boot proper.
  890. config BLOBLIST_SIZE
  891. hex "Size of bloblist"
  892. depends on BLOBLIST
  893. default 0x400
  894. help
  895. Sets the size of the bloblist in bytes. This must include all
  896. overhead (alignment, bloblist header, record header). The bloblist
  897. is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
  898. proper), and this sane bloblist is used for subsequent stages.
  899. config BLOBLIST_ADDR
  900. hex "Address of bloblist"
  901. depends on BLOBLIST
  902. default 0xe000 if SANDBOX
  903. help
  904. Sets the address of the bloblist, set up by the first part of U-Boot
  905. which runs. Subsequent U-Boot stages typically use the same address.
  906. endmenu
  907. source "common/spl/Kconfig"