Enhances the process for identifying disk images within the EFI boot
manager. Utilize part_driver_lookup_type() to verify the validity of a
downloaded file as a disk image, rather than depending on file
extensions.

part_driver_lookup_type() is now used in the prepare_loaded_image()
function in the EFI boot manager to detect partitions on a block device
created from a downloaded image. This allows the boot manager to boot
from any disk image that can be recognized by a partition driver, not
just ISO and IMG images.

Update prepare_loaded_image() to create the ramdisk block device
internally, obtain the blk_desc and use part_driver_lookup_type() to
detect a valid partition table.

In try_load_from_uri_path(), try prepare_loaded_image() first to detect
disk images, and fall back to PE-COFF detection only if that fails.

Include part.h in the EFI loader and export part_driver_lookup_type and
add its prototype and documentation in include/part.h. This makes the
partition-driver lookup available to other code paths that need to
detect partition tables on a block descriptor.

---
Changes in v7:
- Fix U-Boot CI build error. Passing CI: 
https://github.com/u-boot/u-boot/pull/816
- Remove duplicate kerneldocs from part_driver_lookup_type, as it's included in 
part.h

- v6 link: 
https://lore.kernel.org/u-boot/[email protected]/
- v5 link: 
https://lore.kernel.org/u-boot/[email protected]/
- v4 link: 
https://lore.kernel.org/u-boot/[email protected]/
- v3 link: 
https://lore.kernel.org/u-boot/[email protected]/
- v2 link: 
https://lore.kernel.org/u-boot/[email protected]/
- v1 link: 
https://lore.kernel.org/u-boot/[email protected]/

Javier Tia (2):
  part: Export part_driver_lookup_type for external use
  efi_loader: Improve disk image detection in efi_bootmgr

 disk/part.c                  | 18 +------------
 include/part.h               | 21 +++++++++++++++
 lib/efi_loader/efi_bootmgr.c | 51 +++++++++++++++++++++++++-----------
 3 files changed, 58 insertions(+), 32 deletions(-)

-- 
2.51.0

Reply via email to