Kconfig 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  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 8
  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. help
  497. This sets the start address of the pre-console buffer. This must
  498. be in available memory and is accessed before relocation and
  499. possibly before DRAM is set up. Therefore choose an address
  500. carefully.
  501. We should consider removing this option and allocating the memory
  502. in board_init_f_init_reserve() instead.
  503. config CONSOLE_MUX
  504. bool "Enable console multiplexing"
  505. default y if DM_VIDEO || VIDEO || LCD
  506. help
  507. This allows multiple devices to be used for each console 'file'.
  508. For example, stdout can be set to go to serial and video.
  509. Similarly, stdin can be set to come from serial and keyboard.
  510. Input can be provided from either source. Console multiplexing
  511. adds a small amount of size to U-Boot. Changes to the environment
  512. variables stdout, stdin and stderr will take effect immediately.
  513. config SYS_CONSOLE_IS_IN_ENV
  514. bool "Select console devices from the environment"
  515. default y if CONSOLE_MUX
  516. help
  517. This allows multiple input/output devices to be set at boot time.
  518. For example, if stdout is set to "serial,video" then output will
  519. be sent to both the serial and video devices on boot. The
  520. environment variables can be updated after boot to change the
  521. input/output devices.
  522. config SYS_CONSOLE_OVERWRITE_ROUTINE
  523. bool "Allow board control over console overwriting"
  524. help
  525. If this is enabled, and the board-specific function
  526. overwrite_console() returns 1, the stdin, stderr and stdout are
  527. switched to the serial port, else the settings in the environment
  528. are used. If this is not enabled, the console will not be switched
  529. to serial.
  530. config SYS_CONSOLE_ENV_OVERWRITE
  531. bool "Update environment variables during console init"
  532. help
  533. The console environment variables (stdout, stdin, stderr) can be
  534. used to determine the correct console devices on start-up. This
  535. option writes the console devices to these variables on console
  536. start-up (after relocation). This causes the environment to be
  537. updated to match the console devices actually chosen.
  538. config SYS_CONSOLE_INFO_QUIET
  539. bool "Don't display the console devices on boot"
  540. help
  541. Normally U-Boot displays the current settings for stdout, stdin
  542. and stderr on boot when the post-relocation console is set up.
  543. Enable this option to suppress this output. It can be obtained by
  544. calling stdio_print_current_devices() from board code.
  545. config SYS_STDIO_DEREGISTER
  546. bool "Allow deregistering stdio devices"
  547. default y if USB_KEYBOARD
  548. help
  549. Generally there is no need to deregister stdio devices since they
  550. are never deactivated. But if a stdio device is used which can be
  551. removed (for example a USB keyboard) then this option can be
  552. enabled to ensure this is handled correctly.
  553. endmenu
  554. menu "Logging"
  555. config LOG
  556. bool "Enable logging support"
  557. depends on DM
  558. help
  559. This enables support for logging of status and debug messages. These
  560. can be displayed on the console, recorded in a memory buffer, or
  561. discarded if not needed. Logging supports various categories and
  562. levels of severity.
  563. config SPL_LOG
  564. bool "Enable logging support in SPL"
  565. depends on LOG
  566. help
  567. This enables support for logging of status and debug messages. These
  568. can be displayed on the console, recorded in a memory buffer, or
  569. discarded if not needed. Logging supports various categories and
  570. levels of severity.
  571. config TPL_LOG
  572. bool "Enable logging support in TPL"
  573. depends on LOG
  574. help
  575. This enables support for logging of status and debug messages. These
  576. can be displayed on the console, recorded in a memory buffer, or
  577. discarded if not needed. Logging supports various categories and
  578. levels of severity.
  579. config LOG_MAX_LEVEL
  580. int "Maximum log level to record"
  581. depends on LOG
  582. default 5
  583. help
  584. This selects the maximum log level that will be recorded. Any value
  585. higher than this will be ignored. If possible log statements below
  586. this level will be discarded at build time. Levels:
  587. 0 - emergency
  588. 1 - alert
  589. 2 - critical
  590. 3 - error
  591. 4 - warning
  592. 5 - note
  593. 6 - info
  594. 7 - debug
  595. 8 - debug content
  596. 9 - debug hardware I/O
  597. config SPL_LOG_MAX_LEVEL
  598. int "Maximum log level to record in SPL"
  599. depends on SPL_LOG
  600. default 3
  601. help
  602. This selects the maximum log level that will be recorded. Any value
  603. higher than this will be ignored. If possible log statements below
  604. this level will be discarded at build time. Levels:
  605. 0 - emergency
  606. 1 - alert
  607. 2 - critical
  608. 3 - error
  609. 4 - warning
  610. 5 - note
  611. 6 - info
  612. 7 - debug
  613. 8 - debug content
  614. 9 - debug hardware I/O
  615. config TPL_LOG_MAX_LEVEL
  616. int "Maximum log level to record in TPL"
  617. depends on TPL_LOG
  618. default 3
  619. help
  620. This selects the maximum log level that will be recorded. Any value
  621. higher than this will be ignored. If possible log statements below
  622. this level will be discarded at build time. Levels:
  623. 0 - emergency
  624. 1 - alert
  625. 2 - critical
  626. 3 - error
  627. 4 - warning
  628. 5 - note
  629. 6 - info
  630. 7 - debug
  631. 8 - debug content
  632. 9 - debug hardware I/O
  633. config LOG_DEFAULT_LEVEL
  634. int "Default logging level to display"
  635. default 6
  636. help
  637. This is the default logging level set when U-Boot starts. It can
  638. be adjusted later using the 'log level' command. Note that setting
  639. this to a value above LOG_MAX_LEVEL will be ineffective, since the
  640. higher levels are not compiled in to U-Boot.
  641. 0 - emergency
  642. 1 - alert
  643. 2 - critical
  644. 3 - error
  645. 4 - warning
  646. 5 - note
  647. 6 - info
  648. 7 - debug
  649. 8 - debug content
  650. 9 - debug hardware I/O
  651. config LOG_CONSOLE
  652. bool "Allow log output to the console"
  653. depends on LOG
  654. default y
  655. help
  656. Enables a log driver which writes log records to the console.
  657. Generally the console is the serial port or LCD display. Only the
  658. log message is shown - other details like level, category, file and
  659. line number are omitted.
  660. config SPL_LOG_CONSOLE
  661. bool "Allow log output to the console in SPL"
  662. depends on SPL_LOG
  663. default y
  664. help
  665. Enables a log driver which writes log records to the console.
  666. Generally the console is the serial port or LCD display. Only the
  667. log message is shown - other details like level, category, file and
  668. line number are omitted.
  669. config TPL_LOG_CONSOLE
  670. bool "Allow log output to the console in TPL"
  671. depends on TPL_LOG
  672. default y
  673. help
  674. Enables a log driver which writes log records to the console.
  675. Generally the console is the serial port or LCD display. Only the
  676. log message is shown - other details like level, category, file and
  677. line number are omitted.
  678. config LOG_TEST
  679. bool "Provide a test for logging"
  680. depends on LOG
  681. default y if SANDBOX
  682. help
  683. This enables a 'log test' command to test logging. It is normally
  684. executed from a pytest and simply outputs logging information
  685. in various different ways to test that the logging system works
  686. correctly with various settings.
  687. config LOG_ERROR_RETURN
  688. bool "Log all functions which return an error"
  689. depends on LOG
  690. help
  691. When an error is returned in U-Boot it is sometimes difficult to
  692. figure out the root cause. For example, reading from SPI flash may
  693. fail due to a problem in the SPI controller or due to the flash part
  694. not returning the expected information. This option changes
  695. log_ret() to log any errors it sees. With this option disabled,
  696. log_ret() is a nop.
  697. You can add log_ret() to all functions which return an error code.
  698. endmenu
  699. config SUPPORT_RAW_INITRD
  700. bool "Enable raw initrd images"
  701. help
  702. Note, defining the SUPPORT_RAW_INITRD allows user to supply
  703. kernel with raw initrd images. The syntax is slightly different, the
  704. address of the initrd must be augmented by it's size, in the following
  705. format: "<initrd address>:<initrd size>".
  706. config DEFAULT_FDT_FILE
  707. string "Default fdt file"
  708. help
  709. This option is used to set the default fdt file to boot OS.
  710. config MISC_INIT_R
  711. bool "Execute Misc Init"
  712. default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
  713. default y if ARCH_OMAP2PLUS && !AM33XX
  714. help
  715. Enabling this option calls 'misc_init_r' function
  716. config VERSION_VARIABLE
  717. bool "add U-Boot environment variable vers"
  718. default n
  719. help
  720. If this variable is defined, an environment variable
  721. named "ver" is created by U-Boot showing the U-Boot
  722. version as printed by the "version" command.
  723. Any change to this variable will be reverted at the
  724. next reset.
  725. config BOARD_LATE_INIT
  726. bool "Execute Board late init"
  727. help
  728. Sometimes board require some initialization code that might
  729. require once the actual init done, example saving board specific env,
  730. boot-modes etc. which eventually done at late.
  731. So this config enable the late init code with the help of board_late_init
  732. function which should defined on respective boards.
  733. config DISPLAY_CPUINFO
  734. bool "Display information about the CPU during start up"
  735. default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
  736. help
  737. Display information about the CPU that U-Boot is running on
  738. when U-Boot starts up. The function print_cpuinfo() is called
  739. to do this.
  740. config DISPLAY_BOARDINFO
  741. bool "Display information about the board during early start up"
  742. default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
  743. help
  744. Display information about the board that U-Boot is running on
  745. when U-Boot starts up. The board function checkboard() is called
  746. to do this.
  747. config DISPLAY_BOARDINFO_LATE
  748. bool "Display information about the board during late start up"
  749. help
  750. Display information about the board that U-Boot is running on after
  751. the relocation phase. The board function checkboard() is called to do
  752. this.
  753. config BOUNCE_BUFFER
  754. bool "Include bounce buffer API"
  755. help
  756. Some peripherals support DMA from a subset of physically
  757. addressable memory only. To support such peripherals, the
  758. bounce buffer API uses a temporary buffer: it copies data
  759. to/from DMA regions while managing cache operations.
  760. A second possible use of bounce buffers is their ability to
  761. provide aligned buffers for DMA operations.
  762. config BOARD_TYPES
  763. bool "Call get_board_type() to get and display the board type"
  764. help
  765. If this option is enabled, checkboard() will call get_board_type()
  766. to get a string containing the board type and this will be
  767. displayed immediately after the model is shown on the console
  768. early in boot.
  769. menu "Start-up hooks"
  770. config ARCH_EARLY_INIT_R
  771. bool "Call arch-specific init soon after relocation"
  772. help
  773. With this option U-Boot will call arch_early_init_r() soon after
  774. relocation. Driver model is running by this point, and the cache
  775. is on. Note that board_early_init_r() is called first, if
  776. enabled. This can be used to set up architecture-specific devices.
  777. config ARCH_MISC_INIT
  778. bool "Call arch-specific init after relocation, when console is ready"
  779. help
  780. With this option U-Boot will call arch_misc_init() after
  781. relocation to allow miscellaneous arch-dependent initialisation
  782. to be performed. This function should be defined by the board
  783. and will be called after the console is set up, after relocation.
  784. config BOARD_EARLY_INIT_F
  785. bool "Call board-specific init before relocation"
  786. help
  787. Some boards need to perform initialisation as soon as possible
  788. after boot. With this option, U-Boot calls board_early_init_f()
  789. after driver model is ready in the pre-relocation init sequence.
  790. Note that the normal serial console is not yet set up, but the
  791. debug UART will be available if enabled.
  792. config BOARD_EARLY_INIT_R
  793. bool "Call board-specific init after relocation"
  794. help
  795. Some boards need to perform initialisation as directly after
  796. relocation. With this option, U-Boot calls board_early_init_r()
  797. in the post-relocation init sequence.
  798. config LAST_STAGE_INIT
  799. bool "Call board-specific as last setup step"
  800. help
  801. Some boards need to perform initialisation immediately before control
  802. is passed to the command-line interpreter (e.g. for initializations
  803. that depend on later phases in the init sequence). With this option,
  804. U-Boot calls last_stage_init() before the command-line interpreter is
  805. started.
  806. endmenu
  807. menu "Security support"
  808. config HASH
  809. bool # "Support hashing API (SHA1, SHA256, etc.)"
  810. help
  811. This provides a way to hash data in memory using various supported
  812. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  813. and the algorithms it supports are defined in common/hash.c. See
  814. also CMD_HASH for command-line access.
  815. config AVB_VERIFY
  816. bool "Build Android Verified Boot operations"
  817. depends on LIBAVB && FASTBOOT
  818. depends on PARTITION_UUIDS
  819. help
  820. This option enables compilation of bootloader-dependent operations,
  821. used by Android Verified Boot 2.0 library (libavb). Includes:
  822. * Helpers to process strings in order to build OS bootargs.
  823. * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
  824. * Helpers to alloc/init/free avb ops.
  825. config SPL_HASH
  826. bool # "Support hashing API (SHA1, SHA256, etc.)"
  827. help
  828. This provides a way to hash data in memory using various supported
  829. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  830. and the algorithms it supports are defined in common/hash.c. See
  831. also CMD_HASH for command-line access.
  832. config TPL_HASH
  833. bool # "Support hashing API (SHA1, SHA256, etc.)"
  834. help
  835. This provides a way to hash data in memory using various supported
  836. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  837. and the algorithms it supports are defined in common/hash.c. See
  838. also CMD_HASH for command-line access.
  839. endmenu
  840. menu "Update support"
  841. config UPDATE_TFTP
  842. bool "Auto-update using fitImage via TFTP"
  843. depends on FIT
  844. help
  845. This option allows performing update of NOR with data in fitImage
  846. sent via TFTP boot.
  847. config UPDATE_TFTP_CNT_MAX
  848. int "The number of connection retries during auto-update"
  849. default 0
  850. depends on UPDATE_TFTP
  851. config UPDATE_TFTP_MSEC_MAX
  852. int "Delay in mSec to wait for the TFTP server during auto-update"
  853. default 100
  854. depends on UPDATE_TFTP
  855. config ANDROID_AB
  856. bool "Android A/B updates"
  857. default n
  858. help
  859. If enabled, adds support for the new Android A/B update model. This
  860. allows the bootloader to select which slot to boot from based on the
  861. information provided by userspace via the Android boot_ctrl HAL. This
  862. allows a bootloader to try a new version of the system but roll back
  863. to previous version if the new one didn't boot all the way.
  864. endmenu
  865. menu "Blob list"
  866. config BLOBLIST
  867. bool "Support for a bloblist"
  868. help
  869. This enables support for a bloblist in U-Boot, which can be passed
  870. from TPL to SPL to U-Boot proper (and potentially to Linux). The
  871. blob list supports multiple binary blobs of data, each with a tag,
  872. so that different U-Boot components can store data which can survive
  873. through to the next stage of the boot.
  874. config SPL_BLOBLIST
  875. bool "Support for a bloblist in SPL"
  876. depends on BLOBLIST
  877. default y if SPL
  878. help
  879. This enables a bloblist in SPL. If this is the first part of U-Boot
  880. to run, then the bloblist is set up in SPL and passed to U-Boot
  881. proper. If TPL also has a bloblist, then SPL uses the one from there.
  882. config TPL_BLOBLIST
  883. bool "Support for a bloblist in TPL"
  884. depends on BLOBLIST
  885. default y if TPL
  886. help
  887. This enables a bloblist in TPL. The bloblist is set up in TPL and
  888. passed to SPL and U-Boot proper.
  889. config BLOBLIST_SIZE
  890. hex "Size of bloblist"
  891. depends on BLOBLIST
  892. default 0x400
  893. help
  894. Sets the size of the bloblist in bytes. This must include all
  895. overhead (alignment, bloblist header, record header). The bloblist
  896. is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
  897. proper), and this sane bloblist is used for subsequent stages.
  898. config BLOBLIST_ADDR
  899. hex "Address of bloblist"
  900. depends on BLOBLIST
  901. default 0xe000 if SANDBOX
  902. help
  903. Sets the address of the bloblist, set up by the first part of U-Boot
  904. which runs. Subsequent U-Boot stages typically use the same address.
  905. endmenu
  906. source "common/spl/Kconfig"