[coreboot] SeaBIOS question and cross compilation fix.

Kevin O'Connor kevin at koconnor.net
Mon Nov 10 02:02:32 CET 2008


On Sun, Nov 09, 2008 at 07:50:50PM -0500, Kevin O'Connor wrote:
> On Mon, Nov 10, 2008 at 01:07:27AM +0100, Stefan Reinauer wrote:
> > I worked on unifying the GDTs used in coreboot-v3, coreboot-v3 real-mode
> > and SeaBIOS, so I don't load a GDT in SeaBIOS, but I do load the SeaBIOS
> > IDT. See both attached patches.
> 
> Hrmm.  Where is the stack actually located when using coreboot?

Maybe something like this would work (totally untested):

        cli
        cld
        lidtl (BUILD_BIOS_ADDR + pmode_IDT_info)
        lgdtl (BUILD_BIOS_ADDR + rombios32_gdt_48)
        ljmpl $PROTECTED_MODE_CS, $1f
1:
        pushl %ebp
        movl %esp, %ebp
        movl $BUILD_STACK_ADDR, %esp
        calll (_code32__init - BUILD_BIOS_ADDR)
        movl %ebp, %esp
        popl %ebp
        retl

Of course, this would return to coreboot using the SeaBIOS gdt/idt,
but coreboot could probably restore it's gdt/idt fairly easily (if it
cared at all).

-Kevin




More information about the coreboot mailing list