Kevin O'Connor wrote:
I used libx86 library to catch all IO. It was quite painful until I realize that the emulator cannot handle properly opcodes like
0x66 0xe8 .. .. 0xff 0xff and also mov al,cs:[ebx] which I get caught in Sebios int 15 routine.
Most of SeaBIOS is compiled with gcc. gcc generates regular 32bit code. Then a gnu assembler (gas) hack is used to make that 32bit code run while the processor is in 16bit mode.
As such, I can't think of any way to stop the 0x66/0x67 prefixes - they are inherent to the process.
I think the issue is with VGA BIOSes (any option ROMs, really) and that the various emulators used by coreboot don't handle the prefixes.
//Peter