Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Mar 2003 07:22:39 -0500
From:      Daniel Eischen <deischen@freebsd.org>
To:        freebsd-mobile@freebsd.org
Subject:   Hacking in support for DWL-650H
Message-ID:  <3E71C98F.35AA2C9D@freebsd.org>

next in thread | raw e-mail | index | archive | help
[ Should this go to -current instead of -mobile? ]

I just got a D-Link DWL-650H 802.11b WLAN card.  Before
hacking the kernel, it gets probed as:

  pccard0: CIS version PC Card Standard 5.0
  pccard0: CIS info: D-Link Corporation, D-Link DWL-650H 11Mbps WLAN Adapter, 1.00
  pccard0: Manufacturer code 0x149, product 0x1
  pccard0: function 0: network adapter, ccr addr 3e0 mask 7
  pccard0: function 0, config table entry 1: I/O card; irq mask ffff; iomask 7, iospace 0-47; memspace 0-3ff; mwait_required rdybsy_active io16 irqshare irqlevel
  pccard0: <unknown card> (manufacturer=0x0149, product=0x0001) at function 0
  pccard0:    CIS info: D-Link Corporation, D-Link DWL-650H 11Mbps WLAN Adapter, 1.00

I added the card to pccarddevs and hooked in support to wi (see patch
at end).  It now gets probed as:

  wi0: <D-Link DWL-650H> at port 0x100-0x147 irq 11 function 0 config 1 on pccard0
  wi0: 802.11 address: 00:05:5d:d7:58:6a
  wi0: using RF:PRISM2 MAC:HFA3841
  wi0: Symbol Firmware: Primary (2.1.2), Station (2.50.13)
  wi0: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
  wi0: bpf attached
  wi0: bpf attached

I can set its ssid and channel, but as soon as I try to assign it
a static address/netmask or use dhclient, it hangs the kernel.
I was able to recover the messages:

  vespa kernel: wi0: timeout in wi_cmd 0x0000; event status 0x0000
  vespa kernel: wi0: timeout in wi_cmd 0x0000; event status 0x0000
  vespa kernel: wi0: wi_cmd: busy bit won't clear.
  vespa last message repeated 2 times
  vespa kernel: wi0: init failed
  vespa kernel: wi0: wi_cmd: busy bit won't clear.
  vespa last message repeated 16 times
  vespa kernel: wi0: failed to allocate 1585 bytes on NIC
  vespa kernel: wi0: tx buffer allocation failed (error 12)
  vespa kernel: wi0: interface not running
  vespa kernel: wi0: wi_cmd: busy bit won't clear.
  vespa kernel: wi0: timeout in wi_seek to fc80/0
  vespa last message repeated 2 times
  vespa kernel: wi0: wi_cmd: busy bit won't clear.
  vespa kernel: wi0: timeout in wi_seek to fc00/0
  vespa kernel: wi0: timeout in wi_seek to fc81/0
  vespa kernel: wi0: timeout in wi_seek to fc0c/0
  vespa kernel: wi0: timeout in wi_seek to fc02/0
  vespa kernel: wi0: timeout in wi_seek to fc03/0
  vespa kernel: wi0: timeout in wi_seek to fc04/0
  vespa kernel: wi0: timeout in wi_seek to fc01/0
  vespa kernel: wi0: timeout in wi_seek to fc09/0
  vespa kernel: wi0: timeout in wi_seek to fc07/0
  vespa kernel: wi0: timeout in wi_seek to fc83/0
  vespa kernel: wi0: timeout in wi_seek to fc84/0
  vespa kernel: wi0: timeout in wi_seek to fc0e/0
  vespa kernel: wi0: timeout in wi_seek to fc85/0
  vespa kernel: wi0: timeout in wi_seek to fc2a/0
  vespa kernel: wi0: timeout in wi_seek to fc28/0
  vespa kernel: wi0: timeout in wi_seek to fc80/0
  vespa kernel: wi0: wi_cmd: busy bit won't clear.
  vespa kernel: wi0: timeout in wi_seek to fce2/0
  vespa kernel: acpi_button0: power button pressed
  vespa kernel: wi0: detached

Any ideas?  I checked NetBSD and saw that they added recognition for
the DWL-650H; the commit message also says it's been tested.

BTW, I've got a Dell True-Moble 1150 (Lucent WaveLAN/IEEE) that 
works just fine with wi.  The kernel is current from the last
2 or 3 days.

-- 
Dan Eischen

%%%%%%%%%%%%%%%

Index: pccard/pccarddevs
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/dev/pccard/pccarddevs,v
retrieving revision 1.44
diff -u -r1.44 pccarddevs
--- pccard/pccarddevs	15 Feb 2003 13:57:52 -0000	1.44
+++ pccard/pccarddevs	14 Mar 2003 11:33:42 -0000
@@ -477,6 +477,7 @@
 product DLINK DE660		{ "D-Link", "DE-660", NULL, NULL } D-Link DE-660
 product DLINK DE660PLUS		{ "D-Link", "DE-660+", NULL, NULL } D-Link DE-660+
 product DLINK DFE670TXD		{ "D-Link", "DFE-670TXD", NULL, NULL } D-Link DFE-670TXD
+product DLINK DWL650H		{ "D-Link&spCorporation", "D-Link&spDWL-650H&sp11Mbps&spWLAN&spAdapter", NULL, NULL } D-Link DWL-650H
 product	DYNALINK L10C		{ "DYNALINK", "L10C", NULL, NULL } Dynalink L10C
 /*
  * vendor ID of EPX_AA2000 is Fujitsu (0x0004) and product ID is 0x2000, but
Index: pccard/pccarddevs.h
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/dev/pccard/pccarddevs.h,v
retrieving revision 1.44
diff -u -r1.44 pccarddevs.h
--- pccard/pccarddevs.h	15 Feb 2003 13:58:28 -0000	1.44
+++ pccard/pccarddevs.h	14 Mar 2003 11:33:49 -0000
@@ -854,6 +854,9 @@
 #define	PCMCIA_CIS_DLINK_DFE670TXD	{ "D-Link", "DFE-670TXD", NULL, NULL }
 #define	PCMCIA_PRODUCT_DLINK_DFE670TXD	-1
 #define	PCMCIA_STR_DLINK_DFE670TXD	"D-Link DFE-670TXD"
+#define	PCMCIA_CIS_DLINK_DWL650H	{ "D-Link Corporation", "D-Link DWL-650H 11Mbps WLAN Adapter", NULL, NULL }
+#define	PCMCIA_PRODUCT_DLINK_DWL650H	-1
+#define	PCMCIA_STR_DLINK_DWL650H	"D-Link DWL-650H"
 #define	PCMCIA_CIS_DYNALINK_L10C	{ "DYNALINK", "L10C", NULL, NULL }
 #define	PCMCIA_PRODUCT_DYNALINK_L10C	-1
 #define	PCMCIA_STR_DYNALINK_L10C	"Dynalink L10C"
Index: wi/if_wi_pccard.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/dev/wi/if_wi_pccard.c,v
retrieving revision 1.17
diff -u -r1.17 if_wi_pccard.c
--- wi/if_wi_pccard.c	15 Feb 2003 13:59:54 -0000	1.17
+++ wi/if_wi_pccard.c	14 Mar 2003 11:26:34 -0000
@@ -136,6 +136,7 @@
 	PCMCIA_CARD(COREGA, WIRELESS_LAN_PCC_11, 0),
 	PCMCIA_CARD(COREGA, WIRELESS_LAN_PCCA_11, 0),
 	PCMCIA_CARD(COREGA, WIRELESS_LAN_PCCB_11, 0),
+	PCMCIA_CARD(DLINK, DWL650H, 0),
 	PCMCIA_CARD2(ELSA, XI300_IEEE, YIS_YWL11B, 0),
 	PCMCIA_CARD(ELSA, XI300_IEEE, 0),
 	PCMCIA_CARD(ELSA, XI325_IEEE, 0),
%%%%%%%%%%%%%%%

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E71C98F.35AA2C9D>