[coreboot] [PATCH] Fix typo in r5543 "Change real mode API..."

Michael Marineau mike at marineau.org
Sun May 23 22:55:31 CEST 2010


Greetings,

I've just finished bisecting recent coreboot history to see what broke
VGA on my EPIA-MII and traced it to commit 5543:

    Change real mode API to allow passing intXX number or entry point and
    some register values from C.

    This theoretically fixes non-vga option roms, but it also allows to use
    the same assembler code for option roms and vsm.
    ...

After digging through the diff between the good and bad boot logs I
noticed that all of the INT# 0x15 ... via_vt8623_int15_handler
messages were missing after the "Enable VGA console" message. That
call had somehow turned into a no-op. In the diff I observed the
following assembly code:

-	/* Call VGA BIOS int10 function 0x4f14 to enable main console
-	 * Epia-M does not always autosence the main console so forcing
-	 * it on is good.
-	 */

-	/* Ask VGA option rom to enable main console */
-	movw	$0x4f14,%ax
-	movw	$0x8003,%bx
-	movw	$1, %cx
-	movw	$0, %dx
-	movw	$0, %di
-	int	$0x10

Became 3 copies of this function:

+static void vga_enable_console(void)
+{
+	/* Call VGA BIOS int10 function 0x4f14 to enable main console
+	 * Epia-M does not always autosense the main console so forcing
+	 * it on is good.
+	 */
+
+	/*                 int#,    EAX,    EBX,    ECX,    EDX,    ESI,    EDI */
+	realmode_interrupt(0x10, 0x4f1f, 0x8003, 0x0001, 0x0000, 0x0000, 0x0000);
+}

The value of AX magically transformed from 0x4f14 to 0x4f1f Doh!

The attach patch fixes the three new C functions back to the original
value, this fixes VGA for me.

Cheers,
-- 
Michael Marineau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vga-enable-typo-fix.patch
Type: application/octet-stream
Size: 1580 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20100523/4ef2d22e/attachment.obj>


More information about the coreboot mailing list