I've come across an interesting problem when testing my SMP support in VMware. In both my BSP and AP bootup code, I clear EFLAGS by doing the following:
This works fine in both cases in QEMU, and on 2 real machines. In VMware, however, it works fine in the BSP case, but not on the AP, instead it causes a triple fault on the POPF. Even this faults:
Unfortunately I can't see exactly what exception it's causing, but am I missing something obvious here? I have a stack set up correctly and a GDT, and all segment registers are set correctly. Anyone know what could be causing this?