[SeaBIOS] int 1589 test case?
Kevin O'Connor
kevin at koconnor.net
Sun Jan 10 08:30:23 CET 2010
On Fri, Jan 08, 2010 at 11:19:56PM -0500, Kevin O'Connor wrote:
> On Mon, Jan 04, 2010 at 08:54:48PM -0500, Kevin O'Connor wrote:
> > On SeaBIOS, I too get "Protected mode has been entered !" followed by
> > a call into resume with a shutdown code of "5". The code then hangs -
> > probably because I also used freedos.
>
> Interestingly, if I apply this change:
>
> --- a/src/resume.c
> +++ b/src/resume.c
> @@ -29,6 +29,9 @@ void VISIBLE16
> handle_resume(u8 status)
> {
> init_dma();
> + pic_setup();
> + asm volatile("lgdtw %cs:rombios32_gdt_48");
> + asm volatile("lidtw %cs:rmode_IDT_info");
Under bochs, with the above change, the screen doesn't hang, and the
test program returns to real mode. However, the system still hangs
because it looks like bochs reset the f-segment. It looks like the
test program triple-faults, and bochs does more than just reset the
cpu in that case:
00163682527e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 05h, resetting
00163682527i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
00163682527i[CPU0 ] cpu hardware reset
00163682527i[APIC0] local apic in CPU 0 initializing
00163682527i[PLGIN] reset of 'unmapped' plugin device by virtual method
00163682527i[PLGIN] reset of 'biosdev' plugin device by virtual method
00163682527i[PLGIN] reset of 'harddrv' plugin device by virtual method
00163682527i[PLGIN] reset of 'keyboard' plugin device by virtual method
00163682527i[PLGIN] reset of 'serial' plugin device by virtual method
00163682527i[PLGIN] reset of 'parallel' plugin device by virtual method
00163682527i[PLGIN] reset of 'extfpuirq' plugin device by virtual method
00163682527i[PLGIN] reset of 'gameport' plugin device by virtual method
00163682527i[PLGIN] reset of 'speaker' plugin device by virtual method
00163682527i[PLGIN] reset of 'pci_ide' plugin device by virtual method
00163936082i[BIOS ] In resume (status=5)
> then FreeDOS is able to resume (I see irqs working). However, the
> screen is still stuck under qemu - not sure why.
I'm guessing something similar causes the video lockup on qemu.
-Kevin
More information about the SeaBIOS
mailing list