[U-Boot-Users] Ethernet POST freeze on 440EPx boards (PMC440, sequoia)
Matthias Fuchs
matthias.fuchs at esd-electronics.com
Mon Jun 2 11:01:16 CEST 2008
Hi,
I noticed some strange issues with our PMC440 (PPC440PEx based) board and
also with the sequoia eval platform.
In a certain configuration these boards stuck during the Ethernet POST tests.
When they got stuck, it is even not possible to attach with a BDI2000.
On the console you only see this:
U-Boot 1.3.1 (May 30 2008 - 17:01:42)
CPU: AMCC PowerPC 440EPx Rev. A at 533.333 MHz (PLB=133, OPB=66, EBC=66 MHz)
Security/Kasumi support
Bootstrap Option H - Boot ROM Location I2C (Addr 0x52)
Internal PCI arbiter enabled, PCI async ext clock used
32 kB I-Cache 32 kB D-Cache
Board: Sequoia - AMCC PPC440EPx Evaluation Board, Rev. F, PCI=33 MHz
I2C: ready
DTT: 1 is 38 C
DRAM: 256 MB
FLASH: 64 MB
NAND: 32 MiB
PCI: Bus Dev VenId DevId Class Int
00 0c 168c 0013 0200 43
In: serial
Out: serial
Err: serial
USB: Host(int phy) Device(ext phy)
Net: ppc_4xx_eth0, ppc_4xx_eth1
I first noticed this behavior on our PMC440 boards. These boards are similiar to the Sequoia platform
(256MB DDR2 RAM, 2x Gigabit Ethernet, ...). Playing with some printfs I found out that the board got stuck
in the Ethernet POST. When I disable U-Boot's LOG_BUFFER feature the problem dissapears.
First I never noticed this bahavior on the sequoia platform and I thought about a PMC440 specific issue.
Then I compiled U-Boot 1.3.1 for the sequoia platform (1.3.1 is used on PMC440 until now). Last week
I got the same issue on the sequoia platform. Not that often as on the PMC440, but the same issue.
Because it is easy to reproduce on PMC440 boards, I played a little bit with different configurations:
1) With LOG_BUFFER enabled: often, about every 2nd boot
2) Without LOG_BUFFER (POST messages come out in the console) -> issue never seens
3) Modified 4xx Ether POST with RX Buffers in OCM -> issue never seens
4) DCACHE turned on -> issue never seens
On the sequoia board I've only seens it after a reboot from Linux. But on PMC440 also after poweron.
This must not have any meaning because I do more testing with our board than with the eval board :-)
printf debugging showed up that the boards get stuck in post/cpu/ppc4xx/ether.c in test_ctlr()/ether_post_send().
Some packets are send, recevied and checked correctly. Then suddenly at a random packet size ether_post_send()
freezes the board.
Did anybody else see this behavior?
Did we miss any EMAC errata?
Matthias
More information about the U-Boot
mailing list