summaryrefslogtreecommitdiff
path: root/include/efi_api.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-12-29 21:57:36 +0300
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2021-12-31 08:45:01 +0300
commit613cd0c46796cae340382679bc01ef220daf3768 (patch)
tree72545484708a19d77730c276790ec5fae54df85d /include/efi_api.h
parent726cd9836db0d698f1f409e9522828e985c912e2 (diff)
downloadu-boot-613cd0c46796cae340382679bc01ef220daf3768.tar.xz
efi: Locate all block devices in the app
When starting the app, locate all block devices and make them available to U-Boot. This allows listing partitions and accessing files in filesystems. EFI also has the concept of 'disks', meaning boot media. For now, this is not obviously useful in U-Boot, but add code to at least locate these. This can be expanded later as needed. We cannot use printf() in the early stub or app since it is not compiled in Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Diffstat (limited to 'include/efi_api.h')
-rw-r--r--include/efi_api.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index 80109f012b..ec9fa89a93 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -2035,4 +2035,19 @@ struct efi_firmware_management_protocol {
const u16 *package_version_name);
};
+#define EFI_DISK_IO_PROTOCOL_GUID \
+ EFI_GUID(0xce345171, 0xba0b, 0x11d2, 0x8e, 0x4f, \
+ 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
+
+struct efi_disk {
+ u64 revision;
+ efi_status_t (EFIAPI *read_disk)(struct efi_disk *this, u32 media_id,
+ u64 offset, efi_uintn_t buffer_size,
+ void *buffer);
+
+ efi_status_t (EFIAPI *write_disk)(struct efi_disk *this, u32 media_id,
+ u64 offset, efi_uintn_t buffer_size,
+ void *buffer);
+};
+
#endif