From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Wed, 04 Jan 2006 11:13:01 -0500 Subject: [U-Boot-Users] FEC problem on MPC5200 board (Men PP01) In-Reply-To: <1136390455.17673.106.camel@neuromante.det.uvigo.es> References: <1136390455.17673.106.camel@neuromante.det.uvigo.es> Message-ID: <43BBF40D.1020201@smiths-aerospace.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Felipe Gil Casti?eira wrote: > Hi everyone! > > I am porting U-Boot to "Men mikro elektronik" PP01 module (MPC5200). The > FEC is integrated on the MPC5200 and the PHY is a LXT971ALE transceiver. > > U-Boot boots and recognizes the Ethernet device (I can read the PHY > transceiver registers, change the LED status, etc.), but when I try to > ping a target the system freezes (and the Watchdog resets the board). > The behavior is just the same with tftp or bootp. > > I am sure it is not a hardware problem, as I can transfer files (for > example u-boot.bin) from a computer to the same module using the > original monitor (MENMON). > >>>From the debugging information *it seems the code fails in the function > "mpc5xxx_fec_recv"*. Furthermore, analyzing the network with Ethereal I > can observe an ARP request generated by the PING and the corresponding > answer (at this moment the watchdog resets the board). If I ping a non > existent address the timer expires and I receive a "ping failed; host > 192.168.1.25 is not alive" (Ethereal detects the ARP request, but of > course, there is not an ARP answer). > > Any idea? Thanks in advance. > > Best regards, > Felipe. I don't know anything about your hardware, but from your description of the results I would guess that you have your ethernet receive buffer pointer(s) pointing into non-existant memory (very likely) or else pointing in the middle of important code (e.g. u-boot or your variables). Scenario A: When you receive a packet, you get a bus fault which crashes your machine. Scenario B: When you receive a packet, it scribbles on your code and crashes your machine. I suggest you check your memory configuration and Rx buffer initialization. gvb P.S. If you send a broadcast (ping your target will cause an arp broadcast) or a packet directed to your target's MAC address (use the command line arp command to add your MAC address on your host machine and then send a ping), I bet your target will crash.