[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Problem with BIOS timer interrupts
Hi, While changing our Xen 3.2.x based HVM BIOS ROM to use gPXE instead of etherboot, I ran into an interesting behavior. The gPXE code, which runs in real mode, contains the following sequence: wait_for_tick: pushl %eax pushw %fs movw $0x40, %ax movw %ax, %fs movl %fs:(0x6c), %eax 1: pushf sti hlt popf cmpl %fs:(0x6c), %eax je 1b popw %fs popl %eax ret It uses this to timeout waiting for a key press. The expected interrupt is from the BIOS timer implemented in rombios. But in fact, the loop hangs. However, if I insert a nop instruction between the sti and hlt, then things work as expected. Is there something wrong with this sequence? This happens on AMD, so it's not a quirk of the real mode emulations on Intel. I notice that in the gPXE code currently in xen-unstable, the path that uses this code is patched out. /gary -- Gary Grebus Virtual Iron Software, Inc. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |