The SRC DMA generates an address to the flash controller via its interface to read data from the flash memory device.
The SRC DMA writes the data from flash device to the DMA buffer. The DST DMA then writes the data in the buffer to system memory. Single transactions are four bytes and burst transactions are always 64 bytes.
Control Settings
The following table lists the SRC DMA settings.
| Register | Offset Address | Write Value | Description |
|---|---|---|---|
| DMA_Config |
0x0020
|
0000_0602h
|
Transfer size: four bytes for single AXI transfer and 64 bytes for AXI burst transfer. The DMA does not support any other transfer sizes. |
| Indirect_Read_Watermark |
0x0064
|
0000_0000h
|
To indicate data availability as and when sufficient data is available in the buffer. |
| Indirect_Trig_Addr |
0x0080
|
0000_0006h
|
The SRC DMA can execute only a fixed burst of 64-bytes. |
| SRAM_Partition_Config |
0x0018
|
0000_00FEh
|
Allocate the 1 KB buffer for SRC DMA read operations. |
Source DMA Interrupts
The SRC DMA interrupts in the DMA_SRC_ISR register are summarized in the following table. These interrupts are not used during normal operation, but can provide information for test and debug.
| Interrupt | Bit | Description |
|---|---|---|
| [MEM_DONE] | 0 | The DMA has completed current command of all reads of the flash memory |
| [DONE] | 1 | DMA has completed a command |
| [AXI_RDERR] | 2 | Error reading data from flash controller |
| [TIMEOUT_STRM] | 3 | Timeout counter 1 expired; flash controller is stalled |
| [TIMEOUT_MEM] | 4 | Timeout counter 2 expired; DMA is stalled |
| [THRESH_HIT] | 5 | FIFO watermark hit |
| [INVALID_APB] | 6 | APB programming interface address decode error |