]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: Allow video-BIOS code to be built for SPL
authorSimon Glass <sjg@chromium.org>
Sun, 16 Jul 2023 03:38:58 +0000 (21:38 -0600)
committerBin Meng <bmeng@tinylab.org>
Mon, 17 Jul 2023 09:12:26 +0000 (17:12 +0800)
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 <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/lib/Makefile
arch/x86/lib/bios.c
drivers/pci/pci_rom.c

index b0612ae6dd5f814a01c1c945fffc03ee1c6370b8..90a7618ecfded257f09f8826efe6c98df9f9ba33 100644 (file)
@@ -4,16 +4,17 @@
 # Wolfgang Denk, DENX Software Engineering, wd@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
index 8cc686fd146b21e8cb988580bdcfa2681ff0dc44..e29cae78e509a32707114449a927ed410880b8cc 100644 (file)
@@ -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
 
index 51dcdf9749a17113a98a8d37db01c318b028296f..228ab7fca72897d71293437b2ff499f839a1468d 100644 (file)
@@ -298,20 +298,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...");