Hi TI Professor,
Now we can connect the TDA4 board with the PC, while ping from PC to TDA4 and from TDA4 to PC. The board work properly.
I'm working with multicast function. I changed the multicast MAC address to meet our multicast address in function EthFw_setAleBcastEntry() in \ethfw\ethfw\src\ethfw.c
static int32_t EthFw_setAleBcastEntry(void) { appLogPrintf("---------------------Set Multicast entry--------------------------\n"); Enet_Handle hEnet = Enet_getHandle(gEthFwObj.enetType, 0U /* instId */); Enet_IoctlPrms prms; uint32_t setMcastOutArgs; CpswAle_SetMcastEntryInArgs setMcastInArgs; //uint8_t bCastAddr[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t bCastAddr[] = {0x01, 0x00, 0x5e, 0x00, 0x00, 0x50}; int32_t status; memcpy(&setMcastInArgs.addr.addr[0], &bCastAddr[0U], sizeof(setMcastInArgs.addr.addr)); setMcastInArgs.addr.vlanId = 0U; setMcastInArgs.info.super = false; setMcastInArgs.info.fwdState = CPSW_ALE_FWDSTLVL_FWD; setMcastInArgs.info.portMask = CPSW_ALE_ALL_PORTS_MASK; setMcastInArgs.info.numIgnBits = 0U; ENET_IOCTL_SET_INOUT_ARGS(&prms, &setMcastInArgs, &setMcastOutArgs); status = Enet_ioctl(hEnet, gEthFwObj.coreId, CPSW_ALE_IOCTL_ADD_MCAST, &prms); if (status != ENET_SOK) { appLogPrintf("EthFw_setAleBcastEntry() ADD_MULTICAST ioctl failed: %d\n", status); } appLogPrintf("---------------------Set Multicast entry Done--------------------------\n"); return status; }
Currently i can use eth1 to send the Mcast frame to PC and it works well.
But when I send Mcast frame from PC to TDA4, it can not receive Mcast frame. Although the CPSW9G has transferred the Mcast frame to host port successfully. I use tcpdump in Linux side (eth1) to get nothing.
Can you help me to receive Mcast packets in Linux?