Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN
Hi team,
Here's an issue from the customer may need your help:
When porting lwip1.4.1 on the TMS570LC4357, a multicast frame was not received and broadcast and unicast frames were received correctly. It was then discovered that the multicast frame was not received by the interface from the EMAC.
The customer's drive is generated using HALCOGEN, with some modifications as needed, and the following code is the part used to call the EMAC interface:
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP; 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);
Could you help check is there anything wrong with the code above? Thanks.
Best Regards,
Cherry
