[ECOS] Can't get SMSC 91C111 to transmit.

Joe Porthouse jporthouse@toptech.com
Mon Jul 17 17:45:00 GMT 2006

            I am attempting to get the Ethernet working on a new hardware
design and I am running into difficulty getting the
driver/controller/hardware to transmit a packet.

            My platform is a PXA255 with a SMSC LAN91C111i-NU Ethernet
Controller.  I am using a known working Redboot firmware configuration (on a
PXA255/SMSC 91C111) to test out the Ethernet functionality on this hardware.

            The Serial EEPROM is currently blank, but I am specifying the
MAC address using FCONFIG in Redboot as:
Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address:
Local IP address mask:
Default server IP address:
Console baud rate: 115200
Set eth0 network hardware address [MAC]: true
eth0 network hardware address [MAC]: 0x18:0xF0:0x9F:0xE5:0x18:0x80
GDB connection port: 9000
Force console for special debug messages: true
Console number for special debug messages: 0
Network debug at boot time: true

            I have turned on the debugging in the SMSC driver and receive
the following on startup:
9875430+00021LAN91CXX - supposed BankReg @ 800030e = 3300
LAN91CXX - type: 9, rev: 2
LAN91CXX - status: 0000
Got ESA from RedBoot option
LAN91CXX - ESA: 18:f0:9f:e5:18:80
Ethernet send:
0000B6B4: FF FF FF FF FF FF 18 F0  9F E5 18 80 08 06        |...Ethernet
00011064: FF FF FF FF FF FF 00 0F  1F 14 8A 86 08 06        |..............
Ethernet eth0: MAC address 18:f0:9f:e5:18:80
IP:, Gateway:
Default server:

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version W468 V3I4 - built 17:28:27, Jul 16 2006

Platform: TTRCU (XScale PXA255) 
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x04000000, [0x00400000-0x03fb1000] available
FLASH: base 0x50000000, size 0x02000000, 128 blocks of 0x00040000 bytes

            Using Ethereal to monitor the Ethernet traffic I see no packet
being transmitted during startup.

            When I attempt to ping the hardware from a PC the ping fails.
 On the Ethernet traffic monitor I can see the “ARP - Who Has 
Tell” message going to the hardware, but no response.  Redboot
must be receiving the request since it logs it, but does not attempt to send
a reply.
RedBoot> Ethernet recv:
00011674: FF FF FF FF FF FF 00 0F  1F 14 8A 86 08 06        |.............> 
Ethernet recv:
00011C84: FF FF FF FF FF FF 00 0F  1F 14 8A 86 08 06        |..............à
Ethernet recv:
00012294: FF FF FF FF FF FF 00 0F  1F 14 8A 86 08 06        |.............. 

            When I attempt to ping the PC from the hardware the ping also
fails.  On the Ethernet traffic monitor I see no activity.  After several 5
second or so I sometimes see a “Cannot reach server”, other times I get
“received 0 of 10 expected“:
RedBoot> ping -h
PING: Cannot reach server '' (

            Do I have an auto-negotiate failure?  Is there a problem with
having a blank serial EPROM?  I’m still not sure if I have a configuration
or hardware problem at this time.  I am suspecting hardware, but without
seeing “Ethernet Send” messages, it looks like a configuration issue in
Redboot/SMSC driver.  I’m not quite sure how to proceed with debugging from
this point.  Any help would be greatly appreciated.

Joe Porthouse
Toptech Systems, Inc.
Longwood, FL 32750

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list