From owner-freebsd-hackers Tue Aug 7 12:42:14 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from green.postal.net (adsl-208-190-118-113.dsl.hstntx.swbell.net [208.190.118.113]) by hub.freebsd.org (Postfix) with SMTP id D938737B405 for ; Tue, 7 Aug 2001 12:42:07 -0700 (PDT) (envelope-from emj@postal.net) Received: (qmail 18285 invoked from network); 7 Aug 2001 19:42:03 -0000 Received: from cp562536-a.alngtn1.va.home.com (HELO postal.net) (emj@65.1.249.48) by adsl-208-190-118-113.dsl.hstntx.swbell.net with SMTP TLS RC4-MD5; 7 Aug 2001 19:42:03 -0000 Message-ID: <3B7043BC.39926AD8@postal.net> Date: Tue, 07 Aug 2001 15:38:36 -0400 From: "Eric M. Johnston" X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en,pdf MIME-Version: 1.0 To: freebsd-hackers Subject: Re: Linksys WDT11/WPC11 Combo References: <3B6DF2F2.9080302@nettek-llc.com> Content-Type: multipart/mixed; boundary="------------030FF1D367CD8E619FBEF092" Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multi-part message in MIME format. --------------030FF1D367CD8E619FBEF092 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Steve, Here's a patch I did against -STABLE circa mid-June. It probably won't apply cleanly today -- I think the 2x MAC address read has been MFC'd. Pretty minor changes, though; it works great for me. Enjoy, Eric Steve Logue wrote: > > Sorry if this is a duplicate.... > > Hello, > > Does anyone have any patches for preliminary support of the Linksys > WDT11/WPC11 wireless ethernet combo? The WDT card uses the PLX PCI9052 > chipset and shows up under -STABLE's dmesg as: > > pci0: (vendor=0x16ab, dev=0x1102) at 19.0 irq 12 > > With what I have been reading so far on the PLX thread, I appear to have > a different dev number. Most people have talked about dev=1101, but I > have dev=1102. Is this a new rev of the board? How can I get this > working? > > Patches for -CURRENT or -STABLE would be appreciated. > > -STEVEl > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message --------------030FF1D367CD8E619FBEF092 Content-Type: text/plain; charset=us-ascii; name="wi.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="wi.patch" --- share/man/man4/wi.save Sun Jun 10 06:13:04 2001 +++ share/man/man4/wi.4 Sun Jun 10 06:09:01 2001 @@ -53,6 +53,12 @@ Both the original 2Mbps WaveLAN/IEEE cards and the newer 6Mbps WaveLAN/IEEE Turbo adapters are supported. .Pp +Additionally, the +.Nm +driver supports PCI adapters for the cards based PLX Techology's PCI 9052, +such as the Linksys WDT11 Wireless PCI Adapter which works in conjunction +with the WPC11 Wireless Network PC Card. +.Pp The core of the WaveLAN/IEEE is the Lucent Hermes controller. All host/device interaction is via programmed I/O with the Hermes. --- sys/i386/isa/if_wi.save Sat Jun 9 23:51:31 2001 +++ sys/i386/isa/if_wi.c Sun Jun 10 06:31:10 2001 @@ -230,6 +230,7 @@ wi_pci_probe(dev) struct wi_softc *sc; sc = device_get_softc(dev); + /* XXX Getting a little unwieldy... */ if ((pci_get_vendor(dev) == WI_PCI_VENDOR_EUMITCOM) && (pci_get_device(dev) == WI_PCI_DEVICE_PRISM2STA)) { sc->wi_prism2 = 1; @@ -237,6 +238,20 @@ wi_pci_probe(dev) "PRISM2STA PCI WaveLAN/IEEE 802.11"); return (0); } + if ((pci_get_vendor(dev) == WI_PCI_VENDOR_LINKSYS) && + (pci_get_device(dev) == WI_PCI_DEVICE_WDT11)) { + sc->wi_prism2 = 1; + device_set_desc(dev, + "Linksys WDT11 Wireless PCI Adapter"); + return (0); + } + if ((pci_get_vendor(dev) == WI_PCI_VENDOR_GLOBALSUN) && + (pci_get_device(dev) == WI_PCI_DEVICE_GL24110P)) { + sc->wi_prism2 = 1; + device_set_desc(dev, + "Global Sun GL24110P Wireless PCI Adapter"); + return (0); + } return(ENXIO); } @@ -399,9 +414,15 @@ wi_generic_attach(device_t dev) /* Reset the NIC. */ wi_reset(sc); - /* Read the station address. */ + /* + * Read the station address. + * And do it twice. I've seen PRISM-based cards that return + * an error when trying to read it the first time, which causes + * the probe to fail. + */ mac.wi_type = WI_RID_MAC_NODE; mac.wi_len = 4; + wi_read_record(sc, (struct wi_ltv_gen *)&mac); if ((error = wi_read_record(sc, (struct wi_ltv_gen *)&mac)) != 0) { device_printf(dev, "mac read failed %d\n", error); wi_free(dev); --- sys/i386/isa/if_wireg.save Sat Jun 9 23:51:41 2001 +++ sys/i386/isa/if_wireg.h Sun Jun 10 06:27:17 2001 @@ -147,7 +147,12 @@ struct wi_softc { #define WI_PCI_IORES 0x1C #define WI_PCI_VENDOR_EUMITCOM 0x1638 -#define WI_PCI_DEVICE_PRISM2STA 0x1100 +#define WI_PCI_DEVICE_PRISM2STA 0x1100 /* Eumitcom PCI WL11000 */ +#define WI_PCI_VENDOR_LINKSYS 0x16AB +#define WI_PCI_DEVICE_WDT11 0x1102 /* Linksys PCI WPC11 */ +#define WI_PCI_VENDOR_GLOBALSUN 0x16AB +#define WI_PCI_DEVICE_GL24110P 0x1101 /* Global Sun GL24110P */ + #define WI_HFA384X_SWSUPPORT0_OFF 0x28 #define WI_PRISM2STA_MAGIC 0x4A2D --------------030FF1D367CD8E619FBEF092-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message