This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Fully AIF2 PKDMA reset



Hi,

after a Reload of my project, I see that the AIF2 Rx PKTDMA is still running.

My Project is based on the LTE example and running on C6670.

How can I fully reset and stop AIF2 and its PKDMA.

On each Reload I switch of Reset Isolation and I switch off and on Powerdomain of AIF2.

// Reset isolation
CSL_PSC_disableModuleResetIsolation( CSL_PSC_LPSC_AI );

// Power Domain off
CSL_PSC_disablePowerDomain (CSL_PSC_PD_AI);

// Clock domain off
CSL_PSC_setModuleNextState (CSL_PSC_LPSC_AI, PSC_MODSTATE_DISABLE);
CSL_PSC_startStateTransition (CSL_PSC_PD_AI);

// Power domain on
CSL_PSC_enablePowerDomain (CSL_PSC_PD_AI);

// Clock domain on
CSL_PSC_setModuleNextState (CSL_PSC_LPSC_AI, PSC_MODSTATE_ENABLE);
CSL_PSC_startStateTransition (CSL_PSC_PD_AI);

What else is nesccessary ?

Thanks a lot

Matthias

  • I also try to teardown PKDMA channels       

    /* base address of Antenna interface subsystem DMA Transmit Channel Configuration Register */
    uint32_t * aif_padma_txchconf0 = ( uint32_t * ) CSL_AIF2_CFG_CPPI_DMA_TX_CFG_REGS;
    /* base address of Antenna interface subsystem DMA Receive Channel Configuration Register */
    uint32_t * aif_padma_rxchconf0 = ( uint32_t * ) CSL_AIF2_CFG_CPPI_DMA_RX_CFG_REGS;

            /* tear down all 129 transmit and receive channels */
            for(cnt = 0;cnt < 129; cnt ++)
            {
                *(aif_padma_txchconf0+((cnt*0x20)/sizeof(uint32_t))) |= 0x40000000;
                *(aif_padma_rxchconf0+((cnt*0x20)/sizeof(uint32_t))) |= 0x40000000;
            }