xref: /openbmc/u-boot/common/Kconfig (revision ef26d6039a14c03c516c09a7835b491e671a4b0b)
1ee2b2434SSimon Glassmenu "Boot timing"
2ee2b2434SSimon Glass
3ee2b2434SSimon Glassconfig BOOTSTAGE
4ee2b2434SSimon Glass	bool "Boot timing and reporting"
5ee2b2434SSimon Glass	help
6ee2b2434SSimon Glass	  Enable recording of boot time while booting. To use it, insert
7ee2b2434SSimon Glass	  calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
8ee2b2434SSimon Glass	  bootstage.h. Only a single entry is recorded for each ID. You can
9ee2b2434SSimon Glass	  give the entry a name with bootstage_mark_name(). You can also
10ee2b2434SSimon Glass	  record elapsed time in a particular stage using bootstage_start()
11ee2b2434SSimon Glass	  before starting and bootstage_accum() when finished. Bootstage will
1257247d9cSRobert P. J. Day	  add up all the accumulated time and report it.
13ee2b2434SSimon Glass
14ee2b2434SSimon Glass	  Normally, IDs are defined in bootstage.h but a small number of
1557247d9cSRobert P. J. Day	  additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
16ee2b2434SSimon Glass	  as the ID.
17ee2b2434SSimon Glass
1857247d9cSRobert P. J. Day	  Calls to show_boot_progress() will also result in log entries but
19ee2b2434SSimon Glass	  these will not have names.
20ee2b2434SSimon Glass
21ee2b2434SSimon Glassconfig BOOTSTAGE_REPORT
22ee2b2434SSimon Glass	bool "Display a detailed boot timing report before booting the OS"
23ee2b2434SSimon Glass	depends on BOOTSTAGE
24ee2b2434SSimon Glass	help
25ee2b2434SSimon Glass	  Enable output of a boot time report just before the OS is booted.
26ee2b2434SSimon Glass	  This shows how long it took U-Boot to go through each stage of the
27ee2b2434SSimon Glass	  boot process. The report looks something like this:
28ee2b2434SSimon Glass
29ee2b2434SSimon Glass		Timer summary in microseconds:
30ee2b2434SSimon Glass		       Mark    Elapsed  Stage
31ee2b2434SSimon Glass			  0          0  reset
32ee2b2434SSimon Glass		  3,575,678  3,575,678  board_init_f start
33ee2b2434SSimon Glass		  3,575,695         17  arch_cpu_init A9
34ee2b2434SSimon Glass		  3,575,777         82  arch_cpu_init done
35ee2b2434SSimon Glass		  3,659,598     83,821  board_init_r start
36ee2b2434SSimon Glass		  3,910,375    250,777  main_loop
37ee2b2434SSimon Glass		 29,916,167 26,005,792  bootm_start
38ee2b2434SSimon Glass		 30,361,327    445,160  start_kernel
39ee2b2434SSimon Glass
40ee2b2434SSimon Glassconfig BOOTSTAGE_USER_COUNT
41ee2b2434SSimon Glass	hex "Number of boot ID numbers available for user use"
42ee2b2434SSimon Glass	default 20
43ee2b2434SSimon Glass	help
44ee2b2434SSimon Glass	  This is the number of available user bootstage records.
45ee2b2434SSimon Glass	  Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
46ee2b2434SSimon Glass	  a new ID will be allocated from this stash. If you exceed
47ee2b2434SSimon Glass	  the limit, recording will stop.
48ee2b2434SSimon Glass
49ee2b2434SSimon Glassconfig BOOTSTAGE_FDT
50ee2b2434SSimon Glass	bool "Store boot timing information in the OS device tree"
51ee2b2434SSimon Glass	depends on BOOTSTAGE
52ee2b2434SSimon Glass	help
53ee2b2434SSimon Glass	  Stash the bootstage information in the FDT. A root 'bootstage'
54ee2b2434SSimon Glass	  node is created with each bootstage id as a child. Each child
55ee2b2434SSimon Glass	  has a 'name' property and either 'mark' containing the
5657247d9cSRobert P. J. Day	  mark time in microseconds, or 'accum' containing the
57ee2b2434SSimon Glass	  accumulated time for that bootstage id in microseconds.
58ee2b2434SSimon Glass	  For example:
59ee2b2434SSimon Glass
60ee2b2434SSimon Glass		bootstage {
61ee2b2434SSimon Glass			154 {
62ee2b2434SSimon Glass				name = "board_init_f";
63ee2b2434SSimon Glass				mark = <3575678>;
64ee2b2434SSimon Glass			};
65ee2b2434SSimon Glass			170 {
66ee2b2434SSimon Glass				name = "lcd";
67ee2b2434SSimon Glass				accum = <33482>;
68ee2b2434SSimon Glass			};
69ee2b2434SSimon Glass		};
70ee2b2434SSimon Glass
71ee2b2434SSimon Glass	  Code in the Linux kernel can find this in /proc/devicetree.
72ee2b2434SSimon Glass
73ee2b2434SSimon Glassconfig BOOTSTAGE_STASH
74ee2b2434SSimon Glass	bool "Stash the boot timing information in memory before booting OS"
75ee2b2434SSimon Glass	depends on BOOTSTAGE
76ee2b2434SSimon Glass	help
77ee2b2434SSimon Glass	  Some OSes do not support device tree. Bootstage can instead write
78ee2b2434SSimon Glass	  the boot timing information in a binary format at a given address.
79ee2b2434SSimon Glass	  This happens through a call to bootstage_stash(), typically in
80ee2b2434SSimon Glass	  the CPU's cleanup_before_linux() function. You can use the
81ee2b2434SSimon Glass	  'bootstage stash' and 'bootstage unstash' commands to do this on
82ee2b2434SSimon Glass	  the command line.
83ee2b2434SSimon Glass
84ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_ADDR
85ee2b2434SSimon Glass	hex "Address to stash boot timing information"
86ee2b2434SSimon Glass	default 0
87ee2b2434SSimon Glass	help
88ee2b2434SSimon Glass	  Provide an address which will not be overwritten by the OS when it
89ee2b2434SSimon Glass	  starts, so that it can read this information when ready.
90ee2b2434SSimon Glass
91ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_SIZE
92ee2b2434SSimon Glass	hex "Size of boot timing stash region"
93ee2b2434SSimon Glass	default 4096
94ee2b2434SSimon Glass	help
95ee2b2434SSimon Glass	  This should be large enough to hold the bootstage stash. A value of
96ee2b2434SSimon Glass	  4096 (4KiB) is normally plenty.
97ee2b2434SSimon Glass
98ee2b2434SSimon Glassendmenu
99ee2b2434SSimon Glass
100d14739ffSPeng Fanmenu "Boot media"
101d14739ffSPeng Fan
102d14739ffSPeng Fanconfig NOR_BOOT
103d14739ffSPeng Fan	bool "Support for booting from NOR flash"
104d14739ffSPeng Fan	depends on NOR
105d14739ffSPeng Fan	help
106d14739ffSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
107d14739ffSPeng Fan	  booted via NOR.  In this case we will enable certain pinmux early
108d14739ffSPeng Fan	  as the ROM only partially sets up pinmux.  We also default to using
109d14739ffSPeng Fan	  NOR for environment.
110d14739ffSPeng Fan
111faaef73fSPeng Fanconfig NAND_BOOT
112faaef73fSPeng Fan	bool "Support for booting from NAND flash"
113faaef73fSPeng Fan	default n
114faaef73fSPeng Fan	help
115faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
116faaef73fSPeng Fan	  booted via NAND flash. This is not a must, some SoCs need this,
11757247d9cSRobert P. J. Day	  some not.
118faaef73fSPeng Fan
119faaef73fSPeng Fanconfig ONENAND_BOOT
120faaef73fSPeng Fan	bool "Support for booting from ONENAND"
121faaef73fSPeng Fan	default n
122faaef73fSPeng Fan	help
123faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
124faaef73fSPeng Fan	  booted via ONENAND. This is not a must, some SoCs need this,
12557247d9cSRobert P. J. Day	  some not.
126faaef73fSPeng Fan
127faaef73fSPeng Fanconfig QSPI_BOOT
128faaef73fSPeng Fan	bool "Support for booting from QSPI flash"
129faaef73fSPeng Fan	default n
130faaef73fSPeng Fan	help
131faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
132faaef73fSPeng Fan	  booted via QSPI flash. This is not a must, some SoCs need this,
13357247d9cSRobert P. J. Day	  some not.
134faaef73fSPeng Fan
135faaef73fSPeng Fanconfig SATA_BOOT
136faaef73fSPeng Fan	bool "Support for booting from SATA"
137faaef73fSPeng Fan	default n
138faaef73fSPeng Fan	help
139faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
140faaef73fSPeng Fan	  booted via SATA. This is not a must, some SoCs need this,
14157247d9cSRobert P. J. Day	  some not.
142faaef73fSPeng Fan
143faaef73fSPeng Fanconfig SD_BOOT
144faaef73fSPeng Fan	bool "Support for booting from SD/EMMC"
145faaef73fSPeng Fan	default n
146faaef73fSPeng Fan	help
147faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
148faaef73fSPeng Fan	  booted via SD/EMMC. This is not a must, some SoCs need this,
14957247d9cSRobert P. J. Day	  some not.
150faaef73fSPeng Fan
151faaef73fSPeng Fanconfig SPI_BOOT
152faaef73fSPeng Fan	bool "Support for booting from SPI flash"
153faaef73fSPeng Fan	default n
154faaef73fSPeng Fan	help
155faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
156faaef73fSPeng Fan	  booted via SPI flash. This is not a must, some SoCs need this,
15757247d9cSRobert P. J. Day	  some not.
158faaef73fSPeng Fan
159d14739ffSPeng Fanendmenu
160d14739ffSPeng Fan
161bb597c0eSHeiko Schocherconfig BOOTDELAY
162bb597c0eSHeiko Schocher	int "delay in seconds before automatically booting"
1635e4e8741STom Rini	default 2
16441598c82SMasahiro Yamada	depends on AUTOBOOT
165bb597c0eSHeiko Schocher	help
166bb597c0eSHeiko Schocher	  Delay before automatically running bootcmd;
1672fbb8462SMasahiro Yamada	  set to 0 to autoboot with no delay, but you can stop it by key input.
168bb597c0eSHeiko Schocher	  set to -1 to disable autoboot.
169bb597c0eSHeiko Schocher	  set to -2 to autoboot with no delay and not check for abort
170bb597c0eSHeiko Schocher
1719060970fSMasahiro Yamada	  See doc/README.autoboot for details.
1729060970fSMasahiro Yamada
17398af8799SSimon Glassmenu "Console"
17498af8799SSimon Glass
1759854a874SSimon Glassconfig CONSOLE_RECORD
1769854a874SSimon Glass	bool "Console recording"
1779854a874SSimon Glass	help
1789854a874SSimon Glass	  This provides a way to record console output (and provide console
17957247d9cSRobert P. J. Day	  input) through circular buffers. This is mostly useful for testing.
1809854a874SSimon Glass	  Console output is recorded even when the console is silent.
1819854a874SSimon Glass	  To enable console recording, call console_record_reset_enable()
1829854a874SSimon Glass	  from your code.
1839854a874SSimon Glass
1849854a874SSimon Glassconfig CONSOLE_RECORD_OUT_SIZE
1859854a874SSimon Glass	hex "Output buffer size"
1869854a874SSimon Glass	depends on CONSOLE_RECORD
1879854a874SSimon Glass	default 0x400 if CONSOLE_RECORD
1889854a874SSimon Glass	help
1899854a874SSimon Glass	  Set the size of the console output buffer. When this fills up, no
1909854a874SSimon Glass	  more data will be recorded until some is removed. The buffer is
1919854a874SSimon Glass	  allocated immediately after the malloc() region is ready.
1929854a874SSimon Glass
1939854a874SSimon Glassconfig CONSOLE_RECORD_IN_SIZE
1949854a874SSimon Glass	hex "Input buffer size"
1959854a874SSimon Glass	depends on CONSOLE_RECORD
1969854a874SSimon Glass	default 0x100 if CONSOLE_RECORD
1979854a874SSimon Glass	help
1989854a874SSimon Glass	  Set the size of the console input buffer. When this contains data,
1999854a874SSimon Glass	  tstc() and getc() will use this in preference to real device input.
2009854a874SSimon Glass	  The buffer is allocated immediately after the malloc() region is
2019854a874SSimon Glass	  ready.
2024d25507fSSiva Durga Prasad Paladugu
203a4d88920SSiva Durga Prasad Paladuguconfig IDENT_STRING
204a4d88920SSiva Durga Prasad Paladugu	string "Board specific string to be added to uboot version string"
205a4d88920SSiva Durga Prasad Paladugu	help
206a4d88920SSiva Durga Prasad Paladugu	  This options adds the board specific name to u-boot version.
207a4d88920SSiva Durga Prasad Paladugu
20898af8799SSimon Glassconfig SILENT_CONSOLE
20998af8799SSimon Glass	bool "Support a silent console"
21098af8799SSimon Glass	help
21198af8799SSimon Glass	  This option allows the console to be silenced, meaning that no
21298af8799SSimon Glass	  output will appear on the console devices. This is controlled by
21398af8799SSimon Glass	  setting the environment vaariable 'silent' to a non-empty value.
21498af8799SSimon Glass	  Note this also silences the console when booting Linux.
21598af8799SSimon Glass
21698af8799SSimon Glass	  When the console is set up, the variable is checked, and the
21798af8799SSimon Glass	  GD_FLG_SILENT flag is set. Changing the environment variable later
21898af8799SSimon Glass	  will update the flag.
21998af8799SSimon Glass
22098af8799SSimon Glassconfig SILENT_U_BOOT_ONLY
22198af8799SSimon Glass	bool "Only silence the U-Boot console"
22298af8799SSimon Glass	depends on SILENT_CONSOLE
22398af8799SSimon Glass	help
22498af8799SSimon Glass	  Normally when the U-Boot console is silenced, Linux's console is
22598af8799SSimon Glass	  also silenced (assuming the board boots into Linux). This option
22698af8799SSimon Glass	  allows the linux console to operate normally, even if U-Boot's
22798af8799SSimon Glass	  is silenced.
22898af8799SSimon Glass
22998af8799SSimon Glassconfig SILENT_CONSOLE_UPDATE_ON_SET
23098af8799SSimon Glass	bool "Changes to the 'silent' environment variable update immediately"
23198af8799SSimon Glass	depends on SILENT_CONSOLE
23298af8799SSimon Glass	default y if SILENT_CONSOLE
23398af8799SSimon Glass	help
23498af8799SSimon Glass	  When the 'silent' environment variable is changed, update the
23598af8799SSimon Glass	  console silence flag immediately. This allows 'setenv' to be used
23698af8799SSimon Glass	  to silence or un-silence the console.
23798af8799SSimon Glass
23898af8799SSimon Glass	  The effect is that any change to the variable will affect the
23998af8799SSimon Glass	  GD_FLG_SILENT flag.
24098af8799SSimon Glass
24198af8799SSimon Glassconfig SILENT_CONSOLE_UPDATE_ON_RELOC
24298af8799SSimon Glass	bool "Allow flags to take effect on relocation"
24398af8799SSimon Glass	depends on SILENT_CONSOLE
24498af8799SSimon Glass	help
24598af8799SSimon Glass	  In some cases the environment is not available until relocation
24698af8799SSimon Glass	  (e.g. NAND). This option makes the value of the 'silent'
24798af8799SSimon Glass	  environment variable take effect at relocation.
24898af8799SSimon Glass
2498f925584SSimon Glassconfig PRE_CONSOLE_BUFFER
2508f925584SSimon Glass	bool "Buffer characters before the console is available"
2518f925584SSimon Glass	help
2528f925584SSimon Glass	  Prior to the console being initialised (i.e. serial UART
2538f925584SSimon Glass	  initialised etc) all console output is silently discarded.
2548f925584SSimon Glass	  Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
2558f925584SSimon Glass	  buffer any console messages prior to the console being
2568f925584SSimon Glass	  initialised to a buffer. The buffer is a circular buffer, so
2578f925584SSimon Glass	  if it overflows, earlier output is discarded.
2588f925584SSimon Glass
2598f925584SSimon Glass	  Note that this is not currently supported in SPL. It would be
2608f925584SSimon Glass	  useful to be able to share the pre-console buffer with SPL.
2618f925584SSimon Glass
2628f925584SSimon Glassconfig PRE_CON_BUF_SZ
2638f925584SSimon Glass	int "Sets the size of the pre-console buffer"
2648f925584SSimon Glass	depends on PRE_CONSOLE_BUFFER
2658f925584SSimon Glass	default 4096
2668f925584SSimon Glass	help
2678f925584SSimon Glass	  The size of the pre-console buffer affects how much console output
2688f925584SSimon Glass	  can be held before it overflows and starts discarding earlier
2698f925584SSimon Glass	  output. Normally there is very little output at this early stage,
2708f925584SSimon Glass	  unless debugging is enabled, so allow enough for ~10 lines of
2718f925584SSimon Glass	  text.
2728f925584SSimon Glass
2738f925584SSimon Glass	  This is a useful feature if you are using a video console and
2748f925584SSimon Glass	  want to see the full boot output on the console. Without this
2758f925584SSimon Glass	  option only the post-relocation output will be displayed.
2768f925584SSimon Glass
2778f925584SSimon Glassconfig PRE_CON_BUF_ADDR
2788f925584SSimon Glass	hex "Address of the pre-console buffer"
2798f925584SSimon Glass	depends on PRE_CONSOLE_BUFFER
2808f925584SSimon Glass	default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
2818f925584SSimon Glass	default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
2828f925584SSimon Glass	help
2838f925584SSimon Glass	  This sets the start address of the pre-console buffer. This must
2848f925584SSimon Glass	  be in available memory and is accessed before relocation and
2858f925584SSimon Glass	  possibly before DRAM is set up. Therefore choose an address
2868f925584SSimon Glass	  carefully.
2878f925584SSimon Glass
2888f925584SSimon Glass	  We should consider removing this option and allocating the memory
2898f925584SSimon Glass	  in board_init_f_init_reserve() instead.
2908f925584SSimon Glass
291*ef26d603SSimon Glassconfig CONSOLE_MUX
292*ef26d603SSimon Glass	bool "Enable console multiplexing"
293*ef26d603SSimon Glass	default y if DM_VIDEO || VIDEO || LCD
294*ef26d603SSimon Glass	help
295*ef26d603SSimon Glass	  This allows multiple devices to be used for each console 'file'.
296*ef26d603SSimon Glass	  For example, stdout can be set to go to serial and video.
297*ef26d603SSimon Glass	  Similarly, stdin can be set to come from serial and keyboard.
298*ef26d603SSimon Glass	  Input can be provided from either source. Console multiplexing
299*ef26d603SSimon Glass	  adds a small amount of size to U-Boot.  Changes to the environment
300*ef26d603SSimon Glass	  variables stdout, stdin and stderr will take effect immediately.
301*ef26d603SSimon Glass
302*ef26d603SSimon Glassconfig SYS_CONSOLE_IS_IN_ENV
303*ef26d603SSimon Glass	bool "Select console devices from the environment"
304*ef26d603SSimon Glass	default y if CONSOLE_MUX
305*ef26d603SSimon Glass	help
306*ef26d603SSimon Glass	  This allows multiple input/output devices to be set at boot time.
307*ef26d603SSimon Glass	  For example, if stdout is set to "serial,video" then output will
308*ef26d603SSimon Glass	  be sent to both the serial and video devices on boot. The
309*ef26d603SSimon Glass	  environment variables can be updated after boot to change the
310*ef26d603SSimon Glass	  input/output devices.
311*ef26d603SSimon Glass
31298af8799SSimon Glassendmenu
31398af8799SSimon Glass
3144d25507fSSiva Durga Prasad Paladuguconfig SYS_NO_FLASH
3154d25507fSSiva Durga Prasad Paladugu	bool "Disable support for parallel NOR flash"
3164d25507fSSiva Durga Prasad Paladugu	default n
3174d25507fSSiva Durga Prasad Paladugu	help
3184d25507fSSiva Durga Prasad Paladugu	  This option is used to disable support for parallel NOR flash.
3199dd1d0aaSHeiko Schocher
3209dd1d0aaSHeiko Schocherconfig VERSION_VARIABLE
3219dd1d0aaSHeiko Schocher	bool "add U-Boot environment variable vers"
3229dd1d0aaSHeiko Schocher	default n
3239dd1d0aaSHeiko Schocher	help
3249dd1d0aaSHeiko Schocher	  If this variable is defined, an environment variable
3259dd1d0aaSHeiko Schocher	  named "ver" is created by U-Boot showing the U-Boot
3269dd1d0aaSHeiko Schocher	  version as printed by the "version" command.
3279dd1d0aaSHeiko Schocher	  Any change to this variable will be reverted at the
3289dd1d0aaSHeiko Schocher	  next reset.
329c2ae7d82SSimon Glass
33019a97475SLokesh Vutlaconfig DISPLAY_CPUINFO
33119a97475SLokesh Vutla	bool "Display information about the CPU during start up"
33219a97475SLokesh Vutla	default y if ARM || BLACKFIN || NIOS2 || X86 || XTENSA
33319a97475SLokesh Vutla	help
33419a97475SLokesh Vutla	  Display information about the CPU that U-Boot is running on
33519a97475SLokesh Vutla	  when U-Boot starts up. The function print_cpuinfo() is called
33619a97475SLokesh Vutla	  to do this.
33719a97475SLokesh Vutla
33884351792SLokesh Vutlaconfig DISPLAY_BOARDINFO
33984351792SLokesh Vutla	bool "Display information about the board during start up"
34084351792SLokesh Vutla	default y if ARM || M68K || MIPS || PPC || SPARC || XTENSA
34184351792SLokesh Vutla	help
34284351792SLokesh Vutla	  Display information about the board that U-Boot is running on
34384351792SLokesh Vutla	  when U-Boot starts up. The board function checkboard() is called
34484351792SLokesh Vutla	  to do this.
34584351792SLokesh Vutla
346c2ae7d82SSimon Glasssource "common/spl/Kconfig"
347