I tested the current plex86 with the current GRUB, but that
failed. The log message was:
% ./plex86 -v -f plex86.conf
Processing command-line options
[snip]
floppy_io: cylinder request != current cylinder
::plex86 panic:
::monPageFault: MapLinPPageOOB:
Fatal monitor error caused Panic
Register dump:
CS:002b SS:0033 DS:003b ES:0023 FS:0043 GS:004b
EAX:60000010 EBX:00000001 ECX:000e0901 EDX:00000100
ESI:00008116 EDI:000081e8 EBP:00001ff0 ESP:e0061fec EFLAGS:00010006
Stack dump:
Current instructions:
002B.000087AF 0B0424 movl (%esp), %eax
=========== begin VGA text buffer dump ===============
[snip]
And the code which caused plex86 to panic was:
891 ENTRY(prot_to_real)
892 /* just in case, set GDT */
893 lgdt gdtdesc
894
895 /* save the protected mode stack */
896 movl %esp, %eax
897 movl %eax, protstack
898
899 /* get the return address */
900 movl (%esp), %eax <== here!
901 movl %eax, STACKOFF
So I suspect that there is something wrong in the transition from
protected mode to real mode, but I haven't looked at the source code
of plex86 yet.
Regards,
Okuji