From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 00/19] efi_loader: non-volatile variables support
Date: Thu, 5 Sep 2019 17:21:14 +0900 [thread overview]
Message-ID: <20190905082133.18996-1-takahiro.akashi@linaro.org> (raw)
# In version 5 of this patch set, the implementation is changed again.
#
# I believe that this is NOT intrusive, and that my approach here is NOT
# selfish at all. If Wolfgang doesn't accept this approach, however,
# I would like to go for "Plan B" for UEFI variables implementation, in
# which EFI will have its own drivers for storage instead of env/*.
This patch set is an attempt to implement non-volatile attribute for
UEFI variables. Under the current implementation,
* SetVariable API doesn't recognize non-volatile attribute
* While some variables are defined non-volatile in UEFI specification,
they are NOT marked as non-volatile in the code.
* env_save() (or "env save" command) allows us to save all the variables
into persistent storage, but it may cause volatile UEFI variables,
along with irrelevant U-Boot variables, to be saved unconditionally.
Those observation rationalizes that the implementation of UEFI variables
should be revamped utilizing dedicated storage for them.
Basic ideas:
* Sub-system users of U-Boot environment variables may have their own
"env contexts". More than one contexts allowed.
See Patch#2 and Patch#18.
* Each context is isolated from other contexts with different name spaces.
* Each context is associated with one backing storage driver and media
location.
* Different contexts may use different drivers and locations.
* To access (get or set) a variable, associated context must be presented.
So, almost of all existing env interfaces are changed to accept one
extra argument, ctx.
(I believe that this is Wolfgang's *requirement*.)
From viewpoint of APIs, env context is a pointer to opaque structure.
* Non-volatile feature is not implemented in a general form and must be
implemented by users in their sub-systems.
In version 4, U-Boot environment's attributes are extended to support
non-volatile (or auto-save capability), but Wolfgang rejected
my approach.
As modifying attributes for this purpose would cause bunch of
incompatibility issues (as far as I said in my cover letter and
the discussions in ML), I would prefer a much simple approach.
See patch#19 about how it is easily implemented for UEFI variables.
* Each backing storage driver must be converted to be aligned with
new env interfaces to handle multiple contexts in parallel and
provide context-specific Kconfig configurations for driver parameters.
In this version, only FAT file system and flash devices are supported,
but it is quite straightforward to modify other drivers.
See Patch#4 and Patch#5 about how drivers can shift to new interfaces.
* Finally, all existing U-Boot variables hold the same semantics
as before.
Known issues/restriction/TODO:
* The current form of patchset is not 'bisect'able.
Not to break 'bisect,' all the patches in this patch set must be
put into a single commit when merging.
(This can be mitigated by modifying/splitting Patch#18/#19 though.)
* Unfortunately, this code fails to read U-Boot environment from flash
at boot time due to incomprehensible memory corruption.
See murky workaround, which is marked as FIXME, in env/flash.c.
Despite this bug, I was still be able to run/test my patch by hacking
the code with gdb.
(modifying data to correct value on the fly :)
I hope that it won't affect code review in most places for now.
* Some minor issues for better coding.
They are also marked as FIXME in the source code.
* Only FAT file system and flash are supported.
* The whole area of storage will be saved at *every* update of
one UEFI variable. It should be optimized if possible.
* An error during "save" operation may cause inconsistency between
cache (hash table) and the storage.
-> This is not UEFI specific though.
* Add tests if necessary.
* I cannot test all the platforms affected by this patchset.
Note:
If we need "secure storage" for UEFI variables, efi_get_variable/
efi_get_next_variable_name/efi_set_variable() should be completely
replaced with stub functions to communicate with secure world.
This patchset has nothing to do with such an implementation.
Usage:
To enable this feature for example with FAT file system, the following
configs must be enabled:
CONFIG_ENV_IS_IN_FAT
CONFIG_ENV_FAT_INTERFACE
CONFIG_ENV_EFI_FAT_DEVICE_AND_PART
CONFIG_ENV_EFI_FAT_FILE
You may define a non-volatile variable from command interface:
=> setenv -e -nv FOO baa
=> printenv -e FOO
FOO: NV|BS|RT, DataSize = 0x3
00000000: 62 61 61 baa
Patch#1 and #2 are to add multiples 'context' support to env interfaces
and to provide new env interfaces.
Patch#3 to #5 are to show how the existing drivers for U-Boot environment
should be modified to be aligned with new env interfaces.
(Only FAT file system and flash in this version of patch set.)
Patch#6 to #17 are to shift all the existing users of old env interfaces
to new ones. (But not tested for all the platforms.)
Patch#18 and #19 are to modify UEFI variable implementation to utilize
new env interfaces.
Changes in v5 (September 4, 2019)
* rebased to v2019.10-rc3
* revamp the implementation, removing changes on environment variable's
attributes (See above)
Changes in v4 (July 17, 2019)
* remove already-merged patches
* revamp after Wolfgang's suggestion
Changes in v3 (June 4, 2019)
* remove already-merged patches
* revamp the code again
* introduce CONFIG_EFI_VARIABLE_USE_ENV for this configuration.
Once another backing storage, i.e. StMM services for secure boot,
is supported, another option will be added.
Changes in v2 (Apr 24, 2019)
* rebased on efi-2019-07
* revamp the implementation
v1 (Nov 28, 2018)
* initial
AKASHI Takahiro (19):
env: extend interfaces allowing for env contexts
env: define env context for U-Boot environment
env: nowhere: rework with new env interfaces
env: flash: support multiple env contexts
env: fat: support multiple env contexts
hashtable: support multiple env contexts
api: converted with new env interfaces
arch: converted with new env interfaces
board: converted with new env interfaces
cmd: converted with new env interfaces
common: converted with new env interfaces
disk: converted with new env interfaces
drivers: converted with new env interfaces
fs: converted with new env interfaces
lib: converted with new env interfaces (except efi_loader)
net: converted with new env interfaces
post: converted with new env interfaces
env,efi_loader: define env context for UEFI variables
efi_loader: variable: rework with new env interfaces
api/api.c | 8 +-
arch/arc/lib/bootm.c | 2 +-
arch/arm/cpu/arm926ejs/spear/spr_misc.c | 8 +-
arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 5 +-
arch/arm/cpu/armv8/fsl-layerscape/soc.c | 14 +-
arch/arm/lib/bootm.c | 6 +-
arch/arm/lib/semihosting.c | 2 +-
arch/arm/mach-imx/mx6/opos6ul.c | 4 +-
arch/arm/mach-imx/mx7/soc.c | 4 +-
arch/arm/mach-imx/video.c | 2 +-
arch/arm/mach-keystone/ddr3.c | 2 +-
arch/arm/mach-keystone/keystone.c | 2 +-
arch/arm/mach-kirkwood/cpu.c | 4 +-
arch/arm/mach-meson/board-common.c | 2 +-
arch/arm/mach-omap2/utils.c | 20 +-
arch/arm/mach-rmobile/cpu_info.c | 2 +-
arch/arm/mach-rockchip/boot_mode.c | 4 +-
arch/arm/mach-rockchip/rk3288/rk3288.c | 2 +-
arch/arm/mach-socfpga/misc_gen5.c | 5 +-
arch/arm/mach-socfpga/misc_s10.c | 2 +-
arch/arm/mach-stm32mp/cpu.c | 35 +-
arch/arm/mach-tegra/board2.c | 4 +-
arch/arm/mach-tegra/cboot.c | 18 +-
arch/arm/mach-uniphier/board_late_init.c | 19 +-
arch/arm/mach-uniphier/mmc-first-dev.c | 2 +-
arch/m68k/lib/bootm.c | 2 +-
arch/microblaze/lib/bootm.c | 2 +-
arch/mips/lib/bootm.c | 6 +-
arch/nds32/lib/bootm.c | 4 +-
arch/powerpc/cpu/mpc85xx/cpu_init.c | 10 +-
arch/powerpc/cpu/mpc85xx/fdt.c | 2 +-
arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c | 2 +-
arch/powerpc/lib/bootm.c | 2 +-
arch/sh/lib/bootm.c | 2 +-
arch/sh/lib/zimageboot.c | 2 +-
arch/x86/lib/zimage.c | 11 +-
arch/xtensa/lib/bootm.c | 2 +-
board/Arcturus/ucp1020/cmd_arc.c | 40 +-
board/Arcturus/ucp1020/ucp1020.c | 16 +-
board/BuR/brppt1/board.c | 4 +-
board/BuR/brxre1/board.c | 9 +-
board/BuR/common/br_resetc.c | 2 +-
board/BuR/common/common.c | 47 +-
board/BuS/eb_cpu5282/eb_cpu5282.c | 8 +-
board/CZ.NIC/turris_mox/turris_mox.c | 4 +-
board/CZ.NIC/turris_omnia/turris_omnia.c | 6 +-
board/CarMediaLab/flea3/flea3.c | 2 +-
board/LaCie/net2big_v2/net2big_v2.c | 2 +-
board/LaCie/netspace_v2/netspace_v2.c | 2 +-
board/Synology/ds414/cmd_syno.c | 6 +-
board/alliedtelesis/x530/x530.c | 2 +-
board/amazon/kc1/kc1.c | 4 +-
board/amlogic/p200/p200.c | 4 +-
board/amlogic/p201/p201.c | 4 +-
board/amlogic/p212/p212.c | 4 +-
board/amlogic/q200/q200.c | 4 +-
board/aristainetos/aristainetos-v2.c | 8 +-
board/armltd/integrator/integrator.c | 2 +-
board/atmel/common/board.c | 4 +-
board/atmel/common/mac_eeprom.c | 2 +-
board/atmel/sama5d3xek/sama5d3xek.c | 2 +-
board/bachmann/ot1200/ot1200.c | 4 +-
board/birdland/bav335x/board.c | 8 +-
board/bluegiga/apx4devkit/apx4devkit.c | 5 +-
board/bluewater/gurnard/gurnard.c | 6 +-
board/bosch/shc/board.c | 2 +-
board/boundary/nitrogen6x/nitrogen6x.c | 14 +-
board/broadcom/bcm23550_w1d/bcm23550_w1d.c | 2 +-
board/broadcom/bcm28155_ap/bcm28155_ap.c | 2 +-
board/broadcom/bcmstb/bcmstb.c | 2 +-
board/buffalo/lsxl/lsxl.c | 2 +-
board/cadence/xtfpga/xtfpga.c | 4 +-
board/ccv/xpress/xpress.c | 2 +-
board/compulab/cl-som-imx7/cl-som-imx7.c | 2 +-
board/compulab/cm_fx6/cm_fx6.c | 10 +-
board/compulab/common/omap3_display.c | 4 +-
board/congatec/cgtqmx6eval/cgtqmx6eval.c | 8 +-
board/cssi/MCR3000/MCR3000.c | 2 +-
board/davinci/da8xxevm/da850evm.c | 2 +-
board/davinci/da8xxevm/omapl138_lcdk.c | 6 +-
board/dhelectronics/dh_imx6/dh_imx6.c | 2 +-
board/eets/pdu001/board.c | 8 +-
board/el/el6x/el6x.c | 2 +-
board/emulation/qemu-riscv/qemu-riscv.c | 2 +-
board/engicam/common/board.c | 32 +-
board/esd/meesc/meesc.c | 6 +-
board/freescale/b4860qds/b4860qds.c | 5 +-
board/freescale/common/cmd_esbc_validate.c | 2 +-
board/freescale/common/fsl_chain_of_trust.c | 6 +-
board/freescale/common/sys_eeprom.c | 4 +-
board/freescale/common/vid.c | 4 +-
board/freescale/imx8mq_evk/imx8mq_evk.c | 4 +-
board/freescale/imx8qm_mek/imx8qm_mek.c | 4 +-
board/freescale/imx8qxp_mek/imx8qxp_mek.c | 4 +-
board/freescale/ls1088a/eth_ls1088aqds.c | 4 +-
board/freescale/ls1088a/ls1088a.c | 2 +-
board/freescale/ls2080aqds/eth.c | 6 +-
board/freescale/ls2080aqds/ls2080aqds.c | 2 +-
board/freescale/ls2080ardb/ls2080ardb.c | 6 +-
board/freescale/lx2160a/eth_lx2160aqds.c | 2 +-
board/freescale/mpc8323erdb/mpc8323erdb.c | 3 +-
board/freescale/mpc837xemds/pci.c | 2 +-
board/freescale/mpc837xerdb/mpc837xerdb.c | 2 +-
board/freescale/mx51evk/mx51evk_video.c | 2 +-
board/freescale/mx53loco/mx53loco.c | 4 +-
board/freescale/mx53loco/mx53loco_video.c | 2 +-
board/freescale/mx6sabreauto/mx6sabreauto.c | 8 +-
board/freescale/mx6sabresd/mx6sabresd.c | 8 +-
board/freescale/mx6sxsabresd/mx6sxsabresd.c | 2 +-
.../mx6ul_14x14_evk/mx6ul_14x14_evk.c | 6 +-
board/freescale/mx6ullevk/mx6ullevk.c | 4 +-
board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c | 2 +-
board/freescale/qemu-ppce500/qemu-ppce500.c | 4 +-
board/freescale/t4qds/t4240qds.c | 2 +-
board/gardena/smart-gateway-at91sam/board.c | 2 +-
board/gardena/smart-gateway-mt7688/board.c | 16 +-
board/gateworks/gw_ventana/common.c | 2 +-
board/gateworks/gw_ventana/gw_ventana.c | 61 +-
board/gateworks/gw_ventana/gw_ventana_spl.c | 4 +-
board/gdsys/a38x/keyprogram.c | 4 +-
board/gdsys/mpc8308/gazerbeam.c | 4 +-
board/gdsys/mpc8308/hrcon.c | 2 +-
board/gdsys/mpc8308/strider.c | 2 +-
board/gdsys/p1022/controlcenterd-id.c | 10 +-
board/gdsys/p1022/controlcenterd.c | 2 +-
board/ge/bx50v3/bx50v3.c | 13 +-
board/ge/common/ge_common.c | 4 +-
board/ge/mx53ppd/mx53ppd.c | 2 +-
board/grinn/chiliboard/board.c | 4 +-
board/grinn/liteboard/board.c | 6 +-
board/highbank/highbank.c | 9 +-
board/hisilicon/poplar/poplar.c | 2 +-
board/imgtec/ci20/ci20.c | 6 +-
board/intel/edison/edison.c | 14 +-
board/isee/igep003x/board.c | 6 +-
board/isee/igep00x0/igep00x0.c | 4 +-
board/k+p/kp_imx53/kp_id_rev.c | 20 +-
board/k+p/kp_imx53/kp_imx53.c | 4 +-
board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 4 +-
board/keymile/common/common.c | 26 +-
board/keymile/common/ivm.c | 8 +-
board/keymile/km83xx/km83xx.c | 2 +-
board/keymile/km_arm/km_arm.c | 6 +-
board/keymile/kmp204x/kmp204x.c | 4 +-
board/kosagi/novena/novena.c | 2 +-
board/laird/wb50n/wb50n.c | 2 +-
board/lg/sniper/sniper.c | 4 +-
board/liebherr/display5/spl.c | 4 +-
board/liebherr/mccmon6/mccmon6.c | 6 +-
board/logicpd/imx6/imx6logic.c | 8 +-
board/menlo/m53menlo/m53menlo.c | 2 +-
board/micronas/vct/vct.c | 2 +-
board/nokia/rx51/rx51.c | 10 +-
board/overo/overo.c | 45 +-
board/phytec/pcm052/pcm052.c | 4 +-
board/phytec/pfla02/pfla02.c | 2 +-
.../dragonboard410c/dragonboard410c.c | 6 +-
.../dragonboard820c/dragonboard820c.c | 2 +-
board/raspberrypi/rpi/rpi.c | 26 +-
board/renesas/alt/alt.c | 3 +-
board/renesas/gose/gose.c | 3 +-
board/renesas/koelsch/koelsch.c | 3 +-
board/renesas/lager/lager.c | 3 +-
board/renesas/porter/porter.c | 3 +-
board/renesas/sh7752evb/sh7752evb.c | 4 +-
board/renesas/sh7753evb/sh7753evb.c | 4 +-
board/renesas/sh7757lcr/sh7757lcr.c | 6 +-
board/renesas/silk/silk.c | 3 +-
board/renesas/stout/stout.c | 3 +-
board/rockchip/kylin_rk3036/kylin_rk3036.c | 2 +-
board/samsung/common/exynos5-dt.c | 2 +-
board/samsung/common/misc.c | 14 +-
board/samsung/odroid/odroid.c | 2 +-
board/samsung/trats/trats.c | 2 +-
board/samsung/universal_c210/universal.c | 2 +-
board/samtec/vining_fpga/socfpga.c | 16 +-
board/siemens/common/board.c | 4 +-
board/siemens/draco/board.c | 6 +-
board/siemens/pxm2/board.c | 4 +-
board/siemens/rut/board.c | 2 +-
board/siemens/taurus/taurus.c | 50 +-
board/socrates/socrates.c | 4 +-
board/softing/vining_2000/vining_2000.c | 8 +-
board/solidrun/mx6cuboxi/mx6cuboxi.c | 16 +-
.../stm32f429-discovery/stm32f429-discovery.c | 4 +-
.../stm32f429-evaluation.c | 4 +-
.../stm32f469-discovery/stm32f469-discovery.c | 4 +-
board/st/stm32mp1/stm32mp1.c | 11 +-
board/sunxi/board.c | 25 +-
board/synopsys/hsdk/env-lib.c | 11 +-
board/synopsys/hsdk/hsdk.c | 6 +-
board/syteco/zmx25/zmx25.c | 8 +-
board/tcl/sl50/board.c | 6 +-
.../puma_rk3399/puma-rk3399.c | 8 +-
board/ti/am335x/board.c | 18 +-
board/ti/am43xx/board.c | 6 +-
board/ti/am57xx/board.c | 14 +-
board/ti/beagle/beagle.c | 43 +-
board/ti/common/board_detect.c | 14 +-
board/ti/dra7xx/evm.c | 12 +-
board/ti/evm/evm.c | 2 +-
board/ti/ks2_evm/board.c | 10 +-
board/ti/ks2_evm/board_k2g.c | 8 +-
board/ti/panda/panda.c | 4 +-
board/toradex/apalis-imx8/apalis-imx8.c | 4 +-
board/toradex/apalis_imx6/apalis_imx6.c | 12 +-
.../toradex/colibri-imx6ull/colibri-imx6ull.c | 6 +-
board/toradex/colibri-imx8x/colibri-imx8x.c | 4 +-
board/toradex/colibri_imx6/colibri_imx6.c | 8 +-
board/toradex/colibri_vf/colibri_vf.c | 2 +-
board/toradex/common/tdx-cfg-block.c | 2 +-
board/toradex/common/tdx-common.c | 2 +-
board/tqc/tqma6/tqma6.c | 2 +-
board/udoo/neo/neo.c | 2 +-
board/udoo/udoo.c | 4 +-
board/varisys/common/sys_eeprom.c | 6 +-
board/vscom/baltos/board.c | 6 +-
board/wandboard/wandboard.c | 12 +-
board/warp7/warp7.c | 6 +-
.../work_92105/work_92105_display.c | 2 +-
board/xes/common/board.c | 6 +-
board/xilinx/zynq/board.c | 16 +-
board/xilinx/zynqmp/cmds.c | 2 +-
board/xilinx/zynqmp/zynqmp.c | 24 +-
cmd/ab_select.c | 2 +-
cmd/avb.c | 2 +-
cmd/bdinfo.c | 6 +-
cmd/binop.c | 4 +-
cmd/bootefi.c | 8 +-
cmd/bootm.c | 4 +-
cmd/bootmenu.c | 6 +-
cmd/cbfs.c | 2 +-
cmd/cramfs.c | 8 +-
cmd/dtimg.c | 2 +-
cmd/elf.c | 29 +-
cmd/fdt.c | 22 +-
cmd/fpga.c | 4 +-
cmd/gpt.c | 8 +-
cmd/ini.c | 6 +-
cmd/itest.c | 2 +-
cmd/jffs2.c | 4 +-
cmd/load.c | 10 +-
cmd/lzmadec.c | 2 +-
cmd/md5sum.c | 4 +-
cmd/mtdparts.c | 41 +-
cmd/mvebu/bubt.c | 2 +-
cmd/nand.c | 12 +-
cmd/net.c | 46 +-
cmd/nvedit.c | 394 +++++++---
cmd/part.c | 6 +-
cmd/pxe.c | 33 +-
cmd/qfw.c | 6 +-
cmd/reiser.c | 8 +-
cmd/setexpr.c | 8 +-
cmd/spl.c | 5 +-
cmd/ti/ddr3.c | 2 +-
cmd/tpm-common.c | 2 +-
cmd/tpm-v1.c | 2 +-
cmd/trace.c | 18 +-
cmd/ubi.c | 2 +-
cmd/unzip.c | 2 +-
cmd/ximg.c | 4 +-
cmd/zfs.c | 6 +-
cmd/zip.c | 2 +-
common/autoboot.c | 22 +-
common/board_f.c | 3 +-
common/board_r.c | 10 +-
common/bootm.c | 12 +-
common/bootm_os.c | 12 +-
common/bootretry.c | 2 +-
common/cli.c | 2 +-
common/cli_hush.c | 14 +-
common/cli_simple.c | 2 +-
common/command.c | 2 +-
common/console.c | 14 +-
common/fdt_support.c | 6 +-
common/hash.c | 4 +-
common/hwconfig.c | 5 +-
common/image-android.c | 4 +-
common/image-fdt.c | 4 +-
common/image.c | 15 +-
common/main.c | 5 +-
common/spl/spl_dfu.c | 6 +-
common/spl/spl_ext.c | 4 +-
common/spl/spl_fat.c | 4 +-
common/spl/spl_net.c | 4 +-
common/splash.c | 4 +-
common/splash_source.c | 8 +-
common/update.c | 10 +-
common/usb_hub.c | 2 +-
common/usb_kbd.c | 6 +-
disk/part.c | 2 +-
disk/part_amiga.c | 4 +-
drivers/bootcount/bootcount_env.c | 12 +-
drivers/ddr/fsl/fsl_ddr_gen4.c | 2 +-
drivers/ddr/fsl/interactive.c | 5 +-
drivers/ddr/fsl/options.c | 4 +-
drivers/dfu/dfu.c | 6 +-
drivers/fastboot/fb_command.c | 4 +-
drivers/fastboot/fb_common.c | 2 +-
drivers/fastboot/fb_getvar.c | 8 +-
drivers/fastboot/fb_mmc.c | 2 +-
drivers/input/i8042.c | 2 +-
drivers/input/input.c | 2 +-
drivers/misc/fs_loader.c | 8 +-
drivers/mtd/cfi_flash.c | 2 +-
drivers/mtd/mtd_uboot.c | 11 +-
drivers/net/fec_mxc.c | 2 +-
drivers/net/fm/b4860.c | 3 +-
drivers/net/fm/fdt.c | 2 +-
drivers/net/fm/fm.c | 4 +-
drivers/net/fsl-mc/mc.c | 7 +-
drivers/net/netconsole.c | 14 +-
drivers/net/phy/micrel_ksz90x1.c | 4 +-
drivers/net/sandbox-raw.c | 4 +-
drivers/pci/pci.c | 4 +-
drivers/pci/pci_common.c | 2 +-
drivers/reset/reset-socfpga.c | 2 +-
drivers/rtc/m41t60.c | 2 +-
drivers/scsi/scsi.c | 2 +-
drivers/serial/usbtty.c | 4 +-
drivers/usb/gadget/designware_udc.c | 2 +-
drivers/usb/gadget/ether.c | 13 +-
drivers/usb/gadget/f_dfu.c | 2 +-
drivers/usb/gadget/f_fastboot.c | 2 +-
drivers/usb/gadget/f_rockusb.c | 2 +-
drivers/usb/gadget/f_sdp.c | 2 +-
drivers/usb/host/ehci-fsl.c | 2 +-
drivers/video/ati_radeon_fb.c | 2 +-
drivers/video/cfb_console.c | 2 +-
drivers/video/mb862xx.c | 2 +-
drivers/video/mx3fb.c | 2 +-
drivers/video/mxsfb.c | 2 +-
drivers/video/videomodes.c | 4 +-
env/Kconfig | 683 +-----------------
env/Kconfig.efi | 152 ++++
env/Kconfig.uboot | 671 +++++++++++++++++
env/Makefile | 33 +-
env/callback.c | 40 +-
env/common.c | 255 ++++---
env/env.c | 158 ++--
env/env_ctx_efi.c | 131 ++++
env/env_ctx_uboot.c | 292 ++++++++
env/fat.c | 102 ++-
env/flags.c | 35 +-
env/flash.c | 397 ++++++----
env/nowhere.c | 7 +-
fs/fs.c | 14 +-
fs/ubifs/ubifs.c | 2 +-
include/_exports.h | 6 +-
include/common.h | 6 +-
include/env.h | 114 ++-
include/env_internal.h | 89 ++-
include/exports.h | 5 +-
include/search.h | 6 +-
lib/efi_loader/efi_console.c | 2 +-
lib/efi_loader/efi_variable.c | 91 ++-
lib/fdtdec.c | 2 +-
lib/hashtable.c | 14 +-
lib/smbios.c | 2 +-
lib/uuid.c | 2 +-
net/bootp.c | 17 +-
net/dns.c | 2 +-
net/eth-uclass.c | 6 +-
net/eth_common.c | 18 +-
net/eth_legacy.c | 2 +-
net/link_local.c | 2 +-
net/net.c | 11 +-
net/tftp.c | 10 +-
net/wol.c | 2 +-
post/post.c | 2 +-
371 files changed, 3690 insertions(+), 2337 deletions(-)
create mode 100644 env/Kconfig.efi
create mode 100644 env/Kconfig.uboot
create mode 100644 env/env_ctx_efi.c
create mode 100644 env/env_ctx_uboot.c
--
2.21.0
next reply other threads:[~2019-09-05 8:21 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-05 8:21 AKASHI Takahiro [this message]
2019-09-05 8:21 ` [U-Boot] [PATCH v5 01/19] env: extend interfaces allowing for env contexts AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 02/19] env: define env context for U-Boot environment AKASHI Takahiro
2019-09-05 19:43 ` Heinrich Schuchardt
2019-09-06 0:41 ` AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 03/19] env: nowhere: rework with new env interfaces AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 04/19] env: flash: support multiple env contexts AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 05/19] env: fat: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 06/19] hashtable: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 07/19] api: converted with new env interfaces AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 08/19] arch: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 09/19] board: " AKASHI Takahiro
2019-09-05 12:02 ` Lukasz Majewski
2019-09-06 0:34 ` AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 10/19] cmd: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 11/19] common: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 12/19] disk: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 13/19] drivers: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 14/19] fs: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 15/19] lib: converted with new env interfaces (except efi_loader) AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 16/19] net: converted with new env interfaces AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 17/19] post: " AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 18/19] env, efi_loader: define env context for UEFI variables AKASHI Takahiro
2019-09-05 19:37 ` Heinrich Schuchardt
2019-09-06 0:54 ` AKASHI Takahiro
2019-09-05 8:21 ` [U-Boot] [PATCH v5 19/19] efi_loader: variable: rework with new env interfaces AKASHI Takahiro
2019-09-05 8:31 ` [U-Boot] [PATCH v5 00/19] efi_loader: non-volatile variables support AKASHI Takahiro
2019-10-01 6:28 ` AKASHI Takahiro
2019-10-23 6:53 ` AKASHI Takahiro
2019-10-25 7:06 ` Wolfgang Denk
2019-10-25 7:56 ` AKASHI Takahiro
2019-10-25 13:25 ` Wolfgang Denk
2019-10-28 1:14 ` AKASHI Takahiro
2019-10-29 13:28 ` Wolfgang Denk
2019-11-01 6:04 ` AKASHI Takahiro
2019-11-04 16:00 ` Wolfgang Denk
2019-11-04 16:16 ` Tom Rini
2019-11-05 5:18 ` AKASHI Takahiro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190905082133.18996-1-takahiro.akashi@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.