mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
efi: stub: Pass EFI GOP information to U-Boot payload
If UEFI BIOS has the graphics output protocol (GOP), let's pass its information to U-Boot payload so that U-Boot can utilize it (eg: an EFI framebuffer driver). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -275,6 +275,9 @@ efi_status_t EFIAPI efi_main(efi_handle_t image,
|
||||
struct efi_boot_services *boot = sys_table->boottime;
|
||||
struct efi_mem_desc *desc;
|
||||
struct efi_entry_memmap map;
|
||||
struct efi_gop *gop;
|
||||
struct efi_entry_gopmode mode;
|
||||
efi_guid_t efi_gop_guid = EFI_GOP_GUID;
|
||||
efi_uintn_t key, desc_size, size;
|
||||
efi_status_t ret;
|
||||
u32 version;
|
||||
@@ -313,6 +316,18 @@ efi_status_t EFIAPI efi_main(efi_handle_t image,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = boot->locate_protocol(&efi_gop_guid, NULL, (void **)&gop);
|
||||
if (ret) {
|
||||
puts(" GOP unavailable\n");
|
||||
} else {
|
||||
mode.fb_base = gop->mode->fb_base;
|
||||
mode.fb_size = gop->mode->fb_size;
|
||||
mode.info_size = gop->mode->info_size;
|
||||
add_entry_addr(priv, EFIET_GOP_MODE, &mode, sizeof(mode),
|
||||
gop->mode->info,
|
||||
sizeof(struct efi_gop_mode_info));
|
||||
}
|
||||
|
||||
ret = boot->get_memory_map(&size, desc, &key, &desc_size, &version);
|
||||
if (ret) {
|
||||
printhex2(ret);
|
||||
|
Reference in New Issue
Block a user