u-boot/cmd
Rob Clark ad644e7c18 efi_loader: efi variable support
Add EFI variable support, mapping to u-boot environment variables.
Variables are pretty important for setting up boot order, among other
things.  If the board supports saveenv, then it will be called in
ExitBootServices() to persist variables set by the efi payload.  (For
example, fallback.efi configuring BootOrder and BootXXXX load-option
variables.)

Variables are *not* currently exposed at runtime, post ExitBootServices.
On boards without a dedicated device for storage, which the loaded OS
is not trying to also use, this is rather tricky.  One idea, at least
for boards that can persist RAM across reboot, is to keep a "journal"
of modified variables in RAM, and then turn halt into a reboot into
u-boot, plus store variables, plus halt.  Whatever the solution, it
likely involves some per-board support.

Mapping between EFI variables and u-boot variables:

  efi_$guid_$varname = {attributes}(type)value

For example:

  efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_OsIndicationsSupported=
     "{ro,boot,run}(blob)0000000000000000"
  efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_BootOrder=
     "(blob)00010000"

The attributes are a comma separated list of these possible
attributes:

  + ro   - read-only
  + boot - boot-services access
  + run  - runtime access

NOTE: with current implementation, no variables are available after
ExitBootServices, and all are persisted (if possible).

If not specified, the attributes default to "{boot}".

The required type is one of:

  + utf8 - raw utf8 string
  + blob - arbitrary length hex string

Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2017-09-20 11:00:57 +02:00
..
fastboot Kconfig: Migrate all of cmd/fastboot/Kconfig to defconfigs 2017-09-01 16:18:21 -04:00
mvebu env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
aes.c Rename aes.h to uboot_aes.h 2017-04-12 13:28:27 -04:00
armflash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bdinfo.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
bedbug.c powerpc: remove 4xx support 2017-07-03 17:35:28 -04:00
blk_common.c cmd: blk: Use LBAFU in the common block command 2017-09-15 08:05:10 -04:00
blkcache.c cmd: blkcache: simplify sub-command handling 2016-04-11 12:44:38 -04:00
blob.c crypto/fsl: Update blob cmd to accept 64bit addresses 2016-08-02 09:45:39 -07:00
bmp.c dm: Use uclass_first_device_err() where it is useful 2016-03-14 15:34:50 -06:00
boot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootefi.c efi_loader: efi variable support 2017-09-20 11:00:57 +02:00
booti.c arm64: booti: allow to place kernel image anywhere in physical memory 2017-03-14 20:40:23 -04:00
bootm.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
bootmenu.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
bootstage.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootz.c bootz/booti: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set 2017-01-24 10:35:55 -05:00
cache.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cbfs.c env: Rename common functions related to setenv() 2017-08-16 08:23:32 -04:00
clk.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
config.c cmd: add a new command "config" to show .config contents 2017-02-08 15:56:26 -05:00
console.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cpu.c cmd: cpu: refactor to ensure devices are probed and improve code style 2017-05-10 16:16:09 +02:00
cramfs.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
cros_ec.c dm: core: Add flags parameter to device_remove() 2017-04-04 20:15:10 -06:00
dataflash_mmc_mux.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
date.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
demo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dfu.c common: dfu: saperate the dfu common functionality 2016-09-27 23:30:18 +02:00
diag.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
disk.c cmd: Rework disk.c usage 2016-09-09 15:53:14 -04:00
display.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
echo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
eeprom.c Convert CONFIG_CMD_EEPROM et al to Kconfig 2017-05-22 09:33:49 -04:00
efi.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
elf.c env: Rename some other getenv()-related functions 2017-08-16 08:31:11 -04:00
ethsw.c cmd: ethsw: Fix out-of-bounds error 2017-06-16 10:11:42 -04:00
exit.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext4.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fastboot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fat.c cmd/fat: Do not crash on write when <bytes> is not specified 2016-09-23 08:55:58 -04:00
fdc.c Fix spelling of "occurred". 2016-05-02 18:37:09 -04:00
fdt.c fdt: Switch to using the verbose overlay application method 2017-09-15 05:27:48 -06:00
fitupd.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
flash.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
fpga.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
fpgad.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fs_uuid.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fs.c efi_loader: Pass file path to payload 2016-04-18 17:11:36 -04:00
fuse.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
gettime.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
gpio.c gpio: Report errors when GPIOs cannot be read 2016-03-17 21:27:37 -06:00
gpt.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
hash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
help.c Drop command-processing code when CONFIG_CMDLINE is disabled 2016-04-01 17:17:40 -04:00
host.c cmd/host: add missing \n in help text 2017-01-20 09:15:24 -05:00
i2c.c i2c: Set default I2C bus number 2017-03-28 06:27:54 +02:00
ide.c cmd: ide: Make the first device the default one 2017-09-10 12:27:43 -04:00
ini.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
io.c cmd/io.c: Fix comparison of unsigned expression warning 2017-05-12 08:37:38 -04:00
iotrace.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
irq.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
itest.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
jffs2.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
Kconfig efi_selftest: provide an EFI selftest application 2017-09-18 23:53:57 +02:00
led.c cmd/led.c: Remove unnecessary check on 'cmd' value 2017-05-12 08:37:38 -04:00
legacy_led.c led: Mark existing driver as legacy 2017-04-14 19:38:57 -06:00
license.c cmd: rework "license" command 2017-02-08 15:56:28 -05:00
load.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
log.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
lzmadec.c env: Rename common functions related to setenv() 2017-08-16 08:23:32 -04:00
mac.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
Makefile cmd: add sdp command 2017-08-23 10:41:58 +02:00
md5sum.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
mdio.c common: miiphyutil: Work and report phy address in hex in mdio cmd 2016-12-02 14:36:02 +01:00
mem.c Kconfig: Finish migration of hashing commands 2017-05-31 19:38:14 -04:00
mfsl.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mii.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
misc.c cmd: misc: Add support for fractions in sleep 2016-07-25 12:00:05 -04:00
mmc_spi.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
mmc.c blk: Remove various places that do flush cache after read 2017-09-15 08:05:10 -04:00
mp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mtdparts.c mtdparts: Fix uninitialized scalar usage 2017-08-26 16:59:24 -04:00
nand.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
net.c env: Rename some other getenv()-related functions 2017-08-16 08:31:11 -04:00
nvedit.c env: Rename getenv_hex(), getenv_yesno(), getenv_ulong() 2017-08-16 08:30:32 -04:00
nvme.c nvme: Adjust the 'nvme' command to use blk_common_cmd() 2017-08-28 07:17:15 -04:00
onenand.c cmd/onenand.c: block align warning 2016-10-06 20:57:42 -04:00
part.c env: Rename setenv() to env_set() 2017-08-16 08:22:18 -04:00
pci.c Kconfig: Drop CONFIG_CMD_PCI_ENUM 2017-08-11 15:41:51 -04:00
pcmcia.c powerpc, 8xx: remove support for 8xx 2017-06-12 08:37:55 -04:00
pmic.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
pxe.c env: Rename eth_getenv_enetaddr() to eth_env_get_enetaddr() 2017-08-16 08:30:44 -04:00
qfw.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
read.c cmd/read.c: Fix checking blk_dread return value 2017-08-20 09:54:30 -04:00
reginfo.c powerpc: Remove unneccessary #ifdefs in reginfo 2017-07-22 22:22:49 -04:00
regulator.c power: regulator: Introduce regulator_set_value_force function 2016-11-25 10:00:04 -07:00
reiser.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
remoteproc.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sata.c dm: sata: Support driver model with the 'sata' command 2017-08-17 16:44:17 +09:00
scsi.c dm: scsi: Adjust the 'scsi' command to use blk_common_cmd() 2017-08-17 16:44:16 +09:00
setexpr.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
sf.c dm: core: Add flags parameter to device_remove() 2017-04-04 20:15:10 -06:00
sha1sum.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sound.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
source.c env: Rename getenv_hex(), getenv_yesno(), getenv_ulong() 2017-08-16 08:30:32 -04:00
spi.c cmd: spi: check return value of strdup 2016-03-27 09:12:55 -04:00
spl.c cmd: spl: Fix compiling warning 2017-09-11 07:55:36 -07:00
strings.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
terminal.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
test.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
thordown.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
time.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
tpm_test.c cmd/tpm_test: Fix misleading code indentation 2016-12-02 10:37:47 -07:00
tpm.c env: Rename common functions related to setenv() 2017-08-16 08:23:32 -04:00
trace.c env: Rename getenv_hex(), getenv_yesno(), getenv_ulong() 2017-08-16 08:30:32 -04:00
tsi148.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ubi.c cmd: set filesize variable in ubi read 2017-09-12 10:08:05 +02:00
ubifs.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
universe.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
unzip.c env: Rename common functions related to setenv() 2017-08-16 08:23:32 -04:00
usb_gadget_sdp.c cmd: add sdp command 2017-08-23 10:41:58 +02:00
usb_mass_storage.c cmd: usb_mass_storage: Staticize do_usb_mass_storage() 2017-06-18 21:11:10 +02:00
usb.c dm: usb: Adjust the 'usb' command to use blk_common_cmd() 2017-08-17 16:44:16 +09:00
version.c display_options: Refactor to allow obtaining the banner 2017-07-11 10:08:19 -06:00
ximg.c env: Rename getenv_hex(), getenv_yesno(), getenv_ulong() 2017-08-16 08:30:32 -04:00
yaffs2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
zfs.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
zip.c env: Rename common functions related to setenv() 2017-08-16 08:23:32 -04:00