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

AKASHI Takahiro takahiro.akashi at linaro.org
Thu Sep 5 08:31:54 UTC 2019


One more issue:
* Currently, Travis CI fails in lots of builds.
  I will try to fix them in the succeeding versions.

-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