With qemu-x86_64 we need to run the video BIOS while in 32-bit mode, i.e.
SPL. Add a Kconfig option for this, adjust the Makefile rules and use
CONFIG_IS_ENABLED() where needed.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 arch/x86/lib/Makefile |  7 ++++---
 arch/x86/lib/bios.c   |  2 +-
 drivers/pci/pci_rom.c | 28 ++++++++++++++--------------
 3 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
index b0612ae6dd5f..90a7618ecfde 100644
--- a/arch/x86/lib/Makefile
+++ b/arch/x86/lib/Makefile
@@ -4,16 +4,17 @@
 # Wolfgang Denk, DENX Software Engineering, w...@denx.de.
 
 obj-y  += bdinfo.o
-ifndef CONFIG_X86_64
-ifndef CONFIG_TPL_BUILD
+
+ifndef CONFIG_$(SPL_TPL_)X86_64
 obj-y += bios.o
 obj-y += bios_asm.o
 obj-y += bios_interrupts.o
 endif
-endif
+
 ifndef CONFIG_SPL_BUILD
 obj-$(CONFIG_X86_32BIT_INIT) += string.o
 endif
+
 ifndef CONFIG_SPL_BUILD
 obj-$(CONFIG_CMD_BOOTM) += bootm.o
 endif
diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c
index b28db31308f0..e2b422bec1ed 100644
--- a/arch/x86/lib/bios.c
+++ b/arch/x86/lib/bios.c
@@ -23,7 +23,7 @@
 static int (*int_handler[256])(void);
 
 /* to have a common register file for interrupt handlers */
-#ifndef CONFIG_BIOSEMU
+#if !CONFIG_IS_ENABLED(BIOSEMU)
 X86EMU_sysEnv _X86EMU_env;
 #endif
 
diff --git a/drivers/pci/pci_rom.c b/drivers/pci/pci_rom.c
index dab0f1979068..2d9a2a899ef7 100644
--- a/drivers/pci/pci_rom.c
+++ b/drivers/pci/pci_rom.c
@@ -344,20 +344,20 @@ int dm_pci_run_vga_bios(struct udevice *dev, int 
(*int15_handler)(void),
        }
 
        if (emulate) {
-#ifdef CONFIG_BIOSEMU
-               BE_VGAInfo *info;
-
-               log_debug("Running video BIOS with emulator...");
-               ret = biosemu_setup(dev, &info);
-               if (ret)
-                       goto err;
-               biosemu_set_interrupt_handler(0x15, int15_handler);
-               ret = biosemu_run(dev, (uchar *)ram, 1 << 16, info,
-                                 true, vesa_mode, &mode_info);
-               log_debug("done\n");
-               if (ret)
-                       goto err;
-#endif
+               if (CONFIG_IS_ENABLED(BIOSEMU)) {
+                       BE_VGAInfo *info;
+
+                       log_debug("Running video BIOS with emulator...");
+                       ret = biosemu_setup(dev, &info);
+                       if (ret)
+                               goto err;
+                       biosemu_set_interrupt_handler(0x15, int15_handler);
+                       ret = biosemu_run(dev, (uchar *)ram, 1 << 16, info,
+                                         true, vesa_mode, &mode_info);
+                       log_debug("done\n");
+                       if (ret)
+                               goto err;
+               }
        } else {
 #if defined(CONFIG_X86) && (CONFIG_IS_ENABLED(X86_32BIT_INIT) || CONFIG_TPL)
                log_debug("Running video BIOS...");
-- 
2.40.0.348.gf938b09366-goog

Reply via email to