stm32mp: stm32prog: Add support of ESP partition type
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Thu, 8 Jun 2023 15:09:55 +0000 (17:09 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Fri, 16 Jun 2023 09:04:41 +0000 (11:04 +0200)
Add support of "ESP" partition type in flashlayout to select
the "EFI System Partition", associated to U-Boot "system"
partition type  guid, PARTITION_SYSTEM_GUID =
C12A7328-F81F-11d2-BA4B-00A0C93EC93B.

This partition is the bootable partition for efi boot.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h

index bddd7a4..030614c 100644 (file)
@@ -429,6 +429,8 @@ static int parse_type(struct stm32prog_data *data,
                part->part_type = PART_ENV;
        } else if (!strcmp(p, "System")) {
                part->part_type = PART_SYSTEM;
+       } else if (!strcmp(p, "ESP")) {
+               part->part_type = PART_ESP;
        } else if (!strcmp(p, "FileSystem")) {
                part->part_type = PART_FILESYSTEM;
        } else if (!strcmp(p, "RawImage")) {
@@ -1123,7 +1125,11 @@ static int create_gpt_partitions(struct stm32prog_data *data)
                        case PART_FIP:
                                type_str = FIP_TYPE_UUID;
                                break;
-                       default:
+                       case PART_ESP:
+                               /* EFI System Partition */
+                               type_str = "system";
+                               break;
+                       default: /* PART_FILESYSTEM or PART_SYSTEM for distro */
                                type_str = "linux";
                                break;
                        }
index 7493008..a196270 100644 (file)
@@ -96,13 +96,19 @@ struct stm32_header_v2 {
        u8 extension_padding[376];
 };
 
-/* partition type in flashlayout file */
+/*
+ * partition type in flashlayout file
+ * SYSTEM = linux partition, bootable
+ * FILESYSTEM = linux partition
+ * ESP = EFI system partition
+ */
 enum stm32prog_part_type {
        PART_BINARY,
        PART_FIP,
        PART_ENV,
        PART_SYSTEM,
        PART_FILESYSTEM,
+       PART_ESP,
        RAW_IMAGE,
 };