[U-Boot] Help Needed - Realtek 8100B (8139) Ethernet not working

Graeme Russ graeme.russ at gmail.com
Mon Aug 24 14:08:18 CEST 2009


Hi All,

I'm having real trouble getting the two RTL8100B Ethernet chips working on
my board. I can probe them, but not much else. The strange thing is, on
first bootup, it complains about SROM address not matching environment
address which goes away after a soft reset. However, whenever I try to
execute a network command, it always complains about missing Ethernet
addresses.

I've enabled RX and TX debugging, and this is the end result of my efforts:


U-Boot 2009.08-rc3-00024-gf248001-dirty (Aug 24 2009 - 22:01:22)

U-Boot code: FFFFEE00 -> 03FD4503  data: 03FDAAE8 -> 03FDB9B7
        BSS: 03FDB580 -> 03FE2C6B stack: 03FE2C6C -> 03FEAC6B
DRAM Configuration:
Bank #0: 00000000 64 MB
Bank #1: 04000000 64 MB
Bank #2: 08000000  0 kB
Bank #3: 08000000  0 kB
Flash: 32.5 MB
set_irq(): map INTA to IRQ10
fixup_irq: device 12 pin A irq 10

set_irq(): map INTB to IRQ9
fixup_irq: device 13 pin B irq 9
Net:   Initializing Ethernet
RTL8139#0, RTL8139#1
Warning: RTL8139#1 MAC addresses don't match:
Address in SROM is         00:00:00:08:00:00
Address in environment is  fe:fd:ff:ef:f7:ff


Serck Controls eNET
boot > pci

Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class

_____________________________________________________________
00.00.00   0x1022     0x3000     Bridge device           0x00
00.0c.00   0x10ec     0x8139     Network controller      0x00
00.0d.00   0x10ec     0x8139     Network controller      0x00
boot > pci header 00.0c.00

  vendor ID =                   0x10ec
  device ID =                   0x8139
  command register =            0x0007
  status register =             0x0290
  revision ID =                 0x10

  class code =                  0x02 (Network controller)
  sub class code =              0x00
  programming interface =       0x00
  cache line =                  0x00
  latency time =                0x20
  header type =                 0x00
  BIST =                        0x00
  base address 0 =              0x00001001
  base address 1 =              0x10000000
  base address 2 =              0x00000000
  base address 3 =              0x00000000
  base address 4 =              0x00000000
  base address 5 =              0x00000000
  cardBus CIS pointer =         0x00000000
  sub system vendor ID =        0x10ec
  sub system ID =               0x8139
  expansion ROM base address =  0x00000000
  interrupt line =              0x0a
  interrupt pin =               0x01
  min Grant =                   0x20
  max Latency =                 0x40
boot > pci header 00.0d.00

  vendor ID =                   0x10ec
  device ID =                   0x8139
  command register =            0x0007
  status register =             0x0290
  revision ID =                 0x10

  class code =                  0x02 (Network controller)
  sub class code =              0x00
  programming interface =       0x00
  cache line =                  0x00
  latency time =                0x20
  header type =                 0x00
  BIST =                        0x00
  base address 0 =              0x00001101
  base address 1 =              0x10000100
  base address 2 =              0x00000000
  base address 3 =              0x00000000
  base address 4 =              0x00000000
  base address 5 =              0x00000000
  cardBus CIS pointer =         0x00000000
  sub system vendor ID =        0x10ec
  sub system ID =               0x8139
  expansion ROM base address =  0x00000000
  interrupt line =              0x09
  interrupt pin =               0x01
  min Grant =                   0x20
  max Latency =                 0x40
boot > bootp

rx ring address is 3FDC5C4
*** ERROR: `ethaddr' not set
rx ring address is 3FDC5C4
rtl_poll: int 0 rx error 0
rx ring address is 3FDC5C4
*** ERROR: `eth1addr' not set
rx ring address is 3FDC5C4
rtl_poll: int 0 rx error 0
rx ring address is 3FDC5C4
boot > printenv

bootargs=root=/dev/mtdblock0 console=ttyS0,9600
bootdelay=15
baudrate=9600

ipaddr=10.1.1.5
netmask=255.255.255.0

eth1addr=fe:fd:ff:ef:f7:ff
ethaddr=fe:fd:ff:ef:f7:ff
stdin=serial
stdout=serial
stderr=serial
ethact=RTL8139#0

Environment size: 224/131067 bytes

boot > reset

resetting ...
Resetting using SC520 MMCR


U-Boot 2009.08-rc3-00024-gf248001-dirty (Aug 24 2009 - 22:01:22)

U-Boot code: FFFFEE00 -> 03FD4503  data: 03FDAAE8 -> 03FDB9B7
        BSS: 03FDB580 -> 03FE2C6B stack: 03FE2C6C -> 03FEAC6B
DRAM Configuration:
Bank #0: 00000000 64 MB
Bank #1: 04000000 64 MB
Bank #2: 08000000  0 kB
Bank #3: 08000000  0 kB
Flash: 32.5 MB
set_irq(): map INTA to IRQ10
fixup_irq: device 12 pin A irq 10

set_irq(): map INTB to IRQ9
fixup_irq: device 13 pin B irq 9
Net:   Initializing Ethernet
RTL8139#0, RTL8139#1
Serck Controls eNET
boot > ping 10.1.1.2

rx ring address is 3FDC5C4
*** ERROR: `ethaddr' not set
rx ring address is 3FDC5C4
rtl_poll: int 0 rx error 0
rx ring address is 3FDC5C4
*** ERROR: `eth1addr' not set
rx ring address is 3FDC5C4
rtl_poll: int 0 rx error 0
rx ring address is 3FDC5C4
ping failed; host 10.1.1.2 is not alive
boot > 



More information about the U-Boot mailing list