This patch series extends the EFI_PARTITION_INFO_PROTOCOL implementation
to also support MBR partition tables schemes.

When EFI_PARTITION_INFO_PROTOCOL was implented, only GPT support was
added but this can cause compatibility issues with platforms whose boot
ROM only supports MBR. This series add support for MBR partition tables
to the protocol, making U-Boot compatible with systems that require a
legacy MBR table.

This is a second version of the patches that addresses issues pointed out
by Heinrich Schuchardt (thanks!). The first version can be found here:

https://lists.denx.de/pipermail/u-boot/2025-June/592644.html

Patches #1 to #3 are preparatory changes to remove duplicated definitions
of data structures to store the MBR records.

Patch #4 just documents the part_get_info_extended() helper function and
patch #5 refactors this function to also optionally return the MBR record data.

Patch #6 adds the MBR support to the EFI_PARTITION_INFO_PROTOCOL implementation
and patch #7 enhances the protocol selftest, to check that the partition record
data is correctly filled.

Changes in v2:
- Add Tom Rini Rini's Reviewed-by tags to patches 1-3.
- Document part_get_info_extended() helper function.
- Split partition library and EFI changes in separate patches.
- Add static MBR data in EFI block device test and compare the queried data.

Javier Martinez Canillas (7):
  disk: part_dos: Move header to the main include directory
  disk: part_dos: Align dos_partition_t with struct partition
  disk: part_efi: Remove redundant struct partition definition
  disk: part_dos: Document part_get_info_extended() helper function
  disk: part_dos: Refactor to allow retrieving raw MBR partition data
  efi_loader: disk: Extend EFI_PARTITION_INFO_PROTOCOL to support MBR
  efi_selftest: Enhance MBR test for PARTITION_INFO_PROTOCOL

 disk/part_dos.c                              | 91 +++++++++++++-------
 disk/part_efi.c                              |  4 +-
 include/part.h                               | 14 +++
 {disk => include}/part_dos.h                 |  6 +-
 include/part_efi.h                           | 19 +---
 lib/efi_loader/efi_disk.c                    |  9 +-
 lib/efi_selftest/efi_selftest_block_device.c | 26 ++++++
 7 files changed, 113 insertions(+), 56 deletions(-)
 rename {disk => include}/part_dos.h (87%)

-- 
2.53.0

base-commit: f9ffeec4bdcf1da655a0ffea482062adde78fee8
branch: add-mbr-efi-part-info-proto-v2

Reply via email to