123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769 |
- source "common/Kconfig.boot"
- menu "Console"
- config MENU
- bool
- help
- This is the library functionality to provide a text-based menu of
- choices for the user to make choices with.
- config CONSOLE_RECORD
- bool "Console recording"
- help
- This provides a way to record console output (and provide console
- input) through circular buffers. This is mostly useful for testing.
- Console output is recorded even when the console is silent.
- To enable console recording, call console_record_reset_enable()
- from your code.
- config CONSOLE_RECORD_INIT_F
- bool "Enable console recording during pre-relocation init"
- depends on CONSOLE_RECORD && SYS_MALLOC_F
- default y
- help
- This option enables console recording during pre-relocation init.
- CONFIG_SYS_MALLOC_F must be enabled to use this feature.
- config CONSOLE_RECORD_OUT_SIZE
- hex "Output buffer size"
- depends on CONSOLE_RECORD
- default 0x400 if CONSOLE_RECORD
- help
- Set the size of the console output buffer. When this fills up, no
- more data will be recorded until some is removed. The buffer is
- allocated immediately after the malloc() region is ready.
- config CONSOLE_RECORD_IN_SIZE
- hex "Input buffer size"
- depends on CONSOLE_RECORD
- default 0x100 if CONSOLE_RECORD
- help
- Set the size of the console input buffer. When this contains data,
- tstc() and getc() will use this in preference to real device input.
- The buffer is allocated immediately after the malloc() region is
- ready.
- config DISABLE_CONSOLE
- bool "Add functionality to disable console completely"
- help
- Disable console (in & out).
- config IDENT_STRING
- string "Board specific string to be added to uboot version string"
- help
- This options adds the board specific name to u-boot version.
- config LOGLEVEL
- int "loglevel"
- default 4
- range 0 10
- help
- All Messages with a loglevel smaller than the console loglevel will
- be compiled in. The loglevels are defined as follows:
- 0 - emergency
- 1 - alert
- 2 - critical
- 3 - error
- 4 - warning
- 5 - note
- 6 - info
- 7 - debug
- 8 - debug content
- 9 - debug hardware I/O
- config SPL_LOGLEVEL
- int
- default LOGLEVEL
- config TPL_LOGLEVEL
- int
- default LOGLEVEL
- config SILENT_CONSOLE
- bool "Support a silent console"
- help
- This option allows the console to be silenced, meaning that no
- output will appear on the console devices. This is controlled by
- setting the environment variable 'silent' to a non-empty value.
- Note this also silences the console when booting Linux.
- When the console is set up, the variable is checked, and the
- GD_FLG_SILENT flag is set. Changing the environment variable later
- will update the flag.
- config SILENT_U_BOOT_ONLY
- bool "Only silence the U-Boot console"
- depends on SILENT_CONSOLE
- help
- Normally when the U-Boot console is silenced, Linux's console is
- also silenced (assuming the board boots into Linux). This option
- allows the linux console to operate normally, even if U-Boot's
- is silenced.
- config SILENT_CONSOLE_UPDATE_ON_SET
- bool "Changes to the 'silent' environment variable update immediately"
- depends on SILENT_CONSOLE
- default y if SILENT_CONSOLE
- help
- When the 'silent' environment variable is changed, update the
- console silence flag immediately. This allows 'setenv' to be used
- to silence or un-silence the console.
- The effect is that any change to the variable will affect the
- GD_FLG_SILENT flag.
- config SILENT_CONSOLE_UPDATE_ON_RELOC
- bool "Allow flags to take effect on relocation"
- depends on SILENT_CONSOLE
- help
- In some cases the environment is not available until relocation
- (e.g. NAND). This option makes the value of the 'silent'
- environment variable take effect at relocation.
- config PRE_CONSOLE_BUFFER
- bool "Buffer characters before the console is available"
- help
- Prior to the console being initialised (i.e. serial UART
- initialised etc) all console output is silently discarded.
- Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
- buffer any console messages prior to the console being
- initialised to a buffer. The buffer is a circular buffer, so
- if it overflows, earlier output is discarded.
- Note that this is not currently supported in SPL. It would be
- useful to be able to share the pre-console buffer with SPL.
- config PRE_CON_BUF_SZ
- int "Sets the size of the pre-console buffer"
- depends on PRE_CONSOLE_BUFFER
- default 4096
- help
- The size of the pre-console buffer affects how much console output
- can be held before it overflows and starts discarding earlier
- output. Normally there is very little output at this early stage,
- unless debugging is enabled, so allow enough for ~10 lines of
- text.
- This is a useful feature if you are using a video console and
- want to see the full boot output on the console. Without this
- option only the post-relocation output will be displayed.
- config PRE_CON_BUF_ADDR
- hex "Address of the pre-console buffer"
- depends on PRE_CONSOLE_BUFFER
- default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
- default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
- default 0x0f000000 if ROCKCHIP_RK3288
- default 0x0f200000 if ROCKCHIP_RK3399
- help
- This sets the start address of the pre-console buffer. This must
- be in available memory and is accessed before relocation and
- possibly before DRAM is set up. Therefore choose an address
- carefully.
- We should consider removing this option and allocating the memory
- in board_init_f_init_reserve() instead.
- config CONSOLE_MUX
- bool "Enable console multiplexing"
- default y if DM_VIDEO || VIDEO || LCD
- help
- This allows multiple devices to be used for each console 'file'.
- For example, stdout can be set to go to serial and video.
- Similarly, stdin can be set to come from serial and keyboard.
- Input can be provided from either source. Console multiplexing
- adds a small amount of size to U-Boot. Changes to the environment
- variables stdout, stdin and stderr will take effect immediately.
- config SYS_CONSOLE_IS_IN_ENV
- bool "Select console devices from the environment"
- default y if CONSOLE_MUX
- help
- This allows multiple input/output devices to be set at boot time.
- For example, if stdout is set to "serial,video" then output will
- be sent to both the serial and video devices on boot. The
- environment variables can be updated after boot to change the
- input/output devices.
- config SYS_CONSOLE_OVERWRITE_ROUTINE
- bool "Allow board control over console overwriting"
- help
- If this is enabled, and the board-specific function
- overwrite_console() returns 1, the stdin, stderr and stdout are
- switched to the serial port, else the settings in the environment
- are used. If this is not enabled, the console will not be switched
- to serial.
- config SYS_CONSOLE_ENV_OVERWRITE
- bool "Update environment variables during console init"
- help
- The console environment variables (stdout, stdin, stderr) can be
- used to determine the correct console devices on start-up. This
- option writes the console devices to these variables on console
- start-up (after relocation). This causes the environment to be
- updated to match the console devices actually chosen.
- config SYS_CONSOLE_INFO_QUIET
- bool "Don't display the console devices on boot"
- help
- Normally U-Boot displays the current settings for stdout, stdin
- and stderr on boot when the post-relocation console is set up.
- Enable this option to suppress this output. It can be obtained by
- calling stdio_print_current_devices() from board code.
- config SYS_STDIO_DEREGISTER
- bool "Allow deregistering stdio devices"
- default y if USB_KEYBOARD
- help
- Generally there is no need to deregister stdio devices since they
- are never deactivated. But if a stdio device is used which can be
- removed (for example a USB keyboard) then this option can be
- enabled to ensure this is handled correctly.
- config SPL_SYS_STDIO_DEREGISTER
- bool "Allow deregistering stdio devices in SPL"
- help
- Generally there is no need to deregister stdio devices since they
- are never deactivated. But if a stdio device is used which can be
- removed (for example a USB keyboard) then this option can be
- enabled to ensure this is handled correctly. This is very rarely
- needed in SPL.
- config SYS_DEVICE_NULLDEV
- bool "Enable a null device for stdio"
- default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
- help
- Enable creation of a "nulldev" stdio device. This allows silent
- operation of the console by setting stdout to "nulldev". Enable
- this to use a serial console under board control.
- endmenu
- menu "Logging"
- config LOG
- bool "Enable logging support"
- depends on DM
- help
- This enables support for logging of status and debug messages. These
- can be displayed on the console, recorded in a memory buffer, or
- discarded if not needed. Logging supports various categories and
- levels of severity.
- if LOG
- config LOG_MAX_LEVEL
- int "Maximum log level to record"
- default 6
- range 0 9
- help
- This selects the maximum log level that will be recorded. Any value
- higher than this will be ignored. If possible log statements below
- this level will be discarded at build time. Levels:
- 0 - emergency
- 1 - alert
- 2 - critical
- 3 - error
- 4 - warning
- 5 - note
- 6 - info
- 7 - debug
- 8 - debug content
- 9 - debug hardware I/O
- config LOG_DEFAULT_LEVEL
- int "Default logging level to display"
- default LOG_MAX_LEVEL
- range 0 LOG_MAX_LEVEL
- help
- This is the default logging level set when U-Boot starts. It can
- be adjusted later using the 'log level' command. Note that setting
- this to a value above LOG_MAX_LEVEL will be ineffective, since the
- higher levels are not compiled in to U-Boot.
- 0 - emergency
- 1 - alert
- 2 - critical
- 3 - error
- 4 - warning
- 5 - note
- 6 - info
- 7 - debug
- 8 - debug content
- 9 - debug hardware I/O
- config LOG_CONSOLE
- bool "Allow log output to the console"
- default y
- help
- Enables a log driver which writes log records to the console.
- Generally the console is the serial port or LCD display. Only the
- log message is shown - other details like level, category, file and
- line number are omitted.
- config LOGF_FILE
- bool "Show source file name in log messages by default"
- help
- Show the source file name in log messages by default. This value
- can be overridden using the 'log format' command.
- config LOGF_LINE
- bool "Show source line number in log messages by default"
- help
- Show the source line number in log messages by default. This value
- can be overridden using the 'log format' command.
- config LOGF_FUNC
- bool "Show function name in log messages by default"
- help
- Show the function name in log messages by default. This value can
- be overridden using the 'log format' command.
- config LOGF_FUNC_PAD
- int "Number of characters to use for function"
- default 20
- help
- Sets the field width to use when showing the function. Set this to
- a larger value if you have lots of long function names, and want
- things to line up.
- config LOG_SYSLOG
- bool "Log output to syslog server"
- depends on NET
- help
- Enables a log driver which broadcasts log records via UDP port 514
- to syslog servers.
- config SPL_LOG
- bool "Enable logging support in SPL"
- depends on LOG
- help
- This enables support for logging of status and debug messages. These
- can be displayed on the console, recorded in a memory buffer, or
- discarded if not needed. Logging supports various categories and
- levels of severity.
- if SPL_LOG
- config SPL_LOG_MAX_LEVEL
- int "Maximum log level to record in SPL"
- depends on SPL_LOG
- default 3
- range 0 9
- help
- This selects the maximum log level that will be recorded. Any value
- higher than this will be ignored. If possible log statements below
- this level will be discarded at build time. Levels:
- 0 - emergency
- 1 - alert
- 2 - critical
- 3 - error
- 4 - warning
- 5 - note
- 6 - info
- 7 - debug
- 8 - debug content
- 9 - debug hardware I/O
- config SPL_LOG_CONSOLE
- bool "Allow log output to the console in SPL"
- default y
- help
- Enables a log driver which writes log records to the console.
- Generally the console is the serial port or LCD display. Only the
- log message is shown - other details like level, category, file and
- line number are omitted.
- endif
- config TPL_LOG
- bool "Enable logging support in TPL"
- depends on LOG
- help
- This enables support for logging of status and debug messages. These
- can be displayed on the console, recorded in a memory buffer, or
- discarded if not needed. Logging supports various categories and
- levels of severity.
- if TPL_LOG
- config TPL_LOG_MAX_LEVEL
- int "Maximum log level to record in TPL"
- depends on TPL_LOG
- default 3
- range 0 9
- help
- This selects the maximum log level that will be recorded. Any value
- higher than this will be ignored. If possible log statements below
- this level will be discarded at build time. Levels:
- 0 - emergency
- 1 - alert
- 2 - critical
- 3 - error
- 4 - warning
- 5 - note
- 6 - info
- 7 - debug
- 8 - debug content
- 9 - debug hardware I/O
- config TPL_LOG_CONSOLE
- bool "Allow log output to the console in TPL"
- default y
- help
- Enables a log driver which writes log records to the console.
- Generally the console is the serial port or LCD display. Only the
- log message is shown - other details like level, category, file and
- line number are omitted.
- endif
- config LOG_ERROR_RETURN
- bool "Log all functions which return an error"
- help
- When an error is returned in U-Boot it is sometimes difficult to
- figure out the root cause. For example, reading from SPI flash may
- fail due to a problem in the SPI controller or due to the flash part
- not returning the expected information. This option changes
- log_ret() to log any errors it sees. With this option disabled,
- log_ret() is a nop.
- You can add log_ret() to all functions which return an error code.
- config LOG_TEST
- bool "Provide a test for logging"
- depends on UNIT_TEST
- default y if SANDBOX
- help
- This enables a 'log test' command to test logging. It is normally
- executed from a pytest and simply outputs logging information
- in various different ways to test that the logging system works
- correctly with various settings.
- endif
- endmenu
- menu "Init options"
- config BOARD_TYPES
- bool "Call get_board_type() to get and display the board type"
- help
- If this option is enabled, checkboard() will call get_board_type()
- to get a string containing the board type and this will be
- displayed immediately after the model is shown on the console
- early in boot.
- config DISPLAY_CPUINFO
- bool "Display information about the CPU during start up"
- default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
- help
- Display information about the CPU that U-Boot is running on
- when U-Boot starts up. The function print_cpuinfo() is called
- to do this.
- config DISPLAY_BOARDINFO
- bool "Display information about the board during early start up"
- default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
- help
- Display information about the board that U-Boot is running on
- when U-Boot starts up. The board function checkboard() is called
- to do this.
- config DISPLAY_BOARDINFO_LATE
- bool "Display information about the board during late start up"
- help
- Display information about the board that U-Boot is running on after
- the relocation phase. The board function checkboard() is called to do
- this.
- menu "Start-up hooks"
- config ARCH_EARLY_INIT_R
- bool "Call arch-specific init soon after relocation"
- help
- With this option U-Boot will call arch_early_init_r() soon after
- relocation. Driver model is running by this point, and the cache
- is on. Note that board_early_init_r() is called first, if
- enabled. This can be used to set up architecture-specific devices.
- config ARCH_MISC_INIT
- bool "Call arch-specific init after relocation, when console is ready"
- help
- With this option U-Boot will call arch_misc_init() after
- relocation to allow miscellaneous arch-dependent initialisation
- to be performed. This function should be defined by the board
- and will be called after the console is set up, after relocation.
- config BOARD_EARLY_INIT_F
- bool "Call board-specific init before relocation"
- help
- Some boards need to perform initialisation as soon as possible
- after boot. With this option, U-Boot calls board_early_init_f()
- after driver model is ready in the pre-relocation init sequence.
- Note that the normal serial console is not yet set up, but the
- debug UART will be available if enabled.
- config BOARD_EARLY_INIT_R
- bool "Call board-specific init after relocation"
- help
- Some boards need to perform initialisation as directly after
- relocation. With this option, U-Boot calls board_early_init_r()
- in the post-relocation init sequence.
- config BOARD_LATE_INIT
- bool "Execute Board late init"
- help
- Sometimes board require some initialization code that might
- require once the actual init done, example saving board specific env,
- boot-modes etc. which eventually done at late.
- So this config enable the late init code with the help of board_late_init
- function which should defined on respective boards.
- config LAST_STAGE_INIT
- bool "Call board-specific as last setup step"
- help
- Some boards need to perform initialisation immediately before control
- is passed to the command-line interpreter (e.g. for initializations
- that depend on later phases in the init sequence). With this option,
- U-Boot calls last_stage_init() before the command-line interpreter is
- started.
- config MISC_INIT_F
- bool "Execute pre-relocation misc init"
- help
- Enabling this option calls the 'misc_init_f' function in the init
- sequence just before DRAM is inited.
- config MISC_INIT_R
- bool "Execute Misc Init"
- default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
- default y if ARCH_OMAP2PLUS && !AM33XX
- help
- Enabling this option calls 'misc_init_r' function
- config PCI_INIT_R
- bool "Enumerate PCI buses during init"
- depends on PCI
- help
- With this option U-Boot will call pci_init() soon after relocation,
- which will enumerate PCI buses. This is needed, for instance, in the
- case of DM PCI-based Ethernet devices, which will not be detected
- without having the enumeration performed earlier.
- endmenu
- endmenu # Init options
- menu "Security support"
- config HASH
- bool # "Support hashing API (SHA1, SHA256, etc.)"
- help
- This provides a way to hash data in memory using various supported
- algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
- and the algorithms it supports are defined in common/hash.c. See
- also CMD_HASH for command-line access.
- config AVB_VERIFY
- bool "Build Android Verified Boot operations"
- depends on LIBAVB
- depends on MMC
- depends on PARTITION_UUIDS
- help
- This option enables compilation of bootloader-dependent operations,
- used by Android Verified Boot 2.0 library (libavb). Includes:
- * Helpers to process strings in order to build OS bootargs.
- * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
- * Helpers to alloc/init/free avb ops.
- if AVB_VERIFY
- config AVB_BUF_ADDR
- hex "Define AVB buffer address"
- default FASTBOOT_BUF_ADDR
- help
- AVB requires a buffer for memory transactions. This variable defines the
- buffer address.
- config AVB_BUF_SIZE
- hex "Define AVB buffer SIZE"
- default FASTBOOT_BUF_SIZE
- help
- AVB requires a buffer for memory transactions. This variable defines the
- buffer size.
- endif # AVB_VERIFY
- config SCP03
- bool "Build SCP03 - Secure Channel Protocol O3 - controls"
- depends on OPTEE || SANDBOX
- depends on TEE
- help
- This option allows U-Boot to enable and or provision SCP03 on an OPTEE
- controlled Secured Element.
- config SPL_HASH
- bool # "Support hashing API (SHA1, SHA256, etc.)"
- help
- This provides a way to hash data in memory using various supported
- algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
- and the algorithms it supports are defined in common/hash.c. See
- also CMD_HASH for command-line access.
- config TPL_HASH
- bool # "Support hashing API (SHA1, SHA256, etc.)"
- help
- This provides a way to hash data in memory using various supported
- algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
- and the algorithms it supports are defined in common/hash.c. See
- also CMD_HASH for command-line access.
- config STACKPROTECTOR
- bool "Stack Protector buffer overflow detection"
- default n
- help
- Enable stack smash detection through compiler's stack-protector
- canary logic
- config SPL_STACKPROTECTOR
- bool "Stack Protector buffer overflow detection for SPL"
- depends on STACKPROTECTOR && SPL
- default n
- config TPL_STACKPROTECTOR
- bool "Stack Protector buffer overflow detection for TPL"
- depends on STACKPROTECTOR && TPL
- default n
- endmenu
- menu "Update support"
- config UPDATE_COMMON
- bool
- default n
- select DFU_WRITE_ALT
- config UPDATE_TFTP
- bool "Auto-update using fitImage via TFTP"
- depends on FIT
- select UPDATE_COMMON
- help
- This option allows performing update of NOR with data in fitImage
- sent via TFTP boot.
- config UPDATE_TFTP_CNT_MAX
- int "The number of connection retries during auto-update"
- default 0
- depends on UPDATE_TFTP
- config UPDATE_TFTP_MSEC_MAX
- int "Delay in mSec to wait for the TFTP server during auto-update"
- default 100
- depends on UPDATE_TFTP
- config UPDATE_FIT
- bool "Firmware update using fitImage"
- depends on FIT
- depends on DFU
- select UPDATE_COMMON
- help
- This option allows performing update of DFU-capable storage with
- data in fitImage.
- config ANDROID_AB
- bool "Android A/B updates"
- default n
- help
- If enabled, adds support for the new Android A/B update model. This
- allows the bootloader to select which slot to boot from based on the
- information provided by userspace via the Android boot_ctrl HAL. This
- allows a bootloader to try a new version of the system but roll back
- to previous version if the new one didn't boot all the way.
- endmenu
- menu "Blob list"
- config BLOBLIST
- bool "Support for a bloblist"
- help
- This enables support for a bloblist in U-Boot, which can be passed
- from TPL to SPL to U-Boot proper (and potentially to Linux). The
- blob list supports multiple binary blobs of data, each with a tag,
- so that different U-Boot components can store data which can survive
- through to the next stage of the boot.
- config SPL_BLOBLIST
- bool "Support for a bloblist in SPL"
- depends on BLOBLIST
- default y if SPL
- help
- This enables a bloblist in SPL. If this is the first part of U-Boot
- to run, then the bloblist is set up in SPL and passed to U-Boot
- proper. If TPL also has a bloblist, then SPL uses the one from there.
- config TPL_BLOBLIST
- bool "Support for a bloblist in TPL"
- depends on BLOBLIST
- default y if TPL
- help
- This enables a bloblist in TPL. The bloblist is set up in TPL and
- passed to SPL and U-Boot proper.
- config BLOBLIST_SIZE
- hex "Size of bloblist"
- depends on BLOBLIST
- default 0x400
- help
- Sets the size of the bloblist in bytes. This must include all
- overhead (alignment, bloblist header, record header). The bloblist
- is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
- proper), and this sane bloblist is used for subsequent stages.
- config BLOBLIST_ADDR
- hex "Address of bloblist"
- depends on BLOBLIST
- default 0xc000 if SANDBOX
- help
- Sets the address of the bloblist, set up by the first part of U-Boot
- which runs. Subsequent U-Boot stages typically use the same address.
- config BLOBLIST_SIZE_RELOC
- hex "Size of bloblist after relocation"
- depends on BLOBLIST
- default BLOBLIST_SIZE
- help
- Sets the size of the bloblist in bytes after relocation. Since U-Boot
- has a lot more memory available then, it is possible to use a larger
- size than the one set up by SPL. This bloblist is set up during the
- relocation process.
- endmenu
- source "common/spl/Kconfig"
- config IMAGE_SIGN_INFO
- bool
- select SHA1
- select SHA256
- help
- Enable image_sign_info helper functions.
- if IMAGE_SIGN_INFO
- config SPL_IMAGE_SIGN_INFO
- bool
- select SHA1
- select SHA256
- help
- Enable image_sign_info helper functions in SPL.
- endif
|