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