[U-Boot] [PATCH v5 00/19] efi_loader: non-volatile variables support

AKASHI Takahiro takahiro.akashi at linaro.org
Tue Oct 1 06:28:31 UTC 2019


Wolfgang,

I haven't seen any comments from you in the last one month.
Could you please take time to review this patch? I'd like to
confirm whether you can agree to my approach here or not
in order to take the next step.

Thanks,
-Takahiro Akashi

On Thu, Sep 05, 2019 at 05:21:14PM +0900, AKASHI Takahiro wrote:
> # 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
> 


More information about the U-Boot mailing list