[U-Boot-Users] MPC8270/MPC8250 Ethernet Problem

I am having trouble getting Ethernet to work correctly on our Embedded Planet EP82xxM board. Specifically, pings and TFTP transfers fail when the board is populated with an MPC8250 or an MPC8270. However, when the board is populated with an MPC8280 processor, Ethernet works. Any suggestions of things to try out to resolve this would be greatly appreciated.
FCC2/3 port pins appear to be correctly configured. PHY registers are able to be accessed and seem to show the correct configuration. No packets are appearing on the wire when sniffed with Ethereal. With ET_DEBUG turned on, pinging results in the following output:
ep82xxm=> ping 10.0.0.26 Using FCC3 ETHERNET device sending ARP for 0a00001a ARP broadcast 1 packet received packet received Receive from protocol 0x0 packet received packet received Receive from protocol 0x0 . . . ARP broadcast 2 packet received packet received Receive from protocol 0x0 packet received packet received Receive from protocol 0x0 . . . ping failed; host 10.0.0.26 is not alive
MII info and dump result in the following output: ep82xxm=> mii info PHY 0x00: OUI = 0x04DE, Model = 0x0E, Rev = 0x02, 100baseT, FDX PHY 0x01: OUI = 0x04DE, Model = 0x0E, Rev = 0x02, 10baseT, HDX
ep82xxm=> mii dump 0 0-5 0. (3100) -- PHY control register -- (8000:0000) 0.15 = 0 reset (4000:0000) 0.14 = 0 loopback (2040:2000) 0. 6,13 = b01 speed selection = 100 Mbps (1000:1000) 0.12 = 1 A/N enable (0800:0000) 0.11 = 0 power-down (0400:0000) 0.10 = 0 isolate (0200:0000) 0. 9 = 0 restart A/N (0100:0100) 0. 8 = 1 duplex = full (0080:0000) 0. 7 = 0 collision test enable (003f:0000) 0. 5- 0 = 0 (reserved)
1. (782d) -- PHY status register -- (8000:0000) 1.15 = 0 100BASE-T4 able (4000:4000) 1.14 = 1 100BASE-X full duplex able (2000:2000) 1.13 = 1 100BASE-X half duplex able (1000:1000) 1.12 = 1 10 Mbps full duplex able (0800:0800) 1.11 = 1 10 Mbps half duplex able (0400:0000) 1.10 = 0 100BASE-T2 full duplex able (0200:0000) 1. 9 = 0 100BASE-T2 half duplex able (0100:0000) 1. 8 = 0 extended status (0080:0000) 1. 7 = 0 (reserved) (0040:0000) 1. 6 = 0 MF preamble suppression (0020:0020) 1. 5 = 1 A/N complete (0010:0000) 1. 4 = 0 remote fault (0008:0008) 1. 3 = 1 A/N able (0004:0004) 1. 2 = 1 link status (0002:0000) 1. 1 = 0 jabber detect (0001:0001) 1. 0 = 1 extended capabilities
2. (0013) -- PHY ID 1 register -- (ffff:0013) 2.15- 0 = 19 OUI portion
3. (78e2) -- PHY ID 2 register -- (fc00:7800) 3.15-10 = 30 OUI portion (03f0:00e0) 3. 9- 4 = 14 manufacturer part number (000f:0002) 3. 3- 0 = 2 manufacturer rev. number
4. (01e1) -- Autonegotiation advertisement register -- (8000:0000) 4.15 = 0 next page able (4000:0000) 4.14 = 0 reserved (2000:0000) 4.13 = 0 remote fault (1000:0000) 4.12 = 0 reserved (0800:0000) 4.11 = 0 asymmetric pause (0400:0000) 4.10 = 0 pause enable (0200:0000) 4. 9 = 0 100BASE-T4 able (0100:0100) 4. 8 = 1 100BASE-TX full duplex able (0080:0080) 4. 7 = 1 100BASE-TX able (0040:0040) 4. 6 = 1 10BASE-T full duplex able (0020:0020) 4. 5 = 1 10BASE-T able (001f:0001) 4. 4- 0 = 1 selector = IEEE 802.3
5. (45e1) -- Autonegotiation partner abilities register -- (8000:0000) 5.15 = 0 next page able (4000:4000) 5.14 = 1 acknowledge (2000:0000) 5.13 = 0 remote fault (1000:0000) 5.12 = 0 (reserved) (0800:0000) 5.11 = 0 asymmetric pause able (0400:0400) 5.10 = 1 pause able (0200:0000) 5. 9 = 0 100BASE-T4 able (0100:0100) 5. 8 = 1 100BASE-X full duplex able (0080:0080) 5. 7 = 1 100BASE-TX able (0040:0040) 5. 6 = 1 10BASE-T full duplex able (0020:0020) 5. 5 = 1 10BASE-T able (001f:0001) 5. 4- 0 = 1 selector = IEEE 802.3
My environment settings are as follows: ep82xxm=> printenv bootdelay=5 baudrate=115200 ethaddr=00:10:EC:00:88:66 eth1addr=00:10:EC:80:88:66 ipaddr=10.0.0.245 serverip=10.0.0.26 gatewayip=10.0.0.1 netmask=255.255.255.0 hostname=EP82xxM ethprime=FCC3 ETHERNET stdin=serial stdout=serial stderr=serial ethact=FCC3 ETHERNET
Thanks for your help!

Hi, I had similar problem on my development board. Check storing address - I had bad store link address. And dumping ethernet packets with tcpdump or ethereal. Print it and check it with md command and compare with dumping packets.
Michal Simek Czech Technical University
I am having trouble getting Ethernet to work correctly on our Embedded Planet EP82xxM board. Specifically, pings and TFTP transfers fail when the board is populated with an MPC8250 or an MPC8270. However, when the board is populated with an MPC8280 processor, Ethernet works. Any suggestions of things to try out to resolve this would be greatly appreciated.
FCC2/3 port pins appear to be correctly configured. PHY registers are able to be accessed and seem to show the correct configuration. No packets are appearing on the wire when sniffed with Ethereal. With ET_DEBUG turned on, pinging results in the following output:
ep82xxm=> ping 10.0.0.26 Using FCC3 ETHERNET device sending ARP for 0a00001a ARP broadcast 1 packet received packet received Receive from protocol 0x0 packet received packet received Receive from protocol 0x0 . . . ARP broadcast 2 packet received packet received Receive from protocol 0x0 packet received packet received Receive from protocol 0x0 . . . ping failed; host 10.0.0.26 is not alive
MII info and dump result in the following output: ep82xxm=> mii info PHY 0x00: OUI = 0x04DE, Model = 0x0E, Rev = 0x02, 100baseT, FDX PHY 0x01: OUI = 0x04DE, Model = 0x0E, Rev = 0x02, 10baseT, HDX
ep82xxm=> mii dump 0 0-5 0. (3100) -- PHY control register -- (8000:0000) 0.15 = 0 reset (4000:0000) 0.14 = 0 loopback (2040:2000) 0. 6,13 = b01 speed selection = 100 Mbps (1000:1000) 0.12 = 1 A/N enable (0800:0000) 0.11 = 0 power-down (0400:0000) 0.10 = 0 isolate (0200:0000) 0. 9 = 0 restart A/N (0100:0100) 0. 8 = 1 duplex = full (0080:0000) 0. 7 = 0 collision test enable (003f:0000) 0. 5- 0 = 0 (reserved)
(782d) -- PHY status register --
(8000:0000) 1.15 = 0 100BASE-T4 able (4000:4000) 1.14 = 1 100BASE-X full duplex able (2000:2000) 1.13 = 1 100BASE-X half duplex able (1000:1000) 1.12 = 1 10 Mbps full duplex able (0800:0800) 1.11 = 1 10 Mbps half duplex able (0400:0000) 1.10 = 0 100BASE-T2 full duplex able (0200:0000) 1. 9 = 0 100BASE-T2 half duplex able (0100:0000) 1. 8 = 0 extended status (0080:0000) 1. 7 = 0 (reserved) (0040:0000) 1. 6 = 0 MF preamble suppression (0020:0020) 1. 5 = 1 A/N complete (0010:0000) 1. 4 = 0 remote fault (0008:0008) 1. 3 = 1 A/N able (0004:0004) 1. 2 = 1 link status (0002:0000) 1. 1 = 0 jabber detect (0001:0001) 1. 0 = 1 extended capabilities
(0013) -- PHY ID 1 register --
(ffff:0013) 2.15- 0 = 19 OUI portion
(78e2) -- PHY ID 2 register --
(fc00:7800) 3.15-10 = 30 OUI portion (03f0:00e0) 3. 9- 4 = 14 manufacturer part number (000f:0002) 3. 3- 0 = 2 manufacturer rev. number
(01e1) -- Autonegotiation advertisement register --
(8000:0000) 4.15 = 0 next page able (4000:0000) 4.14 = 0 reserved (2000:0000) 4.13 = 0 remote fault (1000:0000) 4.12 = 0 reserved (0800:0000) 4.11 = 0 asymmetric pause (0400:0000) 4.10 = 0 pause enable (0200:0000) 4. 9 = 0 100BASE-T4 able (0100:0100) 4. 8 = 1 100BASE-TX full duplex able (0080:0080) 4. 7 = 1 100BASE-TX able (0040:0040) 4. 6 = 1 10BASE-T full duplex able (0020:0020) 4. 5 = 1 10BASE-T able (001f:0001) 4. 4- 0 = 1 selector = IEEE 802.3
(45e1) -- Autonegotiation partner abilities
register -- (8000:0000) 5.15 = 0 next page able (4000:4000) 5.14 = 1 acknowledge (2000:0000) 5.13 = 0 remote fault (1000:0000) 5.12 = 0 (reserved) (0800:0000) 5.11 = 0 asymmetric pause able (0400:0400) 5.10 = 1 pause able (0200:0000) 5. 9 = 0 100BASE-T4 able (0100:0100) 5. 8 = 1 100BASE-X full duplex able (0080:0080) 5. 7 = 1 100BASE-TX able (0040:0040) 5. 6 = 1 10BASE-T full duplex able (0020:0020) 5. 5 = 1 10BASE-T able (001f:0001) 5. 4- 0 = 1 selector = IEEE 802.3
My environment settings are as follows: ep82xxm=> printenv bootdelay=5 baudrate=115200 ethaddr=00:10:EC:00:88:66 eth1addr=00:10:EC:80:88:66 ipaddr=10.0.0.245 serverip=10.0.0.26 gatewayip=10.0.0.1 netmask=255.255.255.0 hostname=EP82xxM ethprime=FCC3 ETHERNET stdin=serial stdout=serial stderr=serial ethact=FCC3 ETHERNET
Thanks for your help!

Thanks for your input, Michal.
The problem turned out to be a bad SDRAM initialization. Different behavior was observed on the MPC8280 because that board had Samsung SDRAM parts whereas the MPC8250 and MPC8270 boards had Micron SDRAM parts. Ethernet works on all three boards now.

Hi Aaron,
I have an EP8270M board and got a similar Ethernet problem with u-boot 1.1.5. Outgoing packet from FCC3 Ethernet looks broken, ether type is 0xFFFF. How should I modify the SDRAM initialization code for Micron SDRAM? I'm not sure this is the same case, but anyway I want to try.
-Koya
Aaron Sells wrote:
The problem turned out to be a bad SDRAM initialization. Different behavior was observed on the MPC8280 because that board had Samsung SDRAM parts whereas the MPC8250 and MPC8270 boards had Micron SDRAM parts. Ethernet works on all three boards now.
participants (3)
-
Aaron Sells
-
Koya
-
Michal Simek