[SeaBIOS] IDE DMA initialization

Kevin O'Connor kevin at koconnor.net
Wed Jan 20 03:49:32 CET 2010


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



More information about the SeaBIOS mailing list