Linksys PCM200

soralx at cydem.org soralx at cydem.org
Wed Oct 13 20:10:36 PDT 2004


Good localtime

I've got a Linksys EhterFast PCM200 CardBus ethernet adapter recently,
and now I'm trying to make it work with FreeBSD 5.2.1-R, on a Sony PCG-748
notebook. Seems like it is based on a DEC 21143 chipset, specifically
ADMtek Centaur-C. After the changes I made to dc(4) (see diffs below),
the OS recognizes the card, and is able to attach it. I can assign an IP
to dc0, and when I connect it to a switch, the link type [100baseTX, FD]
is properly recognized. All 3 LEDs on the card ("Link/Act", "10/100",
"FD/COL") appear to work as intended. It even seems arp packets can be
sent and recieved (while in promisc mode - monitoring with 'tcpdump').
However, if I try to run dhclient, ping, etc - nothing else works:
"dc0: watchdog timeout"

Any thoughts?


`dmesg`: (booted without ACPI because otherwise the OS halts after a while)

Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.2.1-RELEASE #7: Wed Oct 13 20:31:48 MDT 2004
    root@:/usr/src/sys/i386/compile/SORALX
Preloaded elf kernel "/boot/kernel/kernel" at 0xc09e0000.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium/P55C (quarter-micron) (265.26-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x581  Stepping = 1
  Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
real memory  = 167706624 (159 MB)
avail memory = 153288704 (146 MB)
Intel Pentium detected, installing workaround for F00F bug
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcibios: BIOS version 2.10
Using $PIR table, 4 entries at 0xc00fdf80
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci_cfgintr: 0:7 INTD BIOS irq 9
pci_cfgintr: 0:8 INTA BIOS irq 9
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0xfcd0-0xfcdf at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
pci0: <serial bus, USB> at device 7.2 (no driver attached)
piix0: <PIIX Timecounter> port 0x2180-0x218f at device 7.3 on pci0
Timecounter "PIIX" frequency 3579545 Hz quality 0
pci0: <display, VGA> at device 8.0 (no driver attached)
cbb0: <RF5C478 PCI-CardBus Bridge> at device 10.0 on pci0
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pci_cfgintr: 0:10 INTA routed to irq 9
cbb0: [MPSAFE]
cbb1: <RF5C478 PCI-CardBus Bridge> at device 10.1 on pci0
cardbus1: <CardBus bus> on cbb1
pccard1: <16-bit PCCard bus> on cbb1
pci_cfgintr: 0:10 INTB routed to irq 9
cbb1: [MPSAFE]
orm0: <Option ROM> at iomem 0xc0000-0xcbfff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 8250 or not responding
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0c02> can't assign resources (port)
unknown: <PNP0303> can't assign resources (port)
sbc0: <ESS ES1879> at port 0x320-0x321,0x388-0x38b,0x220-0x22f irq 5 drq 5,1 on isa0
pcm0: <ESS 18xx DSP> on sbc0
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0f13> can't assign resources (irq)
Timecounter "TSC" frequency 265264956 Hz quality 800
Timecounters tick every 10.000 msec
dc0: <Linksys PCM200 EtherFast 10/100 CardBus ethernet adapter, v.03 (ADMtek Centaur-C)> port 0x1000-0x10ff mem 0x88002000-0x880023ff irq 9 at device 0.0 on cardbus1
dc0: Ethernet address: 00:04:5a:a6:53:c0
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
GEOM: create disk ad0 dp=0xc23ac560
ad0: 3909MB <FUJITSU MHC2040AT> [7944/16/63] at ata0-master UDMA33
acd0: CDROM <TOSHIBA CD-ROM XM-1802B> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s1a
dc0: watchdog timeout
dc0: watchdog timeout
dc0: watchdog timeout
dc0: watchdog timeout


Relevant part of `pciconf -lv`:

hostb0 at pci0:0:0:	class=0x060000 card=0x00000000 chip=0x71008086 rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82439TX System Controller (MTXC), part of 430TX chipset'
    class    = bridge
    subclass = HOST-PCI
[...]
cbb0 at pci0:10:0:	class=0x060700 card=0x801c104d chip=0x04781180 rev=0x03 hdr=0x02
    vendor   = 'Communication Automation Corporation'
    device   = 'RL5c478 CardBus Controller'
    class    = bridge
    subclass = PCI-CardBus
cbb1 at pci0:10:1:	class=0x060700 card=0x801c104d chip=0x04781180 rev=0x03 hdr=0x02
    vendor   = 'Communication Automation Corporation'
    device   = 'RL5c478 CardBus Controller'
    class    = bridge
    subclass = PCI-CardBus
dc0 at pci2:0:0:	class=0x020000 card=0xab091737 chip=0xab091737 rev=0x11 hdr=0x00
    vendor   = 'Linksys'
    device   = 'PCM200 10/100 CardBus Ethernet Adapter'
    class    = network
    subclass = ethernet


`ifconfig`:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	inet 127.0.0.1 netmask 0xff000000 
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
	ether 00:04:5a:a6:53:c0
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active


/usr/src/sys/pci/if_dc.c udiff:

--- ./if_dc.c	Sat Jan 24 22:23:21 2004
+++ /fd0/if_dc.c	Wed Oct 13 20:56:08 2004
@@ -217,6 +217,10 @@
 		"Microsoft MN-130 10/100" },
 	{ DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN130_FAKE,
 		"Microsoft MN-130 10/100" },
+	{ DC_VENDORID_LINKSYS, DC_DEVICEID_PCM200_AB08,
+		"Linksys PCM200 EtherFast 10/100 CardBus ethernet adapter, v.03 (ADMtek Centaur-C)" },
+	{ DC_VENDORID_LINKSYS, DC_DEVICEID_PCM200_AB09,
+		"Linksys PCM200 EtherFast 10/100 CardBus ethernet adapter, v.03 (ADMtek Centaur-C)" },
 	{ 0, 0, NULL }
 };
 
@@ -1978,6 +1982,7 @@
 	case DC_DEVICEID_3CSOHOB:
 	case DC_DEVICEID_MSMN120:
 	case DC_DEVICEID_MSMN130_FAKE: /* XXX avoid collision with PNIC*/
+	case DC_DEVICEID_PCM200_AB09:
 		sc->dc_type = DC_TYPE_AN985;
 		sc->dc_flags |= DC_64BIT_HASH;
 		sc->dc_flags |= DC_TX_USE_TX_INTR;


/usr/src/sys/pci/if_dcreg.h udiff:

--- ./if_dcreg.h	Fri Jan  9 14:13:56 2004
+++ /fd0/if_dcreg.h	Wed Oct 13 20:44:50 2004
@@ -1002,6 +1002,18 @@
 #define DC_DEVICEID_MSMN130	0x0002
 #define DC_DEVICEID_MSMN130_FAKE	0xFFF2
 
+/*
+ * Linksys vendor ID
+ */
+#define DC_VENDORID_LINKSYS	0x1737
+
+/*
+ * Linksys device IDs
+ */
+#define DC_DEVICEID_PCM200_AB08	0xab08
+#define DC_DEVICEID_PCM200_AB09	0xab09
+
 /*
  * PCI low memory base and low I/O base register, and
  * other PCI registers.


BTW, found some driver which seems to support the card:
ftp://ftp.scyld.com/pub/network/tulip.c

Timestamp: 0x416DE048
[SorAlx]  http://cydem.org.ua/
ridin' VN1500-B2



More information about the freebsd-hardware mailing list