[RFC PATCH 0/4] qemu: arm64: Add support for uefi firmware management protocol routines

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Mar 23 13:11:19 CET 2020


On 3/23/20 8:11 AM, Sughosh Ganu wrote:
> This series is based on the capsule update rfc series sent by Takahiro
> Akashi[1].
>
> These routines have been tested on the qemu arm64 platform for
> updating the u-boot firmware through the capsule-on-disk functionality
> of the uefi spec. A sub-command has been added under the 'efidebug
> capsule' category of commands for initiating the firmware update.
>
> The capsule file is placed on the efi system partition(esp), under the
> EFI/UpdateCapsule directory. The BootNext and BootXXXX variables are
> set accordingly by using the 'efidebug boot add' command.
>
> The capsule update can then be initiated by the following command
> 'efidebug capsule disk-update'.

Thanks you for your work on capsule updates.

I am missing here an overview description of the system setup.

I saw a filename bl33.bin. So assume I that you want to use ATF?
In how far is ATF needed for testing the capsule update?

Please, mention the use of semihosting in the overview.

Best regards

Heinrich

>
> The feature can be enabled through the following config options
> CONFIG_EFI_CAPSULE_UPDATE=y
> CONFIG_EFI_CAPSULE_ON_DISK=y
> CONFIG_EFI_CAPSULE_UPDATE_FIRMWARE=y
> CONFIG_EFI_FIRMWARE_MANAGEMENT_PROTOCOL=y
> CONFIG_CMD_EFIDEBUG=y
>
> The GenerateCapsule.py script in edk2 has been used to generate the
> capsule file.
>
> Todo
> * Capsule authentication support.
> * Implement firmware version support.
> * Invoke capsule update functionality during platform boot. This might
>   be taken up by Takahiro.
>
> [1] - https://lists.denx.de/pipermail/u-boot/2020-March/403038.html
>
> Sughosh Ganu (4):
>   efidebug: capsule: Add a command to update capsule on disk
>   semihosting: Change semihosting file operation functions into global
>     symbols
>   semihosting: Add support for writing to a file
>   qemu: arm64: Add support for efi firmware management protocol routines
>
>  arch/arm/lib/semihosting.c              |  48 ++++++-
>  board/emulation/qemu-arm/Kconfig        |  12 ++
>  board/emulation/qemu-arm/Makefile       |   1 +
>  board/emulation/qemu-arm/qemu_efi_fmp.c | 173 ++++++++++++++++++++++++
>  cmd/efidebug.c                          |  14 ++
>  include/semihosting.h                   |  14 ++
>  6 files changed, 257 insertions(+), 5 deletions(-)
>  create mode 100644 board/emulation/qemu-arm/qemu_efi_fmp.c
>  create mode 100644 include/semihosting.h
>



More information about the U-Boot mailing list