summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2013-02-08 08:48:20 -0800
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-02-08 18:36:35 +0100
commit22ae2b937856d6927216d88b7f61b7623eabdb8c (patch)
treee931413e096d9b4ca9a46844e07ab24aa5836b25
parent882f7e35ea1dc2f6be4ba6c2529ed59915863e81 (diff)
VBE: Skip graphics mode setting for non-VGA devices
This hit me when running the latest Qemu with coreboot: First the graphics OPROM is running, then an iPXE OPROM. The iPXE OPROM has no int10 support (obviously) so calling vbe_set_graphics() wipes the framebuffer information from the coreboot table. Change-Id: Ie0453c4a908ea4a6216158f663407a3e72ce4d34 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/2325 Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/device/oprom/realmode/x86.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/device/oprom/realmode/x86.c b/src/device/oprom/realmode/x86.c
index 6e7699214a..5fd11b59a5 100644
--- a/src/device/oprom/realmode/x86.c
+++ b/src/device/oprom/realmode/x86.c
@@ -34,6 +34,7 @@
/* we use x86emu's register file representation */
#include <x86emu/regs.h>
#include <boot/coreboot_tables.h>
+#include <device/pci_ids.h>
/* to have a common register file for interrupt handlers */
X86EMU_sysEnv _X86EMU_env;
@@ -322,7 +323,8 @@ void run_bios(struct device *dev, unsigned long addr)
printk(BIOS_DEBUG, "... Option ROM returned.\n");
#if CONFIG_FRAMEBUFFER_SET_VESA_MODE
- vbe_set_graphics();
+ if ((dev->class >> 8)== PCI_CLASS_DISPLAY_VGA)
+ vbe_set_graphics();
#endif
}