]> git.dujemihanovic.xyz Git - u-boot.git/commit
efi: Correct handling of frame buffer
authorSimon Glass <sjg@chromium.org>
Mon, 2 Oct 2023 01:14:36 +0000 (19:14 -0600)
committerSimon Glass <sjg@chromium.org>
Wed, 15 Nov 2023 03:04:00 +0000 (20:04 -0700)
commita75cf70d23ac8d4dbccf13f0a9589aaf6a552bff
tree1dc9663225cba5c1673fce156046f638a8c1fb78
parent92b27528d777ce85362af45e7d2974a6c856219b
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: 8f661a5b662 ("efi_loader: gop: Expose fb when 32bpp")
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
include/video.h
lib/efi_loader/efi_gop.c