[PATCH 00/18] FWU: Migrate FWU metadata to version 2
Sughosh Ganu
sughosh.ganu at linaro.org
Mon Jan 29 07:34:18 CET 2024
hi Michal,
On Fri, 26 Jan 2024 at 20:40, Michal Simek <monstr at monstr.eu> wrote:
>
> Hi Sughosh,
>
> po 22. 1. 2024 v 12:55 odesílatel Sughosh Ganu <sughosh.ganu at linaro.org> napsal:
> >
> >
> > The following patches migrate the FWU metadata access code to version
> > 2 of the structure. This is based on the structure definition as
> > defined in the latest rev of the FWU Multi Bank Update specification
> > [1].
> >
> > Since the version 1 of the structure has currently been adopted on a
> > couple of platforms, it was decided to have a clean migration of the
> > metadata to version 2 only, instead of supporting both the versions of
> > the structure. Also, based on consultations with the main author of
> > the specification, it is expected that any further changes in the
> > structure would be minor tweaks, and not be significant. Hence a
> > migration to version 2.
> >
> > Similar migration is also being done in TF-A, including migrating the
> > ST platform port to support version 2 of the metadata structure [2].
> >
> > The patches have been tested on STM32MP1 DK2 board and the Synquacer
> > board from Socionext. This covers testing both the GPT and the MTD
> > partitioned storage devices for the metadata access.
> >
> > [1] - https://developer.arm.com/documentation/den0118/latest/
> > [2] - https://review.trustedfirmware.org/q/topic:%22topics/fwu_metadata_v2_migration%22
> >
> > Sughosh Ganu (18):
> > configs: fwu: Remove FWU configs for metadata V2 migration
> > fwu: metadata: Migrate to version 2 of the structure
> > drivers: fwu: Add the size parameter to the metadata access API's
> > fwu: Add some API's for metadata version 2 access
> > lib: fwu: Make changes to support version 2 of FWU metadata
> > drivers: fwu: mtd: Allocate buffer for image info dynamically
> > drivers: fwu: Allocate memory for metadata copies
> > fwu: Add a function to put a bank in Trial State
> > capsule: Accept a bank on a successful update
> > fwu: mtd: Modify the DFU API's to align with metadata version 2
> > efi_firmware: fwu: Do not read FWU metadata on sandbox
> > efi_firmware: fwu: Get the number of FWU banks at runtime
> > cmd: fwu: Align the command with metadata version 2
> > test: fwu: Align the FWU metadata access test with version 2
> > fwu: Remove the config symbols for number of banks and images
> > tools: mkfwumdata: Migrate to metadata version 2
> > configs: fwu: Re-enable FWU configs
> > doc: fwu: Make changes for supporting FWU Metadata version 2
> >
> > arch/sandbox/Kconfig | 6 -
> > board/armltd/corstone1000/corstone1000.c | 2 +-
> > cmd/fwu_mdata.c | 43 +++-
> > configs/synquacer_developerbox_defconfig | 1 -
> > doc/board/socionext/developerbox.rst | 9 +-
> > doc/develop/uefi/fwu_updates.rst | 12 +-
> > doc/usage/cmd/fwu_mdata.rst | 12 +-
> > drivers/fwu-mdata/fwu-mdata-uclass.c | 10 +-
> > drivers/fwu-mdata/gpt_blk.c | 27 +-
> > drivers/fwu-mdata/raw_mtd.c | 85 ++++---
> > include/fwu.h | 94 ++++++-
> > include/fwu_mdata.h | 56 +++--
> > lib/efi_loader/efi_capsule.c | 12 +-
> > lib/efi_loader/efi_firmware.c | 20 +-
> > lib/fwu_updates/Kconfig | 11 -
> > lib/fwu_updates/fwu.c | 308 ++++++++++++++++++-----
> > lib/fwu_updates/fwu_mtd.c | 76 ++++--
> > test/dm/fwu_mdata.c | 56 +++--
> > test/dm/fwu_mdata_disk_image.h | 124 ++++-----
> > tools/mkfwumdata.c | 43 +++-
> > 20 files changed, 705 insertions(+), 302 deletions(-)
>
>
> Thanks for this work. I have tested it on kv260 and I see an issue
> with 2 image per location configuration.
> When I build mdata v2 with:
> ./tools/mkfwumdata -a 0 -i 2 -b 2
> 588aced7-2cce-ed11-81cd-d324e93ac223,e86660de-5602-ad4f-8238-e406e274c4cf,48054af6-ce2c-11ed-8f66-7bc4531cfe6b,4b819c3e-ce2c-11ed-bec8-23de4c6d2cf2
> 588aced7-2cce-ed11-81cd-d324e93ac223,d4cf9ecf-8b93-c541-8551-1f883ab7dc18,fb04da52-0e9d-11ee-a57f-637805837c3f,07609246-0e9e-11ee-a23a-a38980b779a1
> mdata.bin
>
> fwu command is showing up configuration for the second image
>
> Image Type Guid: DE6066E8-0256-4FAD-8238-E406E274C4CF
> Location Guid: D7CE8A58-CE2C-11ED-81CD-D324E93AC223
> Image Guid: F64A0548-2CCE-ED11-8F66-7BC4531CFE6B
> Image Acceptance: yes
> Image Guid: 3E9C814B-2CCE-ED11-BEC8-23DE4C6D2CF2
> Image Acceptance: yes
>
> Image Type Guid: F64A0548-2CCE-ED11-8F66-7BC4531CFE6B
> Location Guid: 00000001-0000-0000-4B81-9C3ECE2C11ED
> Image Guid: DE23C8BE-6D4C-F22C-0100-000000000000
> Image Acceptance: no
> Image Guid: 881F5185-B73A-18DC-588A-CED72CCEED11
> Image Acceptance: no
>
> but it should be (from mdata v1)
> Image Type Guid: DE6066E8-0256-4FAD-8238-E406E274C4CF
> Location Guid: D7CE8A58-CE2C-11ED-81CD-D324E93AC223
> Image Guid: F64A0548-2CCE-ED11-8F66-7BC4531CFE6B
> Image Acceptance: yes
> Image Guid: 3E9C814B-2CCE-ED11-BEC8-23DE4C6D2CF2
> Image Acceptance: yes
>
> Image Type Guid: CF9ECFD4-938B-41C5-8551-1F883AB7DC18
> Location Guid: D7CE8A58-CE2C-11ED-81CD-D324E93AC223
> Image Guid: 52DA04FB-9D0E-EE11-A57F-637805837C3F
> Image Acceptance: yes
> Image Guid: 46926007-9E0E-EE11-A23A-A38980B779A1
> Image Acceptance: yes
>
> And I think the issue is not with mdata v2 generation but it is with
> decoding inside u-boot.
> Which ends up in a situation that dfu_alt_info for 2 images is not
> generated properly.
Thanks for trying this out. I will try to replicate the same setup on
my end and triage this.
-sughosh
More information about the U-Boot
mailing list