arm: bcmbca: remove bcm6858 support under CONFIG_ARCH_BCM6858
[platform/kernel/u-boot.git] / common / Kconfig
1 menu "Console"
2
3 config MENU
4         bool
5         help
6           This is the library functionality to provide a text-based menu of
7           choices for the user to make choices with.
8
9 config CONSOLE_RECORD
10         bool "Console recording"
11         help
12           This provides a way to record console output (and provide console
13           input) through circular buffers. This is mostly useful for testing.
14           Console output is recorded even when the console is silent.
15           To enable console recording, call console_record_reset_enable()
16           from your code.
17
18 config CONSOLE_RECORD_INIT_F
19         bool "Enable console recording during pre-relocation init"
20         depends on CONSOLE_RECORD && SYS_MALLOC_F
21         default y
22         help
23           This option enables console recording during pre-relocation init.
24           CONFIG_SYS_MALLOC_F must be enabled to use this feature.
25
26 config CONSOLE_RECORD_OUT_SIZE
27         hex "Output buffer size"
28         depends on CONSOLE_RECORD
29         default 0x400 if CONSOLE_RECORD
30         help
31           Set the size of the console output buffer. When this fills up, no
32           more data will be recorded until some is removed. The buffer is
33           allocated immediately after the malloc() region is ready.
34
35 config CONSOLE_RECORD_OUT_SIZE_F
36         hex "Output buffer size before relocation"
37         depends on CONSOLE_RECORD
38         default 0x400 if CONSOLE_RECORD
39         help
40           Set the size of the console output buffer before relocation. When
41           this fills up, no more data will be recorded until some is removed.
42           The buffer is allocated immediately after the early malloc() region is
43           ready.
44
45 config CONSOLE_RECORD_IN_SIZE
46         hex "Input buffer size"
47         depends on CONSOLE_RECORD
48         default 0x100 if CONSOLE_RECORD
49         help
50           Set the size of the console input buffer. When this contains data,
51           tstc() and getc() will use this in preference to real device input.
52           The buffer is allocated immediately after the malloc() region is
53           ready.
54
55 config DISABLE_CONSOLE
56         bool "Add functionality to disable console completely"
57         help
58                 Disable console (in & out).
59
60 config IDENT_STRING
61         string "Board specific string to be added to uboot version string"
62         help
63           This options adds the board specific name to u-boot version.
64
65 config LOGLEVEL
66         int "loglevel"
67         default 4
68         range 0 10
69         help
70           All Messages with a loglevel smaller than the console loglevel will
71           be compiled in. The loglevels are defined as follows:
72
73             0 - emergency
74             1 - alert
75             2 - critical
76             3 - error
77             4 - warning
78             5 - note
79             6 - info
80             7 - debug
81             8 - debug content
82             9 - debug hardware I/O
83
84 config SPL_LOGLEVEL
85         int
86         depends on SPL
87         default LOGLEVEL
88
89 config TPL_LOGLEVEL
90         int
91         depends on TPL
92         default LOGLEVEL
93
94 config VPL_LOGLEVEL
95         int "loglevel for VPL"
96         depends on VPL
97         default LOGLEVEL
98         help
99           All Messages with a loglevel smaller than the console loglevel will
100           be compiled in to VPL. See LOGLEVEL for a list of available log
101           levels. Setting this to a value above 4 may increase the code size
102           significantly.
103
104 config SILENT_CONSOLE
105         bool "Support a silent console"
106         help
107           This option allows the console to be silenced, meaning that no
108           output will appear on the console devices. This is controlled by
109           setting the environment variable 'silent' to a non-empty value.
110           Note this also silences the console when booting Linux.
111
112           When the console is set up, the variable is checked, and the
113           GD_FLG_SILENT flag is set. Changing the environment variable later
114           will update the flag.
115
116 config SILENT_U_BOOT_ONLY
117         bool "Only silence the U-Boot console"
118         depends on SILENT_CONSOLE
119         help
120           Normally when the U-Boot console is silenced, Linux's console is
121           also silenced (assuming the board boots into Linux). This option
122           allows the linux console to operate normally, even if U-Boot's
123           is silenced.
124
125 config SILENT_CONSOLE_UPDATE_ON_SET
126         bool "Changes to the 'silent' environment variable update immediately"
127         depends on SILENT_CONSOLE
128         default y if SILENT_CONSOLE
129         help
130           When the 'silent' environment variable is changed, update the
131           console silence flag immediately. This allows 'setenv' to be used
132           to silence or un-silence the console.
133
134           The effect is that any change to the variable will affect the
135           GD_FLG_SILENT flag.
136
137 config SILENT_CONSOLE_UPDATE_ON_RELOC
138         bool "Allow flags to take effect on relocation"
139         depends on SILENT_CONSOLE
140         help
141           In some cases the environment is not available until relocation
142           (e.g. NAND). This option makes the value of the 'silent'
143           environment variable take effect at relocation.
144
145 config PRE_CONSOLE_BUFFER
146         bool "Buffer characters before the console is available"
147         help
148           Prior to the console being initialised (i.e. serial UART
149           initialised etc) all console output is silently discarded.
150           Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
151           buffer any console messages prior to the console being
152           initialised to a buffer. The buffer is a circular buffer, so
153           if it overflows, earlier output is discarded.
154
155           Note that this is not currently supported in SPL. It would be
156           useful to be able to share the pre-console buffer with SPL.
157
158 config PRE_CON_BUF_SZ
159         int "Sets the size of the pre-console buffer"
160         depends on PRE_CONSOLE_BUFFER
161         default 4096
162         help
163           The size of the pre-console buffer affects how much console output
164           can be held before it overflows and starts discarding earlier
165           output. Normally there is very little output at this early stage,
166           unless debugging is enabled, so allow enough for ~10 lines of
167           text.
168
169           This is a useful feature if you are using a video console and
170           want to see the full boot output on the console. Without this
171           option only the post-relocation output will be displayed.
172
173 config PRE_CON_BUF_ADDR
174         hex "Address of the pre-console buffer"
175         depends on PRE_CONSOLE_BUFFER
176         default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
177         default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
178         default 0x0f000000 if ROCKCHIP_RK3288
179         default 0x0f200000 if ROCKCHIP_RK3399
180         help
181           This sets the start address of the pre-console buffer. This must
182           be in available memory and is accessed before relocation and
183           possibly before DRAM is set up. Therefore choose an address
184           carefully.
185
186           We should consider removing this option and allocating the memory
187           in board_init_f_init_reserve() instead.
188
189 config CONSOLE_FLUSH_SUPPORT
190         bool "Enable console flush support"
191         default y
192         help
193           This enables compilation of flush() function for console flush support.
194
195 config CONSOLE_MUX
196         bool "Enable console multiplexing"
197         default y if VIDEO || VIDEO || LCD
198         help
199           This allows multiple devices to be used for each console 'file'.
200           For example, stdout can be set to go to serial and video.
201           Similarly, stdin can be set to come from serial and keyboard.
202           Input can be provided from either source. Console multiplexing
203           adds a small amount of size to U-Boot.  Changes to the environment
204           variables stdout, stdin and stderr will take effect immediately.
205
206 config SYS_CONSOLE_IS_IN_ENV
207         bool "Select console devices from the environment"
208         default y if CONSOLE_MUX
209         help
210           This allows multiple input/output devices to be set at boot time.
211           For example, if stdout is set to "serial,vidconsole" then output
212           will be sent to both the serial and video devices on boot. The
213           environment variables can be updated after boot to change the
214           input/output devices.
215
216 config SYS_CONSOLE_OVERWRITE_ROUTINE
217         bool "Allow board control over console overwriting"
218         help
219           If this is enabled, and the board-specific function
220           overwrite_console() returns 1, the stdin, stderr and stdout are
221           switched to the serial port, else the settings in the environment
222           are used. If this is not enabled, the console will not be switched
223           to serial.
224
225 config SYS_CONSOLE_ENV_OVERWRITE
226         bool "Update environment variables during console init"
227         help
228           The console environment variables (stdout, stdin, stderr) can be
229           used to determine the correct console devices on start-up. This
230           option writes the console devices to these variables on console
231           start-up (after relocation). This causes the environment to be
232           updated to match the console devices actually chosen.
233
234 config SYS_CONSOLE_INFO_QUIET
235         bool "Don't display the console devices on boot"
236         help
237           Normally U-Boot displays the current settings for stdout, stdin
238           and stderr on boot when the post-relocation console is set up.
239           Enable this option to suppress this output. It can be obtained by
240           calling stdio_print_current_devices() from board code.
241
242 config SYS_STDIO_DEREGISTER
243         bool "Allow deregistering stdio devices"
244         default y if USB_KEYBOARD
245         help
246           Generally there is no need to deregister stdio devices since they
247           are never deactivated. But if a stdio device is used which can be
248           removed (for example a USB keyboard) then this option can be
249           enabled to ensure this is handled correctly.
250
251 config SPL_SYS_STDIO_DEREGISTER
252         bool "Allow deregistering stdio devices in SPL"
253         help
254           Generally there is no need to deregister stdio devices since they
255           are never deactivated. But if a stdio device is used which can be
256           removed (for example a USB keyboard) then this option can be
257           enabled to ensure this is handled correctly. This is very rarely
258           needed in SPL.
259
260 config SYS_DEVICE_NULLDEV
261         bool "Enable a null device for stdio"
262         default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
263         help
264           Enable creation of a "nulldev" stdio device. This allows silent
265           operation of the console by setting stdout to "nulldev". Enable
266           this to use a serial console under board control.
267
268 endmenu
269
270 menu "Logging"
271
272 config LOG
273         bool "Enable logging support"
274         depends on DM
275         help
276           This enables support for logging of status and debug messages. These
277           can be displayed on the console, recorded in a memory buffer, or
278           discarded if not needed. Logging supports various categories and
279           levels of severity.
280
281 if LOG
282
283 config LOG_MAX_LEVEL
284         int "Maximum log level to record"
285         default 6
286         range 0 9
287         help
288           This selects the maximum log level that will be recorded. Any value
289           higher than this will be ignored. If possible log statements below
290           this level will be discarded at build time. Levels:
291
292             0 - emergency
293             1 - alert
294             2 - critical
295             3 - error
296             4 - warning
297             5 - note
298             6 - info
299             7 - debug
300             8 - debug content
301             9 - debug hardware I/O
302
303 config LOG_DEFAULT_LEVEL
304         int "Default logging level to display"
305         default LOG_MAX_LEVEL
306         range 0 LOG_MAX_LEVEL
307         help
308           This is the default logging level set when U-Boot starts. It can
309           be adjusted later using the 'log level' command. Note that setting
310           this to a value above LOG_MAX_LEVEL will be ineffective, since the
311           higher levels are not compiled in to U-Boot.
312
313             0 - emergency
314             1 - alert
315             2 - critical
316             3 - error
317             4 - warning
318             5 - note
319             6 - info
320             7 - debug
321             8 - debug content
322             9 - debug hardware I/O
323
324 config LOG_CONSOLE
325         bool "Allow log output to the console"
326         default y
327         help
328           Enables a log driver which writes log records to the console.
329           Generally the console is the serial port or LCD display. Only the
330           log message is shown - other details like level, category, file and
331           line number are omitted.
332
333 config LOGF_FILE
334         bool "Show source file name in log messages by default"
335         help
336           Show the source file name in log messages by default. This value
337           can be overridden using the 'log format' command.
338
339 config LOGF_LINE
340         bool "Show source line number in log messages by default"
341         help
342           Show the source line number in log messages by default. This value
343           can be overridden using the 'log format' command.
344
345 config LOGF_FUNC
346         bool "Show function name in log messages by default"
347         help
348           Show the function name in log messages by default. This value can
349           be overridden using the 'log format' command.
350
351 config LOGF_FUNC_PAD
352         int "Number of characters to use for function"
353         default 20
354         help
355           Sets the field width to use when showing the function. Set this to
356           a larger value if you have lots of long function names, and want
357           things to line up.
358
359 config LOG_SYSLOG
360         bool "Log output to syslog server"
361         depends on NET
362         help
363           Enables a log driver which broadcasts log records via UDP port 514
364           to syslog servers.
365
366 config SPL_LOG
367         bool "Enable logging support in SPL"
368         depends on LOG && SPL
369         help
370           This enables support for logging of status and debug messages. These
371           can be displayed on the console, recorded in a memory buffer, or
372           discarded if not needed. Logging supports various categories and
373           levels of severity.
374
375 if SPL_LOG
376
377 config SPL_LOG_MAX_LEVEL
378         int "Maximum log level to record in SPL"
379         depends on SPL_LOG
380         default 3
381         range 0 9
382         help
383           This selects the maximum log level that will be recorded. Any value
384           higher than this will be ignored. If possible log statements below
385           this level will be discarded at build time. Levels:
386
387             0 - emergency
388             1 - alert
389             2 - critical
390             3 - error
391             4 - warning
392             5 - note
393             6 - info
394             7 - debug
395             8 - debug content
396             9 - debug hardware I/O
397
398 config SPL_LOG_CONSOLE
399         bool "Allow log output to the console in SPL"
400         default y
401         help
402           Enables a log driver which writes log records to the console.
403           Generally the console is the serial port or LCD display. Only the
404           log message is shown - other details like level, category, file and
405           line number are omitted.
406
407 endif
408
409 config TPL_LOG
410         bool "Enable logging support in TPL"
411         depends on LOG && TPL
412         help
413           This enables support for logging of status and debug messages. These
414           can be displayed on the console, recorded in a memory buffer, or
415           discarded if not needed. Logging supports various categories and
416           levels of severity.
417
418 if TPL_LOG
419
420 config TPL_LOG_MAX_LEVEL
421         int "Maximum log level to record in TPL"
422         depends on TPL_LOG
423         default 3
424         range 0 9
425         help
426           This selects the maximum log level that will be recorded. Any value
427           higher than this will be ignored. If possible log statements below
428           this level will be discarded at build time. Levels:
429
430             0 - emergency
431             1 - alert
432             2 - critical
433             3 - error
434             4 - warning
435             5 - note
436             6 - info
437             7 - debug
438             8 - debug content
439             9 - debug hardware I/O
440
441 config TPL_LOG_CONSOLE
442         bool "Allow log output to the console in TPL"
443         default y
444         help
445           Enables a log driver which writes log records to the console.
446           Generally the console is the serial port or LCD display. Only the
447           log message is shown - other details like level, category, file and
448           line number are omitted.
449
450 endif
451
452 config VPL_LOG
453         bool "Enable logging support in VPL"
454         depends on LOG && VPL
455         help
456           This enables support for logging of status and debug messages. These
457           can be displayed on the console, recorded in a memory buffer, or
458           discarded if not needed. Logging supports various categories and
459           levels of severity.
460
461 if VPL_LOG
462
463 config VPL_LOG_MAX_LEVEL
464         int "Maximum log level to record in VPL"
465         default 3
466         help
467           This selects the maximum log level that will be recorded. Any value
468           higher than this will be ignored. If possible log statements below
469           this level will be discarded at build time. Levels:
470
471             0 - emergency
472             1 - alert
473             2 - critical
474             3 - error
475             4 - warning
476             5 - note
477             6 - info
478             7 - debug
479             8 - debug content
480             9 - debug hardware I/O
481
482 config VPL_LOG_CONSOLE
483         bool "Allow log output to the console in VPL"
484         default y
485         help
486           Enables a log driver which writes log records to the console.
487           Generally the console is the serial port or LCD display. Only the
488           log message is shown - other details like level, category, file and
489           line number are omitted.
490
491 endif
492
493 config LOG_ERROR_RETURN
494         bool "Log all functions which return an error"
495         help
496           When an error is returned in U-Boot it is sometimes difficult to
497           figure out the root cause. For example, reading from SPI flash may
498           fail due to a problem in the SPI controller or due to the flash part
499           not returning the expected information. This option changes
500           log_ret() to log any errors it sees. With this option disabled,
501           log_ret() is a nop.
502
503           You can add log_ret() to all functions which return an error code.
504
505 config LOG_TEST
506         bool "Provide a test for logging"
507         depends on UNIT_TEST
508         default y if SANDBOX
509         help
510           This enables a 'log test' command to test logging. It is normally
511           executed from a pytest and simply outputs logging information
512           in various different ways to test that the logging system works
513           correctly with various settings.
514
515 endif
516
517 endmenu
518
519 menu "Init options"
520
521 config BOARD_TYPES
522         bool "Call get_board_type() to get and display the board type"
523         help
524           If this option is enabled, checkboard() will call get_board_type()
525           to get a string containing the board type and this will be
526           displayed immediately after the model is shown on the console
527           early in boot.
528
529 config DISPLAY_CPUINFO
530         bool "Display information about the CPU during start up"
531         default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
532         help
533           Display information about the CPU that U-Boot is running on
534           when U-Boot starts up. The function print_cpuinfo() is called
535           to do this.
536
537 config DISPLAY_BOARDINFO
538         bool "Display information about the board during early start up"
539         default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
540         help
541           Display information about the board that U-Boot is running on
542           when U-Boot starts up. The board function checkboard() is called
543           to do this.
544
545 config DISPLAY_BOARDINFO_LATE
546         bool "Display information about the board during late start up"
547         help
548           Display information about the board that U-Boot is running on after
549           the relocation phase. The board function checkboard() is called to do
550           this.
551
552 menu "Start-up hooks"
553
554 config CYCLIC
555         bool "General-purpose cyclic execution mechanism"
556         help
557           This enables a general-purpose cyclic execution infrastructure,
558           to allow "small" (run-time wise) functions to be executed at
559           a specified frequency. Things like LED blinking or watchdog
560           triggering are examples for such tasks.
561
562 if CYCLIC
563
564 config CYCLIC_MAX_CPU_TIME_US
565         int "Sets the max allowed time for a cyclic function in us"
566         default 1000
567         help
568           The max allowed time for a cyclic function in us. If a functions
569           takes longer than this duration this function will get unregistered
570           automatically.
571
572 endif # CYCLIC
573
574 config EVENT
575         bool "General-purpose event-handling mechanism"
576         default y if SANDBOX
577         help
578           This enables sending and processing of events, to allow interested
579           parties to be alerted when something happens. This is an attempt to
580           stem the flow of weak functions, hooks, functions in board_f.c
581           and board_r.c and the Kconfig options below.
582
583           See doc/develop/event.rst for more information.
584
585 if EVENT
586
587 config EVENT_DYNAMIC
588         bool "Support event registration at runtime"
589         default y if SANDBOX
590         help
591           Enable this to support adding an event spy at runtime, without adding
592           it to the EVENT_SPy() linker list. This increases code size slightly
593           but provides more flexibility for boards and subsystems that need it.
594
595 config EVENT_DEBUG
596         bool "Enable event debugging assistance"
597         default y if SANDBOX
598         help
599           Enable this get usefui features for seeing what is happening with
600           events, such as event-type names. This adds to the code size of
601           U-Boot so can be turned off for production builds.
602
603 endif # EVENT
604
605 config ARCH_EARLY_INIT_R
606         bool "Call arch-specific init soon after relocation"
607         help
608           With this option U-Boot will call arch_early_init_r() soon after
609           relocation. Driver model is running by this point, and the cache
610           is on. Note that board_early_init_r() is called first, if
611           enabled. This can be used to set up architecture-specific devices.
612
613 config ARCH_MISC_INIT
614         bool "Call arch-specific init after relocation, when console is ready"
615         help
616           With this option U-Boot will call arch_misc_init() after
617           relocation to allow miscellaneous arch-dependent initialisation
618           to be performed. This function should be defined by the board
619           and will be called after the console is set up, after relocation.
620
621 config BOARD_EARLY_INIT_F
622         bool "Call board-specific init before relocation"
623         help
624           Some boards need to perform initialisation as soon as possible
625           after boot. With this option, U-Boot calls board_early_init_f()
626           after driver model is ready in the pre-relocation init sequence.
627           Note that the normal serial console is not yet set up, but the
628           debug UART will be available if enabled.
629
630 config BOARD_EARLY_INIT_R
631         bool "Call board-specific init after relocation"
632         help
633           Some boards need to perform initialisation as directly after
634           relocation. With this option, U-Boot calls board_early_init_r()
635           in the post-relocation init sequence.
636
637 config BOARD_POSTCLK_INIT
638         bool "Call board_postclk_init"
639         help
640           Some boards need this to initialize select items, after clocks /
641           timebase and before env / serial.
642
643 config BOARD_LATE_INIT
644         bool "Execute Board late init"
645         help
646           Sometimes board require some initialization code that might
647           require once the actual init done, example saving board specific env,
648           boot-modes etc. which eventually done at late.
649
650           So this config enable the late init code with the help of board_late_init
651           function which should defined on respective boards.
652
653 config CLOCKS
654         bool "Call set_cpu_clk_info"
655         depends on ARM
656
657 config SYS_FSL_CLK
658         bool
659         depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || \
660                 (FSL_ESDHC_IMX && (ARCH_MX5 || ARCH_MX6 || ARCH_MX7))
661         default y
662         help
663           Enable to call get_clocks() in board_init_f() for platforms other
664           than PowerPC or M68k.  This is a legacy option.  If not TARGET_BRPPT2
665
666 config LAST_STAGE_INIT
667         bool "Call board-specific as last setup step"
668         help
669           Some boards need to perform initialisation immediately before control
670           is passed to the command-line interpreter (e.g. for initializations
671           that depend on later phases in the init sequence). With this option,
672           U-Boot calls last_stage_init() before the command-line interpreter is
673           started.
674
675 config MISC_INIT_R
676         bool "Execute Misc Init"
677         default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
678         default y if ARCH_OMAP2PLUS && !AM33XX
679         help
680           Enabling this option calls 'misc_init_r' function
681
682 config SYS_MALLOC_BOOTPARAMS
683         bool "Malloc a buffer to use for bootparams"
684         help
685           In some cases rather than using a known location to store the
686           bi_boot_params portion of gd we need to allocate it from our malloc pool.
687
688 config SYS_BOOTPARAMS_LEN
689         hex "Size of the bootparam buffer to malloc in bytes"
690         depends on SYS_MALLOC_BOOTPARAMS
691         default 0x20000 if MIPS || RCAR_GEN3
692         default 0x10000
693
694 config ID_EEPROM
695         bool "Enable I2C connected system identifier EEPROM"
696         help
697           A number of different systems and vendors enable a vendor-specified
698           EEPROM that contains various identifying features.
699
700 config SYS_EEPROM_BUS_NUM
701         int "I2C bus number of the system identifier EEPROM"
702         depends on ID_EEPROM
703         default 0
704
705 choice
706         prompt "EEPROM starts with 'CCID' or 'NXID'"
707         depends on ID_EEPROM && (PPC || ARCH_LS1021A || FSL_LAYERSCAPE)
708         default SYS_I2C_EEPROM_NXID
709         help
710           Specify if the Freescale / NXP ID EEPROM starts with 'CCID' or 'NXID'
711           ASCII literal string.
712
713 config SYS_I2C_EEPROM_CCID
714         bool "EEPROM starts with 'CCID'"
715
716 config SYS_I2C_EEPROM_NXID
717         bool "EEPROM starts with 'NXID'"
718
719 endchoice
720
721 config PCI_INIT_R
722         bool "Enumerate PCI buses during init"
723         depends on PCI
724         help
725           With this option U-Boot will call pci_init() soon after relocation,
726           which will enumerate PCI buses. This is needed, for instance, in the
727           case of DM PCI-based Ethernet devices, which will not be detected
728           without having the enumeration performed earlier.
729
730 config RESET_PHY_R
731         bool "Reset ethernet PHY during init"
732         help
733           Implement reset_phy() in board code if required to reset the ethernet
734           PHY.
735
736 endmenu
737
738 endmenu         # Init options
739
740 menu "Security support"
741
742 config HASH
743         bool # "Support hashing API (SHA1, SHA256, etc.)"
744         help
745           This provides a way to hash data in memory using various supported
746           algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
747           and the algorithms it supports are defined in common/hash.c. See
748           also CMD_HASH for command-line access.
749
750 config AVB_VERIFY
751         bool "Build Android Verified Boot operations"
752         depends on LIBAVB
753         depends on MMC
754         depends on PARTITION_UUIDS
755         help
756           This option enables compilation of bootloader-dependent operations,
757           used by Android Verified Boot 2.0 library (libavb). Includes:
758             * Helpers to process strings in order to build OS bootargs.
759             * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
760             * Helpers to alloc/init/free avb ops.
761
762 if AVB_VERIFY
763
764 config AVB_BUF_ADDR
765         hex "Define AVB buffer address"
766         default FASTBOOT_BUF_ADDR
767         help
768           AVB requires a buffer for memory transactions. This variable defines the
769           buffer address.
770
771 config AVB_BUF_SIZE
772         hex "Define AVB buffer SIZE"
773         default FASTBOOT_BUF_SIZE
774         help
775           AVB requires a buffer for memory transactions. This variable defines the
776           buffer size.
777
778 endif # AVB_VERIFY
779
780 config SCP03
781         bool "Build SCP03 - Secure Channel Protocol O3 - controls"
782         depends on OPTEE || SANDBOX
783         depends on TEE
784         help
785           This option allows U-Boot to enable and or provision SCP03 on an OPTEE
786           controlled Secured Element.
787
788 config SPL_HASH
789         bool # "Support hashing API (SHA1, SHA256, etc.)"
790         help
791           This provides a way to hash data in memory using various supported
792           algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
793           and the algorithms it supports are defined in common/hash.c. See
794           also CMD_HASH for command-line access.
795
796 config TPL_HASH
797         bool # "Support hashing API (SHA1, SHA256, etc.)"
798         help
799           This provides a way to hash data in memory using various supported
800           algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
801           and the algorithms it supports are defined in common/hash.c. See
802           also CMD_HASH for command-line access.
803
804 config STACKPROTECTOR
805         bool "Stack Protector buffer overflow detection"
806         help
807           Enable stack smash detection through compiler's stack-protector
808           canary logic
809
810 config SPL_STACKPROTECTOR
811         bool "Stack Protector buffer overflow detection for SPL"
812         depends on STACKPROTECTOR && SPL
813
814 config TPL_STACKPROTECTOR
815         bool "Stack Protector buffer overflow detection for TPL"
816         depends on STACKPROTECTOR && TPL
817
818 config BOARD_RNG_SEED
819         bool "Provide /chosen/rng-seed property to the linux kernel"
820         help
821           Selecting this option requires the board to define a
822           board_rng_seed() function, which should return a buffer
823           which will be used to populate the /chosen/rng-seed property
824           in the device tree for the OS being booted.
825
826           It is up to the board code (and more generally the whole
827           BSP) where and how to store (or generate) such a seed, how
828           to ensure a given seed is only used once, how to create a
829           new seed for use on subsequent boots, and whether or not the
830           kernel should account any entropy from the given seed.
831
832 endmenu
833
834 menu "Update support"
835
836 config UPDATE_COMMON
837         bool
838         select DFU_WRITE_ALT
839
840 config UPDATE_TFTP
841         bool "Auto-update using fitImage via TFTP"
842         depends on FIT
843         select UPDATE_COMMON
844         help
845           This option allows performing update of NOR with data in fitImage
846           sent via TFTP boot.
847
848 config UPDATE_TFTP_CNT_MAX
849         int "The number of connection retries during auto-update"
850         default 0
851         depends on UPDATE_TFTP
852
853 config UPDATE_TFTP_MSEC_MAX
854         int "Delay in mSec to wait for the TFTP server during auto-update"
855         default 100
856         depends on UPDATE_TFTP
857
858 config UPDATE_FIT
859         bool "Firmware update using fitImage"
860         depends on FIT
861         depends on DFU
862         select UPDATE_COMMON
863         help
864           This option allows performing update of DFU-capable storage with
865           data in fitImage.
866
867 config ANDROID_AB
868         bool "Android A/B updates"
869         help
870           If enabled, adds support for the new Android A/B update model. This
871           allows the bootloader to select which slot to boot from based on the
872           information provided by userspace via the Android boot_ctrl HAL. This
873           allows a bootloader to try a new version of the system but roll back
874           to previous version if the new one didn't boot all the way.
875
876 endmenu
877
878 menu "Blob list"
879
880 config BLOBLIST
881         bool "Support for a bloblist"
882         help
883           This enables support for a bloblist in U-Boot, which can be passed
884           from TPL to SPL to U-Boot proper (and potentially to Linux). The
885           blob list supports multiple binary blobs of data, each with a tag,
886           so that different U-Boot components can store data which can survive
887           through to the next phase of the boot.
888
889 config SPL_BLOBLIST
890         bool "Support for a bloblist in SPL"
891         depends on BLOBLIST && SPL_LIBGENERIC_SUPPORT && SPL_LIBCOMMON_SUPPORT
892         default y if SPL
893         help
894           This enables a bloblist in SPL. If this is the first part of U-Boot
895           to run, then the bloblist is set up in SPL and passed to U-Boot
896           proper. If TPL also has a bloblist, then SPL uses the one from there.
897
898 config TPL_BLOBLIST
899         bool "Support for a bloblist in TPL"
900         depends on BLOBLIST && TPL_LIBGENERIC_SUPPORT && TPL_LIBCOMMON_SUPPORT
901         default y if TPL
902         help
903           This enables a bloblist in TPL. The bloblist is set up in TPL and
904           passed to SPL and U-Boot proper.
905
906 config VPL_BLOBLIST
907         bool "Support for a bloblist in VPL"
908         depends on BLOBLIST && VPL_LIBGENERIC_SUPPORT && VPL_LIBCOMMON_SUPPORT
909         default y if VPL
910         help
911           This enables a bloblist in VPL. The bloblist is set up in VPL and
912           passed to SPL and U-Boot proper.
913
914 if BLOBLIST
915
916 choice
917         prompt "Bloblist location"
918         help
919           Select the location of the bloblist, via various means.
920
921 config BLOBLIST_FIXED
922         bool "Place bloblist at a fixed address in memory"
923         help
924           Select this to used a fixed memory address for the bloblist. If the
925           bloblist exists at this address from a previous phase, it used as is.
926           If not it is created at this address in U-Boot.
927
928 config BLOBLIST_ALLOC
929         bool "Allocate bloblist"
930         help
931           Allocate the bloblist using malloc(). This avoids the need to
932           specify a fixed address on systems where this is unknown or can
933           change at runtime.
934
935 endchoice
936
937 config BLOBLIST_ADDR
938         hex "Address of bloblist"
939         default 0xc000 if SANDBOX
940         depends on BLOBLIST_FIXED
941         help
942           Sets the address of the bloblist, set up by the first part of U-Boot
943           which runs. Subsequent U-Boot phases typically use the same address.
944
945           This is not used if BLOBLIST_ALLOC is selected.
946
947 config BLOBLIST_SIZE
948         hex "Size of bloblist"
949         default 0x400
950         help
951           Sets the size of the bloblist in bytes. This must include all
952           overhead (alignment, bloblist header, record header). The bloblist
953           is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
954           proper), and this sane bloblist is used for subsequent phases.
955
956 config BLOBLIST_SIZE_RELOC
957         hex "Size of bloblist after relocation"
958         default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
959         default 0 if BLOBLIST_PASSAGE
960         help
961           Sets the size of the bloblist in bytes after relocation. Since U-Boot
962           has a lot more memory available then, it is possible to use a larger
963           size than the one set up by SPL. This bloblist is set up during the
964           relocation process.
965
966 endif # BLOBLIST
967
968 if SPL_BLOBLIST
969
970 choice
971         prompt "Bloblist location in SPL"
972         help
973           Select the location of the bloblist, via various means. Typically
974           you should use the same value for SPL as for U-Boot, since they need
975           to look in the same place. But if BLOBLIST_ALLOC is used, then a
976           fresh bloblist will be created each time, since there is no shared
977           address (between phases) for the bloblist.
978
979 config SPL_BLOBLIST_FIXED
980         bool "Place bloblist at a fixed address in memory"
981         help
982           Select this to used a fixed memory address for the bloblist. If the
983           bloblist exists at this address from a previous phase, it used as is.
984           If not it is created at this address in SPL.
985
986 config SPL_BLOBLIST_ALLOC
987         bool "Allocate bloblist"
988         help
989           Allocate the bloblist using malloc(). This avoids the need to
990           specify a fixed address on systems where this is unknown or can
991           change at runtime.
992
993 endchoice
994
995 endif # SPL_BLOBLIST
996
997 if TPL_BLOBLIST
998
999 choice
1000         prompt "Bloblist location in TPL"
1001         help
1002           Select the location of the bloblist, via various means. Typically
1003           you should use the same value for SPL as for U-Boot, since they need
1004           to look in the same place. But if BLOBLIST_ALLOC is used, then a
1005           fresh bloblist will be created each time, since there is no shared
1006           address (between phases) for the bloblist.
1007
1008 config TPL_BLOBLIST_FIXED
1009         bool "Place bloblist at a fixed address in memory"
1010         help
1011           Select this to used a fixed memory address for the bloblist. If the
1012           bloblist exists at this address from a previous phase, it used as is.
1013           If not it is created at this address in TPL.
1014
1015 config TPL_BLOBLIST_ALLOC
1016         bool "Allocate bloblist"
1017         help
1018           Allocate the bloblist using malloc(). This avoids the need to
1019           specify a fixed address on systems where this is unknown or can
1020           change at runtime.
1021
1022 endchoice
1023
1024 endif # TPL_BLOBLIST
1025
1026 endmenu
1027
1028 source "common/spl/Kconfig"
1029
1030 config IMAGE_SIGN_INFO
1031         bool
1032         select SHA1
1033         select SHA256
1034         help
1035           Enable image_sign_info helper functions.
1036
1037 if IMAGE_SIGN_INFO
1038
1039 config SPL_IMAGE_SIGN_INFO
1040         bool
1041         select SHA1
1042         select SHA256
1043         help
1044           Enable image_sign_info helper functions in SPL.
1045
1046 endif
1047
1048 config FDT_SIMPLEFB
1049         bool "FDT tools for simplefb support"
1050         depends on OF_LIBFDT
1051         help
1052           Enable the fdt tools to manage the simple fb nodes in device tree.
1053           These functions can be used by board to indicate to the OS
1054           the presence of the simple frame buffer with associated reserved
1055           memory