I still need to do some testing for net boot (but I think I didn't screw anything up there), so just sending as an RFC for now.
I had to do a bunch of patch rejuggling to get this into a sensible sequence of patches. Hopefully I didn't flub anything too badly in the process. This patchset adds better devicepath handling to make upstream grub work, reworks and cleans up bootefi's handling of boot device and boot devicepath (making it signifcantly less hacky), adds file support, and adds support to load_image() from a file. This plus efi variable support (which I'm still working on and will send separately), gets u-boot to the point where we can boot \EFI\BOOT\BOOTAA64.efi, which can't find the boot-order related EFI variables, and then loads fallback.efi to scan the boot disk looking for boot.csv's which tell it about installed distro's) and then finally loads the first distro's shim.efi or grubaa64.efi. (Once I have support to write variables and saveenv in ExitBootServices then it should only hit fallback.efi on first boot.) Peter Jones (2): efi: fill in disk signature bits of hard drive device path. efi: add some more device path structures Rob Clark (8): efi_loader: add back optional efi_handler::open() fs: add fs_readdir() efi_loader: add device-path utils efi_loader: use proper device-paths for partitions efi_loader: use proper device-paths for net efi_loader: refactor boot device and loaded_image handling efi_loader: add file/filesys support efi_loader: support load_image() from a file-path cmd/bootefi.c | 163 ++++--------- disk/part_dos.c | 12 +- disk/part_efi.c | 20 ++ fs/fat/fat.c | 59 +++-- fs/fs.c | 46 ++++ include/blk.h | 15 ++ include/efi.h | 6 + include/efi_api.h | 114 ++++++++- include/efi_loader.h | 47 +++- include/fat.h | 4 +- include/fs.h | 23 ++ include/part_efi.h | 4 - lib/efi_loader/Makefile | 3 +- lib/efi_loader/efi_boottime.c | 156 +++++++++++-- lib/efi_loader/efi_device_path.c | 408 ++++++++++++++++++++++++++++++++ lib/efi_loader/efi_disk.c | 103 ++++++-- lib/efi_loader/efi_file.c | 477 ++++++++++++++++++++++++++++++++++++++ lib/efi_loader/efi_image_loader.c | 3 + lib/efi_loader/efi_net.c | 24 +- 19 files changed, 1483 insertions(+), 204 deletions(-) create mode 100644 lib/efi_loader/efi_device_path.c create mode 100644 lib/efi_loader/efi_file.c -- 2.13.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot