[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