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.

AM6548: EMAC switch issues

Part Number: AM6548

Hello,

currently i am evaluating if I can use the regular ICSSG EMAC Switch firmware on a customers board, which uses the AM65xx SOC. To look into that I copied the initialisation sequence from your EMAC Loopback example at "C:\ti\pdk_am65xx_1_0_5\packages\ti\board\diag\icssg_emac\src" using SDK 6.0. The initialisation itself works fine and TX works flawlessly on both virtual Ports. What is not working properly at the moment is the RX part. The ICSSGs are receiving the frames, atleast they appear in the emac statistics. However the RX Callback never gets invoked after polling UDMA rings.The Firmware also does not seem to respond to IOCTL commands since the MGMT callback function never gets called and all IOCTL calls after the first one come back with a failure code.

Sadly I dont know too much about how your firmware works in detail since there is not much documentation and no sources for the switch use case either in the SDK. I would appreciate some advice on how I can find out what exactly is going wrong here so I can figure out if its some sort of configuration issue, or if the small hardware differences are preventing the firmware from working as intended.

Im currently using:

SDK 6.0

SOC AM6548

CCS 9.0.1

Thanks, 

Alex

  • Hi,

    The person who can answer this is travelling on business, so feedback will be delayed a day or two. Sorry for the inconvenience.

  • Alex,

    The emac driver design document EMAC_LLD_SD.pdf under pdk_am65xx_1_0_5\packages\ti\drv\emac\docs may help.

    Also the firmware source code at pdk_am65xx_1_0_5\packages\ti\drv\emac\firmware\icss_dualmac\src should help as well.

    Regards,

    Garrett

  • Hello Garrett,

    >The emac driver design document EMAC_LLD_SD.pdf under pdk_am65xx_1_0_5\packages\ti\drv\emac\docs may help.

    I used the EMAC_LLD_SD.pdf and loopback examples as reference on how to initialise the EMAC and UDMA drivers as specified, so I tried pretty much everything that was described in this document. The EMAC LLD itself works fine and doesnt produce any internal errors, so the issue seems to be with the RX part of the Firmware. Something is going wrong between hardware receiving packets and where firmware should be copying them into UDMA Rings. 

    >Also the firmware source code at pdk_am65xx_1_0_5\packages\ti\drv\emac\firmware\icss_dualmac\src should help as well.

    I took a look at those sources, but sadly I dont have extensive knowledge about the inner workings of the ICSSG hardware and the firmware design to make out which parts of are even comparable to the switch use case (which I am trying to get to work). My idea was to figure out what the firmware is doing by looking up which part of the code it is stuck in, thats not easy to do without sources since its hard to make sense from watching pure assembly instructions. Is there maybe a documentation for how the firmware functions in detail?

     

    Regards,

     

    Alex

  • Alex,

    Any progress on your debugging?

    >>Is there maybe a documentation for how the firmware functions in detail?

    Let me find out if we have the firmware design document ready for publication.

    Regards,

    Garrett

  • Garrett,

    I had a talk with some of your colleagues through internal channels and found out that what I was trying to do is currently not supported by the SDK release. 

    We will have to wait for future releases to continue the project. Thanks for your help.

    Best Regards,

    Alex