On Mon, Nov 10, 2008 at 01:07:27AM +0100, Stefan Reinauer wrote: > Kevin O'Connor wrote: > > Did you setup SeaBIOS' idt/gdt? If not, you won't be able to use > > call16() which would break calling option roms from SeaBIOS. (It also > > prevents usleep() from working which would prevent certain devices > > from initializing.) > > > > Otherwise, can you post the entry code that you are using? > > > 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? The call16() code assumes it can use the same stack for 16bit and 32bit code. If your actual stack is not in the first 64K then that assumption wont work. Also, on a closer look, the SeaBIOS IDT doesn't actually do anything, so no real need to mess with that one. BTW, there are sgdtl and sidtl insns, so it is theoretically possible to save and restore the coreboot context. -Kevin -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

