Hi, 2021年6月22日(火) 23:39 Ilias Apalodimas <ilias.apalodi...@linaro.org>: > > Chapter 23 of the EFI spec (rev 2.9) says: > "A specific updatable hardware firmware store must be represented by > exactly one FMP instance". > This is not the case for us, since both of our FMP protocols can be > installed at the same time because they are controlled by a single > 'dfu_alt_info' env variable. > So make the config options depend on each other and allow the user to > install one of them at any given time. If we fix the meta-data provided > by the 'dfu_alt_info' in the future, to hint about the capsule type > (fit or raw) we can revise this and enable both FMPs to be installed, as > long as they target different firmware hardware stores > > Note that we are not using a Kconfig 'choice' on purpose, since we > want to allow both of those to be installed and tested in sandbox > > Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>
This looks good to me. Reviewed-by: Masami Hiramatsu <masami.hirama...@linaro.org> > --- > Changes since v2: > - BTW, you might need to describe the change (fix to move the FMP installation part to the next patch, etc.). But I think this is a minor issue. Thank you, > Changes since v1: > - Don't use 'choice' on Kconfig sicne we need both of the FMPs installed for > sandbox testing > instead just make them mutually exclusive with 'depends on' > > configs/xilinx_zynqmp_virt_defconfig | 1 - > lib/efi_loader/Kconfig | 45 ++++++++++++++-------------- > 2 files changed, 22 insertions(+), 24 deletions(-) > diff --git a/configs/xilinx_zynqmp_virt_defconfig > b/configs/xilinx_zynqmp_virt_defconfig > index 6adbe987cb7f..4d34e6c4cba5 100644 > --- a/configs/xilinx_zynqmp_virt_defconfig > +++ b/configs/xilinx_zynqmp_virt_defconfig > @@ -187,5 +187,4 @@ CONFIG_OF_LIBFDT_OVERLAY=y > CONFIG_EFI_SET_TIME=y > CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y > CONFIG_EFI_CAPSULE_ON_DISK=y > -CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y > CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > index 6242caceb7f9..684adfb62379 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -161,6 +161,28 @@ config EFI_CAPSULE_FIRMWARE_MANAGEMENT > Select this option if you want to enable capsule-based > firmware update using Firmware Management Protocol. > > +config EFI_CAPSULE_FIRMWARE_FIT > + bool "FMP driver for FIT images" > + depends on FIT > + depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT > + select UPDATE_FIT > + select DFU > + select EFI_CAPSULE_FIRMWARE > + help > + Select this option if you want to enable firmware management > protocol > + driver for FIT image > + > +config EFI_CAPSULE_FIRMWARE_RAW > + bool "FMP driver for raw images" > + depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT > + depends on SANDBOX || (!SANDBOX && !EFI_CAPSULE_FIRMWARE_FIT) > + select DFU_WRITE_ALT > + select DFU > + select EFI_CAPSULE_FIRMWARE > + help > + Select this option if you want to enable firmware management > protocol > + driver for raw image > + > config EFI_CAPSULE_AUTHENTICATE > bool "Update Capsule authentication" > depends on EFI_CAPSULE_FIRMWARE > @@ -181,29 +203,6 @@ config EFI_CAPSULE_AUTHENTICATE > Select this option if you want to enable capsule > authentication > > -config EFI_CAPSULE_FIRMWARE_FIT > - bool "FMP driver for FIT image" > - depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT > - depends on FIT > - select UPDATE_FIT > - select DFU > - select EFI_CAPSULE_FIRMWARE > - default n > - help > - Select this option if you want to enable firmware management > protocol > - driver for FIT image > - > -config EFI_CAPSULE_FIRMWARE_RAW > - bool "FMP driver for raw image" > - depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT > - select DFU > - select DFU_WRITE_ALT > - select EFI_CAPSULE_FIRMWARE > - default n > - help > - Select this option if you want to enable firmware management > protocol > - driver for raw image > - > config EFI_DEVICE_PATH_TO_TEXT > bool "Device path to text protocol" > default y > -- > 2.32.0.rc0 > -- Masami Hiramatsu