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.

Add_MACAddress failed

Hi

I have c6678 and mcsdk 2.00.05.17.

I have a tcp server first time I connect everything work o.k then I disconnect and connect again I get the fallowing message:

[C66xx_0] Timeout waiting for reply from PA to Pa_addMac command

[C66xx_0] Add_MACAddress failed

[C66xx_0] Error: Unable to register the EMAC

[C66xx_0] 00002.179 ExecStart: Already Open

Is there a way to reset the MAC  without pressing the system reset button?

Thanks

Aviv

  • Hi Aviv,

    Pa_addMac is a PA LLD API function. This function is used to register the L2 (802.3 specific) matching criteria on PDSP0 LUT1 at PA. (more info at PA UG:  http://www.ti.com/lit/ug/sprugs4/sprugs4.pdf  & PA LLD Doxygen)

    When calling Pa_addMac a buffer is formatted with the command as PA expects to add the new entry into LUT1. PA replies to the command to inform the application of registration. Re-registering a MAC entry is allowed. PA LLD will manage this and will recognize that the current entry being registered is not unique (i.e. already in LUT1) and will only update routing information for that entry. If routing information is identical it still executes the update.

    If this operation "times out" (i.e. PA does not reply to the command) it means it dropped the command or it never received it. This problem is usually associated with the following:

    1) Cache Write Back: If using cache you need to make sure both the descriptor and command buffer linked to the descirptor (if using Host Descriptors) are written back to memory.

    2) FDQ empty: When re-running code make sure descriptors are recycled properly back to their respective queues. Before reading any descriptor make sure cache blocks are invalidated.

    3) Command buffer size: Command buffers need to be of appropriate size (see Doxygen). Enough memory needs to be reserved.

    4) Descriptor control: For PA commands EPIB and PS_INFO need to be present and need to be of appropirate size. (see Doxygen)

    You are using MCSDK, are you using PA LLD direclty or using MCSDK drivers? If not programming directly the NetCP with the LLD API's and rather using the drivers, these should take care of the above. If you want to verify resetting the NetCP before rerunning your TCP Server then you can look into CSL PSC (csl_pscAux.h). This CSL layer funcitons allows you to turn NetCP power domain on and off through the LPSC. NetCP Power Domain module number is 2.

    Regards,

    Javier

     

  • Has anyone found a way to reset/clean-up the QMSS so that the NDK examples can be re-ran without a board reset?