Hello, Ti experts,
We are working on migrating lwip1.4.1 and TCN TRDP onto the TMS570. We got problem that the multicast frame can not be received, but the broadcast and unicast frames can be received correctly. Then, it was found that no multicast frames were obtained from the EMAC interface.
We have no idea if there is a problem within the driver configuration. Our driver uses HALCOGEN to generate some changes as needed.
The driver code is, as follows
We have no idea if there is a problem within the driver configuration. Our driver uses HALCOGEN to generate some changes as needed.
The driver code is, as follows
EMACInit(hdkif->emac_ctrl_base, hdkif->emac_base);
MDIOInit(hdkif->mdio_base, MDIO_FREQ_INPUT, MDIO_FREQ_OUTPUT);
While(delay--);
EMACRxBroadCastEnable(hdkif->emac_base, 0);
/* Set the MAC Addresses in EMAC hardware */
EMACMACSrcAddrSet(hdkif->emac_base, hdkif->mac_addr);
/* Acknowledge receive and transmit interrupts for proper interrupt pulsing*/
EMACCoreIntAck(hdkif->emac_base, EMAC_INT_CORE0_RX);
EMACCoreIntAck(hdkif->emac_base, EMAC_INT_CORE0_TX);
EMACRxUnicastSet(hdkif->emac_base, 0);
EMACRxMultiCastEnable(hdkif->emac_base, 0);
EMACNumFreeBufSet(hdkif->emac_base, 0, 10);
/* Write the RX HDP for channel 0 */
EMACRxHdrDescPtrWrite(hdkif->emac_base, (U32)rxch->active_head, 0);
EMACTxEnable(hdkif->emac_base);
EMACRxEnable(hdkif->emac_base);
EMACMIIEnable(hdkif->emac_base);
/**
* Enable the Transmission and reception, enable the interrupts for
* channel 0 and for control core 0
*/
EMACTxIntPulseEnable(hdkif->emac_base, hdkif->emac_ctrl_base, 0, 0);
EMACRxIntPulseEnable(hdkif->emac_base, hdkif->emac_ctrl_base, 0, 0);
The code is not all posted, these are the parts that call the EMAC interface. Is there any problem within this configuration?
Thank you