Kconfig 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148
  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 && !USE_DEFAULT_ENV_FILE
  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 && !USE_DEFAULT_ENV_FILE
  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 && !USE_DEFAULT_ENV_FILE
  367. default "usb start" if USB_KEYBOARD || USB_STORAGE
  368. default ""
  369. help
  370. This is the default of "preboot" environment variable.
  371. menu "Console"
  372. config MENU
  373. bool
  374. help
  375. This is the library functionality to provide a text-based menu of
  376. choices for the user to make choices with.
  377. config CONSOLE_RECORD
  378. bool "Console recording"
  379. help
  380. This provides a way to record console output (and provide console
  381. input) through circular buffers. This is mostly useful for testing.
  382. Console output is recorded even when the console is silent.
  383. To enable console recording, call console_record_reset_enable()
  384. from your code.
  385. config CONSOLE_RECORD_OUT_SIZE
  386. hex "Output buffer size"
  387. depends on CONSOLE_RECORD
  388. default 0x400 if CONSOLE_RECORD
  389. help
  390. Set the size of the console output buffer. When this fills up, no
  391. more data will be recorded until some is removed. The buffer is
  392. allocated immediately after the malloc() region is ready.
  393. config CONSOLE_RECORD_IN_SIZE
  394. hex "Input buffer size"
  395. depends on CONSOLE_RECORD
  396. default 0x100 if CONSOLE_RECORD
  397. help
  398. Set the size of the console input buffer. When this contains data,
  399. tstc() and getc() will use this in preference to real device input.
  400. The buffer is allocated immediately after the malloc() region is
  401. ready.
  402. config DISABLE_CONSOLE
  403. bool "Add functionality to disable console completely"
  404. help
  405. Disable console (in & out).
  406. config IDENT_STRING
  407. string "Board specific string to be added to uboot version string"
  408. help
  409. This options adds the board specific name to u-boot version.
  410. config LOGLEVEL
  411. int "loglevel"
  412. default 4
  413. range 0 10
  414. help
  415. All Messages with a loglevel smaller than the console loglevel will
  416. be compiled in. The loglevels are defined as follows:
  417. 0 - emergency
  418. 1 - alert
  419. 2 - critical
  420. 3 - error
  421. 4 - warning
  422. 5 - note
  423. 6 - info
  424. 7 - debug
  425. 8 - debug content
  426. 9 - debug hardware I/O
  427. config SPL_LOGLEVEL
  428. int
  429. default LOGLEVEL
  430. config TPL_LOGLEVEL
  431. int
  432. default LOGLEVEL
  433. config SILENT_CONSOLE
  434. bool "Support a silent console"
  435. help
  436. This option allows the console to be silenced, meaning that no
  437. output will appear on the console devices. This is controlled by
  438. setting the environment variable 'silent' to a non-empty value.
  439. Note this also silences the console when booting Linux.
  440. When the console is set up, the variable is checked, and the
  441. GD_FLG_SILENT flag is set. Changing the environment variable later
  442. will update the flag.
  443. config SILENT_U_BOOT_ONLY
  444. bool "Only silence the U-Boot console"
  445. depends on SILENT_CONSOLE
  446. help
  447. Normally when the U-Boot console is silenced, Linux's console is
  448. also silenced (assuming the board boots into Linux). This option
  449. allows the linux console to operate normally, even if U-Boot's
  450. is silenced.
  451. config SILENT_CONSOLE_UPDATE_ON_SET
  452. bool "Changes to the 'silent' environment variable update immediately"
  453. depends on SILENT_CONSOLE
  454. default y if SILENT_CONSOLE
  455. help
  456. When the 'silent' environment variable is changed, update the
  457. console silence flag immediately. This allows 'setenv' to be used
  458. to silence or un-silence the console.
  459. The effect is that any change to the variable will affect the
  460. GD_FLG_SILENT flag.
  461. config SILENT_CONSOLE_UPDATE_ON_RELOC
  462. bool "Allow flags to take effect on relocation"
  463. depends on SILENT_CONSOLE
  464. help
  465. In some cases the environment is not available until relocation
  466. (e.g. NAND). This option makes the value of the 'silent'
  467. environment variable take effect at relocation.
  468. config PRE_CONSOLE_BUFFER
  469. bool "Buffer characters before the console is available"
  470. help
  471. Prior to the console being initialised (i.e. serial UART
  472. initialised etc) all console output is silently discarded.
  473. Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
  474. buffer any console messages prior to the console being
  475. initialised to a buffer. The buffer is a circular buffer, so
  476. if it overflows, earlier output is discarded.
  477. Note that this is not currently supported in SPL. It would be
  478. useful to be able to share the pre-console buffer with SPL.
  479. config PRE_CON_BUF_SZ
  480. int "Sets the size of the pre-console buffer"
  481. depends on PRE_CONSOLE_BUFFER
  482. default 4096
  483. help
  484. The size of the pre-console buffer affects how much console output
  485. can be held before it overflows and starts discarding earlier
  486. output. Normally there is very little output at this early stage,
  487. unless debugging is enabled, so allow enough for ~10 lines of
  488. text.
  489. This is a useful feature if you are using a video console and
  490. want to see the full boot output on the console. Without this
  491. option only the post-relocation output will be displayed.
  492. config PRE_CON_BUF_ADDR
  493. hex "Address of the pre-console buffer"
  494. depends on PRE_CONSOLE_BUFFER
  495. default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
  496. default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
  497. default 0x0f000000 if ROCKCHIP_RK3288
  498. default 0x0f200000 if ROCKCHIP_RK3399
  499. help
  500. This sets the start address of the pre-console buffer. This must
  501. be in available memory and is accessed before relocation and
  502. possibly before DRAM is set up. Therefore choose an address
  503. carefully.
  504. We should consider removing this option and allocating the memory
  505. in board_init_f_init_reserve() instead.
  506. config CONSOLE_MUX
  507. bool "Enable console multiplexing"
  508. default y if DM_VIDEO || VIDEO || LCD
  509. help
  510. This allows multiple devices to be used for each console 'file'.
  511. For example, stdout can be set to go to serial and video.
  512. Similarly, stdin can be set to come from serial and keyboard.
  513. Input can be provided from either source. Console multiplexing
  514. adds a small amount of size to U-Boot. Changes to the environment
  515. variables stdout, stdin and stderr will take effect immediately.
  516. config SYS_CONSOLE_IS_IN_ENV
  517. bool "Select console devices from the environment"
  518. default y if CONSOLE_MUX
  519. help
  520. This allows multiple input/output devices to be set at boot time.
  521. For example, if stdout is set to "serial,video" then output will
  522. be sent to both the serial and video devices on boot. The
  523. environment variables can be updated after boot to change the
  524. input/output devices.
  525. config SYS_CONSOLE_OVERWRITE_ROUTINE
  526. bool "Allow board control over console overwriting"
  527. help
  528. If this is enabled, and the board-specific function
  529. overwrite_console() returns 1, the stdin, stderr and stdout are
  530. switched to the serial port, else the settings in the environment
  531. are used. If this is not enabled, the console will not be switched
  532. to serial.
  533. config SYS_CONSOLE_ENV_OVERWRITE
  534. bool "Update environment variables during console init"
  535. help
  536. The console environment variables (stdout, stdin, stderr) can be
  537. used to determine the correct console devices on start-up. This
  538. option writes the console devices to these variables on console
  539. start-up (after relocation). This causes the environment to be
  540. updated to match the console devices actually chosen.
  541. config SYS_CONSOLE_INFO_QUIET
  542. bool "Don't display the console devices on boot"
  543. help
  544. Normally U-Boot displays the current settings for stdout, stdin
  545. and stderr on boot when the post-relocation console is set up.
  546. Enable this option to suppress this output. It can be obtained by
  547. calling stdio_print_current_devices() from board code.
  548. config SYS_STDIO_DEREGISTER
  549. bool "Allow deregistering stdio devices"
  550. default y if USB_KEYBOARD
  551. help
  552. Generally there is no need to deregister stdio devices since they
  553. are never deactivated. But if a stdio device is used which can be
  554. removed (for example a USB keyboard) then this option can be
  555. enabled to ensure this is handled correctly.
  556. config SPL_SYS_STDIO_DEREGISTER
  557. bool "Allow deregistering stdio devices in SPL"
  558. help
  559. Generally there is no need to deregister stdio devices since they
  560. are never deactivated. But if a stdio device is used which can be
  561. removed (for example a USB keyboard) then this option can be
  562. enabled to ensure this is handled correctly. This is very rarely
  563. needed in SPL.
  564. config SYS_DEVICE_NULLDEV
  565. bool "Enable a null device for stdio"
  566. default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
  567. help
  568. Enable creation of a "nulldev" stdio device. This allows silent
  569. operation of the console by setting stdout to "nulldev". Enable
  570. this to use a serial console under board control.
  571. endmenu
  572. menu "Logging"
  573. config LOG
  574. bool "Enable logging support"
  575. depends on DM
  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. if LOG
  582. config LOG_MAX_LEVEL
  583. int "Maximum log level to record"
  584. default 6
  585. range 0 9
  586. help
  587. This selects the maximum log level that will be recorded. Any value
  588. higher than this will be ignored. If possible log statements below
  589. this level will be discarded at build time. Levels:
  590. 0 - emergency
  591. 1 - alert
  592. 2 - critical
  593. 3 - error
  594. 4 - warning
  595. 5 - note
  596. 6 - info
  597. 7 - debug
  598. 8 - debug content
  599. 9 - debug hardware I/O
  600. config LOG_DEFAULT_LEVEL
  601. int "Default logging level to display"
  602. default LOG_MAX_LEVEL
  603. range 0 LOG_MAX_LEVEL
  604. help
  605. This is the default logging level set when U-Boot starts. It can
  606. be adjusted later using the 'log level' command. Note that setting
  607. this to a value above LOG_MAX_LEVEL will be ineffective, since the
  608. higher levels are not compiled in to U-Boot.
  609. 0 - emergency
  610. 1 - alert
  611. 2 - critical
  612. 3 - error
  613. 4 - warning
  614. 5 - note
  615. 6 - info
  616. 7 - debug
  617. 8 - debug content
  618. 9 - debug hardware I/O
  619. config LOG_CONSOLE
  620. bool "Allow log output to the console"
  621. default y
  622. help
  623. Enables a log driver which writes log records to the console.
  624. Generally the console is the serial port or LCD display. Only the
  625. log message is shown - other details like level, category, file and
  626. line number are omitted.
  627. config LOGF_FILE
  628. bool "Show source file name in log messages by default"
  629. help
  630. Show the source file name in log messages by default. This value
  631. can be overridden using the 'log format' command.
  632. config LOGF_LINE
  633. bool "Show source line number in log messages by default"
  634. help
  635. Show the source line number in log messages by default. This value
  636. can be overridden using the 'log format' command.
  637. config LOGF_FUNC
  638. bool "Show function name in log messages by default"
  639. help
  640. Show the function name in log messages by default. This value can
  641. be overridden using the 'log format' command.
  642. config LOG_SYSLOG
  643. bool "Log output to syslog server"
  644. depends on NET
  645. help
  646. Enables a log driver which broadcasts log records via UDP port 514
  647. to syslog servers.
  648. config SPL_LOG
  649. bool "Enable logging support in SPL"
  650. depends on LOG
  651. help
  652. This enables support for logging of status and debug messages. These
  653. can be displayed on the console, recorded in a memory buffer, or
  654. discarded if not needed. Logging supports various categories and
  655. levels of severity.
  656. if SPL_LOG
  657. config SPL_LOG_MAX_LEVEL
  658. int "Maximum log level to record in SPL"
  659. depends on SPL_LOG
  660. default 3
  661. range 0 9
  662. help
  663. This selects the maximum log level that will be recorded. Any value
  664. higher than this will be ignored. If possible log statements below
  665. this level will be discarded at build time. Levels:
  666. 0 - emergency
  667. 1 - alert
  668. 2 - critical
  669. 3 - error
  670. 4 - warning
  671. 5 - note
  672. 6 - info
  673. 7 - debug
  674. 8 - debug content
  675. 9 - debug hardware I/O
  676. config SPL_LOG_CONSOLE
  677. bool "Allow log output to the console in SPL"
  678. default y
  679. help
  680. Enables a log driver which writes log records to the console.
  681. Generally the console is the serial port or LCD display. Only the
  682. log message is shown - other details like level, category, file and
  683. line number are omitted.
  684. endif
  685. config TPL_LOG
  686. bool "Enable logging support in TPL"
  687. depends on LOG
  688. help
  689. This enables support for logging of status and debug messages. These
  690. can be displayed on the console, recorded in a memory buffer, or
  691. discarded if not needed. Logging supports various categories and
  692. levels of severity.
  693. if TPL_LOG
  694. config TPL_LOG_MAX_LEVEL
  695. int "Maximum log level to record in TPL"
  696. depends on TPL_LOG
  697. default 3
  698. range 0 9
  699. help
  700. This selects the maximum log level that will be recorded. Any value
  701. higher than this will be ignored. If possible log statements below
  702. this level will be discarded at build time. Levels:
  703. 0 - emergency
  704. 1 - alert
  705. 2 - critical
  706. 3 - error
  707. 4 - warning
  708. 5 - note
  709. 6 - info
  710. 7 - debug
  711. 8 - debug content
  712. 9 - debug hardware I/O
  713. config TPL_LOG_CONSOLE
  714. bool "Allow log output to the console in TPL"
  715. default y
  716. help
  717. Enables a log driver which writes log records to the console.
  718. Generally the console is the serial port or LCD display. Only the
  719. log message is shown - other details like level, category, file and
  720. line number are omitted.
  721. endif
  722. config LOG_ERROR_RETURN
  723. bool "Log all functions which return an error"
  724. help
  725. When an error is returned in U-Boot it is sometimes difficult to
  726. figure out the root cause. For example, reading from SPI flash may
  727. fail due to a problem in the SPI controller or due to the flash part
  728. not returning the expected information. This option changes
  729. log_ret() to log any errors it sees. With this option disabled,
  730. log_ret() is a nop.
  731. You can add log_ret() to all functions which return an error code.
  732. config LOG_TEST
  733. bool "Provide a test for logging"
  734. depends on UNIT_TEST
  735. default y if SANDBOX
  736. help
  737. This enables a 'log test' command to test logging. It is normally
  738. executed from a pytest and simply outputs logging information
  739. in various different ways to test that the logging system works
  740. correctly with various settings.
  741. endif
  742. endmenu
  743. config SUPPORT_RAW_INITRD
  744. bool "Enable raw initrd images"
  745. help
  746. Note, defining the SUPPORT_RAW_INITRD allows user to supply
  747. kernel with raw initrd images. The syntax is slightly different, the
  748. address of the initrd must be augmented by it's size, in the following
  749. format: "<initrd address>:<initrd size>".
  750. config DEFAULT_FDT_FILE
  751. string "Default fdt file"
  752. help
  753. This option is used to set the default fdt file to boot OS.
  754. config MISC_INIT_R
  755. bool "Execute Misc Init"
  756. default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
  757. default y if ARCH_OMAP2PLUS && !AM33XX
  758. help
  759. Enabling this option calls 'misc_init_r' function
  760. config VERSION_VARIABLE
  761. bool "add U-Boot environment variable vers"
  762. default n
  763. help
  764. If this variable is defined, an environment variable
  765. named "ver" is created by U-Boot showing the U-Boot
  766. version as printed by the "version" command.
  767. Any change to this variable will be reverted at the
  768. next reset.
  769. config BOARD_LATE_INIT
  770. bool "Execute Board late init"
  771. help
  772. Sometimes board require some initialization code that might
  773. require once the actual init done, example saving board specific env,
  774. boot-modes etc. which eventually done at late.
  775. So this config enable the late init code with the help of board_late_init
  776. function which should defined on respective boards.
  777. config DISPLAY_CPUINFO
  778. bool "Display information about the CPU during start up"
  779. default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
  780. help
  781. Display information about the CPU that U-Boot is running on
  782. when U-Boot starts up. The function print_cpuinfo() is called
  783. to do this.
  784. config DISPLAY_BOARDINFO
  785. bool "Display information about the board during early start up"
  786. default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
  787. help
  788. Display information about the board that U-Boot is running on
  789. when U-Boot starts up. The board function checkboard() is called
  790. to do this.
  791. config DISPLAY_BOARDINFO_LATE
  792. bool "Display information about the board during late start up"
  793. help
  794. Display information about the board that U-Boot is running on after
  795. the relocation phase. The board function checkboard() is called to do
  796. this.
  797. config BOUNCE_BUFFER
  798. bool "Include bounce buffer API"
  799. help
  800. Some peripherals support DMA from a subset of physically
  801. addressable memory only. To support such peripherals, the
  802. bounce buffer API uses a temporary buffer: it copies data
  803. to/from DMA regions while managing cache operations.
  804. A second possible use of bounce buffers is their ability to
  805. provide aligned buffers for DMA operations.
  806. config BOARD_TYPES
  807. bool "Call get_board_type() to get and display the board type"
  808. help
  809. If this option is enabled, checkboard() will call get_board_type()
  810. to get a string containing the board type and this will be
  811. displayed immediately after the model is shown on the console
  812. early in boot.
  813. menu "Start-up hooks"
  814. config ARCH_EARLY_INIT_R
  815. bool "Call arch-specific init soon after relocation"
  816. help
  817. With this option U-Boot will call arch_early_init_r() soon after
  818. relocation. Driver model is running by this point, and the cache
  819. is on. Note that board_early_init_r() is called first, if
  820. enabled. This can be used to set up architecture-specific devices.
  821. config ARCH_MISC_INIT
  822. bool "Call arch-specific init after relocation, when console is ready"
  823. help
  824. With this option U-Boot will call arch_misc_init() after
  825. relocation to allow miscellaneous arch-dependent initialisation
  826. to be performed. This function should be defined by the board
  827. and will be called after the console is set up, after relocation.
  828. config BOARD_EARLY_INIT_F
  829. bool "Call board-specific init before relocation"
  830. help
  831. Some boards need to perform initialisation as soon as possible
  832. after boot. With this option, U-Boot calls board_early_init_f()
  833. after driver model is ready in the pre-relocation init sequence.
  834. Note that the normal serial console is not yet set up, but the
  835. debug UART will be available if enabled.
  836. config BOARD_EARLY_INIT_R
  837. bool "Call board-specific init after relocation"
  838. help
  839. Some boards need to perform initialisation as directly after
  840. relocation. With this option, U-Boot calls board_early_init_r()
  841. in the post-relocation init sequence.
  842. config LAST_STAGE_INIT
  843. bool "Call board-specific as last setup step"
  844. help
  845. Some boards need to perform initialisation immediately before control
  846. is passed to the command-line interpreter (e.g. for initializations
  847. that depend on later phases in the init sequence). With this option,
  848. U-Boot calls last_stage_init() before the command-line interpreter is
  849. started.
  850. config PCI_INIT_R
  851. bool "Enumerate PCI buses during init"
  852. depends on PCI
  853. default y if !DM_PCI
  854. help
  855. With this option U-Boot will call pci_init() soon after relocation,
  856. which will enumerate PCI buses. This is needed, for instance, in the
  857. case of DM PCI-based Ethernet devices, which will not be detected
  858. without having the enumeration performed earlier.
  859. endmenu
  860. menu "Security support"
  861. config HASH
  862. bool # "Support hashing API (SHA1, SHA256, etc.)"
  863. help
  864. This provides a way to hash data in memory using various supported
  865. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  866. and the algorithms it supports are defined in common/hash.c. See
  867. also CMD_HASH for command-line access.
  868. config AVB_VERIFY
  869. bool "Build Android Verified Boot operations"
  870. depends on LIBAVB
  871. depends on PARTITION_UUIDS
  872. help
  873. This option enables compilation of bootloader-dependent operations,
  874. used by Android Verified Boot 2.0 library (libavb). Includes:
  875. * Helpers to process strings in order to build OS bootargs.
  876. * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
  877. * Helpers to alloc/init/free avb ops.
  878. if AVB_VERIFY
  879. config AVB_BUF_ADDR
  880. hex "Define AVB buffer address"
  881. default FASTBOOT_BUF_ADDR
  882. help
  883. AVB requires a buffer for memory transactions. This variable defines the
  884. buffer address.
  885. config AVB_BUF_SIZE
  886. hex "Define AVB buffer SIZE"
  887. default FASTBOOT_BUF_SIZE
  888. help
  889. AVB requires a buffer for memory transactions. This variable defines the
  890. buffer size.
  891. endif # AVB_VERIFY
  892. config SPL_HASH
  893. bool # "Support hashing API (SHA1, SHA256, etc.)"
  894. help
  895. This provides a way to hash data in memory using various supported
  896. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  897. and the algorithms it supports are defined in common/hash.c. See
  898. also CMD_HASH for command-line access.
  899. config TPL_HASH
  900. bool # "Support hashing API (SHA1, SHA256, etc.)"
  901. help
  902. This provides a way to hash data in memory using various supported
  903. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  904. and the algorithms it supports are defined in common/hash.c. See
  905. also CMD_HASH for command-line access.
  906. endmenu
  907. menu "Update support"
  908. config UPDATE_TFTP
  909. bool "Auto-update using fitImage via TFTP"
  910. depends on FIT
  911. help
  912. This option allows performing update of NOR with data in fitImage
  913. sent via TFTP boot.
  914. config UPDATE_TFTP_CNT_MAX
  915. int "The number of connection retries during auto-update"
  916. default 0
  917. depends on UPDATE_TFTP
  918. config UPDATE_TFTP_MSEC_MAX
  919. int "Delay in mSec to wait for the TFTP server during auto-update"
  920. default 100
  921. depends on UPDATE_TFTP
  922. config ANDROID_AB
  923. bool "Android A/B updates"
  924. default n
  925. help
  926. If enabled, adds support for the new Android A/B update model. This
  927. allows the bootloader to select which slot to boot from based on the
  928. information provided by userspace via the Android boot_ctrl HAL. This
  929. allows a bootloader to try a new version of the system but roll back
  930. to previous version if the new one didn't boot all the way.
  931. endmenu
  932. menu "Blob list"
  933. config BLOBLIST
  934. bool "Support for a bloblist"
  935. help
  936. This enables support for a bloblist in U-Boot, which can be passed
  937. from TPL to SPL to U-Boot proper (and potentially to Linux). The
  938. blob list supports multiple binary blobs of data, each with a tag,
  939. so that different U-Boot components can store data which can survive
  940. through to the next stage of the boot.
  941. config SPL_BLOBLIST
  942. bool "Support for a bloblist in SPL"
  943. depends on BLOBLIST
  944. default y if SPL
  945. help
  946. This enables a bloblist in SPL. If this is the first part of U-Boot
  947. to run, then the bloblist is set up in SPL and passed to U-Boot
  948. proper. If TPL also has a bloblist, then SPL uses the one from there.
  949. config TPL_BLOBLIST
  950. bool "Support for a bloblist in TPL"
  951. depends on BLOBLIST
  952. default y if TPL
  953. help
  954. This enables a bloblist in TPL. The bloblist is set up in TPL and
  955. passed to SPL and U-Boot proper.
  956. config BLOBLIST_SIZE
  957. hex "Size of bloblist"
  958. depends on BLOBLIST
  959. default 0x400
  960. help
  961. Sets the size of the bloblist in bytes. This must include all
  962. overhead (alignment, bloblist header, record header). The bloblist
  963. is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
  964. proper), and this sane bloblist is used for subsequent stages.
  965. config BLOBLIST_ADDR
  966. hex "Address of bloblist"
  967. depends on BLOBLIST
  968. default 0xe000 if SANDBOX
  969. help
  970. Sets the address of the bloblist, set up by the first part of U-Boot
  971. which runs. Subsequent U-Boot stages typically use the same address.
  972. endmenu
  973. source "common/spl/Kconfig"
  974. config IMAGE_SIGN_INFO
  975. bool
  976. select SHA1
  977. select SHA256
  978. help
  979. Enable image_sign_info helper functions.
  980. if IMAGE_SIGN_INFO
  981. config SPL_IMAGE_SIGN_INFO
  982. bool
  983. select SHA1
  984. select SHA256
  985. help
  986. Enable image_sign_info helper functions in SPL.
  987. endif