xref: /openbmc/u-boot/common/Kconfig (revision 57247d9cbf1f0b55c3922e89c6516336d51a355b)
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
12*57247d9cSRobert 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
15*57247d9cSRobert P. J. Day	  additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
16ee2b2434SSimon Glass	  as the ID.
17ee2b2434SSimon Glass
18*57247d9cSRobert 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
56*57247d9cSRobert 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,
117*57247d9cSRobert 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,
125*57247d9cSRobert 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,
133*57247d9cSRobert 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,
141*57247d9cSRobert 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,
149*57247d9cSRobert 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,
157*57247d9cSRobert 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
1739854a874SSimon Glassconfig CONSOLE_RECORD
1749854a874SSimon Glass	bool "Console recording"
1759854a874SSimon Glass	help
1769854a874SSimon Glass	  This provides a way to record console output (and provide console
177*57247d9cSRobert P. J. Day	  input) through circular buffers. This is mostly useful for testing.
1789854a874SSimon Glass	  Console output is recorded even when the console is silent.
1799854a874SSimon Glass	  To enable console recording, call console_record_reset_enable()
1809854a874SSimon Glass	  from your code.
1819854a874SSimon Glass
1829854a874SSimon Glassconfig CONSOLE_RECORD_OUT_SIZE
1839854a874SSimon Glass	hex "Output buffer size"
1849854a874SSimon Glass	depends on CONSOLE_RECORD
1859854a874SSimon Glass	default 0x400 if CONSOLE_RECORD
1869854a874SSimon Glass	help
1879854a874SSimon Glass	  Set the size of the console output buffer. When this fills up, no
1889854a874SSimon Glass	  more data will be recorded until some is removed. The buffer is
1899854a874SSimon Glass	  allocated immediately after the malloc() region is ready.
1909854a874SSimon Glass
1919854a874SSimon Glassconfig CONSOLE_RECORD_IN_SIZE
1929854a874SSimon Glass	hex "Input buffer size"
1939854a874SSimon Glass	depends on CONSOLE_RECORD
1949854a874SSimon Glass	default 0x100 if CONSOLE_RECORD
1959854a874SSimon Glass	help
1969854a874SSimon Glass	  Set the size of the console input buffer. When this contains data,
1979854a874SSimon Glass	  tstc() and getc() will use this in preference to real device input.
1989854a874SSimon Glass	  The buffer is allocated immediately after the malloc() region is
1999854a874SSimon Glass	  ready.
2004d25507fSSiva Durga Prasad Paladugu
2014d25507fSSiva Durga Prasad Paladuguconfig SYS_NO_FLASH
2024d25507fSSiva Durga Prasad Paladugu	bool "Disable support for parallel NOR flash"
2034d25507fSSiva Durga Prasad Paladugu	default n
2044d25507fSSiva Durga Prasad Paladugu	help
2054d25507fSSiva Durga Prasad Paladugu	  This option is used to disable support for parallel NOR flash.
206