[PATCH 2/3 v3] efi_loader: Force a sinlge FMP instance per hardware store
Masami Hiramatsu
masami.hiramatsu at linaro.org
Wed Jun 23 01:57:43 CEST 2021
Hi,
2021年6月22日(火) 23:39 Ilias Apalodimas <ilias.apalodimas at 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.apalodimas at linaro.org>
This looks good to me.
Reviewed-by: Masami Hiramatsu <masami.hiramatsu at 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
More information about the U-Boot
mailing list