[PATCH 2/3 v3] efi_loader: Force a sinlge FMP instance per hardware store
Heinrich Schuchardt
xypron.glpk at gmx.de
Fri Jul 2 09:25:57 CEST 2021
On 6/22/21 4:38 PM, Ilias Apalodimas wrote:
> 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>
> ---
> Changes since v2:
> -
> 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
Should here be:
depends on SANDBOX || (!SANDBOX && !EFI_CAPSULE_FIRMWARE_RAW)
Best regards
Heinrich
> + 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
>
More information about the U-Boot
mailing list