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: AM6548 ICSSG Multicast Support - EMac or FDB?

Part Number: AM6548

Hello, 

I was wondering if the ICSS ethernet MACs on the AM6548 SR2.0 support multicast address filtering? In the PDK I see functions for enabling multicast filters on ti/drv/icss_emac/src/icss_emacFwInit.c. I have tried running some of the IOCTL commands, and they do not seem to work (i.e. ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE and ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID). 

So my question is, are these even the right APIs to do this? These APIs are separate from the enet driver, and when I try to look at ICSS firmware versions like with 

ICSS_EmacValidateFeatureSet(icssEmacHandle, portNo, ICSS_EMAC_FW_MULTICAST_FILTER_FEATURE_CTRL)
It seems as though there is no firmware version in the ICSS. I have configured the ICSS peripheral and am using it in dual ethernet mode (using the enet driver), and unicast is working just fine. Is this the right approach? Or should I instead do "FDB Multicast filtering" as described in the PDK docs, which is just briefly mentioned, and I do not have many details on. 
Thanks,
Ben
  • Hi ,

    Thanks for your query.

    Looks like your query is around NDK, which is no longer supported and please refer to the following E2E FAQ for guidance.

    Best Regards

    Ashwani

  • Hi Ashwani,

    Do you know if the NDK docs would be able to answer this question? I have been a bit confused as to what the NDK actually is. Does it have the software for the AM65xx ICSSGs?

    Thanks,
    Ben

  • Ok so I figured it out, to get multicast working on the AM6548 ICSSGs, you need to use the IOCTL ICSSG_FDB_IOCTL_ADD_ENTRY. Use this IOCTL in a similar fashion to add_mac_fdb_entry in the file ti/drv/enet/unit_test/enet_icssg_ut/enet_icssg_ut.c. I ended up using a VLAN ID of 0, as I do not have VLANs configured at all to my knowledge. 

    One interesting thing I noticed, the IOCTL ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES does not seem to work, you need to remove FDB entries one by one manually using ICSSG_FDB_IOCTL_REMOVE_ENTRY.