Kconfig 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  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 BOOTSTAGE_REPORT
  18. bool "Display a detailed boot timing report before booting the OS"
  19. depends on BOOTSTAGE
  20. help
  21. Enable output of a boot time report just before the OS is booted.
  22. This shows how long it took U-Boot to go through each stage of the
  23. boot process. The report looks something like this:
  24. Timer summary in microseconds:
  25. Mark Elapsed Stage
  26. 0 0 reset
  27. 3,575,678 3,575,678 board_init_f start
  28. 3,575,695 17 arch_cpu_init A9
  29. 3,575,777 82 arch_cpu_init done
  30. 3,659,598 83,821 board_init_r start
  31. 3,910,375 250,777 main_loop
  32. 29,916,167 26,005,792 bootm_start
  33. 30,361,327 445,160 start_kernel
  34. config BOOTSTAGE_USER_COUNT
  35. hex "Number of boot ID numbers available for user use"
  36. default 20
  37. help
  38. This is the number of available user bootstage records.
  39. Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
  40. a new ID will be allocated from this stash. If you exceed
  41. the limit, recording will stop.
  42. config BOOTSTAGE_FDT
  43. bool "Store boot timing information in the OS device tree"
  44. depends on BOOTSTAGE
  45. help
  46. Stash the bootstage information in the FDT. A root 'bootstage'
  47. node is created with each bootstage id as a child. Each child
  48. has a 'name' property and either 'mark' containing the
  49. mark time in microseconds, or 'accum' containing the
  50. accumulated time for that bootstage id in microseconds.
  51. For example:
  52. bootstage {
  53. 154 {
  54. name = "board_init_f";
  55. mark = <3575678>;
  56. };
  57. 170 {
  58. name = "lcd";
  59. accum = <33482>;
  60. };
  61. };
  62. Code in the Linux kernel can find this in /proc/devicetree.
  63. config BOOTSTAGE_STASH
  64. bool "Stash the boot timing information in memory before booting OS"
  65. depends on BOOTSTAGE
  66. help
  67. Some OSes do not support device tree. Bootstage can instead write
  68. the boot timing information in a binary format at a given address.
  69. This happens through a call to bootstage_stash(), typically in
  70. the CPU's cleanup_before_linux() function. You can use the
  71. 'bootstage stash' and 'bootstage unstash' commands to do this on
  72. the command line.
  73. config BOOTSTAGE_STASH_ADDR
  74. hex "Address to stash boot timing information"
  75. default 0
  76. help
  77. Provide an address which will not be overwritten by the OS when it
  78. starts, so that it can read this information when ready.
  79. config BOOTSTAGE_STASH_SIZE
  80. hex "Size of boot timing stash region"
  81. default 4096
  82. help
  83. This should be large enough to hold the bootstage stash. A value of
  84. 4096 (4KiB) is normally plenty.
  85. endmenu
  86. menu "Boot media"
  87. config NOR_BOOT
  88. bool "Support for booting from NOR flash"
  89. depends on NOR
  90. help
  91. Enabling this will make a U-Boot binary that is capable of being
  92. booted via NOR. In this case we will enable certain pinmux early
  93. as the ROM only partially sets up pinmux. We also default to using
  94. NOR for environment.
  95. config NAND_BOOT
  96. bool "Support for booting from NAND flash"
  97. default n
  98. help
  99. Enabling this will make a U-Boot binary that is capable of being
  100. booted via NAND flash. This is not a must, some SoCs need this,
  101. some not.
  102. config ONENAND_BOOT
  103. bool "Support for booting from ONENAND"
  104. default n
  105. help
  106. Enabling this will make a U-Boot binary that is capable of being
  107. booted via ONENAND. This is not a must, some SoCs need this,
  108. some not.
  109. config QSPI_BOOT
  110. bool "Support for booting from QSPI flash"
  111. default n
  112. help
  113. Enabling this will make a U-Boot binary that is capable of being
  114. booted via QSPI flash. This is not a must, some SoCs need this,
  115. some not.
  116. config SATA_BOOT
  117. bool "Support for booting from SATA"
  118. default n
  119. help
  120. Enabling this will make a U-Boot binary that is capable of being
  121. booted via SATA. This is not a must, some SoCs need this,
  122. some not.
  123. config SD_BOOT
  124. bool "Support for booting from SD/EMMC"
  125. default n
  126. help
  127. Enabling this will make a U-Boot binary that is capable of being
  128. booted via SD/EMMC. This is not a must, some SoCs need this,
  129. some not.
  130. config SPI_BOOT
  131. bool "Support for booting from SPI flash"
  132. default n
  133. help
  134. Enabling this will make a U-Boot binary that is capable of being
  135. booted via SPI flash. This is not a must, some SoCs need this,
  136. some not.
  137. endmenu
  138. config BOOTDELAY
  139. int "delay in seconds before automatically booting"
  140. default 2
  141. depends on AUTOBOOT
  142. help
  143. Delay before automatically running bootcmd;
  144. set to 0 to autoboot with no delay, but you can stop it by key input.
  145. set to -1 to disable autoboot.
  146. set to -2 to autoboot with no delay and not check for abort
  147. See doc/README.autoboot for details.
  148. menu "Console"
  149. config MENU
  150. bool
  151. help
  152. This is the library functionality to provide a text-based menu of
  153. choices for the user to make choices with.
  154. config CONSOLE_RECORD
  155. bool "Console recording"
  156. help
  157. This provides a way to record console output (and provide console
  158. input) through circular buffers. This is mostly useful for testing.
  159. Console output is recorded even when the console is silent.
  160. To enable console recording, call console_record_reset_enable()
  161. from your code.
  162. config CONSOLE_RECORD_OUT_SIZE
  163. hex "Output buffer size"
  164. depends on CONSOLE_RECORD
  165. default 0x400 if CONSOLE_RECORD
  166. help
  167. Set the size of the console output buffer. When this fills up, no
  168. more data will be recorded until some is removed. The buffer is
  169. allocated immediately after the malloc() region is ready.
  170. config CONSOLE_RECORD_IN_SIZE
  171. hex "Input buffer size"
  172. depends on CONSOLE_RECORD
  173. default 0x100 if CONSOLE_RECORD
  174. help
  175. Set the size of the console input buffer. When this contains data,
  176. tstc() and getc() will use this in preference to real device input.
  177. The buffer is allocated immediately after the malloc() region is
  178. ready.
  179. config IDENT_STRING
  180. string "Board specific string to be added to uboot version string"
  181. help
  182. This options adds the board specific name to u-boot version.
  183. config SILENT_CONSOLE
  184. bool "Support a silent console"
  185. help
  186. This option allows the console to be silenced, meaning that no
  187. output will appear on the console devices. This is controlled by
  188. setting the environment vaariable 'silent' to a non-empty value.
  189. Note this also silences the console when booting Linux.
  190. When the console is set up, the variable is checked, and the
  191. GD_FLG_SILENT flag is set. Changing the environment variable later
  192. will update the flag.
  193. config SILENT_U_BOOT_ONLY
  194. bool "Only silence the U-Boot console"
  195. depends on SILENT_CONSOLE
  196. help
  197. Normally when the U-Boot console is silenced, Linux's console is
  198. also silenced (assuming the board boots into Linux). This option
  199. allows the linux console to operate normally, even if U-Boot's
  200. is silenced.
  201. config SILENT_CONSOLE_UPDATE_ON_SET
  202. bool "Changes to the 'silent' environment variable update immediately"
  203. depends on SILENT_CONSOLE
  204. default y if SILENT_CONSOLE
  205. help
  206. When the 'silent' environment variable is changed, update the
  207. console silence flag immediately. This allows 'setenv' to be used
  208. to silence or un-silence the console.
  209. The effect is that any change to the variable will affect the
  210. GD_FLG_SILENT flag.
  211. config SILENT_CONSOLE_UPDATE_ON_RELOC
  212. bool "Allow flags to take effect on relocation"
  213. depends on SILENT_CONSOLE
  214. help
  215. In some cases the environment is not available until relocation
  216. (e.g. NAND). This option makes the value of the 'silent'
  217. environment variable take effect at relocation.
  218. config PRE_CONSOLE_BUFFER
  219. bool "Buffer characters before the console is available"
  220. help
  221. Prior to the console being initialised (i.e. serial UART
  222. initialised etc) all console output is silently discarded.
  223. Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
  224. buffer any console messages prior to the console being
  225. initialised to a buffer. The buffer is a circular buffer, so
  226. if it overflows, earlier output is discarded.
  227. Note that this is not currently supported in SPL. It would be
  228. useful to be able to share the pre-console buffer with SPL.
  229. config PRE_CON_BUF_SZ
  230. int "Sets the size of the pre-console buffer"
  231. depends on PRE_CONSOLE_BUFFER
  232. default 4096
  233. help
  234. The size of the pre-console buffer affects how much console output
  235. can be held before it overflows and starts discarding earlier
  236. output. Normally there is very little output at this early stage,
  237. unless debugging is enabled, so allow enough for ~10 lines of
  238. text.
  239. This is a useful feature if you are using a video console and
  240. want to see the full boot output on the console. Without this
  241. option only the post-relocation output will be displayed.
  242. config PRE_CON_BUF_ADDR
  243. hex "Address of the pre-console buffer"
  244. depends on PRE_CONSOLE_BUFFER
  245. default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
  246. default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
  247. help
  248. This sets the start address of the pre-console buffer. This must
  249. be in available memory and is accessed before relocation and
  250. possibly before DRAM is set up. Therefore choose an address
  251. carefully.
  252. We should consider removing this option and allocating the memory
  253. in board_init_f_init_reserve() instead.
  254. config CONSOLE_MUX
  255. bool "Enable console multiplexing"
  256. default y if DM_VIDEO || VIDEO || LCD
  257. help
  258. This allows multiple devices to be used for each console 'file'.
  259. For example, stdout can be set to go to serial and video.
  260. Similarly, stdin can be set to come from serial and keyboard.
  261. Input can be provided from either source. Console multiplexing
  262. adds a small amount of size to U-Boot. Changes to the environment
  263. variables stdout, stdin and stderr will take effect immediately.
  264. config SYS_CONSOLE_IS_IN_ENV
  265. bool "Select console devices from the environment"
  266. default y if CONSOLE_MUX
  267. help
  268. This allows multiple input/output devices to be set at boot time.
  269. For example, if stdout is set to "serial,video" then output will
  270. be sent to both the serial and video devices on boot. The
  271. environment variables can be updated after boot to change the
  272. input/output devices.
  273. config SYS_CONSOLE_OVERWRITE_ROUTINE
  274. bool "Allow board control over console overwriting"
  275. help
  276. If this is enabled, and the board-specific function
  277. overwrite_console() returns 1, the stdin, stderr and stdout are
  278. switched to the serial port, else the settings in the environment
  279. are used. If this is not enabled, the console will not be switched
  280. to serial.
  281. config SYS_CONSOLE_ENV_OVERWRITE
  282. bool "Update environment variables during console init"
  283. help
  284. The console environment variables (stdout, stdin, stderr) can be
  285. used to determine the correct console devices on start-up. This
  286. option writes the console devices to these variables on console
  287. start-up (after relocation). This causes the environment to be
  288. updated to match the console devices actually chosen.
  289. config SYS_CONSOLE_INFO_QUIET
  290. bool "Don't display the console devices on boot"
  291. help
  292. Normally U-Boot displays the current settings for stdout, stdin
  293. and stderr on boot when the post-relocation console is set up.
  294. Enable this option to supress this output. It can be obtained by
  295. calling stdio_print_current_devices() from board code.
  296. config SYS_STDIO_DEREGISTER
  297. bool "Allow deregistering stdio devices"
  298. default y if USB_KEYBOARD
  299. help
  300. Generally there is no need to deregister stdio devices since they
  301. are never deactivated. But if a stdio device is used which can be
  302. removed (for example a USB keyboard) then this option can be
  303. enabled to ensure this is handled correctly.
  304. endmenu
  305. config DTB_RESELECT
  306. bool "Support swapping dtbs at a later point in boot"
  307. depends on FIT_EMBED
  308. default n
  309. help
  310. It is possible during initial boot you may need to use a generic
  311. dtb until you can fully determine the board your running on. This
  312. config allows boards to implement a function at a later point
  313. during boot to switch to the "correct" dtb.
  314. config FIT_EMBED
  315. bool "Support a FIT image embedded in the U-boot image"
  316. default n
  317. help
  318. This option provides hooks to allow U-boot to parse an
  319. appended FIT image and enable board specific code to then select
  320. the correct DTB to be used.
  321. config DEFAULT_FDT_FILE
  322. string "Default fdt file"
  323. help
  324. This option is used to set the default fdt file to boot OS.
  325. config SYS_NO_FLASH
  326. bool "Disable support for parallel NOR flash"
  327. default n
  328. help
  329. This option is used to disable support for parallel NOR flash.
  330. config VERSION_VARIABLE
  331. bool "add U-Boot environment variable vers"
  332. default n
  333. help
  334. If this variable is defined, an environment variable
  335. named "ver" is created by U-Boot showing the U-Boot
  336. version as printed by the "version" command.
  337. Any change to this variable will be reverted at the
  338. next reset.
  339. config DISPLAY_CPUINFO
  340. bool "Display information about the CPU during start up"
  341. default y if ARM || BLACKFIN || NIOS2 || X86 || XTENSA
  342. help
  343. Display information about the CPU that U-Boot is running on
  344. when U-Boot starts up. The function print_cpuinfo() is called
  345. to do this.
  346. config DISPLAY_BOARDINFO
  347. bool "Display information about the board during start up"
  348. default y if ARM || M68K || MIPS || PPC || SPARC || XTENSA
  349. help
  350. Display information about the board that U-Boot is running on
  351. when U-Boot starts up. The board function checkboard() is called
  352. to do this.
  353. source "common/spl/Kconfig"