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>