Hi, I am starting to develop a network application using my own code because the Inter Niche stack is too big for my requirements.
After setting the PHY and FEC modules, I receive Ethernet frames, but only multicast (1st byte of MAC Address = 01) or broadcast (FF:FF:FF:FF:FF:FF) frames. I am not able to make a FEC interrupt with unicast frames addressed to my eval board. Neither using the promiscuous mode asserted. I think the unicast frames are being rejected, but I don’t see the reason. Following you can see some of my registers configuration.
MCF_FEC_RCR = MCF_FEC_RCR_MAX_FL(0x3E8) |
MCF_FEC_RCR_MII_MODE |
MCF_FEC_RCR_PROM |
MCF_FEC_RCR_DRT;
MCF_FEC_TCR = 0;
MCF_FEC_EIMR = MCF_FEC_EIMR_TXF |
MCF_FEC_EIMR_RXF ;
MCF_FEC_FRSR = 0x00000500;
MCF_FEC_TFWR = MCF_FEC_TFWR_X_WMRK(0x2);
unsigned char mac_addr_fec[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
/* Program this station's Ethernet physical address */
/* Set the source address for the controller */
MCF_FEC_PALR = (uint32)((0
| (mac_addr_fec[0] <<24)
| (mac_addr_fec[1] <<16)
| (mac_addr_fec[2] <<8)
| (mac_addr_fec[3] <<0)));
MCF_FEC_PAUR = (uint32)((0
| (mac_addr_fec[4] <<24)
| (mac_addr_fec[5] <<16)
| MCF_FEC_PAUR_TYPE(0x00008808)));
/* Configure Ethernet hash table bits */
MCF_FEC_GAUR = 0;
MCF_FEC_GALR = 0;
MCF_FEC_IAUR = 0;
MCF_FEC_IALR = 0;
Thanks for your help in advanced