summaryrefslogtreecommitdiff
path: root/src/mainboard/roda
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@secunet.com>2012-11-22 15:37:47 +0100
committerStefan Reinauer <stefan.reinauer@coreboot.org>2012-11-24 20:12:56 +0100
commitd5d340695b84ef6351818236dc514cd9734e87b1 (patch)
treed9c92e3ac273319b58d6c6cf05239a9a09af8016 /src/mainboard/roda
parent3c84261e84318708c9c16ee5df5c2549c609dd0a (diff)
Remove duplicate VGA BIOS interrupt handlers
Some boards have two instances of the int15 handler that supports the onboard VGA BIOS, for YABEL and realmode. These are now similar enough that they can be deduplicated. Due to minor differences this requires manual effort. Change-Id: I03ae314cb90dd65d96591ce448504aa961cbeb88 Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/1893 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/mainboard/roda')
-rw-r--r--src/mainboard/roda/rk886ex/mainboard.c57
1 files changed, 12 insertions, 45 deletions
diff --git a/src/mainboard/roda/rk886ex/mainboard.c b/src/mainboard/roda/rk886ex/mainboard.c
index b7594c9862..575aa9b24e 100644
--- a/src/mainboard/roda/rk886ex/mainboard.c
+++ b/src/mainboard/roda/rk886ex/mainboard.c
@@ -50,10 +50,6 @@ static void backlight_enable(void)
printk(BIOS_DEBUG, "Display I/O: 0x%02x\n", inb(0x60f));
}
-#if CONFIG_PCI_OPTION_ROM_RUN_YABEL
-static int int15_handler(void)
-{
- u8 display_id;
#define BOOT_DISPLAY_DEFAULT 0
#define BOOT_DISPLAY_CRT (1 << 0)
#define BOOT_DISPLAY_TV (1 << 1)
@@ -64,6 +60,16 @@ static int int15_handler(void)
#define BOOT_DISPLAY_EFP2 (1 << 6)
#define BOOT_DISPLAY_LCD2 (1 << 7)
+#if CONFIG_VGA_ROM_RUN
+static int int15_handler(void)
+{
+ /* This int15 handler is Intel IGD. specific. Other chipsets need other
+ * handlers. The right way to do this is to move this handler code into
+ * the mainboard or northbridge code.
+ * TODO: completely move to mainboards / chipsets.
+ */
+ u8 display_id;
+
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
@@ -79,9 +85,11 @@ static int int15_handler(void)
// M.x86.R_AX = 0x015f; // Supported but failed
X86_AX = 0x005f; // Success
X86_CL = display_id;
+ printk(BIOS_DEBUG, "DISPLAY=%x\n", X86_CL);
break;
default:
/* Interrupt was not handled */
+ printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n", X86_AX);
return 0;
}
@@ -90,47 +98,6 @@ static int int15_handler(void)
}
#endif
-#if CONFIG_PCI_OPTION_ROM_RUN_REALMODE
-static int int15_handler(void)
-{
- int res = 0;
-
- /* This int15 handler is Intel IGD. specific. Other chipsets need other
- * handlers. The right way to do this is to move this handler code into
- * the mainboard or northbridge code.
- * TODO: completely move to mainboards / chipsets.
- */
- switch (X86_EAX & 0xffff) {
- /* And now Intel IGD code */
-#define BOOT_DISPLAY_DEFAULT 0
-#define BOOT_DISPLAY_CRT (1 << 0)
-#define BOOT_DISPLAY_TV (1 << 1)
-#define BOOT_DISPLAY_EFP (1 << 2)
-#define BOOT_DISPLAY_LCD (1 << 3)
-#define BOOT_DISPLAY_CRT2 (1 << 4)
-#define BOOT_DISPLAY_TV2 (1 << 5)
-#define BOOT_DISPLAY_EFP2 (1 << 6)
-#define BOOT_DISPLAY_LCD2 (1 << 7)
- case 0x5f35:
- X86_EAX = 0x5f;
- X86_ECX = BOOT_DISPLAY_DEFAULT;
- res = 1;
- break;
- case 0x5f40:
- X86_EAX = 0x5f;
- X86_ECX = 3; // This is mainboard specific
- printk(BIOS_DEBUG, "DISPLAY=%x\n", X86_ECX);
- res = 1;
- break;
- default:
- printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n",
- X86_EAX & 0xffff);
- }
-
- return res;
-}
-#endif
-
#if DUMP_RUNTIME_REGISTERS
static void dump_runtime_registers(void)
{