All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.