17.07.2005 19:31
ne2000 and Motorola SURFboard
I've got Motorola SURFboard cable modem from my UPC (chello) provider. It worked well in windows with my Novell Planet ne2000 10Mbps network card, however I could not get it to work under Linux when I used ne2k-pci module for ne2000 card- 2.6, 2.4 kernel does not mather. The behaviour was fairly strange. When I boot to linux, I got IP trought DHCP, however almost every packet I transmited resulted in something like modem reset - there was some collision or whatever between modem and ne2000 card. It took approximately 4s to modem to resurect and modem log was filled with some critical errors messages (modem log could be reached trought administration interface at IP 192.168.100.1). It was almost impossible to transfer anything trougth card/modem. Transfer between ne2000 card and different network card was ok. Therefore I stop to be suspicious about linux ne2k-pci driver.Finaly I got some idea that there could be something wrong with setup of the network card. However even there is written at http://www.scyld.com/ne2k_pci.html that it sould be possible to set medium, debug and full_duplex trought module options I was not able to do that, and found a lot of people is reporting the same. There is also a utility called ne2k-pci-diag in netdiag package. However it was also unable to set anything. It only reporte card is in full_duplex, 10baseT test disabled mode. First I thought there is something wrong with media set - It should be 10baseT/coax auto detect, however this was not the case.
To make long story short. On Realtek web pages I found utility rset-8029(302).zip which is able to set card state. It seems Linux is not changing card state, however windows seems to set card itself somehow, but if card is already set by utility it is not set even by windows. Or maybe utility is not reporting proper state on card under win.
Changing media type was not of any used, thougth finaly I came to setting of half duplex/ full duplex. Setting half duplex with realtek utility made the card transmiting properly under linux too. Setting half duplex also resulted in card to report medium 10baseT auto detect.
# ne2k-pci-diag
ne2k-pci-diag.c:v2.05 6/24/2002 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a Realtek 8029 adapter at 0xd400.
The 8390 core appears to be active, so some registers will not be read.
To see all register values use the '-f' flag.
Initial window 0, registers values by window:
Window 0: 22 04 69 68 03 00 40 00 42 68 50 43 21 00 00 00.
Window 1: 62 00 00 b4 c6 24 a6 69 00 00 00 80 00 00 00 00.
Window 2: a2 00 80 ff 40 ff ff ff ff ff ff ff cc e0 c9 bf.
Window 3: e2 30 ff 00 ff 00 30 ff ff ff ff ff ff ff 29 80.
RTL8029 transceiver: 10baseT/coax (autoselected on 10baseT link beat) half dupl
ex.
0K boot ROM.
No interrupt sources are pending (00).
Parsing the EEPROM of a RTL8029:
Station Address 00:00:B4:C6:24:A6 (used as the ethernet address).
Configuration is 30 00:
0K boot ROM, half duplex
Transceiver: 10baseT/coax (autoselected on 10baseT link beat).
PCI Vendor ID 0xa5a5 Device ID 0xa5a5
Subsystem ID: vendor 0xa5a5 device 0xa5a5