[prev in list] [next in list] [prev in thread] [next in thread] 

List:       netbsd-users
Subject:    Re: iwn 5100AGN for netbsd-5 success
From:       Chuck Zmudzinski <brchuckz () netscape ! net>
Date:       2010-12-17 19:08:55
Message-ID: 4D0BB547.5030405 () netscape ! net
[Download RAW message or body]

I finally got my iwn 5100 device working on netbsd-5.

Here is my solution for iwn 5100 AGN devices on netbsd-5
Tested on netbsd release 5.0.2, should work for any netbsd-5 release

After extracting the netbsd-5 kernel sources, change the following
files in /usr/src/sys/dev/pci:

1. Replace the netbsd-5 version of if_iwn.c (revision 1.22.4.3) with
    revision 1.33 of the same file

2. Replace the netbsd-5 version of if_iwnreg.h (revision 1.4) with
    revision 1.6 of the same file

3. Replace the netbsd-5 version of if_iwnvar.h (revision 1.4) with
    revision 1.6 of the same file

4. Add the firmware (iwlwifi-5000-1.ucode) for the 5100 AGN devices to
    the /libdata/firmware/if_iwn directory (download it from Intel's 
website)

5. Apply the following patch in the /usr/src/sys/dev/pci directory and
    then build and install the new kernel:
    (This patches if_iwn.c revision 1.33 with two small changes for netbsd-5
    compatibility and adds necessary revisions to pcidevs, pcidevs.h,
    pcidevs_data.h, and pcireg.h).

--- if_iwn.c    2009-09-10 20:28:20.000000000 -0500
+++ if_iwn.c    2010-12-17 11:31:52.000000000 -0600
@@ -1,6 +1,10 @@
  /*    $NetBSD: if_iwn.c,v 1.33 2009/09/11 01:28:20 christos Exp $    */
  /*    $OpenBSD: if_iwn.c,v 1.49 2009/03/29 21:53:52 sthen Exp $    */
-
+/*-
+ *    This file is modified for use with netbsd-5 release kernels
+ *    The changes in revision 1.25 of iwn.c have been removed
+ *    The iwn_ioctl routine was modified to remove case SIOCSIFADDR:
+ */
  /*-
   * Copyright (c) 2007, 2008
   *    Damien Bergamini <damien.bergamini@free.fr>
@@ -3194,11 +3198,7 @@
      s = splnet();

      switch (cmd) {
-    case SIOCSIFADDR:
-        /* FALLTHROUGH */
      case SIOCSIFFLAGS:
-        if ((error = ifioctl_common(ifp, cmd, data)) != 0)
-            break;
          if (ifp->if_flags & IFF_UP) {
              /*
               * resync the radio state just in case we missed
--- pcidevs.h    2009-03-20 08:02:17.000000000 -0500
+++ pcidevs.h    2010-12-10 07:59:27.000000000 -0600
@@ -1,12 +1,16 @@
-/*    $NetBSD: pcidevs.h,v 1.963.4.1 2009/03/20 13:02:17 msaitoh Exp 
$    */
+/*    $NetBSD$    */

  /*
   * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.
   *
   * generated from:
- *    NetBSD: pcidevs,v 1.962 2008/10/15 18:30:29 bouyer Exp
+ *    NetBSD: pcidevs,v 1.962.4.1 2009/03/20 13:01:35 msaitoh Exp
   */

+/*-
+ *    This file is modified for use with netbsd-5 release kernels
+ *    The new 5100AGN iwn devices have been added
+ */
  /*
   * Copyright (c) 1995, 1996 Christopher G. Demetriou
   * All rights reserved.
@@ -2595,6 +2599,12 @@
  #define    PCI_PRODUCT_INTEL_PRO_WL_3945ABG_2    0x4227        /* 
PRO/Wireless LAN 3945ABG Mini-PCI Adapter */
  #define    PCI_PRODUCT_INTEL_PRO_WL_4965AGN_1    0x4229        /* 
PRO/Wireless LAN 4965AGN Mini-PCI Adapter */
  #define    PCI_PRODUCT_INTEL_PRO_WL_4965AGN_2    0x4230        /* 
PRO/Wireless LAN 4965AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5100AGN_1    0x4232        /* 
PRO/Wireless LAN 5100AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5300AGN_1    0x4235        /* 
PRO/Wireless LAN 5300AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5300AGN_2    0x4236        /* 
PRO/Wireless LAN 5300AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5100AGN_2    0x4237        /* 
PRO/Wireless LAN 5100AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5350AGN_1    0x423a        /* 
PRO/Wireless LAN 5350AGN Mini-PCI Adapter */
+#define    PCI_PRODUCT_INTEL_PRO_WL_5350AGN_2    0x423b        /* 
PRO/Wireless LAN 5350AGN Mini-PCI Adapter */
  #define    PCI_PRODUCT_INTEL_80312_ATU    0x530d        /* 80310 ATU */
  #define    PCI_PRODUCT_INTEL_82371SB_ISA    0x7000        /* 82371SB 
(PIIX3) PCI-ISA Bridge */
  #define    PCI_PRODUCT_INTEL_82371SB_IDE    0x7010        /* 82371SB 
(PIIX3) IDE Interface */
--- pcidevs    2009-03-20 08:01:35.000000000 -0500
+++ pcidevs    2010-12-10 07:59:27.000000000 -0600
@@ -1,5 +1,9 @@
  $NetBSD: pcidevs,v 1.962.4.1 2009/03/20 13:01:35 msaitoh Exp $

+/*-
+ *    This file is modified for use with netbsd-5 release kernels
+ *    The new 5100AGN iwn devices have been added
+ */
  /*
   * Copyright (c) 1995, 1996 Christopher G. Demetriou
   * All rights reserved.
@@ -2588,6 +2592,12 @@
  product INTEL PRO_WL_3945ABG_2    0x4227    PRO/Wireless LAN 3945ABG 
Mini-PCI Adapter
  product INTEL PRO_WL_4965AGN_1    0x4229  PRO/Wireless LAN 4965AGN 
Mini-PCI Adapter
  product INTEL PRO_WL_4965AGN_2    0x4230  PRO/Wireless LAN 4965AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5100AGN_1    0x4232    PRO/Wireless LAN 5100AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5300AGN_1    0x4235    PRO/Wireless LAN 5300AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5300AGN_2    0x4236    PRO/Wireless LAN 5300AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5100AGN_2    0x4237    PRO/Wireless LAN 5100AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5350AGN_1    0x423a    PRO/Wireless LAN 5350AGN 
Mini-PCI Adapter
+product INTEL PRO_WL_5350AGN_2    0x423b    PRO/Wireless LAN 5350AGN 
Mini-PCI Adapter
  product INTEL 80312_ATU        0x530d    80310 ATU
  product INTEL 82371SB_ISA    0x7000    82371SB (PIIX3) PCI-ISA Bridge
  product INTEL 82371SB_IDE    0x7010    82371SB (PIIX3) IDE Interface
--- pcidevs_data.h    2009-03-20 08:02:17.000000000 -0500
+++ pcidevs_data.h    2010-12-10 07:59:27.000000000 -0600
@@ -1,12 +1,16 @@
-/*    $NetBSD: pcidevs_data.h,v 1.962.4.1 2009/03/20 13:02:17 msaitoh 
Exp $    */
+/*    $NetBSD$    */

  /*
   * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.
   *
   * generated from:
- *    NetBSD: pcidevs,v 1.962 2008/10/15 18:30:29 bouyer Exp
+ *    NetBSD: pcidevs,v 1.962.4.1 2009/03/20 13:01:35 msaitoh Exp
   */

+/*-
+ *    This file is modified for use with netbsd-5 release kernels
+ *    The new 5100AGN iwn devices have been added
+ */
  /*
   * Copyright (c) 1995, 1996 Christopher G. Demetriou
   * All rights reserved.
@@ -9208,6 +9212,30 @@
          "PRO/Wireless LAN 4965AGN Mini-PCI Adapter",
      },
      {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5100AGN_1,
+        "PRO/Wireless LAN 5100AGN Mini-PCI Adapter",
+    },
+    {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5300AGN_1,
+        "PRO/Wireless LAN 5300AGN Mini-PCI Adapter",
+    },
+    {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5300AGN_2,
+        "PRO/Wireless LAN 5300AGN Mini-PCI Adapter",
+    },
+    {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5100AGN_2,
+        "PRO/Wireless LAN 5100AGN Mini-PCI Adapter",
+    },
+    {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5350AGN_1,
+        "PRO/Wireless LAN 5350AGN Mini-PCI Adapter",
+    },
+    {
+        PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_WL_5350AGN_2,
+        "PRO/Wireless LAN 5350AGN Mini-PCI Adapter",
+    },
+    {
          PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_80312_ATU,
          "80310 ATU",
      },
@@ -14512,4 +14540,4 @@
          "Video Controller",
      },
  };
-const int pci_nproducts = 3027;
+const int pci_nproducts = 3033;
--- pcireg.h    2007-12-25 12:33:42.000000000 -0600
+++ pcireg.h    2010-12-10 07:59:27.000000000 -0600
@@ -1,5 +1,9 @@
-/*    $NetBSD: pcireg.h,v 1.57 2007/12/25 18:33:42 perry Exp $    */
-
+/*    $NetBSD: pcireg.h,v 1.61 2009/09/11 01:28:20 christos Exp $    */
+/*-
+ *    This file is modified for use with netbsd-5 release kernels
+ *    The changes in revisions 1.58, 1.59, and 1.60 of pcireg.h
+ *    have been removed
+ */
  /*
   * Copyright (c) 1995, 1996, 1999, 2000
   *     Christopher G. Demetriou.  All rights reserved.
@@ -536,6 +540,42 @@
  #define        PCI_PCIX_STATUS_MAXRS_128K    0x1c000000
  #define PCI_PCIX_STATUS_SCERR            0x20000000

+/*
+ * PCI Express; access via capability pointer.
+ */
+#define PCI_PCIE_XCAP        0x00
+#define PCI_PCIE_XCAP_SI    0x01000000
+#define PCI_PCIE_DCAP        0x04
+#define PCI_PCIE_DCSR        0x08
+#define PCI_PCIE_DCSR_ENA_NO_SNOOP    0x00000800
+#define PCI_PCIE_LCAP        0x0c
+#define PCI_PCIE_LCSR        0x10
+#define PCI_PCIE_LCSR_ASPM_L0S    0x00000001
+#define PCI_PCIE_LCSR_ASPM_L1    0x00000002
+#define PCI_PCIE_SLCAP        0x14
+#define PCI_PCIE_SLCAP_ABP    0x00000001
+#define PCI_PCIE_SLCAP_PCP    0x00000002
+#define PCI_PCIE_SLCAP_MSP    0x00000004
+#define PCI_PCIE_SLCAP_AIP    0x00000008
+#define PCI_PCIE_SLCAP_PIP    0x00000010
+#define PCI_PCIE_SLCAP_HPS    0x00000020
+#define PCI_PCIE_SLCAP_HPC    0x00000040
+#define PCI_PCIE_SLCSR        0x18
+#define PCI_PCIE_SLCSR_ABE    0x00000001
+#define PCI_PCIE_SLCSR_PFE    0x00000002
+#define PCI_PCIE_SLCSR_MSE    0x00000004
+#define PCI_PCIE_SLCSR_PDE    0x00000008
+#define PCI_PCIE_SLCSR_CCE    0x00000010
+#define PCI_PCIE_SLCSR_HPE    0x00000020
+#define PCI_PCIE_SLCSR_ABP    0x00010000
+#define PCI_PCIE_SLCSR_PFD    0x00020000
+#define PCI_PCIE_SLCSR_MSC    0x00040000
+#define PCI_PCIE_SLCSR_PDC    0x00080000
+#define PCI_PCIE_SLCSR_CC    0x00100000
+#define PCI_PCIE_SLCSR_MS    0x00200000
+#define PCI_PCIE_SLCSR_PDS    0x00400000
+#define PCI_PCIE_SLCSR_LACS    0x01000000
+#define PCI_PCIE_RCSR        0x1c

  /*
   * Interrupt Configuration Register; contains interrupt pin and line.


On 12/10/2010 9:25 PM, Chuck Zmudzinski wrote:
> Well I need to do more work on this...
>
> I got a chance to test netbsd-5 my iwn patch on a real wireless 
> network and it was not functional on netbsd-5. I could get a dhcp 
> lease, but no functional connection. When I tried to ping the router, 
> I got the following message on the console:
>
> arpresolve: can't allocate llinfo on iwn0 for 192.168.6.1
>
> I used a netbsd-current kernel using the same version of if_iwn.c as 
> in my patch to netbsd-5 (netbsd-current kernel from late September 
> 2009) on the same wireless network and it is functional with full 
> internet connectivity on iwn0.
>
>
> -----Original Message-----
> From: Chuck Zmudzinski <brchuckz@netscape.net>
> To: netbsd-users@netbsd.org
> Sent: Fri, Dec 10, 2010 11:55 am
> Subject: iwn 5100AGN for netbsd-5 success
>
>
> I saw in the mailing list archives a few weeks back that iwn(4) for 
> 5100/5300 AGN devices was working in netbsd-current but hasn't been 
> ported to netbsd-5 yet.  I decided to try and get it working in 
> netbsd-5 with minimal changes to the netbsd-5 kernel sources and have 
> had some success.
>
> Seven files were patched in src/sys/dev/pci: if_iwn.c, if_iwnreg.h 
> if_iwnvar.h, pcidevs, pcidevs.h pcidevs_data.h, and pcireg.h.
>
> The details:
>
> 1. Used the first of version of src/sys/dev/if_iwn.c that works with 
> the 5100/5300 iwn devices from the current branch (revision 1.33), but 
> removed the two lines associated with revision 1.25 of 
> src/sys/dev/if_iwn.c.  The iwn(4) driver failed in netbsd-5 with that 
> revision included - that revision was part of a major commit to the 
> netbsd-current kernel networking code.
>
> 2. Used the first version of src/sys/dev/if_iwnreg.h that works with 
> the 5100/5300 iwn devices from the current branch (revision 1.6).
>
> 3. Used the first version of src/sys/dev/if_iwnvar.h that works with 
> the 5100/5300 iwn devices from the current branch (revision 1.6).)
>
> 4. Edited the src/sys/dev/pcidevs file to add the new iwn devices 
> (these changes are derived from additions to pcidevs between revision 
> 1.967 and 1.968 of src/sys/dev/pcidevs, but I changed "Pro/Wireless" 
> to "PRO/Wireless" for consistency with the other devices):
>
> product INTEL PRO_WL_5100AGN_1    0x4232    PRO/Wireless LAN 5100AGN 
> Mini-PCI Adapter
> product INTEL PRO_WL_5300AGN_1    0x4235    PRO/Wireless LAN 5300AGN 
> Mini-PCI Adapter
> product INTEL PRO_WL_5300AGN_2    0x4236    PRO/Wireless LAN 5300AGN 
> Mini-PCI Adapter
> product INTEL PRO_WL_5100AGN_2    0x4237    PRO/Wireless LAN 5100AGN 
> Mini-PCI Adapter
> product INTEL PRO_WL_5350AGN_1    0x423a    PRO/Wireless LAN 5350AGN 
> Mini-PCI Adapter
> product INTEL PRO_WL_5350AGN_2    0x423b    PRO/Wireless LAN 5350AGN 
> Mini-PCI Adapter
>
> 5. Regenerated src/sys/dev/pcidevs.h and src/sys/dev/pcidevs_data.h 
> using 'make -f Makefile.pcidevs'
>
> 6. Edited the src/sys/dev/pcireg.h file to add the changes that were 
> included in the changes to pcireg.h when the support was added for the 
> new iwn(4) devices in netbsd-current.  It is essentially revision 1.57 
> (the netbsd-5 version) of pcireg.h patched with the changes between 
> revision 1.60 and 1.61 of pcireg.h.
>
> 7. Added the updated firmware for the 5100 AGN to my filesystem.
>
> The 5100 iwn(4) device in my Toshiba laptop successfully runs 
> 'dhclient iwn0' in my patched netbsd-5 kernel (I am using the 5.0.2 
> release) where it listened for dhcp offers, but I haven't tested it 
> with an actual wireless network in range yet to see if it makes a 
> connection - I assume it will work with a network in range; if it 
> doesn't when I try it I'll post a followup message.
>
> The actual patchfile against the netbsd-5 kernel is too big to post 
> here (about 300K) because the difference in if_iwn.c between the 
> netbsd-5 version (revision 1.22.4.3 I think) and revision 1.33 is 
> rather large.
>
>
>
>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic