Message ID | 20230608170941.3.I2c67e801f791e9b397c7a39c6f9ac503930f1203@changeid |
---|---|
State | Accepted |
Commit | dac5b065125cc1b6733097b826cc3cd322a670a0 |
Delegated to: | Patrice Chotard |
Headers | show |
Series | [1/3] stm32mp: stm32prog: Add support of ENV partition type | expand |
On 6/8/23 17:09, Patrick Delaunay wrote: > Add support of "FWU_MDATA" partition type in flashlayout to select > the TF-A firmware update metadata partition type guid, associated to > U-Boot "system" partition type guid, FWU_MDATA_GUID introduced by > commit 2eaedc95164f ("FWU: Add FWU metadata structure and driver for > accessing metadata") and used in gpt_get_mdata_partitions() for > commit 554b38f7a532 ("FWU: Add FWU metadata access driver for GPT > partitioned block devices") > > See also recommendation in FWU-PSA-A_DEN0118_1.0ALP3.pdf > 4.1.2 Metadata integration with GPT > When embedded in a GPT, each metadata replica occupies a single > partition with PartitionTypeGUID = metadata_uuid. > UUID = 8a7a84a0-8387-40f6-ab41-a8b9a5a60d23 > > Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> > --- > > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c | 11 +++++++++++ > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h | 1 + > 2 files changed, 12 insertions(+) > > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > index 07369919620e..a2ff5558a519 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > @@ -63,6 +63,12 @@ static const efi_guid_t uuid_mmc[3] = { > ROOTFS_MMC2_UUID > }; > > +/* > + * GUID value defined in the FWU specification for identification > + * of the FWU metadata partition. > + */ > +#define FWU_MDATA_UUID "8a7a84a0-8387-40f6-ab41-a8b9a5a60d23" > + > /* FIP type partition UUID used by TF-A*/ > #define FIP_TYPE_UUID "19D5DF83-11B0-457B-BE2C-7559C13142A5" > > @@ -430,6 +436,8 @@ static int parse_type(struct stm32prog_data *data, > } > } else if (!strcmp(p, "FIP")) { > part->part_type = PART_FIP; > + } else if (!strcmp(p, "FWU_MDATA")) { > + part->part_type = PART_FWU_MDATA; > } else if (!strcmp(p, "ENV")) { > part->part_type = PART_ENV; > } else if (!strcmp(p, "System")) { > @@ -1140,6 +1148,9 @@ static int create_gpt_partitions(struct stm32prog_data *data) > case PART_FIP: > type_str = FIP_TYPE_UUID; > break; > + case PART_FWU_MDATA: > + type_str = FWU_MDATA_UUID; > + break; > case PART_ESP: > /* EFI System Partition */ > type_str = "system"; > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > index a6fb9d5e9cc5..02b286be8182 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > @@ -105,6 +105,7 @@ struct stm32_header_v2 { > enum stm32prog_part_type { > PART_BINARY, > PART_FIP, > + PART_FWU_MDATA, > PART_ENV, > PART_SYSTEM, > PART_FILESYSTEM, Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Thanks Patrice
On 6/8/23 17:09, Patrick Delaunay wrote: > Add support of "FWU_MDATA" partition type in flashlayout to select > the TF-A firmware update metadata partition type guid, associated to > U-Boot "system" partition type guid, FWU_MDATA_GUID introduced by > commit 2eaedc95164f ("FWU: Add FWU metadata structure and driver for > accessing metadata") and used in gpt_get_mdata_partitions() for > commit 554b38f7a532 ("FWU: Add FWU metadata access driver for GPT > partitioned block devices") > > See also recommendation in FWU-PSA-A_DEN0118_1.0ALP3.pdf > 4.1.2 Metadata integration with GPT > When embedded in a GPT, each metadata replica occupies a single > partition with PartitionTypeGUID = metadata_uuid. > UUID = 8a7a84a0-8387-40f6-ab41-a8b9a5a60d23 > > Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> > --- > > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c | 11 +++++++++++ > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h | 1 + > 2 files changed, 12 insertions(+) > > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > index 07369919620e..a2ff5558a519 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c > @@ -63,6 +63,12 @@ static const efi_guid_t uuid_mmc[3] = { > ROOTFS_MMC2_UUID > }; > > +/* > + * GUID value defined in the FWU specification for identification > + * of the FWU metadata partition. > + */ > +#define FWU_MDATA_UUID "8a7a84a0-8387-40f6-ab41-a8b9a5a60d23" > + > /* FIP type partition UUID used by TF-A*/ > #define FIP_TYPE_UUID "19D5DF83-11B0-457B-BE2C-7559C13142A5" > > @@ -430,6 +436,8 @@ static int parse_type(struct stm32prog_data *data, > } > } else if (!strcmp(p, "FIP")) { > part->part_type = PART_FIP; > + } else if (!strcmp(p, "FWU_MDATA")) { > + part->part_type = PART_FWU_MDATA; > } else if (!strcmp(p, "ENV")) { > part->part_type = PART_ENV; > } else if (!strcmp(p, "System")) { > @@ -1140,6 +1148,9 @@ static int create_gpt_partitions(struct stm32prog_data *data) > case PART_FIP: > type_str = FIP_TYPE_UUID; > break; > + case PART_FWU_MDATA: > + type_str = FWU_MDATA_UUID; > + break; > case PART_ESP: > /* EFI System Partition */ > type_str = "system"; > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > index a6fb9d5e9cc5..02b286be8182 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h > @@ -105,6 +105,7 @@ struct stm32_header_v2 { > enum stm32prog_part_type { > PART_BINARY, > PART_FIP, > + PART_FWU_MDATA, > PART_ENV, > PART_SYSTEM, > PART_FILESYSTEM, Applied to u-boot-stm/next Thanks Patrice
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c index 07369919620e..a2ff5558a519 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c @@ -63,6 +63,12 @@ static const efi_guid_t uuid_mmc[3] = { ROOTFS_MMC2_UUID }; +/* + * GUID value defined in the FWU specification for identification + * of the FWU metadata partition. + */ +#define FWU_MDATA_UUID "8a7a84a0-8387-40f6-ab41-a8b9a5a60d23" + /* FIP type partition UUID used by TF-A*/ #define FIP_TYPE_UUID "19D5DF83-11B0-457B-BE2C-7559C13142A5" @@ -430,6 +436,8 @@ static int parse_type(struct stm32prog_data *data, } } else if (!strcmp(p, "FIP")) { part->part_type = PART_FIP; + } else if (!strcmp(p, "FWU_MDATA")) { + part->part_type = PART_FWU_MDATA; } else if (!strcmp(p, "ENV")) { part->part_type = PART_ENV; } else if (!strcmp(p, "System")) { @@ -1140,6 +1148,9 @@ static int create_gpt_partitions(struct stm32prog_data *data) case PART_FIP: type_str = FIP_TYPE_UUID; break; + case PART_FWU_MDATA: + type_str = FWU_MDATA_UUID; + break; case PART_ESP: /* EFI System Partition */ type_str = "system"; diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h index a6fb9d5e9cc5..02b286be8182 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h @@ -105,6 +105,7 @@ struct stm32_header_v2 { enum stm32prog_part_type { PART_BINARY, PART_FIP, + PART_FWU_MDATA, PART_ENV, PART_SYSTEM, PART_FILESYSTEM,
Add support of "FWU_MDATA" partition type in flashlayout to select the TF-A firmware update metadata partition type guid, associated to U-Boot "system" partition type guid, FWU_MDATA_GUID introduced by commit 2eaedc95164f ("FWU: Add FWU metadata structure and driver for accessing metadata") and used in gpt_get_mdata_partitions() for commit 554b38f7a532 ("FWU: Add FWU metadata access driver for GPT partitioned block devices") See also recommendation in FWU-PSA-A_DEN0118_1.0ALP3.pdf 4.1.2 Metadata integration with GPT When embedded in a GPT, each metadata replica occupies a single partition with PartitionTypeGUID = metadata_uuid. UUID = 8a7a84a0-8387-40f6-ab41-a8b9a5a60d23 Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> --- arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c | 11 +++++++++++ arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h | 1 + 2 files changed, 12 insertions(+)