u-boot/lib/efi_loader
Simon Glass a75cf70d23 efi: Correct handling of frame buffer
The efi_gop driver uses private fields from the video uclass to obtain a
pointer to the frame buffer. Use the platform data instead.

Check the VIDEO_COPY setting to determine which frame buffer to use. Once
the next stage is running (and making use of U-Boot's EFI boot services)
U-Boot does not handle copying from priv->fb to the hardware framebuffer,
so we must allow EFI to write directly to the hardware framebuffer.

We could provide a function to read this, but it seems better to just
document how it works. The original change ignored an explicit comment
in the video.h file ("Things that are private to the uclass: don't use
these in the driver") which is why this was missed when the VIDEO_COPY
feature was added.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 8f661a5b66 ("efi_loader: gop: Expose fb when 32bpp")
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2023-11-14 20:04:00 -07:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
boothart.c efi_loader: add an EFI binary to print boot hart ID 2022-12-02 19:17:24 +01:00
capsule_esl.dtsi.in scripts/Makefile.lib: Embed capsule public key in platform's dtb 2023-08-29 13:38:55 -04:00
dtbdump.c efi_loader: move dtbdump.c, initrddump.c to lib/efi_loader 2022-03-20 17:01:00 +01:00
efi_acpi.c efi: Use the installed ACPI tables 2023-07-17 17:23:15 +08:00
efi_bootmgr.c Load option with short device path for boot vars 2023-07-15 11:20:41 +02:00
efi_boottime.c efi_loader: delete handle from events when a protocol is uninstalled 2023-08-27 08:21:08 +02:00
efi_capsule.c efi_loader: fix an IS_ERR() vs NULL check 2023-08-03 09:21:02 +02:00
efi_conformance.c efi_loader: fix efi_ecpt_register() 2023-02-10 13:05:40 +01:00
efi_console.c efi_loader: describe term_get_char() 2023-03-13 13:56:14 +01:00
efi_device_path.c efi_loader: simplify dp_fill() 2023-07-28 11:36:37 +02:00
efi_device_path_to_text.c efi_loader: simplify efi_str_to_u16() 2023-03-25 11:06:35 +01:00
efi_device_path_utilities.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_disk.c efi_loader: error handling in efi_disk_add_dev 2023-08-03 09:21:03 +02:00
efi_dt_fixup.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
efi_esrt.c efi_loader: fix comment in ESRT code 2023-01-27 18:32:00 +01:00
efi_file.c efi_loader: catch out of memory in file_open 2023-08-03 09:21:03 +02:00
efi_firmware.c efi_loader: check uuid_str_to_bin return value 2023-08-03 09:21:03 +02:00
efi_freestanding.c trace: Use notrace for short 2023-01-18 11:49:12 -07:00
efi_gop.c efi: Correct handling of frame buffer 2023-11-14 20:04:00 -07:00
efi_helper.c Move bootorder and bootoption apis to lib 2023-07-15 11:20:41 +02:00
efi_hii.c efi_loader: refine set_keyboard_layout() status 2023-01-13 09:09:07 +01:00
efi_hii_config.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_image_loader.c efi_loader: Fix memory corruption on 32bit systems 2023-08-03 09:21:02 +02:00
efi_load_initrd.c efi_loader: remove efi_delete_handle on loadfile2 2022-10-16 12:23:22 +02:00
efi_load_options.c efi_loader: fix uninitialized variable bug in efi_set_load_options() 2023-07-28 11:36:37 +02:00
efi_memory.c efi_loader: fix efi_add_known_memory() 2023-08-15 18:21:17 +02:00
efi_net.c efi_loader: fix handling of DHCP acknowledge 2022-12-02 19:17:24 +01:00
efi_riscv.c efi_loader: use EFI_EXIT in efi_riscv_get_boot_hartid 2023-01-13 09:09:07 +01:00
efi_rng.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_root_node.c Correct SPL use of EFI_UNICODE_COLLATION_PROTOCOL2 2023-02-09 16:32:26 -05:00
efi_runtime.c efi: loader: Make efi_runtime_mmio static 2023-04-08 07:46:44 +02:00
efi_setup.c efi: Use the installed SMBIOS tables 2023-09-22 06:05:40 +08:00
efi_signature.c efi_loader: signature: export efi_hash_regions() 2022-07-05 14:37:16 +02:00
efi_smbios.c efi: Use the installed SMBIOS tables 2023-09-22 06:05:40 +08:00
efi_string.c efi: Add string conversion helper 2022-10-06 22:54:57 +02:00
efi_tcg2.c efi_loader: fix EFI_ENTRY point on get_active_pcr_banks 2023-10-27 13:17:21 +03:00
efi_unicode_collation.c efi_loader: Fix buffer underflow 2022-11-22 11:54:30 +01:00
efi_var_common.c efi_loader: update attribute check for QueryVariableInfo() 2023-02-10 13:05:39 +01:00
efi_var_file.c efi_loader: avoid adding variables twice 2022-12-29 10:51:50 +01:00
efi_var_mem.c efi_loader: Avoid underflow when calculating remaining var store size 2023-07-09 03:53:08 +02:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: update SetVariable attribute check 2023-03-13 13:56:14 +01:00
efi_variable_tee.c arm_ffa: efi: introduce FF-A MM communication 2023-08-08 10:22:03 -04:00
efi_watchdog.c efi_loader: update the timing of enabling and disabling EFI watchdog 2022-02-26 07:37:01 +01:00
helloworld.c efi_loader: print file path w/o boot device 2023-05-13 11:09:51 +02:00
initrddump.c efi_loader: avoid using HandleProtocol in initrddump.efi 2023-04-08 07:45:34 +02:00
Kconfig tpm: sandbox: Update for needed TPM2 capabilities 2023-10-27 13:08:25 +03:00
Makefile efi: Use the installed SMBIOS tables 2023-09-22 06:05:40 +08:00