FX3 Programmers Manual, Doc. # 001-64707 Rev. *C 73
FX3 Firmware
User code can also use the debug logging mechanism and use the debug log and print functions to
insert debug messages.
5.2.7 Power Management
Power management support is provided. APIs are available for putting the device into a suspend
mode with the option of specifying a wakeup source.
5.2.8 Low Level DMA
The DMA architecture of the FX3 is defined in terms of sockets, buffers and descriptors. Each block
on the FX3 (USB, GPIF, Serial IOs) can support multiple independent data flows through it. A set of
sockets are supported on the block, where each socket serves as the access point for one of the
data flows. Each socket has a set of registers that identify the other end of the data flow and control
parameters such as buffer sizes. The connectivity between the producer and consumer is
established through a shared data structure called a DMA descriptor. The DMA descriptor maintains
information about the memory buffer, the producer and consumer addresses etc.
The low level DMA APIs provide for:
■ Sockets
■ Set/get the socket configuration
■ Set other options on a given socket
■ Check if a given socket is valid
■ Buffers
■ Create/destroy buffer pools
■ Allocate/free buffers
■ Descriptors
■ Create/destroy descriptor lists and chains
■ Get/Set a descriptor configuration
■ Manipulate the descriptor chain