Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.1.7.8. Reconfiguring the DMA Registers

You must follow the reconfiguration flow if the DMA reports a bus error, or software wants to write to registers whose value must change only during DMA initialization. For example, DMA_Mode, DMA_SysBus_Mode, DMA_CH(#i)_Tx_Control2, and DMA_CH(#i)_Rx_Control2 registers.

  1. Set DMA start to 1’b0 (DMA_CH(#i)_T(R)x_Control.ST register)
  2. Wait for DMA channel to enter process stop. (DMA_CH(#i)_Status,T(R)PS register)
  3. Reconfigure the DMA channel as described in DMA Initialization.
    Note: Follow this process only for registers which are programed in the DMA Initialization flow, such as DMA_SysBus_Mode, DMA_CH(#i)_T(R)xDesc_List_LAddress, or when there is a handling fatal bus error.
DMA completes the current ongoing packet transmission or reception before entering process stop. Software must make sure that no deadlock is caused by this process. One of the possible options are:
  • Before you run step 1, make sure that the last descriptor with LD is set for TX side.
  • You allocate enough RX descriptors for at least two maximum supported receive packets.