xref: /rk3399_rockchip-uboot/common/Kconfig (revision 2f96fde52db8dd705f6c1efc8530684405024993)
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
21824bb1b4SSimon Glassconfig SPL_BOOTSTAGE
22824bb1b4SSimon Glass	bool "Boot timing and reported in SPL"
23824bb1b4SSimon Glass	depends on BOOTSTAGE
24824bb1b4SSimon Glass	help
25824bb1b4SSimon Glass	  Enable recording of boot time in SPL. To make this visible to U-Boot
26824bb1b4SSimon Glass	  proper, enable BOOTSTAGE_STASH as well. This will stash the timing
27824bb1b4SSimon Glass	  information when SPL finishes and load it when U-Boot proper starts
28824bb1b4SSimon Glass	  up.
29824bb1b4SSimon Glass
30ee2b2434SSimon Glassconfig BOOTSTAGE_REPORT
31ee2b2434SSimon Glass	bool "Display a detailed boot timing report before booting the OS"
32ee2b2434SSimon Glass	depends on BOOTSTAGE
33ee2b2434SSimon Glass	help
34ee2b2434SSimon Glass	  Enable output of a boot time report just before the OS is booted.
35ee2b2434SSimon Glass	  This shows how long it took U-Boot to go through each stage of the
36ee2b2434SSimon Glass	  boot process. The report looks something like this:
37ee2b2434SSimon Glass
38ee2b2434SSimon Glass		Timer summary in microseconds:
39ee2b2434SSimon Glass		       Mark    Elapsed  Stage
40ee2b2434SSimon Glass			  0          0  reset
41ee2b2434SSimon Glass		  3,575,678  3,575,678  board_init_f start
42ee2b2434SSimon Glass		  3,575,695         17  arch_cpu_init A9
43ee2b2434SSimon Glass		  3,575,777         82  arch_cpu_init done
44ee2b2434SSimon Glass		  3,659,598     83,821  board_init_r start
45ee2b2434SSimon Glass		  3,910,375    250,777  main_loop
46ee2b2434SSimon Glass		 29,916,167 26,005,792  bootm_start
47ee2b2434SSimon Glass		 30,361,327    445,160  start_kernel
48ee2b2434SSimon Glass
49ee2b2434SSimon Glassconfig BOOTSTAGE_USER_COUNT
505a0e275cSSimon Glass	int "Number of boot ID numbers available for user use"
51ee2b2434SSimon Glass	default 20
52ee2b2434SSimon Glass	help
53ee2b2434SSimon Glass	  This is the number of available user bootstage records.
54ee2b2434SSimon Glass	  Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
55ee2b2434SSimon Glass	  a new ID will be allocated from this stash. If you exceed
56ee2b2434SSimon Glass	  the limit, recording will stop.
57ee2b2434SSimon Glass
5803ecac31SSimon Glassconfig BOOTSTAGE_RECORD_COUNT
5903ecac31SSimon Glass	int "Number of boot stage records to store"
6003ecac31SSimon Glass	default 30
6103ecac31SSimon Glass	help
6203ecac31SSimon Glass	  This is the size of the bootstage record list and is the maximum
6303ecac31SSimon Glass	  number of bootstage records that can be recorded.
6403ecac31SSimon Glass
65ee2b2434SSimon Glassconfig BOOTSTAGE_FDT
66ee2b2434SSimon Glass	bool "Store boot timing information in the OS device tree"
67ee2b2434SSimon Glass	depends on BOOTSTAGE
68ee2b2434SSimon Glass	help
69ee2b2434SSimon Glass	  Stash the bootstage information in the FDT. A root 'bootstage'
70ee2b2434SSimon Glass	  node is created with each bootstage id as a child. Each child
71ee2b2434SSimon Glass	  has a 'name' property and either 'mark' containing the
7257247d9cSRobert P. J. Day	  mark time in microseconds, or 'accum' containing the
73ee2b2434SSimon Glass	  accumulated time for that bootstage id in microseconds.
74ee2b2434SSimon Glass	  For example:
75ee2b2434SSimon Glass
76ee2b2434SSimon Glass		bootstage {
77ee2b2434SSimon Glass			154 {
78ee2b2434SSimon Glass				name = "board_init_f";
79ee2b2434SSimon Glass				mark = <3575678>;
80ee2b2434SSimon Glass			};
81ee2b2434SSimon Glass			170 {
82ee2b2434SSimon Glass				name = "lcd";
83ee2b2434SSimon Glass				accum = <33482>;
84ee2b2434SSimon Glass			};
85ee2b2434SSimon Glass		};
86ee2b2434SSimon Glass
87ee2b2434SSimon Glass	  Code in the Linux kernel can find this in /proc/devicetree.
88ee2b2434SSimon Glass
89ee2b2434SSimon Glassconfig BOOTSTAGE_STASH
90ee2b2434SSimon Glass	bool "Stash the boot timing information in memory before booting OS"
91ee2b2434SSimon Glass	depends on BOOTSTAGE
92ee2b2434SSimon Glass	help
93ee2b2434SSimon Glass	  Some OSes do not support device tree. Bootstage can instead write
94ee2b2434SSimon Glass	  the boot timing information in a binary format at a given address.
95ee2b2434SSimon Glass	  This happens through a call to bootstage_stash(), typically in
96ee2b2434SSimon Glass	  the CPU's cleanup_before_linux() function. You can use the
97ee2b2434SSimon Glass	  'bootstage stash' and 'bootstage unstash' commands to do this on
98ee2b2434SSimon Glass	  the command line.
99ee2b2434SSimon Glass
100ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_ADDR
101ee2b2434SSimon Glass	hex "Address to stash boot timing information"
102ee2b2434SSimon Glass	default 0
103ee2b2434SSimon Glass	help
104ee2b2434SSimon Glass	  Provide an address which will not be overwritten by the OS when it
105ee2b2434SSimon Glass	  starts, so that it can read this information when ready.
106ee2b2434SSimon Glass
107ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_SIZE
108ee2b2434SSimon Glass	hex "Size of boot timing stash region"
109fad6a2b7SNobuhiro Iwamatsu	default 0x1000
110ee2b2434SSimon Glass	help
111ee2b2434SSimon Glass	  This should be large enough to hold the bootstage stash. A value of
112ee2b2434SSimon Glass	  4096 (4KiB) is normally plenty.
113ee2b2434SSimon Glass
114243527b5SJoseph Chenconfig BOOTSTAGE_PRINTF_TIMESTAMP
115243527b5SJoseph Chen	bool "Support printf timestamp"
116243527b5SJoseph Chen	help
117243527b5SJoseph Chen	  Enabling this will support printf timestamp.
118ee2b2434SSimon Glassendmenu
119ee2b2434SSimon Glass
120d14739ffSPeng Fanmenu "Boot media"
121d14739ffSPeng Fan
122d14739ffSPeng Fanconfig NOR_BOOT
123d14739ffSPeng Fan	bool "Support for booting from NOR flash"
124d14739ffSPeng Fan	depends on NOR
125d14739ffSPeng Fan	help
126d14739ffSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
127d14739ffSPeng Fan	  booted via NOR.  In this case we will enable certain pinmux early
128d14739ffSPeng Fan	  as the ROM only partially sets up pinmux.  We also default to using
129d14739ffSPeng Fan	  NOR for environment.
130d14739ffSPeng Fan
131faaef73fSPeng Fanconfig NAND_BOOT
132faaef73fSPeng Fan	bool "Support for booting from NAND flash"
133faaef73fSPeng Fan	default n
134faaef73fSPeng Fan	help
135faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
136faaef73fSPeng Fan	  booted via NAND flash. This is not a must, some SoCs need this,
13757247d9cSRobert P. J. Day	  some not.
138faaef73fSPeng Fan
139faaef73fSPeng Fanconfig ONENAND_BOOT
140faaef73fSPeng Fan	bool "Support for booting from ONENAND"
141faaef73fSPeng Fan	default n
142faaef73fSPeng Fan	help
143faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
144faaef73fSPeng Fan	  booted via ONENAND. This is not a must, some SoCs need this,
14557247d9cSRobert P. J. Day	  some not.
146faaef73fSPeng Fan
147faaef73fSPeng Fanconfig QSPI_BOOT
148faaef73fSPeng Fan	bool "Support for booting from QSPI flash"
149faaef73fSPeng Fan	default n
150faaef73fSPeng Fan	help
151faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
152faaef73fSPeng Fan	  booted via QSPI flash. This is not a must, some SoCs need this,
15357247d9cSRobert P. J. Day	  some not.
154faaef73fSPeng Fan
155faaef73fSPeng Fanconfig SATA_BOOT
156faaef73fSPeng Fan	bool "Support for booting from SATA"
157faaef73fSPeng Fan	default n
158faaef73fSPeng Fan	help
159faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
160faaef73fSPeng Fan	  booted via SATA. This is not a must, some SoCs need this,
16157247d9cSRobert P. J. Day	  some not.
162faaef73fSPeng Fan
163faaef73fSPeng Fanconfig SD_BOOT
164faaef73fSPeng Fan	bool "Support for booting from SD/EMMC"
165faaef73fSPeng Fan	default n
166faaef73fSPeng Fan	help
167faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
168faaef73fSPeng Fan	  booted via SD/EMMC. This is not a must, some SoCs need this,
16957247d9cSRobert P. J. Day	  some not.
170faaef73fSPeng Fan
171faaef73fSPeng Fanconfig SPI_BOOT
172faaef73fSPeng Fan	bool "Support for booting from SPI flash"
173faaef73fSPeng Fan	default n
174faaef73fSPeng Fan	help
175faaef73fSPeng Fan	  Enabling this will make a U-Boot binary that is capable of being
176faaef73fSPeng Fan	  booted via SPI flash. This is not a must, some SoCs need this,
17757247d9cSRobert P. J. Day	  some not.
178faaef73fSPeng Fan
179d14739ffSPeng Fanendmenu
180d14739ffSPeng Fan
1815f08e86fSAndy Yanconfig PASS_DEVICE_SERIAL_BY_FDT
1825f08e86fSAndy Yan	bool "Pass the device serial number to kernel through devicetree"
1835f08e86fSAndy Yan	default y
1845f08e86fSAndy Yan	help
1855f08e86fSAndy Yan	  Enabling this will pass a device serial number to kernel by devicetree
1865f08e86fSAndy Yan	  "serial-number" properties.
1875f08e86fSAndy Yan
188bb597c0eSHeiko Schocherconfig BOOTDELAY
189bb597c0eSHeiko Schocher	int "delay in seconds before automatically booting"
1905e4e8741STom Rini	default 2
19141598c82SMasahiro Yamada	depends on AUTOBOOT
192bb597c0eSHeiko Schocher	help
193bb597c0eSHeiko Schocher	  Delay before automatically running bootcmd;
1942fbb8462SMasahiro Yamada	  set to 0 to autoboot with no delay, but you can stop it by key input.
195bb597c0eSHeiko Schocher	  set to -1 to disable autoboot.
196bb597c0eSHeiko Schocher	  set to -2 to autoboot with no delay and not check for abort
197bb597c0eSHeiko Schocher
1989060970fSMasahiro Yamada	  See doc/README.autoboot for details.
1999060970fSMasahiro Yamada
2005abc1a45SSam Protsenkoconfig USE_BOOTARGS
2015abc1a45SSam Protsenko	bool "Enable boot arguments"
2025abc1a45SSam Protsenko	help
2035abc1a45SSam Protsenko	  Provide boot arguments to bootm command. Boot arguments are specified
2045abc1a45SSam Protsenko	  in CONFIG_BOOTARGS option. Enable this option to be able to specify
2055abc1a45SSam Protsenko	  CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
2065abc1a45SSam Protsenko	  will be undefined and won't take any space in U-Boot image.
2075abc1a45SSam Protsenko
2085abc1a45SSam Protsenkoconfig BOOTARGS
2095abc1a45SSam Protsenko	string "Boot arguments"
2105abc1a45SSam Protsenko	depends on USE_BOOTARGS
2115abc1a45SSam Protsenko	help
2125abc1a45SSam Protsenko	  This can be used to pass arguments to the bootm command. The value of
2135abc1a45SSam Protsenko	  CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
2145abc1a45SSam Protsenko	  this value will also override the "chosen" node in FDT blob.
2155abc1a45SSam Protsenko
216a78c1921SJoseph Chenconfig IO_TRACE
217a78c1921SJoseph Chen	bool "Enable iotrace"
218a78c1921SJoseph Chen	help
219a78c1921SJoseph Chen	  This enable iotrace feature.
220a78c1921SJoseph Chen
22198af8799SSimon Glassmenu "Console"
22298af8799SSimon Glass
2234880b026STom Riniconfig MENU
2244880b026STom Rini	bool
2254880b026STom Rini	help
2264880b026STom Rini	  This is the library functionality to provide a text-based menu of
2274880b026STom Rini	  choices for the user to make choices with.
2284880b026STom Rini
2299854a874SSimon Glassconfig CONSOLE_RECORD
2309854a874SSimon Glass	bool "Console recording"
2319854a874SSimon Glass	help
2329854a874SSimon Glass	  This provides a way to record console output (and provide console
23357247d9cSRobert P. J. Day	  input) through circular buffers. This is mostly useful for testing.
2349854a874SSimon Glass	  Console output is recorded even when the console is silent.
2359854a874SSimon Glass	  To enable console recording, call console_record_reset_enable()
2369854a874SSimon Glass	  from your code.
2379854a874SSimon Glass
2389854a874SSimon Glassconfig CONSOLE_RECORD_OUT_SIZE
2399854a874SSimon Glass	hex "Output buffer size"
2409854a874SSimon Glass	depends on CONSOLE_RECORD
2415bb5aa82SJoseph Chen	default 0x400 if CONSOLE_RECORD && !ARCH_ROCKCHIP
2425bb5aa82SJoseph Chen	default 0x2000 if CONSOLE_RECORD && ARCH_ROCKCHIP
2439854a874SSimon Glass	help
2449854a874SSimon Glass	  Set the size of the console output buffer. When this fills up, no
2459854a874SSimon Glass	  more data will be recorded until some is removed. The buffer is
2469854a874SSimon Glass	  allocated immediately after the malloc() region is ready.
2479854a874SSimon Glass
2489854a874SSimon Glassconfig CONSOLE_RECORD_IN_SIZE
2499854a874SSimon Glass	hex "Input buffer size"
2509854a874SSimon Glass	depends on CONSOLE_RECORD
2519854a874SSimon Glass	default 0x100 if CONSOLE_RECORD
2529854a874SSimon Glass	help
2539854a874SSimon Glass	  Set the size of the console input buffer. When this contains data,
2549854a874SSimon Glass	  tstc() and getc() will use this in preference to real device input.
2559854a874SSimon Glass	  The buffer is allocated immediately after the malloc() region is
2569854a874SSimon Glass	  ready.
2574d25507fSSiva Durga Prasad Paladugu
25837526a51SJoseph Chenconfig CONSOLE_DISABLE_CLI
259590d13d7SJoseph Chen	bool "disable ctrlc"
260e7be2a07SJoseph Chen	default n
261590d13d7SJoseph Chen	help
26237526a51SJoseph Chen	  This disable CLI interactive in verified-boot.
263590d13d7SJoseph Chen
264c7abde10SJoseph Chenconfig DISABLE_CONSOLE
265c7abde10SJoseph Chen	bool "disable console in & out"
266c7abde10SJoseph Chen	help
267c7abde10SJoseph Chen	 This disable console in & out.
268c7abde10SJoseph Chen
269a4d88920SSiva Durga Prasad Paladuguconfig IDENT_STRING
270a4d88920SSiva Durga Prasad Paladugu	string "Board specific string to be added to uboot version string"
271a4d88920SSiva Durga Prasad Paladugu	help
272a4d88920SSiva Durga Prasad Paladugu	  This options adds the board specific name to u-boot version.
273a4d88920SSiva Durga Prasad Paladugu
274a9a4552aSMasahiro Yamadaconfig LOGLEVEL
275a9a4552aSMasahiro Yamada	int "loglevel"
276bcf5156aSTom Rini	default 4
277a9a4552aSMasahiro Yamada	range 0 8
278a9a4552aSMasahiro Yamada	help
279a9a4552aSMasahiro Yamada	  All Messages with a loglevel smaller than the console loglevel will
280a9a4552aSMasahiro Yamada	  be compiled in. The loglevels are defined as follows:
281a9a4552aSMasahiro Yamada
282a9a4552aSMasahiro Yamada	  0 (KERN_EMERG)          system is unusable
283a9a4552aSMasahiro Yamada	  1 (KERN_ALERT)          action must be taken immediately
284a9a4552aSMasahiro Yamada	  2 (KERN_CRIT)           critical conditions
285a9a4552aSMasahiro Yamada	  3 (KERN_ERR)            error conditions
286a9a4552aSMasahiro Yamada	  4 (KERN_WARNING)        warning conditions
287a9a4552aSMasahiro Yamada	  5 (KERN_NOTICE)         normal but significant condition
288a9a4552aSMasahiro Yamada	  6 (KERN_INFO)           informational
289a9a4552aSMasahiro Yamada	  7 (KERN_DEBUG)          debug-level messages
290a9a4552aSMasahiro Yamada
291a9a4552aSMasahiro Yamadaconfig SPL_LOGLEVEL
292a9a4552aSMasahiro Yamada	int
293a9a4552aSMasahiro Yamada	default LOGLEVEL
294a9a4552aSMasahiro Yamada
29598af8799SSimon Glassconfig SILENT_CONSOLE
29698af8799SSimon Glass	bool "Support a silent console"
29798af8799SSimon Glass	help
29898af8799SSimon Glass	  This option allows the console to be silenced, meaning that no
29998af8799SSimon Glass	  output will appear on the console devices. This is controlled by
30098af8799SSimon Glass	  setting the environment vaariable 'silent' to a non-empty value.
30198af8799SSimon Glass	  Note this also silences the console when booting Linux.
30298af8799SSimon Glass
30398af8799SSimon Glass	  When the console is set up, the variable is checked, and the
30498af8799SSimon Glass	  GD_FLG_SILENT flag is set. Changing the environment variable later
30598af8799SSimon Glass	  will update the flag.
30698af8799SSimon Glass
30798af8799SSimon Glassconfig SILENT_U_BOOT_ONLY
30898af8799SSimon Glass	bool "Only silence the U-Boot console"
30998af8799SSimon Glass	depends on SILENT_CONSOLE
31098af8799SSimon Glass	help
31198af8799SSimon Glass	  Normally when the U-Boot console is silenced, Linux's console is
31298af8799SSimon Glass	  also silenced (assuming the board boots into Linux). This option
31398af8799SSimon Glass	  allows the linux console to operate normally, even if U-Boot's
31498af8799SSimon Glass	  is silenced.
31598af8799SSimon Glass
31698af8799SSimon Glassconfig SILENT_CONSOLE_UPDATE_ON_SET
31798af8799SSimon Glass	bool "Changes to the 'silent' environment variable update immediately"
31898af8799SSimon Glass	depends on SILENT_CONSOLE
31998af8799SSimon Glass	default y if SILENT_CONSOLE
32098af8799SSimon Glass	help
32198af8799SSimon Glass	  When the 'silent' environment variable is changed, update the
32298af8799SSimon Glass	  console silence flag immediately. This allows 'setenv' to be used
32398af8799SSimon Glass	  to silence or un-silence the console.
32498af8799SSimon Glass
32598af8799SSimon Glass	  The effect is that any change to the variable will affect the
32698af8799SSimon Glass	  GD_FLG_SILENT flag.
32798af8799SSimon Glass
32898af8799SSimon Glassconfig SILENT_CONSOLE_UPDATE_ON_RELOC
32998af8799SSimon Glass	bool "Allow flags to take effect on relocation"
33098af8799SSimon Glass	depends on SILENT_CONSOLE
33198af8799SSimon Glass	help
33298af8799SSimon Glass	  In some cases the environment is not available until relocation
33398af8799SSimon Glass	  (e.g. NAND). This option makes the value of the 'silent'
33498af8799SSimon Glass	  environment variable take effect at relocation.
33598af8799SSimon Glass
3368f925584SSimon Glassconfig PRE_CONSOLE_BUFFER
3378f925584SSimon Glass	bool "Buffer characters before the console is available"
3388f925584SSimon Glass	help
3398f925584SSimon Glass	  Prior to the console being initialised (i.e. serial UART
3408f925584SSimon Glass	  initialised etc) all console output is silently discarded.
3418f925584SSimon Glass	  Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
3428f925584SSimon Glass	  buffer any console messages prior to the console being
3438f925584SSimon Glass	  initialised to a buffer. The buffer is a circular buffer, so
3448f925584SSimon Glass	  if it overflows, earlier output is discarded.
3458f925584SSimon Glass
3468f925584SSimon Glass	  Note that this is not currently supported in SPL. It would be
3478f925584SSimon Glass	  useful to be able to share the pre-console buffer with SPL.
3488f925584SSimon Glass
3498f925584SSimon Glassconfig PRE_CON_BUF_SZ
3508f925584SSimon Glass	int "Sets the size of the pre-console buffer"
3518f925584SSimon Glass	depends on PRE_CONSOLE_BUFFER
3528f925584SSimon Glass	default 4096
3538f925584SSimon Glass	help
3548f925584SSimon Glass	  The size of the pre-console buffer affects how much console output
3558f925584SSimon Glass	  can be held before it overflows and starts discarding earlier
3568f925584SSimon Glass	  output. Normally there is very little output at this early stage,
3578f925584SSimon Glass	  unless debugging is enabled, so allow enough for ~10 lines of
3588f925584SSimon Glass	  text.
3598f925584SSimon Glass
3608f925584SSimon Glass	  This is a useful feature if you are using a video console and
3618f925584SSimon Glass	  want to see the full boot output on the console. Without this
3628f925584SSimon Glass	  option only the post-relocation output will be displayed.
3638f925584SSimon Glass
3648f925584SSimon Glassconfig PRE_CON_BUF_ADDR
3658f925584SSimon Glass	hex "Address of the pre-console buffer"
3668f925584SSimon Glass	depends on PRE_CONSOLE_BUFFER
3678f925584SSimon Glass	default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
3688f925584SSimon Glass	default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
3698f925584SSimon Glass	help
3708f925584SSimon Glass	  This sets the start address of the pre-console buffer. This must
3718f925584SSimon Glass	  be in available memory and is accessed before relocation and
3728f925584SSimon Glass	  possibly before DRAM is set up. Therefore choose an address
3738f925584SSimon Glass	  carefully.
3748f925584SSimon Glass
3758f925584SSimon Glass	  We should consider removing this option and allocating the memory
3768f925584SSimon Glass	  in board_init_f_init_reserve() instead.
3778f925584SSimon Glass
378ef26d603SSimon Glassconfig CONSOLE_MUX
379ef26d603SSimon Glass	bool "Enable console multiplexing"
380ef26d603SSimon Glass	default y if DM_VIDEO || VIDEO || LCD
381ef26d603SSimon Glass	help
382ef26d603SSimon Glass	  This allows multiple devices to be used for each console 'file'.
383ef26d603SSimon Glass	  For example, stdout can be set to go to serial and video.
384ef26d603SSimon Glass	  Similarly, stdin can be set to come from serial and keyboard.
385ef26d603SSimon Glass	  Input can be provided from either source. Console multiplexing
386ef26d603SSimon Glass	  adds a small amount of size to U-Boot.  Changes to the environment
387ef26d603SSimon Glass	  variables stdout, stdin and stderr will take effect immediately.
388ef26d603SSimon Glass
389ef26d603SSimon Glassconfig SYS_CONSOLE_IS_IN_ENV
390ef26d603SSimon Glass	bool "Select console devices from the environment"
391ef26d603SSimon Glass	default y if CONSOLE_MUX
392ef26d603SSimon Glass	help
393ef26d603SSimon Glass	  This allows multiple input/output devices to be set at boot time.
394ef26d603SSimon Glass	  For example, if stdout is set to "serial,video" then output will
395ef26d603SSimon Glass	  be sent to both the serial and video devices on boot. The
396ef26d603SSimon Glass	  environment variables can be updated after boot to change the
397ef26d603SSimon Glass	  input/output devices.
398ef26d603SSimon Glass
39984f2a5d0SSimon Glassconfig SYS_CONSOLE_OVERWRITE_ROUTINE
40084f2a5d0SSimon Glass	bool "Allow board control over console overwriting"
40184f2a5d0SSimon Glass	help
40284f2a5d0SSimon Glass	  If this is enabled, and the board-specific function
40384f2a5d0SSimon Glass	  overwrite_console() returns 1, the stdin, stderr and stdout are
40484f2a5d0SSimon Glass	  switched to the serial port, else the settings in the environment
40584f2a5d0SSimon Glass	  are used. If this is not enabled, the console will not be switched
40684f2a5d0SSimon Glass	  to serial.
40784f2a5d0SSimon Glass
4083505bc55SSimon Glassconfig SYS_CONSOLE_ENV_OVERWRITE
4093505bc55SSimon Glass	bool "Update environment variables during console init"
4103505bc55SSimon Glass	help
4113505bc55SSimon Glass	  The console environment variables (stdout, stdin, stderr) can be
4123505bc55SSimon Glass	  used to determine the correct console devices on start-up. This
4133505bc55SSimon Glass	  option writes the console devices to these variables on console
4143505bc55SSimon Glass	  start-up (after relocation). This causes the environment to be
4153505bc55SSimon Glass	  updated to match the console devices actually chosen.
4163505bc55SSimon Glass
417f3f3efffSSimon Glassconfig SYS_CONSOLE_INFO_QUIET
418f3f3efffSSimon Glass	bool "Don't display the console devices on boot"
419f3f3efffSSimon Glass	help
420f3f3efffSSimon Glass	  Normally U-Boot displays the current settings for stdout, stdin
421f3f3efffSSimon Glass	  and stderr on boot when the post-relocation console is set up.
422f3f3efffSSimon Glass	  Enable this option to supress this output. It can be obtained by
423f3f3efffSSimon Glass	  calling stdio_print_current_devices() from board code.
424f3f3efffSSimon Glass
425869588deSSimon Glassconfig SYS_STDIO_DEREGISTER
426869588deSSimon Glass	bool "Allow deregistering stdio devices"
427869588deSSimon Glass	default y if USB_KEYBOARD
428869588deSSimon Glass	help
429869588deSSimon Glass	  Generally there is no need to deregister stdio devices since they
430869588deSSimon Glass	  are never deactivated. But if a stdio device is used which can be
431869588deSSimon Glass	  removed (for example a USB keyboard) then this option can be
432869588deSSimon Glass	  enabled to ensure this is handled correctly.
433869588deSSimon Glass
43498af8799SSimon Glassendmenu
43598af8799SSimon Glass
4369530301cSSimon Glassmenu "Logging"
4379530301cSSimon Glass
4389530301cSSimon Glassconfig LOG
4399530301cSSimon Glass	bool "Enable logging support"
4409530301cSSimon Glass	help
4419530301cSSimon Glass	  This enables support for logging of status and debug messages. These
4429530301cSSimon Glass	  can be displayed on the console, recorded in a memory buffer, or
4439530301cSSimon Glass	  discarded if not needed. Logging supports various categories and
4449530301cSSimon Glass	  levels of severity.
4459530301cSSimon Glass
4469530301cSSimon Glassconfig SPL_LOG
4479530301cSSimon Glass	bool "Enable logging support in SPL"
4489530301cSSimon Glass	help
4499530301cSSimon Glass	  This enables support for logging of status and debug messages. These
4509530301cSSimon Glass	  can be displayed on the console, recorded in a memory buffer, or
4519530301cSSimon Glass	  discarded if not needed. Logging supports various categories and
4529530301cSSimon Glass	  levels of severity.
4539530301cSSimon Glass
4549530301cSSimon Glassconfig LOG_MAX_LEVEL
4559530301cSSimon Glass	int "Maximum log level to record"
4569530301cSSimon Glass	depends on LOG
4579530301cSSimon Glass	default 5
4589530301cSSimon Glass	help
4599530301cSSimon Glass	  This selects the maximum log level that will be recorded. Any value
4609530301cSSimon Glass	  higher than this will be ignored. If possible log statements below
4619530301cSSimon Glass	  this level will be discarded at build time. Levels:
4629530301cSSimon Glass
4639530301cSSimon Glass	    0 - panic
4649530301cSSimon Glass	    1 - critical
4659530301cSSimon Glass	    2 - error
4669530301cSSimon Glass	    3 - warning
4679530301cSSimon Glass	    4 - note
4689530301cSSimon Glass	    5 - info
4699530301cSSimon Glass	    6 - detail
4709530301cSSimon Glass	    7 - debug
4719530301cSSimon Glass
4729530301cSSimon Glassconfig SPL_LOG_MAX_LEVEL
4739530301cSSimon Glass	int "Maximum log level to record in SPL"
4749530301cSSimon Glass	depends on SPL_LOG
4759530301cSSimon Glass	default 3
4769530301cSSimon Glass	help
4779530301cSSimon Glass	  This selects the maximum log level that will be recorded. Any value
4789530301cSSimon Glass	  higher than this will be ignored. If possible log statements below
4799530301cSSimon Glass	  this level will be discarded at build time. Levels:
4809530301cSSimon Glass
4819530301cSSimon Glass	    0 - panic
4829530301cSSimon Glass	    1 - critical
4839530301cSSimon Glass	    2 - error
4849530301cSSimon Glass	    3 - warning
4859530301cSSimon Glass	    4 - note
4869530301cSSimon Glass	    5 - info
4879530301cSSimon Glass	    6 - detail
4889530301cSSimon Glass	    7 - debug
4899530301cSSimon Glass
4905cafef2dSSimon Glassconfig LOG_CONSOLE
4915cafef2dSSimon Glass	bool "Allow log output to the console"
4925cafef2dSSimon Glass	depends on LOG
4935cafef2dSSimon Glass	default y
4945cafef2dSSimon Glass	help
4955cafef2dSSimon Glass	  Enables a log driver which writes log records to the console.
4965cafef2dSSimon Glass	  Generally the console is the serial port or LCD display. Only the
4975cafef2dSSimon Glass	  log message is shown - other details like level, category, file and
4985cafef2dSSimon Glass	  line number are omitted.
4995cafef2dSSimon Glass
5005cafef2dSSimon Glassconfig LOG_SPL_CONSOLE
5015cafef2dSSimon Glass	bool "Allow log output to the console in SPL"
5025cafef2dSSimon Glass	depends on LOG_SPL
5035cafef2dSSimon Glass	default y
5045cafef2dSSimon Glass	help
5055cafef2dSSimon Glass	  Enables a log driver which writes log records to the console.
5065cafef2dSSimon Glass	  Generally the console is the serial port or LCD display. Only the
5075cafef2dSSimon Glass	  log message is shown - other details like level, category, file and
5085cafef2dSSimon Glass	  line number are omitted.
5095cafef2dSSimon Glass
51073991b07SSimon Glassconfig LOG_TEST
51173991b07SSimon Glass	bool "Provide a test for logging"
51273991b07SSimon Glass	depends on LOG
51373991b07SSimon Glass	default y if SANDBOX
51473991b07SSimon Glass	help
51573991b07SSimon Glass	  This enables a 'log test' command to test logging. It is normally
51673991b07SSimon Glass	  executed from a pytest and simply outputs logging information
51773991b07SSimon Glass	  in various different ways to test that the logging system works
51873991b07SSimon Glass	  correctly with varoius settings.
51973991b07SSimon Glass
5209530301cSSimon Glassendmenu
5219530301cSSimon Glass
522d259c008SJagan Tekiconfig DEFAULT_FDT_FILE
523d259c008SJagan Teki	string "Default fdt file"
524d259c008SJagan Teki	help
525d259c008SJagan Teki	  This option is used to set the default fdt file to boot OS.
526d259c008SJagan Teki
5279dd1d0aaSHeiko Schocherconfig VERSION_VARIABLE
5289dd1d0aaSHeiko Schocher	bool "add U-Boot environment variable vers"
5299dd1d0aaSHeiko Schocher	default n
5309dd1d0aaSHeiko Schocher	help
5319dd1d0aaSHeiko Schocher	  If this variable is defined, an environment variable
5329dd1d0aaSHeiko Schocher	  named "ver" is created by U-Boot showing the U-Boot
5339dd1d0aaSHeiko Schocher	  version as printed by the "version" command.
5349dd1d0aaSHeiko Schocher	  Any change to this variable will be reverted at the
5359dd1d0aaSHeiko Schocher	  next reset.
536c2ae7d82SSimon Glass
537de70fefbSJagan Tekiconfig BOARD_LATE_INIT
538e5ec4815STom Rini	bool
539de70fefbSJagan Teki	help
540de70fefbSJagan Teki	  Sometimes board require some initialization code that might
541de70fefbSJagan Teki	  require once the actual init done, example saving board specific env,
542de70fefbSJagan Teki	  boot-modes etc. which eventually done at late.
543de70fefbSJagan Teki
544de70fefbSJagan Teki	  So this config enable the late init code with the help of board_late_init
545de70fefbSJagan Teki	  function which should defined on respective boards.
546de70fefbSJagan Teki
54719a97475SLokesh Vutlaconfig DISPLAY_CPUINFO
54819a97475SLokesh Vutla	bool "Display information about the CPU during start up"
549064b55cfSHeiko Schocher	default y if ARM || NIOS2 || X86 || XTENSA
55019a97475SLokesh Vutla	help
55119a97475SLokesh Vutla	  Display information about the CPU that U-Boot is running on
55219a97475SLokesh Vutla	  when U-Boot starts up. The function print_cpuinfo() is called
55319a97475SLokesh Vutla	  to do this.
55419a97475SLokesh Vutla
55584351792SLokesh Vutlaconfig DISPLAY_BOARDINFO
55684351792SLokesh Vutla	bool "Display information about the board during start up"
557d63b5b4fSSimon Glass	default y if ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
55884351792SLokesh Vutla	help
55984351792SLokesh Vutla	  Display information about the board that U-Boot is running on
56084351792SLokesh Vutla	  when U-Boot starts up. The board function checkboard() is called
56184351792SLokesh Vutla	  to do this.
56284351792SLokesh Vutla
563a421192fSSimon Glassmenu "Start-up hooks"
564a421192fSSimon Glass
565a421192fSSimon Glassconfig ARCH_EARLY_INIT_R
566a421192fSSimon Glass	bool "Call arch-specific init soon after relocation"
567a421192fSSimon Glass	help
568a421192fSSimon Glass	  With this option U-Boot will call arch_early_init_r() soon after
569a421192fSSimon Glass	  relocation. Driver model is running by this point, and the cache
570a421192fSSimon Glass	  is on. Note that board_early_init_r() is called first, if
571a421192fSSimon Glass	  enabled. This can be used to set up architecture-specific devices.
572a421192fSSimon Glass
5734585601aSSimon Glassconfig ARCH_MISC_INIT
5744585601aSSimon Glass	bool "Call arch-specific init after relocation, when console is ready"
5754585601aSSimon Glass	help
5764585601aSSimon Glass	  With this option U-Boot will call arch_misc_init() after
5774585601aSSimon Glass	  relocation to allow miscellaneous arch-dependent initialisation
5784585601aSSimon Glass	  to be performed. This function should be defined by the board
5794585601aSSimon Glass	  and will be called after the console is set up, after relocaiton.
5804585601aSSimon Glass
581a5d67547SSimon Glassconfig BOARD_EARLY_INIT_F
582a5d67547SSimon Glass	bool "Call board-specific init before relocation"
583a5d67547SSimon Glass	help
584a5d67547SSimon Glass	  Some boards need to perform initialisation as soon as possible
585a5d67547SSimon Glass	  after boot. With this option, U-Boot calls board_early_init_f()
586a5d67547SSimon Glass	  after driver model is ready in the pre-relocation init sequence.
587a5d67547SSimon Glass	  Note that the normal serial console is not yet set up, but the
588a5d67547SSimon Glass	  debug UART will be available if enabled.
589a5d67547SSimon Glass
59092da45ecSKever Yangconfig BOARD_EARLY_INIT_R
59192da45ecSKever Yang	bool "Call board-specific init after relocation"
59292da45ecSKever Yang	help
59392da45ecSKever Yang	  Some boards need to perform initialisation as directly after
59492da45ecSKever Yang	  relocation. With this option, U-Boot calls board_early_init_r()
59592da45ecSKever Yang	  in the post-relocation init sequence.
59692da45ecSKever Yang
597a421192fSSimon Glassendmenu
5981af1a3cfSJason Zhu
5991af1a3cfSJason Zhumenu "Android features support"
60067dac674SAlex Deymoconfig ANDROID_BOOTLOADER
60167dac674SAlex Deymo	bool "Support for Android Bootloader boot flow"
60267dac674SAlex Deymo	default n
60367dac674SAlex Deymo	depends on ANDROID_BOOT_IMAGE
60467dac674SAlex Deymo	help
60567dac674SAlex Deymo	  If enabled, adds support to boot an Android device following the
60667dac674SAlex Deymo	  Android Bootloader boot flow. This flow requires an Android Bootloader
60767dac674SAlex Deymo	  to handle the Android Bootloader Message stored in the Boot Control
60867dac674SAlex Deymo	  Block (BCB), normally in the "misc" partition of an Android device.
60967dac674SAlex Deymo	  The BCB is used to determine the boot mode of the device (normal mode,
61067dac674SAlex Deymo	  recovery mode or bootloader mode) and, if enabled, the slot to boot
61167dac674SAlex Deymo	  from in devices with multiple boot slots (A/B devices).
61267dac674SAlex Deymo
613180cc7c6SAlex Deymoconfig ANDROID_AB
614180cc7c6SAlex Deymo	bool "Support for Android A/B updates"
615180cc7c6SAlex Deymo	default n
616180cc7c6SAlex Deymo	help
617180cc7c6SAlex Deymo	  If enabled, adds support for the new Android A/B update model. This
618180cc7c6SAlex Deymo	  allows the bootloader to select which slot to boot from based on the
619180cc7c6SAlex Deymo	  information provided by userspace via the Android boot_ctrl HAL. This
620180cc7c6SAlex Deymo	  allows a bootloader to try a new version of the system but roll back
621180cc7c6SAlex Deymo	  to previous version if the new one didn't boot all the way.
622180cc7c6SAlex Deymo
623dfbf26e8STony Xuconfig ANDROID_WRITE_KEYBOX
624dfbf26e8STony Xu	bool "Support Write Keybox"
625dfbf26e8STony Xu	default y
626dfbf26e8STony Xu	depends on OPTEE_CLIENT
627dfbf26e8STony Xu	help
628dfbf26e8STony Xu	  This enable support write keybox to secure storage.
629dfbf26e8STony Xu
630b666ac05SJason Zhuconfig ANDROID_AVB
631b666ac05SJason Zhu	bool"Support Android Verified Boot"
632b666ac05SJason Zhu	default n
633b666ac05SJason Zhu	help
634b666ac05SJason Zhu	  If enabled, adds support the android verified boot. The avb get the
635b666ac05SJason Zhu	  digital signature and key from vemeta. Then use the RSA2048 and sha256
636b666ac05SJason Zhu	  to verify the boot images. The vbmeta must be matched with images,
637b666ac05SJason Zhu	  if not, verify failed.
638b666ac05SJason Zhu
6393e344c46SJason Zhuconfig ANDROID_AVB_ROLLBACK_INDEX
6403e344c46SJason Zhu	bool"Support Android Verified Boot Rollback Index"
6413e344c46SJason Zhu	default n
6423e344c46SJason Zhu	help
6433e344c46SJason Zhu	  If enabled, support the android verified boot rollback index.
6443e344c46SJason Zhu
645c2ba77d9SJian Qiuconfig ANDROID_KEYMASTER_CA
646c2ba77d9SJian Qiu	bool "Support Keymaster CA"
647c2ba77d9SJian Qiu	default y
648c2ba77d9SJian Qiu	depends on OPTEE_CLIENT
649c2ba77d9SJian Qiu	help
650c2ba77d9SJian Qiu	 This enable support read/write data in keymaster.
651c2ba77d9SJian Qiu
65267dac674SAlex Deymoconfig ANDROID_BOOT_IMAGE
65367dac674SAlex Deymo	bool "Enable support for Android Boot Images"
65467dac674SAlex Deymo	help
65567dac674SAlex Deymo	  This enables support for booting images which use the Android
65667dac674SAlex Deymo	  image format header.
657a421192fSSimon Glass
6580cb72e53SJoseph Chenconfig ANDROID_BOOT_IMAGE_HASH
6590cb72e53SJoseph Chen	bool "Enable support for Android image hash verify"
6600cb72e53SJoseph Chen	depends on ANDROID_BOOT_IMAGE
661c641fb24SJoseph Chen	select SHA1 if !DM_CRYPTO
6620cb72e53SJoseph Chen	help
6630cb72e53SJoseph Chen	  This enables support for Android image hash verify, the mkbootimg always use
6640cb72e53SJoseph Chen	  SHA1 for images.
6651af1a3cfSJason Zhuendmenu
6660cb72e53SJoseph Chen
667645a442dSJoseph Chenconfig SKIP_RELOCATE_UBOOT
668645a442dSJoseph Chen	bool "Skip U-Boot relocation"
6699590331bSJoseph Chen	default y if !ARM64 && !ARM64_BOOT_AARCH32
670645a442dSJoseph Chen	help
671645a442dSJoseph Chen	  This enable support for skipping U-Boot relocation.
672645a442dSJoseph Chen
673d70f919eSSimon Glassmenu "Security support"
674d70f919eSSimon Glass
675d70f919eSSimon Glassconfig HASH
676d70f919eSSimon Glass	bool # "Support hashing API (SHA1, SHA256, etc.)"
677d70f919eSSimon Glass	help
678d70f919eSSimon Glass	  This provides a way to hash data in memory using various supported
679d70f919eSSimon Glass	  algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
680d70f919eSSimon Glass	  and the algorithms it supports are defined in common/hash.c. See
681d70f919eSSimon Glass	  also CMD_HASH for command-line access.
682d70f919eSSimon Glass
6835905cceaSRasmus Villemoesconfig BOARD_RNG_SEED
6845905cceaSRasmus Villemoes	bool "Provide /chosen/rng-seed property to the linux kernel"
6855905cceaSRasmus Villemoes	help
6865905cceaSRasmus Villemoes	  Selecting this option requires the board to define a
6875905cceaSRasmus Villemoes	  board_rng_seed() function, which should return a buffer
6885905cceaSRasmus Villemoes	  which will be used to populate the /chosen/rng-seed property
6895905cceaSRasmus Villemoes	  in the device tree for the OS being booted.
6905905cceaSRasmus Villemoes
6915905cceaSRasmus Villemoes	  It is up to the board code (and more generally the whole
6925905cceaSRasmus Villemoes	  BSP) where and how to store (or generate) such a seed, how
6935905cceaSRasmus Villemoes	  to ensure a given seed is only used once, how to create a
6945905cceaSRasmus Villemoes	  new seed for use on subsequent boots, and whether or not the
6955905cceaSRasmus Villemoes	  kernel should account any entropy from the given seed.
6965905cceaSRasmus Villemoes
697d70f919eSSimon Glassendmenu
698d70f919eSSimon Glass
699*2f96fde5SJoseph Chenconfig SMP
700*2f96fde5SJoseph Chen	bool "Enable Symmetric Multiprocessing"
701*2f96fde5SJoseph Chen	default n
702*2f96fde5SJoseph Chen	help
703*2f96fde5SJoseph Chen	  Enable use of more than one CPU in U-Boot and the Operating System
704*2f96fde5SJoseph Chen	  when loaded. If this option is disabled, then only one CPU will be
705*2f96fde5SJoseph Chen	  enabled regardless of the number of CPUs available.
706*2f96fde5SJoseph Chen
70736c449feSJoseph Chenmenu "MT support"
70836c449feSJoseph Chen
70936c449feSJoseph Chenconfig MP_BOOT
71036c449feSJoseph Chen	bool "Support MT boot"
71136c449feSJoseph Chen	default n
71236c449feSJoseph Chen
71336c449feSJoseph Chenconfig MP_BOOT_BOOTM
71436c449feSJoseph Chen	bool "MT simple bootm image"
71536c449feSJoseph Chen	depends on MP_BOOT
71636c449feSJoseph Chen
71736c449feSJoseph Chenendmenu
71836c449feSJoseph Chen
719c2ae7d82SSimon Glasssource "common/spl/Kconfig"
7204a2b8db4SJoseph Chensource "common/usbplug/Kconfig"
721