summaryrefslogtreecommitdiff
path: root/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-11-20 15:44:35 +0000
committerLeah Rowe <leah@libreboot.org>2024-11-20 15:44:35 +0000
commit02e66ae01ae7bb9ae0dbab2903a2080f575151e1 (patch)
tree0ab6e15a83c609565a3b380cccb60275ef78a232 /config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
parent32dced8cd833b40d375aaa33d604771e8390cd0b (diff)
U-Boot x86: Avoid clearing the VESA display
This is a patch from Simon Glass. U-Boot clears the display when it starts up, but was asking the VESA driver to do the same, needlessly; this patch avoids the latter. A further patch is also included, which provides a better message when jumping into long mode on the SPL (64-bit) target, dumping it on the serial console instead of using printf. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch')
-rw-r--r--config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
new file mode 100644
index 00000000..7fb75772
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
@@ -0,0 +1,34 @@
+From a6b9e69a21970951252419b5b5fa9c04fabbf1a4 Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Tue, 12 Nov 2024 06:59:02 -0700
+Subject: [PATCH 1/2] x86: Avoid clearing the VESA display
+
+U-Boot clears the display when it starts up, so there is no need to ask
+the VESA driver to do this. Fix this and add a comment explaining the
+flags.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ arch/x86/lib/bios.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c
+index 03f7360032..374f4f20b8 100644
+--- a/arch/x86/lib/bios.c
++++ b/arch/x86/lib/bios.c
+@@ -228,7 +228,11 @@ static void vbe_set_graphics(int vesa_mode, struct vesa_state *mode_info)
+ {
+ unsigned char *framebuffer;
+
+- mode_info->video_mode = (1 << 14) | vesa_mode;
++ /*
++ * bit 14 is linear-framebuffer mode
++ * bit 15 means don't clear the display
++ */
++ mode_info->video_mode = (1 << 14) | (1 << 15) | vesa_mode;
+ vbe_get_mode_info(mode_info);
+
+ framebuffer = (unsigned char *)(ulong)mode_info->vesa.phys_base_ptr;
+--
+2.39.5
+