Bus Mastering: Letting a Card Drive the Bus
Normally the processor is the one that starts every transfer on the bus and devices only answer. A bus master is a device allowed to start transfers itself, which is what a card must be able to do if it is going to copy data into memory without help. That permission is off by default and a driver has to switch it on; forget, and the card's transfers are silently refused and the data never arrives.
Questions this Concept answers
- A driver programs the virtual card's DMA registers correctly but never enables bus mastering. Why does the failure show up as nothing happening rather than as an error?
DMA explained
Normally the processor starts every transfer over the PCI bus and cards only answer. This page explains bus mastering, where a card is allowed to start its own reads and writes into system memory, an…