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

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


All,
            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:
fconfig
Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address: 172.16.0.1
Local IP address: 172.16.8.111
Local IP address mask: 255.255.0.0
Default server IP address: 172.16.8.109
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
recv:
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: 172.16.8.111/255.255.0.0, Gateway: 172.16.0.1
Default server: 172.16.8.109

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
each.
RedBoot>

            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 172.16.8.111? 
Tell 172.16.65.95.” 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 172.16.8.109
PING: Cannot reach server '172.16.8.109' (172.16.8.109)
RedBoot>

            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