[SeaBIOS] SeaBIOS not fully working when compiled on FreeBSD

Roger Pau Monné roger.pau at citrix.com
Thu Apr 16 18:37:29 CEST 2015


El 16/04/15 a les 17.52, Kevin O'Connor ha escrit:
> Seems like the same problem.  You wont be able to set a gdb breakpoint
> for the freebsd call because freebsd isn't calling the bios - it's
> attempting to interpret the bios code.
> 
> Does the seabios patch below fix the problem for you?

Seems to kind of fix it, but it's hard to tell.

Most of the time the original SeaBIOS binary works without problems.
There's sometimes were the int 0x15 call with ah=0xc0 returns what seem 
to be valid values in ah and flg, but the values in es and bx are 
corrupted so when freebsd tries to access this region (es << 4 + bx) it 
gets a page fault.

This is what I see now with the patch applied:

atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
Calling INT 0x15 (ax=0xc000 bx=0x0000 cx=0x0000 dx=0x0000 es=0x0000 di=0x0000)
Exiting INT 0x15 (ax=0xf9c0 bx=0xf9c0 cx=0xf99e dx=0xdf80 es=0x0000 di=0x0000)
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]

Without the patch:

atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
Calling INT 0x15 (ax=0xc000 bx=0x0000 cx=0x0000 dx=0x0000 es=0x0000 di=0x0000)
Exiting INT 0x15 (ax=0x2018 bx=0x2073 cx=0xdb0d dx=0x00e9 es=0x0000 di=0x0004)
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on at

Roger.




More information about the SeaBIOS mailing list