Kconfig 37 KB

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