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.

Why EMAC module does not work with L2 Memory

I am working with C6472 DSP and I am using EMAC module to transfer data with other PC and I configured EMAC module in Gigabit mode.

As I read in datasheet and EMAC user guide, we can configure packet buffer descriptor to L2 memory in stead of EMAC local mem.

So I defined a area in L2 Memory from 00800000

then I changed ecfg.EMACCoreConfig.DescBase =EMAC_DESC_BASE_L2 (I am using CSL lib)


but EMAC module does not work.

with same source code, I just change ecfg.EMACCoreConfig.DescBase =EMAC_DESC_BASE_CPPI. The EMAC module work correctly.

it seems that, I am missing to configure something. 

anyone can help me this issue?

Thanks

  • I hope you are using SYS/BIOS. Please ensure to allocate memory for EMAC descriptor in bios configuration file(.cfg) before assigning address. Also refer the .map generated for address map. Thank you.
  • Are you using "CSL_EMAC_DSC_BASE_ADDR_L2" corresponding base address ?

    if (localDev.Config.DescBase == EMAC_DESC_BASE_CPPI) {
    pDesc = (EMAC_Desc *)CSL_EMAC_DSC_BASE_ADDR;
    }else if (localDev.Config.DescBase == EMAC_DESC_BASE_L2) {
    pDesc = (EMAC_Desc *)CSL_EMAC_DSC_BASE_ADDR_L2;
    }else if (localDev.Config.DescBase == EMAC_DESC_BASE_DDR){
    pDesc = (EMAC_Desc *)CSL_EMAC_DSC_BASE_ADDR_DDR;
    }else {
    return (CPSW3G_INVALID_PARAM);
    }

    Please refer to similar post.
    e2e.ti.com/.../148073