Hi,
The recently introduced DMA support in Seabios fails to work on Virtutech Simics. The reason is that DMA has not enabled in the disk. I'm trying to figure out if this is a bug in my setup of Simics, or a bug in Seabios. Shouldn't Seabios enable DMA in the disk through the SET FEATURES command?
M.
On Thu, Jan 14, 2010 at 10:48:33AM +0100, Magnus Christensson wrote:
Hi,
The recently introduced DMA support in Seabios fails to work on Virtutech Simics. The reason is that DMA has not enabled in the disk. I'm trying to figure out if this is a bug in my setup of Simics, or a bug in Seabios. Shouldn't Seabios enable DMA in the disk through the SET FEATURES command?
My read of the spec was that the set_features command was only needed to specify which dma mode was desired, and that the drive would default into mwdma mode by default. I'll take a closer look through the spec this weekend. The current code does seem to work with the real drives I have.
In either case though, we probably should have a CONFIG_ATA_DMA define to manually disable that support.
-Kevin
On 01/14/2010 02:48 PM, Kevin O'Connor wrote:
On Thu, Jan 14, 2010 at 10:48:33AM +0100, Magnus Christensson wrote:
Hi,
The recently introduced DMA support in Seabios fails to work on Virtutech Simics. The reason is that DMA has not enabled in the disk. I'm trying to figure out if this is a bug in my setup of Simics, or a bug in Seabios. Shouldn't Seabios enable DMA in the disk through the SET FEATURES command?
My read of the spec was that the set_features command was only needed to specify which dma mode was desired, and that the drive would default into mwdma mode by default. I'll take a closer look through the spec this weekend. The current code does seem to work with the real drives I have.
The spec does suggest that mwdma mode is default after power-up. I'll change Simics' device model.
In either case though, we probably should have a CONFIG_ATA_DMA define to manually disable that support.
Good. CONFIG_ATA_DMA does work now with Simics, and we'll keep it on since it provides a significant performance improvement (rep i/o-operations are not handled very efficiently in Simics).
M.
On Tue, Jan 19, 2010 at 03:58:24PM +0100, Magnus Christensson wrote:
On 01/14/2010 02:48 PM, Kevin O'Connor wrote:
On Thu, Jan 14, 2010 at 10:48:33AM +0100, Magnus Christensson wrote:
The recently introduced DMA support in Seabios fails to work on Virtutech Simics. The reason is that DMA has not enabled in the disk. I'm trying to figure out if this is a bug in my setup of Simics, or a bug in Seabios. Shouldn't Seabios enable DMA in the disk through the SET FEATURES command?
My read of the spec was that the set_features command was only needed to specify which dma mode was desired, and that the drive would default into mwdma mode by default. I'll take a closer look through the spec this weekend. The current code does seem to work with the real drives I have.
The spec does suggest that mwdma mode is default after power-up. I'll change Simics' device model.
Okay, thanks.
In either case though, we probably should have a CONFIG_ATA_DMA define to manually disable that support.
Good. CONFIG_ATA_DMA does work now with Simics, and we'll keep it on since it provides a significant performance improvement (rep i/o-operations are not handled very efficiently in Simics).
Great! Simics isn't the only thing that is slow in PIO mode - in theory, mwdma mode 2 is the same speed as PIO mode 4, but the ATA controller I test with (Via) is much faster in DMA mode.
-Kevin