Question: How do I select a socket for data transfer?
The DMA socket used as the source/sink of a data transfer can be selected using a combination of user provided address, state machine generated signals, and firmware programming. The addressing scheme is as follows:
- If the address bus width is eight bits and the interface is in slave mode, the PP registers are activated. In this case, only one DMA thread is active and the target socket for data transfer is selected by writing into the PP_DMA_XFER register.
- In all other cases, four DMA threads are available for data transfer. The addressing in all of these cases needs to specify both the 2-bit thread number and the 3-bit socket number (per thread). The thread number can either be specified using the address bus or selected through the state machine. If the GPIF™ interface includes an address bus, the thread selection is done through the lowest two bits of this address bus. If the GPIF interface does not have an address bus, the threads can be selected as parameters to the DR_DATA/IN_DATA/COMMIT actions. The socket number can either be specified using the address bus or be programmed by the firmware application. If the address bus in the GPIF interface is between 3 and 7 bits wide, bits 4:2 of the address bus select the socket number and bits 1:0 select the thread number. If the address bus is two bits wide or smaller, the firmware is responsible for selecting the active socket corresponding to each DMA thread.