mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-15 15:53:02 +00:00
45f5319fa6
On the sandbox called without "--terminal raw" CTRL+C leaves U-Boot, "ESC/CTRL+C to quit" is misleading. Let's remove CTRL+C to quit key handling from bootmenu and eficonfig menu. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
164 lines
5.2 KiB
ReStructuredText
164 lines
5.2 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+
|
|
.. (C) Copyright 2011-2012 Pali Rohár <pali@kernel.org>
|
|
|
|
bootmenu command
|
|
================
|
|
|
|
Synopsis
|
|
--------
|
|
::
|
|
|
|
bootmenu [delay]
|
|
|
|
Description
|
|
-----------
|
|
|
|
The "bootmenu" command uses U-Boot menu interfaces and provides
|
|
a simple mechanism for creating menus with different boot items.
|
|
The cursor keys "Up" and "Down" are used for navigation through
|
|
the items. Current active menu item is highlighted and can be
|
|
selected using the "Enter" key. The selection of the highlighted
|
|
menu entry invokes an U-Boot command (or a list of commands)
|
|
associated with this menu entry.
|
|
|
|
The "bootmenu" command interprets ANSI escape sequences, so
|
|
an ANSI terminal is required for proper menu rendering and item
|
|
selection.
|
|
|
|
The assembling of the menu is done via a set of environment variables
|
|
"bootmenu_<num>" and "bootmenu_delay", i.e.::
|
|
|
|
bootmenu_delay=<delay>
|
|
bootmenu_<num>="<title>=<commands>"
|
|
|
|
<delay>
|
|
is the autoboot delay in seconds, after which the first
|
|
menu entry will be selected automatically
|
|
|
|
<num>
|
|
is the boot menu entry number, starting from zero
|
|
|
|
<title>
|
|
is the text of the menu entry shown on the console
|
|
or on the boot screen
|
|
|
|
<commands>
|
|
are commands which will be executed when a menu
|
|
entry is selected
|
|
|
|
Title and commands are separated by the first appearance of a '='
|
|
character in the value of the environment variable.
|
|
|
|
The first (optional) argument of the "bootmenu" command is a delay specifier
|
|
and it overrides the delay value defined by "bootmenu_delay" environment
|
|
variable. If the environment variable "bootmenu_delay" is not set or if
|
|
the argument of the "bootmenu" command is not specified, the default delay
|
|
will be CONFIG_BOOTDELAY. If delay is 0, no menu entries will be shown on
|
|
the console (or on the screen) and the command of the first menu entry will
|
|
be called immediately. If delay is less then 0, bootmenu will be shown and
|
|
autoboot will be disabled.
|
|
|
|
Bootmenu always adds menu entry "U-Boot console" at the end of all menu
|
|
entries specified by environment variables. When selecting this entry
|
|
the bootmenu terminates and the usual U-Boot command prompt is presented
|
|
to the user.
|
|
|
|
Example environment::
|
|
|
|
setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000 # Set first menu entry
|
|
setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000 # Set second menu entry
|
|
setenv bootmenu_2 Reset board=reset # Set third menu entry
|
|
setenv bootmenu_3 U-Boot boot order=boot # Set fourth menu entry
|
|
bootmenu 20 # Run bootmenu with autoboot delay 20s
|
|
|
|
|
|
The above example will be rendered as below::
|
|
|
|
*** U-Boot Boot Menu ***
|
|
|
|
Boot 1. kernel
|
|
Boot 2. kernel
|
|
Reset board
|
|
U-Boot boot order
|
|
U-Boot console
|
|
|
|
Hit any key to stop autoboot: 20
|
|
Press UP/DOWN to move, ENTER to select
|
|
|
|
The selected menu entry will be highlighted - it will have inverted
|
|
background and text colors.
|
|
|
|
UEFI boot variable enumeration
|
|
''''''''''''''''''''''''''''''
|
|
If enabled, the bootmenu command will automatically generate and add
|
|
UEFI-related boot menu entries for the following items.
|
|
|
|
* possible bootable media with default file names
|
|
* user-defined UEFI boot options
|
|
|
|
The bootmenu automatically enumerates the possible bootable
|
|
media devices supporting EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.
|
|
This auto generated entry is named as "<interface> <devnum>:<part>" format.
|
|
(e.g. "usb 0:1")
|
|
|
|
The bootmenu displays the UEFI-related menu entries in order of "BootOrder".
|
|
When the user selects the UEFI boot menu entry, the bootmenu sets
|
|
the selected boot variable index to "BootNext" without non-volatile attribute,
|
|
then call the uefi boot manager with the command "bootefi bootmgr".
|
|
|
|
Example bootmenu is as below::
|
|
|
|
*** U-Boot Boot Menu ***
|
|
|
|
mmc 0:1
|
|
mmc 0:2
|
|
debian
|
|
nvme 0:1
|
|
ubuntu
|
|
nvme 0:2
|
|
usb 0:2
|
|
U-Boot console
|
|
|
|
Default behavior when user exits from the bootmenu
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
User can exit from bootmenu by selecting the last entry
|
|
"U-Boot console"/"Quit" or ESC key.
|
|
|
|
When the CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is disabled,
|
|
user exits from the bootmenu and returns to the U-Boot console.
|
|
|
|
When the CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is enabled, user can not
|
|
enter the U-Boot console. When the user exits from the bootmenu,
|
|
the bootmenu invokes the following default behavior.
|
|
|
|
* if CONFIG_CMD_BOOTEFI_BOOTMGR is enabled, execute "bootefi bootmgr" command
|
|
* "bootefi bootmgr" fails or is not enabled, then execute "run bootcmd" command.
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
The "bootmenu" command is enabled by::
|
|
|
|
CONFIG_CMD_BOOTMENU=y
|
|
|
|
To run the bootmenu at startup add these additional settings::
|
|
|
|
CONFIG_AUTOBOOT_KEYED=y
|
|
CONFIG_BOOTDELAY=30
|
|
CONFIG_AUTOBOOT_MENU_SHOW=y
|
|
|
|
UEFI boot variable enumeration is enabled by::
|
|
|
|
CONFIG_CMD_BOOTEFI_BOOTMGR=y
|
|
|
|
To improve the product security, entering U-Boot console from bootmenu
|
|
can be disabled by::
|
|
|
|
CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE=y
|
|
|
|
To scan the discoverable devices connected to the buses such as
|
|
USB and PCIe prior to bootmenu showing up, CONFIG_PREBOOT can be
|
|
used to run the command before showing the bootmenu, i.e.::
|
|
|
|
CONFIG_USE_PREBOOT=y
|
|
CONFIG_PREBOOT="pci enum; usb start; scsi scan; nvme scan; virtio scan"
|