The hitachi visionbook laptops used to have an internal network
card (NIC) with a LANCE chipset that installed just fine under linux.
Then hitachi decided without further notice to replace this
NIC.with a new one that can do 100/10 MBS.
The Identifikation
string the card gives is "HITACHI HIAE-80/100 PCI 10/100
Ethernet LAN Module"
Hitachi Support claimed this Card to be
a 3com device.
But when i did a 'less /proc/pci' i got:
PCI devices found: Bus 0, device 11,
function 0: Ethernet
controller: DEC DC21142 (rev 48).
Medium devsel. Fast
back-to-back capable. IRQ b.
Master Capable. Latency=165. Min
Gnt=20.Max Lat=40. I/O at 0xfc00 [0xfc01].
The DC 21142 AKA "Tulip" is a 100/10 Mbs chip with
apparently some design flaws.
The tulip driver is (like so many
other) maintained by Donald Becker. The main site is
http://cesdis.gsfc.nasa.gov/linux/drivers/tulip.html. Diskussion
on the driver takes place on the tulip mailinglist
linux-tulip-request@cesdis.gsfc.nasa.gov.
I could compile and load a 2.0.33 kernel with tulip.c
v0.87K which got me on booting:
kernel: tulip.c:v0.87K 1/22/98
becker@cesdis.gsfc.nasa.gov
kernel: eth0: Digital DS21142/3
Tulip at 0xfc00, 00 80 c8 76 b1 09, IRQ 11.
kernel: eth0: EEPROM
default media type Autosense.
kernel: eth0: Index #0 - Media MII
(#11) described by a 21142 MII PHY (3) block.
kernel: eth0: MII
transceiver found at MDIO address 17, config 1000 status 7809.
eth0: MII status 7809, Link partner report 0000, CSR12 c6, HD.
eth0: No link beat on the MII interface, status then 7809 now
7809.
I then could send ip packets but could not receive any. (i checked
with tcpdump)
I donwloaded compiled and executed then
tulip-diag.c
tulip-diag -fame produced:
tulip-diag.c:v1.03 5/20/98 Donald Becker
(becker@cesdis.gsfc.nasa.gov)
Chip Index #1: Found a DC21142
Tulip card at PCI bus 0, device 11 I/O 0xfc00.
Digital DS21142
Tulip chip registers at 0xfc00:
ffa08000 ffffffff ffffffff
0033a028 0033a228 f0660000
320e2002 f3ffebef e0000000 fffd83ff
ffffffff fffe0000
000000c6 ffff0000 ffffffff 8ffa0000 ffffffff
ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff 00640000
00040000
The Rx process state is 'Waiting for packets'.
The
Tx process state is 'Idle'.
Transmit started,
Receive
started, half-duplex.
The transmit threshold is 128.
Port
selection is MII, half-duplex.
EEPROM transceiver/media
description for the DC21142 chip.
Leaf node at offset 30, default media type 0800 (Autosense)
1
transceiver description blocks: Media MII, block type 3.
MII
interface PHY 0 (media type 11).
MII PHY found at address 17,
status 0x7809.
Internal autonegotiation state is
'Autonegotiation disabled'.
I then got newer versions of tulip.c (F,G,H) and compiled them as a modules. But i could not load the module:
insmod /lib/modules/2.0.33/net/tulip.o
/lib/modules/2.0.33/net/tulip.o: init_module: Device or resource
busy
the module of tulip.c v0.89K i can load just fine.
insmod /lib/modules/2.0.33/net/tulip_old.o
lsmod
Module
Pages Used by
tulip_old 5 0
autofs 2 2 (autoclean)
dummy0
1 1 (autoclean)
..
This took place on SuSE 5.2 with kernel 2.0.33.
I also tried
the hacker kernel 2.1.89 and got:
6>tulip.c:v0.83 10/19/97 becker@cesdis.gsfc.nasa.gov
<6>eth0:
Digital DS21142/3 Tulip at 0xfc00, EEPROM not present, 00 4c 69 6e
75 79, IRQ 0.
<6>eth0: Missing EEPROM, this interface may
not work correctly!
eth0: Advertising 01e1 on PHY 0 (17).
eth0:
MII status 7809, Link partner report 0000, CSR12 c6, HD.
eth0:
No link beat on the MII interface, status then 7809 now 7809.
What is a bit of a mistery to me is why tulip-diag -faem now gives
a diffrent output especialy the chip registers at 0xfc00 reads
diffrently:
tulip-diag -faem
tulip-diag.c:v1.03 5/20/98 Donald Becker
(becker@cesdis.gsfc.nasa.gov) Chip Index #1:
Found a DC21142
Tulip card at PCI bus 0,
device 11 I/O 0xfc00. Digital DS21142
Tulip chip registers at 0xfc00:
ffffffff ffffffff ffffffff
ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff
ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff
ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff
00600000 00040000
The Rx process state is '(null)'.
The
Tx process state is 'Closing Tx descriptor'.
PCI bus error!:
Unknown 7.
Transmit started, Receive started, full-duplex.
The
transmit unit is set to store-and-forward.
Port selection is
100mbps-SYM/PCS 100baseTx scrambler, full-duplex.
This interface
is missing the EEPROM.
This is likely the non-primary interface
on a multiport board.
***WARNING***:No MII transceivers found!
Internal autonegotiation state is 'Invalid state'.
As sugested by Donald Becker i tried manually setting the advertised media type to "100baseTx"
# tulip-diag -f -m -A 100baseTx
tulip-diag.c:v1.03 5/20/98
Donald Becker (becker@cesdis.gsfc.nasa.gov)
Chip Index #1: Found
a DC21142 Tulip card at PCI bus 0, device 11 I/O 0xfc00.
EEPROM
transceiver/media description for the DC21142 chip.