Kconfig 17 KB

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