QEMU DMA capable?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
markq
Posts: 24
Joined: Fri Jan 30, 2015 3:42 pm

QEMU DMA capable?

Post by markq »

Hello,

I have enabled bus mastering on IDE controller by looping through the PCI configuration space and set the correct bit in command register to enable it. The PCI device is 0x7010 on bus 0, device 1, function 1. I've also extracted the BAR4 address which is 0xc041. However when I send a command to enable DMA the status port returns 1. This means DMA is enabled, but not DMA capable according to http://www.bswd.com/idems100.pdf.

For the folks who are using QEMU, is QEMU DMA capable? If it is how should I configure it?

Thanks in advance.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: QEMU DMA capable?

Post by Kevin »

As the spec you refer to says, this " bit is set by device dependent code (BIOS or device driver)", so you can set it in your driver if you want. The random Intel ICH spec I have here is even clearer and says: "This bit is a software controlled status bit that indicates ATA DMA device capability and does not affect hardware operation." It's safe to completely ignore it.

And yes, DMA works fine in qemu.
Developer of tyndur - community OS of Lowlevel (German)
Post Reply