3 theory of operation – Intel CONTROLLERS 413808 User Manual

Page 443

Advertising
background image

Intel

®

413808 and 413812 I/O Controllers in TPER Mode

October 2007

Developer’s Manual

Order Number: 317805-001US

443

SRAM DMA Unit (SDMA)—Intel

®

413808 and 413812

5.3

Theory of Operation

To perform a DMA operation, the firmware writes to either the HostToLocal or

LocalToHost registers, depending on the direction of transfer. One DMA is underway in

each direction simultaneously.
Each SDMA channel provides a “single-shot” DMA capability, in other words, one DMA

operation at a time. There is no ability to queue multiple DMA requests in a given

channel.
Before programming any of the registers, firmware must ensure that the DMA channel

is not active by ensuring that all previous DMA operations have completed (for example

by reading the Interrupt Counter / Interrupt Acknowledge and comparing that against

the last DMA operation requested). Firmware then writes the Host Addresses, Local

Addresses, and the Byte Count. The firmware then sets the CHGO bit to start the DMA.
Upon completion of the DMA operation, the firmware receives an interrupt. Two

interrupts are associated with the SDMA, a Normal and an Error interrupt.
In either case the firmware reads the Interrupt Counter of the channel(s) it has

programmed. Note that because the HostToLocal and LocalToHost channels are

independent then when both have been programmed the firmware needs to read each

channel Interrupt Counter to determine which channel has completed its DMA.
After reading the Interrupt Counter, firmware writes that counter value back to the

Interrupt Acknowledge field in the same register. This clears the interrupt, and another

DMA on that channel is started.
Errors are indicated by flags within each channel Control/Status registers. Further

information on the errors is obtained by examining the ATU or XSI System Controller

error registers.

Advertising