On Tue, Jan 12, 2010 at 10:19:58PM +0200, Stanislav Shwartsman wrote:
<So, at first glance it looks like Bochs isn't doing floppy DMA when <the cpu is in the "hlt" state. This causes SeaBIOS to timeout the <transfer.
Right, Bochs CPU won't handle floppy DMA when halted. The CPU is just running busy loop until it finds pending INIT/NMI/SMI or INTR with EFLAGS.IF set. Should HRQ to take CPU out of halt state ? Or just handle the DEV_dma_raise_hlda and stay in halt state ?
Hi Stanislav,
In general, I think DMA should continue even if the cpu is in the halt state. I don't know enough about Bochs to say what the implications of HRQ/DEV_dma_raise_hlda are.
For SeaBIOS, we can add a workaround, but I do think it would be worthwhile to fix this in Bochs as I imagine other applications have similar behavior.
-Kevin