
IDT DMA Controller
PES32NT24xG2 User Manual
15 - 16
January 30, 2013
Notes
When the DMA channel halts descriptor processing it sets the Halt (H) bit in the DMA Channel Status
(DMACxSTS) register and clears the Run (RUN) bit in the DMACxCTL register.
–
The DMACxDPTRL and DMACxDPTRH registers continue to hold the value of the last descriptor
that was fetched.
–
If the RUN bit is set again by software, the DMA channel re-starts descriptor processing by
fetching the descriptor pointed to by the DMACxDPTRL and DMACxDPTRH registers.
–
If a descriptor to be processed by a DMA channel is read from memory and contains a non-zero
Descriptor Status (DSTS) field (i.e., the descriptor status is not “unprocessed descriptor”), the
condition is handled as follows.
• If the Descriptor Status Check Processing (DSCP) field in the DMACxCFG register is set to
“process descriptor”, the descriptor is processed normally.
• If the DSCP field is set to “process next descriptor”, the descriptor is not processed (i.e., no DMA
transfer is performed for the descriptor and the descriptor is not written back). Instead, the DMA
channel updates the DMACxDPTRL and DMACxDPTRH registers with the descriptor’s NEXTL
and NEXTH fields respectively, and starts processing the descriptor pointed to by these fields
(i.e., next descriptor in the list). Refer to section Dynamic Appending of Descriptor Lists on page
15-19 for details.
• If the DSCP field is set to “abort processing”, descriptor processing is aborted and the condition
is handled as an error.
When a DMA finishes processing of a DMA descriptor normally without error and the Interrupt on
Finished (IOF) bit set in the descriptor, then the Finished (F) bit is set in the DMA Channel Status
(DMACxSTS) register.
Descriptor Chaining
Without descriptor chaining, a DMA channel halts descriptor processing when it reaches the last
descriptor in a descriptor list (i.e., one with the NEXTL and NEXTH fields set to zero or when the LST bit in
the descriptor is set to 0x1).
DMA chaining is enabled by initializing the DMA Channel Next Descriptor Pointer Low
(DMACxNDPTRL) and DMA Channel Next Descriptor Pointer High (DMACxNDPTRL) with the starting
address of a descriptor list. When the DMA channel completes processing the last descriptor in a descriptor
list (i.e., one with a NEXTL/H field value of zero or the LST bit set to 0x1) and the DMACxNDPTRL/H are
non-zero, then the DMA controller performs the following actions.
–
The DMACxDPTRL register is loaded with the value in the DMACxNDPTRL register
–
The DMACxDPTRH register is loaded with the value in the DMACxNDPTRH register
–
The contents of the DMACxNDPTRL and DMACxNDPTRH registers are set to zero.
–
The Chain (C) bit is set in the DMACxSTS register.
–
The DMA controller continues processing descriptors starting with the descriptor pointed to by the
DMACxDPTRL/DMACxDPTRH registers. When the last descriptor of the new list is reached, the
process repeats.
An example of DMA chaining is shown in Figure 15.11. In this example the DMACxDPTRL/H registers
are initialized with the starting address of descriptor list ABCD, and DMACxNDPTRL/H registers are initial-
ized with the starting address of the descriptor list WXYZ. When the DMA channel completes processing
descriptor D, the value of DMACxNDPTRL/H is transferred into DMACxDPTRL/H, DMACxNDPTRL/H is set
to zero, the C bit is set in the DMACxSTS register, and the DMA continues processing DMA descriptor W. If
the DMACxNDPTR register is not updated, then when the DMA channel completes processing descriptor
Z, it sets the H bit in the DMACxSTS register, clears the RUN bit in the DMACxCTL register and halts.
Summary of Contents for PCI Express 89HPES32NT24xG2
Page 20: ...IDT Table of Contents PES32NT24xG2 User Manual x January 30 2013 Notes...
Page 24: ...IDT List of Tables PES32NT24xG2 User Manual xiv January 30 2013 Notes...
Page 28: ...IDT List of Figures PES32NT24xG2 User Manual xviii January 30 2013 Notes...
Page 56: ...IDT PES32NT24xG2 Device Overview PES32NT24xG2 User Manual 1 20 January 30 2013 Notes...
Page 100: ...IDT Switch Core PES32NT24xG2 User Manual 4 22 January 30 2013 Notes...
Page 128: ...IDT Failover PES32NT24xG2 User Manual 6 4 January 30 2013 Notes...
Page 148: ...IDT Link Operation PES32NT24xG2 User Manual 7 20 January 30 2013 Notes...
Page 164: ...IDT SerDes PES32NT24xG2 User Manual 8 16 January 30 2013 Notes...
Page 170: ...IDT Power Management PES32NT24xG2 User Manual 9 6 January 30 2013 Notes...
Page 196: ...IDT Transparent Switch Operation PES32NT24xG2 User Manual 10 26 January 30 2013 Notes...
Page 244: ...IDT SMBus Interfaces PES32NT24xG2 User Manual 12 40 January 30 2013 Notes...
Page 247: ...IDT General Purpose I O PES32NT24xG2 User Manual 13 3 January 30 2013 Notes...
Page 248: ...IDT General Purpose I O PES32NT24xG2 User Manual 13 4 January 30 2013 Notes...
Page 330: ...IDT Switch Events PES32NT24xG2 User Manual 16 6 January 30 2013 Notes...
Page 342: ...IDT Multicast PES32NT24xG2 User Manual 17 12 January 30 2013 Notes...
Page 344: ...IDT Temperature Sensor PES32NT24xG2 User Manual 18 2 January 30 2013 Notes...
Page 384: ...IDT Register Organization PES32NT24xG2 User Manual 19 40 January 30 2013...
Page 492: ...IDT Proprietary Port Specific Registers PES32NT24xG2 User Manual 21 44 January 30 2013 Notes...
Page 588: ...IDT NT Endpoint Registers PES32NT24xG2 User Manual 22 96 January 30 2013 Notes...
Page 710: ...IDT JTAG Boundary Scan PES32NT24xG2 User Manual 25 12 January 30 2013 Notes...
Page 743: ...IDT Usage Models PES32NT24xG2 User Manual 26 33 January 30 2013 Notes...
Page 744: ...IDT Usage Models PES32NT24xG2 User Manual 26 34 January 30 2013 Notes...