AnsweredAssumed Answered

Receiving Ethernet frames with MCF52233DEMO

Question asked by Hector Moner on Sep 24, 2009
Latest reply on Sep 24, 2009 by Bryan Kattwinkel

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

Outcomes