6. DMA Controller
Universe II VME-to-PCI Bus Bridge Manual 127
80A3010_MA001_03
Whether the error occurs on the destination or source bus, the DMA_C TL register
contains the attributes relevant to the particular DMA transaction. The DTB C
register provides the number of bytes remaining to transf er on the PCI side. The
DTBC regist er contains vali d values after an error. The DLA and DVA registers
should not be used for error recovery.
6.8.2 DMA Hardware R espo ns e to Error
When the error conditi on (VMEbus Error , Target- Abort, or Master -Abort) oc curs on
the source bus while the DMA is reading from the source bus, the DMA stops
reading from the source bus. Any data previously queued within the DMAFIFO is
writt en to the destinati on bus. Onc e the DMAFIFO empties, the error status bit is set
and the DMA generates an interrupt (if enabled by INT_LERR or INT_VERR in
the D GCS register—see “DMA Interrupts” on pa ge 125).
When the error conditi on (VMEbus Error , Target- Abort, or Master -Abort) oc curs on
the destination bus while the DM A is writing data to the destination bus, the DMA
stops writing to the destination bus, and it also stops reading from the sour ce bus.
The error bit in the DGCS register is set and an interrupt a sserted (if enable d).
6.8.2.1 Interrupt Generation During Bus Errors
To generate an interrupt from a DMA error, there are two bits in the DGCS register ,
and one bit each in the VINT_EN and LINT_EN registers. I n the DGCS registe r the
INT_LERR bit enables the DMA to generate an interrupt to the Interrupt Channel
after encountering an error on the PCI bus. The INT_VERR enables the DMA to
generate an interrupt to the Interrupt Channel upon encountering an error on the
VMEbus. Upon reaching the Inter rupt Channel, all DMA i nterrupts can be routed to
either the PCI bus or VMEbus by setting the appropriate bit in the enable registers.
All DMA sources of interrupts (Done, Stopped, Halted, VMEbus Error, and PCI
Error) constitute a single interrupt into the Interr upt Channel.
6.8.3 Resuming DMA Transfers
When a DMA erro r occurs (on the source or destina tion bus), the sta tus bits must be
read in o rder to determ ine the source of the erro r. If it is possible to re sume the
transfer, the transfer should be resumed at the address that was in place up to 256
bytes from the current byte count. The original addresses (DLA and DVA) are
required in order to resume the transfer at the appropriate location. However, the
values in the DLA and the DVA registers shou ld not be used to reprogra m the DMA,
because they are not valid once the DMA begins. In direct mode, it is the user’s
responsibility to record the original state of the DVA and DLA registers for error
reco v ery. In Li nked-List mod e, t he user can re fer to the cu rrent Command Packet
stored on the PCI bus (whose location is specified by the DCPP register) for the
location of the DVA and DLA information.