
Hi Heinrich,
Heinrich Schuchardt xypron.glpk@gmx.de writes:
Up to now for MBR and GPT partitions the info field 'bootable' was set to 1 if either the partition was an EFI system partition or the bootable flag was set.
Turn info field 'bootable' into a bit mask with separate bits for bootable and EFI system partition.
This will allow us to identify the EFI system partition in the UEFI sub-system.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
disk/part_dos.c | 10 ++++++++-- disk/part_efi.c | 12 ++++++++---- include/part.h | 11 ++++++++++- 3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/disk/part_dos.c b/disk/part_dos.c
[...]
diff --git a/include/part.h b/include/part.h index 0b5cf3d5e8..a63d1d0cda 100644 --- a/include/part.h +++ b/include/part.h @@ -51,13 +51,22 @@ struct block_drvr { #define PART_TYPE_LEN 32 #define MAX_SEARCH_PARTITIONS 64
+#define PART_BOOTABLE 1 +#define PART_EFI_SYSTEM_PARTITION 2
Maybe you missed my comments on the previous version [0].
As the above defines are used as bit positions, please consider using BIT() for clarity.
Thanks, Punit
[0] https://lists.denx.de/pipermail/u-boot/2020-March/404081.html
typedef struct disk_partition { lbaint_t start; /* # of first block in partition */ lbaint_t size; /* number of blocks in partition */ ulong blksz; /* block size in bytes */ uchar name[PART_NAME_LEN]; /* partition name */ uchar type[PART_TYPE_LEN]; /* string type description */
- int bootable; /* Active/Bootable flag is set */
- /*
* The bootable is a bitmask with the following fields:
*
* PART_BOOTABLE the MBR bootable flag is set
* PART_EFI_SYSTEM_PARTITION the partition is an EFI system partition
*/
- int bootable;
#if CONFIG_IS_ENABLED(PARTITION_UUIDS) char uuid[UUID_STR_LEN + 1]; /* filesystem UUID as string, if exists */
#endif
2.25.1