EZ-USB FX3 Technical Reference Manual, Document Number: 001-76074 Rev. *F 66
FX3 DMA Subsystem
SCK_COUNT on page 608 reports the amount of data transferred.
SCK_STATUS on page 609 is the socket control and status register.
SCK_INTR on page 612 is the interrupt request register that indicates the status of the interrupt source. The same register is
used to clear the interrupt status.
SCK_INTR_MASK on page 614 is used to enable the interrupt source to CPU.
DSCR_BUFFER on page 616, DSCR_SYNC on page 617, DSCR_CHAIN on page 619, and DSCR_SIZE on page 620
indicate the currently loaded active descriptor in the socket. Figure 5-4 details the field definition of the descriptor.
EVENT is the socket-event communication register. FX3 DMA supports two possible events:
â– Consume event: Data has been read out of the buffer.
â– Produce event: Data has been filled into the buffer.
When a DMA transfer involves two sockets, the producer socket sends a produce event to the peer consumer socket after
data is written to the buffer. Similarly, the consumer socket sends a consume event to the peer producer socket after the data
is read from the buffer. The event signaling between the two sockets is usually handled by hardware, and the CPU is not
involved through the entire transfer. However, there are situations when the firmware needs to generate the event manually
by writing the appropriate event in the EVENT register.
Figure 5-7. FX3 DMA Socket Registers
For detailed field description, see the following:
â– SCK_DSCR on page 605
â– SCK_SIZE on page 607
â– SCK_COUNT on page 608
Offset 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Name
0x00 SCK_DSCR
0x04 SCK_SIZE
0x08 SCK_COUNT
0x0C
GO_ENABLE
GO_SUSPEND
UNIT
WRAPUP
SUSP_EOP
SUSP_TRANS
SUSP_LAST
SUSP_PARTIAL
EN_CONS_EVENTS
EN_PROD_EVENTS
TRUNCATE
ENABLED
SUSPENDED
ZLP_RCVD
AVL_ENABLE
SCK_STAUS
0x10
LAST_BUF
PARTIAL_BUF
TRANS_DONE
ERROR
SUSPEND
STALL
DSCR_NOT_AVL
DSCR_IS_LOW
CONSUME_EVEN
PRODUCE_EVENT
SCK_INTR
0x14
LAST_BUF
PARTIAL_BUF
TRANS_DONE
ERROR
SUSPEND
STALL
DSCR_NOT_AVL
DSCR_IS_LOW
CONSUME_EVENT
PRODUCE_EVENT
SCK_INTR_MASK
0x18
0x1C
0x20 DSCR_BUFFER
0x24 DSCR_SYNC
0x28 DSCR_CHAIN
0x2C DSCR_SIZE
0x30
…
0x78
0x7C
EVENT_Type
EVENT
Reserved
Currentlyloadedactivedescriptor
Reserved
ACTIVE_DSCRReserved
BUFFER_ADDRESS
DSCR_COUN
Reserved
DSCR_NUMBERDSCR_LOW
TRANS_SIZE
TRANS_COUNT
AVL_COUN
AVL_MINReservedSTATE
Reserved