iwm(4) works now, but 2.4GHz only.

> iwm0 at pci2 dev 0 function 0: Intel Dual Band Wireless AC 3160 (rev. 0x83)
> iwm0: interrupting at ioapic0 pin 18
> iwm0: hw rev: 0x160, fw ver 25.228 (API ver 9), address XX:XX:XX:XX:XX:XX
> iwm0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
> iwm0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
This commit is contained in:
nonaka 2015-02-13 18:57:46 +00:00
parent 2f421602b2
commit f8baa4e97e
21 changed files with 596 additions and 74 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: mi,v 1.1095 2015/01/26 00:20:19 christos Exp $
# $NetBSD: mi,v 1.1096 2015/02/13 18:57:46 nonaka Exp $
#
# Note: Don't delete entries from here - mark them as "obsolete" instead,
# unless otherwise stated below.
@ -145,6 +145,16 @@
./libdata/firmware/if_iwi/ipw2200-bss.fw base-firmware-root
./libdata/firmware/if_iwi/ipw2200-ibss.fw base-firmware-root
./libdata/firmware/if_iwi/ipw2200-sniffer.fw base-firmware-root
./libdata/firmware/if_iwm base-firmware-root
./libdata/firmware/if_iwm/LICENSE.iwlwifi-3160-ucode base-firmware-root
./libdata/firmware/if_iwm/LICENSE.iwlwifi-7260-ucode base-firmware-root
./libdata/firmware/if_iwm/LICENSE.iwlwifi-7265-ucode base-firmware-root
./libdata/firmware/if_iwm/README.iwlwifi-3160-ucode base-firmware-root
./libdata/firmware/if_iwm/README.iwlwifi-7260-ucode base-firmware-root
./libdata/firmware/if_iwm/README.iwlwifi-7265-ucode base-firmware-root
./libdata/firmware/if_iwm/iwlwifi-3160-9.ucode base-firmware-root
./libdata/firmware/if_iwm/iwlwifi-7260-9.ucode base-firmware-root
./libdata/firmware/if_iwm/iwlwifi-7265-9.ucode base-firmware-root
./libdata/firmware/if_iwn base-firmware-root
./libdata/firmware/if_iwn/LICENSE.iwlwifi-100-ucode base-firmware-root
./libdata/firmware/if_iwn/LICENSE.iwlwifi-1000-ucode base-firmware-root

View File

@ -1,4 +1,4 @@
# $NetBSD: NetBSD.dist.base,v 1.142 2015/01/25 15:49:39 christos Exp $
# $NetBSD: NetBSD.dist.base,v 1.143 2015/02/13 18:57:47 nonaka Exp $
# @(#)4.4BSD.dist 8.1 (Berkeley) 6/13/93
# Do not customize this file as it may be overwritten on upgrades.
@ -68,6 +68,7 @@
./libdata/firmware/if_athn
./libdata/firmware/if_ipw
./libdata/firmware/if_iwi
./libdata/firmware/if_iwm
./libdata/firmware/if_iwn
./libdata/firmware/if_otus
./libdata/firmware/if_urtwn

View File

@ -1,6 +1,7 @@
# $NetBSD: Makefile,v 1.8 2014/10/30 13:05:58 nonaka Exp $
# $NetBSD: Makefile,v 1.9 2015/02/13 18:57:47 nonaka Exp $
SUBDIR+= ipw3945 iwl100 iwl105 iwl135 iwl1000 iwl2000 iwl2030 \
iwl4965 iwl5000 iwl5150 iwl6000 iwl6005 iwl6030 iwl6050
SUBDIR+= ipw3945 iwl100 iwl105 iwl135 iwl1000 iwl2000 iwl2030 iwl3160 \
iwl4965 iwl5000 iwl5150 iwl6000 iwl6005 iwl6030 iwl6050 \
iwl7260 iwl7265
.include <bsd.subdir.mk>

View File

@ -0,0 +1,10 @@
# $NetBSD: Makefile,v 1.1 2015/02/13 18:57:47 nonaka Exp $
NOMAN= # define
FILES= dist/LICENSE.iwlwifi-3160-ucode dist/README.iwlwifi-3160-ucode \
dist/iwlwifi-3160-9.ucode
FILESDIR= /libdata/firmware/if_iwm
.include <bsd.files.mk>

View File

@ -0,0 +1,39 @@
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

View File

@ -0,0 +1,113 @@
Intel Wireless WiFi Link 3160 AC Adapter
Copyright (C) 2014 Intel Corporation. All rights reserved.
Microcode Package README.iwlwifi-3160-ucode
INDEX
1. OVERVIEW
2. INSTALLATION
3. LICENSE
1. OVERVIEW
The file iwlwifi-3160-9.ucode provided in this package must be
present on your system in order for the Intel Wireless WiFi Link
AGN driver for Linux (iwlwifi) to operate on your system.
The "-9" in the filename reflects an interface/architecture version number.
It will change only when changes in new uCode releases make the new uCode
incompatible with earlier drivers.
On adapter initialization, and at varying times during the uptime of
the adapter, the microcode is loaded into the memory on the network
adapter. The microcode provides the low level MAC features including
radio control and high precision timing events (backoff, transmit,
etc.) while also providing varying levels of packet filtering which can
be used to keep the host from having to handle packets that are not of
interest given the current operating mode of the device.
2. INSTALLATION
The iwlwifi driver will look for the file iwlwifi-3160-9.ucode using the
kernel's firmware_class infrastructure. More information can be found under
Documentation/firmware_class in kernel source. In order to function
correctly, you need to have this support enabled in your kernel. When
you configure the kernel, you can find this option in the following
location:
Device Drivers ->
Generic Driver Options ->
Userspace firmware loading support
You can determine if your kernel currently has firmware loader support
by looking for the CONFIG_FW_LOADER definition on your kernel's
.config.
In addition to having the firmware_class support in your kernel, you
must also have a working udev and uevent infrastructure configured.
The steps for installing and configuring udev are very
distribution specific.
Once you have the firmware loader in place (or if you aren't sure and
you just want to try things to see if it works), you need to install
the microcode file into the appropriate location.
Where that appropriate location is depends (again) on your system
distribution. You can typically find this location by looking in the
udev scripts of your distro, the default is /lib/firmware.
Installation of the firmware is simply:
% cp iwlwifi-3160-9.ucode /lib/firmware
You can now load the driver (see the INSTALL and README.iwlwifi provided with
the iwlwifi package for information on building and using that driver.)
3. LICENSE
The microcode in this package (iwlwifi-3160-9.ucode) is provided under the
terms of the following license (available in the file
LICENSE.iwlwifi-3160-ucode):
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Binary file not shown.

View File

@ -0,0 +1,10 @@
# $NetBSD: Makefile,v 1.1 2015/02/13 18:57:47 nonaka Exp $
NOMAN= # define
FILES= dist/LICENSE.iwlwifi-7260-ucode dist/README.iwlwifi-7260-ucode \
dist/iwlwifi-7260-9.ucode
FILESDIR= /libdata/firmware/if_iwm
.include <bsd.files.mk>

View File

@ -0,0 +1,39 @@
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

View File

@ -0,0 +1,113 @@
Intel Wireless WiFi Link 7260 AC Adapter
Copyright (C) 2014 Intel Corporation. All rights reserved.
Microcode Package README.iwlwifi-7260-ucode
INDEX
1. OVERVIEW
2. INSTALLATION
3. LICENSE
1. OVERVIEW
The file iwlwifi-7260-9.ucode provided in this package must be
present on your system in order for the Intel Wireless WiFi Link
AGN driver for Linux (iwlwifi) to operate on your system.
The "-9" in the filename reflects an interface/architecture version number.
It will change only when changes in new uCode releases make the new uCode
incompatible with earlier drivers.
On adapter initialization, and at varying times during the uptime of
the adapter, the microcode is loaded into the memory on the network
adapter. The microcode provides the low level MAC features including
radio control and high precision timing events (backoff, transmit,
etc.) while also providing varying levels of packet filtering which can
be used to keep the host from having to handle packets that are not of
interest given the current operating mode of the device.
2. INSTALLATION
The iwlwifi driver will look for the file iwlwifi-7260-9.ucode using the
kernel's firmware_class infrastructure. More information can be found under
Documentation/firmware_class in kernel source. In order to function
correctly, you need to have this support enabled in your kernel. When
you configure the kernel, you can find this option in the following
location:
Device Drivers ->
Generic Driver Options ->
Userspace firmware loading support
You can determine if your kernel currently has firmware loader support
by looking for the CONFIG_FW_LOADER definition on your kernel's
.config.
In addition to having the firmware_class support in your kernel, you
must also have a working udev and uevent infrastructure configured.
The steps for installing and configuring udev are very
distribution specific.
Once you have the firmware loader in place (or if you aren't sure and
you just want to try things to see if it works), you need to install
the microcode file into the appropriate location.
Where that appropriate location is depends (again) on your system
distribution. You can typically find this location by looking in the
udev scripts of your distro, the default is /lib/firmware.
Installation of the firmware is simply:
% cp iwlwifi-7260-9.ucode /lib/firmware
You can now load the driver (see the INSTALL and README.iwlwifi provided with
the iwlwifi package for information on building and using that driver.)
3. LICENSE
The microcode in this package (iwlwifi-7260-9.ucode) is provided under the
terms of the following license (available in the file
LICENSE.iwlwifi-7260-ucode):
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Binary file not shown.

View File

@ -0,0 +1,10 @@
# $NetBSD: Makefile,v 1.1 2015/02/13 18:57:47 nonaka Exp $
NOMAN= # define
FILES= dist/LICENSE.iwlwifi-7265-ucode dist/README.iwlwifi-7265-ucode \
dist/iwlwifi-7265-9.ucode
FILESDIR= /libdata/firmware/if_iwm
.include <bsd.files.mk>

View File

@ -0,0 +1,39 @@
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

View File

@ -0,0 +1,113 @@
Intel Wireless WiFi Link 7265 AC Adapter
Copyright (C) 2014 Intel Corporation. All rights reserved.
Microcode Package README.iwlwifi-7265-ucode
INDEX
1. OVERVIEW
2. INSTALLATION
3. LICENSE
1. OVERVIEW
The file iwlwifi-7265-9.ucode provided in this package must be
present on your system in order for the Intel Wireless WiFi Link
AGN driver for Linux (iwlwifi) to operate on your system.
The "-9" in the filename reflects an interface/architecture version number.
It will change only when changes in new uCode releases make the new uCode
incompatible with earlier drivers.
On adapter initialization, and at varying times during the uptime of
the adapter, the microcode is loaded into the memory on the network
adapter. The microcode provides the low level MAC features including
radio control and high precision timing events (backoff, transmit,
etc.) while also providing varying levels of packet filtering which can
be used to keep the host from having to handle packets that are not of
interest given the current operating mode of the device.
2. INSTALLATION
The iwlwifi driver will look for the file iwlwifi-7265-9.ucode using the
kernel's firmware_class infrastructure. More information can be found under
Documentation/firmware_class in kernel source. In order to function
correctly, you need to have this support enabled in your kernel. When
you configure the kernel, you can find this option in the following
location:
Device Drivers ->
Generic Driver Options ->
Userspace firmware loading support
You can determine if your kernel currently has firmware loader support
by looking for the CONFIG_FW_LOADER definition on your kernel's
.config.
In addition to having the firmware_class support in your kernel, you
must also have a working udev and uevent infrastructure configured.
The steps for installing and configuring udev are very
distribution specific.
Once you have the firmware loader in place (or if you aren't sure and
you just want to try things to see if it works), you need to install
the microcode file into the appropriate location.
Where that appropriate location is depends (again) on your system
distribution. You can typically find this location by looking in the
udev scripts of your distro, the default is /lib/firmware.
Installation of the firmware is simply:
% cp iwlwifi-7265-9.ucode /lib/firmware
You can now load the driver (see the INSTALL and README.iwlwifi provided with
the iwlwifi package for information on building and using that driver.)
3. LICENSE
The microcode in this package (iwlwifi-7265-9.ucode) is provided under the
terms of the following license (available in the file
LICENSE.iwlwifi-7265-ucode):
Copyright (c) 2014, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software
is permitted.
Limited patent license. Intel Corporation grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter
owns or controls to make, have made, use, import, offer to sell and
sell ("Utilize") this software, but solely to the extent that any
such patent is necessary to Utilize the software alone, or in
combination with an operating system licensed under an approved Open
Source license as listed by the Open Source Initiative at
http://opensource.org/licenses. The patent license shall not apply to
any other combinations which include this software. No hardware per
se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Binary file not shown.

View File

@ -1,4 +1,4 @@
# $NetBSD: ALL,v 1.24 2014/12/19 07:04:52 ozaki-r Exp $
# $NetBSD: ALL,v 1.25 2015/02/13 18:57:47 nonaka Exp $
# From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
#
# ALL machine description file
@ -17,7 +17,7 @@ include "arch/amd64/conf/std.amd64"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "ALL-$Revision: 1.24 $"
#ident "ALL-$Revision: 1.25 $"
maxusers 64 # estimated number of users
@ -912,6 +912,7 @@ gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
iwm* at pci? dev ? function ? # Intel Wireless WiFi Link 7xxx
iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
jme* at pci? dev ? function ? # JMicron JMC2[56]0 Ethernet

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.407 2015/02/07 13:20:00 pooka Exp $
# $NetBSD: GENERIC,v 1.408 2015/02/13 18:57:47 nonaka Exp $
#
# GENERIC machine description file
#
@ -22,7 +22,7 @@ include "arch/amd64/conf/std.amd64"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "GENERIC-$Revision: 1.407 $"
#ident "GENERIC-$Revision: 1.408 $"
maxusers 64 # estimated number of users
@ -734,7 +734,7 @@ gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
#iwm* at pci? dev ? function ? # Intel Centrino 7260
iwm* at pci? dev ? function ? # Intel Centrino 7260
ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet
hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ

View File

@ -1,4 +1,4 @@
# $NetBSD: ALL,v 1.390 2014/12/19 07:04:52 ozaki-r Exp $
# $NetBSD: ALL,v 1.391 2015/02/13 18:57:47 nonaka Exp $
# From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
#
# ALL machine description file
@ -17,7 +17,7 @@ include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "ALL-$Revision: 1.390 $"
#ident "ALL-$Revision: 1.391 $"
maxusers 64 # estimated number of users
@ -1034,6 +1034,7 @@ gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
iwm* at pci? dev ? function ? # Intel Wireless WiFi Link 7xxx
iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
jme* at pci? dev ? function ? # JMicron JMC2[56]0 Ethernet

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.1118 2014/11/16 16:01:41 manu Exp $
# $NetBSD: GENERIC,v 1.1119 2015/02/13 18:57:47 nonaka Exp $
#
# GENERIC machine description file
#
@ -22,7 +22,7 @@ include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "GENERIC-$Revision: 1.1118 $"
#ident "GENERIC-$Revision: 1.1119 $"
maxusers 64 # estimated number of users
@ -975,6 +975,7 @@ gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
iwm* at pci? dev ? function ? # Intel Wireless WiFi Link 7xxx
iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
jme* at pci? dev ? function ? # JMicron JMC2[56]0 Ethernet

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_iwm.c,v 1.4 2015/02/13 18:02:32 nonaka Exp $ */
/* $NetBSD: if_iwm.c,v 1.5 2015/02/13 18:57:47 nonaka Exp $ */
/* OpenBSD: if_iwm.c,v 1.18 2015/02/11 01:12:42 brad Exp */
/*
@ -105,7 +105,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.4 2015/02/13 18:02:32 nonaka Exp $");
__KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.5 2015/02/13 18:57:47 nonaka Exp $");
#include <sys/param.h>
#include <sys/conf.h>
@ -201,7 +201,6 @@ static const struct iwm_rate {
struct iwm_newstate_state {
struct work ns_wk;
struct ieee80211com *ns_ic;
enum ieee80211_state ns_nstate;
int ns_arg;
int ns_generation;
@ -415,9 +414,9 @@ static int iwm_release(struct iwm_softc *, struct iwm_node *);
static void iwm_calib_timeout(void *);
static void iwm_setrates(struct iwm_node *);
static int iwm_media_change(struct ifnet *);
static void iwm_newstate_cb(void *);
static void iwm_newstate_cb(struct work *, void *);
static int iwm_newstate(struct ieee80211com *, enum ieee80211_state, int);
static void iwm_endscan_cb(void *);
static void iwm_endscan_cb(struct work *, void *);
static int iwm_init_hw(struct iwm_softc *);
static int iwm_init(struct ifnet *);
static void iwm_start(struct ifnet *);
@ -1217,8 +1216,9 @@ iwm_alloc_tx_ring(struct iwm_softc *sc, struct iwm_tx_ring *ring, int qid)
+ offsetof(struct iwm_tx_cmd, scratch);
paddr += sizeof(struct iwm_device_cmd);
error = bus_dmamap_create(sc->sc_dmat, MCLBYTES,
IWM_NUM_OF_TBS, MCLBYTES, 0, BUS_DMA_NOWAIT, &data->map);
error = bus_dmamap_create(sc->sc_dmat, IWM_RBUF_SIZE,
IWM_NUM_OF_TBS, IWM_RBUF_SIZE, 0, BUS_DMA_NOWAIT,
&data->map);
if (error != 0) {
aprint_error_dev(sc->sc_dev,
"could not create TX buf DMA map\n");
@ -1868,7 +1868,7 @@ iwm_post_alive(struct iwm_softc *sc)
return EBUSY;
if (sc->sched_base != iwm_read_prph(sc, IWM_SCD_SRAM_BASE_ADDR)) {
DPRINTF(("%s: sched addr mismatch", DEVNAME(sc)));
DPRINTF(("%s: sched addr mismatch\n", DEVNAME(sc)));
error = EINVAL;
goto out;
}
@ -1992,10 +1992,9 @@ iwm_phy_db_get_section(struct iwm_softc *sc,
static int
iwm_phy_db_set_section(struct iwm_softc *sc,
struct iwm_calib_res_notif_phy_db *phy_db_notif)
struct iwm_calib_res_notif_phy_db *phy_db_notif, uint16_t size)
{
enum iwm_phy_db_section_type type = le16toh(phy_db_notif->type);
uint16_t size = le16toh(phy_db_notif->length);
struct iwm_phy_db_entry *entry;
uint16_t chg_id = 0;
@ -2008,8 +2007,8 @@ iwm_phy_db_set_section(struct iwm_softc *sc,
return EINVAL;
if (entry->data)
kmem_free(entry->data, entry->size);
entry->data = kmem_alloc(size, KM_NOSLEEP);
kmem_intr_free(entry->data, entry->size);
entry->data = kmem_intr_alloc(size, KM_NOSLEEP);
if (!entry->data) {
entry->size = 0;
return ENOMEM;
@ -2126,7 +2125,8 @@ iwm_send_phy_db_cmd(struct iwm_softc *sc, uint16_t type,
.flags = IWM_CMD_SYNC,
};
DPRINTFN(10, ("Sending PHY-DB hcmd of type %d, of length %d\n", type, length));
DPRINTFN(10, ("Sending PHY-DB hcmd of type %d, of length %d\n",
type, length));
/* Set phy db cmd variables */
phy_db_cmd.type = le16toh(type);
@ -2629,9 +2629,8 @@ iwm_parse_nvm_data(struct iwm_softc *sc,
data->sku_cap_11n_enable = 0;
if (!data->valid_tx_ant || !data->valid_rx_ant) {
DPRINTF(("%s: invalid antennas (0x%x, 0x%x)\n",
DEVNAME(sc), data->valid_tx_ant,
data->valid_rx_ant));
DPRINTF(("%s: invalid antennas (0x%x, 0x%x)\n", DEVNAME(sc),
data->valid_tx_ant, data->valid_rx_ant));
return EINVAL;
}
@ -2797,7 +2796,8 @@ iwm_load_firmware(struct iwm_softc *sc, enum iwm_ucode_type ucode_type)
ucode_type, offset, dlen));
error = iwm_firmware_load_chunk(sc, offset, data, dlen);
if (error) {
DPRINTF(("iwm_firmware_load_chunk() chunk %u of %u returned error %02d\n", i, fws->fw_count, error));
DPRINTF(("iwm_firmware_load_chunk() chunk %u of %u "
"returned error %02d\n", i, fws->fw_count, error));
return error;
}
}
@ -3058,7 +3058,8 @@ iwm_mvm_calc_rssi(struct iwm_softc *sc, struct iwm_rx_phy_info *phy_info)
* values by -256dBm: practically 0 power and a non-feasible 8 bit value.
*/
static int
iwm_mvm_get_signal_strength(struct iwm_softc *sc, struct iwm_rx_phy_info *phy_info)
iwm_mvm_get_signal_strength(struct iwm_softc *sc,
struct iwm_rx_phy_info *phy_info)
{
int energy_a, energy_b, energy_c, max_energy;
uint32_t val;
@ -3549,7 +3550,7 @@ iwm_send_cmd(struct iwm_softc *sc, struct iwm_host_cmd *hcmd)
}
cmd = mtod(m, struct iwm_device_cmd *);
error = bus_dmamap_load(sc->sc_dmat, data->map, cmd,
hcmd->len[0], NULL, BUS_DMA_NOWAIT | BUS_DMA_WRITE);
IWM_RBUF_SIZE, NULL, BUS_DMA_NOWAIT | BUS_DMA_WRITE);
if (error != 0) {
m_freem(m);
goto out;
@ -3582,16 +3583,15 @@ iwm_send_cmd(struct iwm_softc *sc, struct iwm_host_cmd *hcmd)
desc->num_tbs = 1;
DPRINTFN(8, ("iwm_send_cmd 0x%x size=%lu %s\n",
code, hcmd->len[0] + hcmd->len[1] + sizeof(cmd->hdr),
async ? " (async)" : ""));
code, sizeof(cmd->hdr) + paylen, async ? " (async)" : ""));
if (hcmd->len[0] > sizeof(cmd->data)) {
bus_dmamap_sync(sc->sc_dmat, data->map, 0, hcmd->len[0],
BUS_DMASYNC_PREWRITE);
if (paylen > sizeof(cmd->data)) {
bus_dmamap_sync(sc->sc_dmat, data->map, 0,
sizeof(cmd->hdr) + paylen, BUS_DMASYNC_PREWRITE);
} else {
bus_dmamap_sync(sc->sc_dmat, ring->cmd_dma.map,
(char *)(void *)cmd - (char *)(void *)ring->cmd_dma.vaddr,
hcmd->len[0] + 4, BUS_DMASYNC_PREWRITE);
sizeof(cmd->hdr) + paylen, BUS_DMASYNC_PREWRITE);
}
bus_dmamap_sync(sc->sc_dmat, ring->desc_dma.map,
(char *)(void *)desc - (char *)(void *)ring->desc_dma.vaddr,
@ -5284,8 +5284,7 @@ iwm_release(struct iwm_softc *sc, struct iwm_node *in)
static struct ieee80211_node *
iwm_node_alloc(struct ieee80211_node_table *nt)
{
return kmem_zalloc(sizeof (struct iwm_node), KM_NOSLEEP | M_ZERO);
return malloc(sizeof(struct iwm_node), M_80211_NODE, M_NOWAIT | M_ZERO);
}
static void
@ -5417,16 +5416,15 @@ iwm_media_change(struct ifnet *ifp)
}
static void
iwm_newstate_cb(void *wk)
iwm_newstate_cb(struct work *wk, void *v)
{
struct iwm_softc *sc = v;
struct ieee80211com *ic = &sc->sc_ic;
struct iwm_newstate_state *iwmns = (void *)wk;
struct ieee80211com *ic = iwmns->ns_ic;
enum ieee80211_state nstate = iwmns->ns_nstate;
int generation = iwmns->ns_generation;
struct iwm_node *in;
int arg = iwmns->ns_arg;
struct ifnet *ifp = IC2IFP(ic);
struct iwm_softc *sc = ifp->if_softc;
int error;
kmem_free(iwmns, sizeof(*iwmns));
@ -5530,6 +5528,7 @@ iwm_newstate_cb(void *wk)
break; }
default:
DPRINTF(("%s: unsupported state %d\n", DEVNAME(sc), nstate));
break;
}
@ -5545,13 +5544,12 @@ iwm_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
callout_stop(&sc->sc_calib_to);
iwmns = kmem_alloc(sizeof(*iwmns), KM_NOSLEEP);
iwmns = kmem_intr_alloc(sizeof(*iwmns), KM_NOSLEEP);
if (!iwmns) {
DPRINTF(("%s: allocating state cb mem failed\n", DEVNAME(sc)));
return ENOMEM;
}
iwmns->ns_ic = ic;
iwmns->ns_nstate = nstate;
iwmns->ns_arg = arg;
iwmns->ns_generation = sc->sc_generation;
@ -5562,7 +5560,7 @@ iwm_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
}
static void
iwm_endscan_cb(void *arg)
iwm_endscan_cb(struct work *work __unused, void *arg)
{
struct iwm_softc *sc = arg;
struct ieee80211com *ic = &sc->sc_ic;
@ -6102,7 +6100,7 @@ iwm_notif_intr(struct iwm_softc *sc)
hw = le16toh(sc->rxq.stat->closed_rb_num) & 0xfff;
while (sc->rxq.cur != hw) {
struct iwm_rx_data *data = &sc->rxq.data[sc->rxq.cur];
struct iwm_rx_packet *pkt;
struct iwm_rx_packet *pkt, tmppkt;
struct iwm_cmd_response *cresp;
int qid, idx;
@ -6133,7 +6131,9 @@ iwm_notif_intr(struct iwm_softc *sc)
break;
case IWM_REPLY_RX_MPDU_CMD:
tmppkt = *pkt; // XXX m is freed by ieee80211_input()
iwm_mvm_rx_rx_mpdu(sc, pkt, data);
pkt = &tmppkt;
break;
case IWM_TX_CMD:
@ -6163,7 +6163,11 @@ iwm_notif_intr(struct iwm_softc *sc)
struct iwm_calib_res_notif_phy_db *phy_db_notif;
SYNC_RESP_STRUCT(phy_db_notif, pkt);
iwm_phy_db_set_section(sc, phy_db_notif);
uint16_t size = le16toh(phy_db_notif->length);
bus_dmamap_sync(sc->sc_dmat, data->map,
sizeof(*pkt) + sizeof(*phy_db_notif),
size, BUS_DMASYNC_POSTREAD);
iwm_phy_db_set_section(sc, phy_db_notif, size);
break; }
@ -6437,23 +6441,23 @@ iwm_intr(void *arg)
*/
static const pci_product_id_t iwm_devices[] = {
0x08b1,
#if 0
PCI_PRODUCT_INTEL_WL_7260_1,
PCI_PRODUCT_INTEL_WL_7260_2,
#endif
PCI_PRODUCT_INTEL_WIFI_LINK_7260_1,
PCI_PRODUCT_INTEL_WIFI_LINK_7260_2,
PCI_PRODUCT_INTEL_WIFI_LINK_3160_1,
PCI_PRODUCT_INTEL_WIFI_LINK_3160_2,
PCI_PRODUCT_INTEL_WIFI_LINK_7265_1,
PCI_PRODUCT_INTEL_WIFI_LINK_7265_2,
};
static int
iwm_match(device_t parent, cfdata_t match __unused, void *aux)
{
struct pci_attach_args *pa = aux;
size_t i;
if (PCI_VENDOR(pa->pa_id) != PCI_VENDOR_INTEL)
return 0;
for (i = 0; i < __arraycount(iwm_devices); i++)
for (size_t i = 0; i < __arraycount(iwm_devices); i++)
if (PCI_PRODUCT(pa->pa_id) == iwm_devices[i])
return 1;
@ -6492,14 +6496,11 @@ iwm_attach_hook(device_t dev)
KASSERT(!cold);
sc->sc_wantresp = -1;
if (iwm_preinit(sc) != 0)
return;
sc->sc_flags |= IWM_FLAG_ATTACHED;
ic->ic_ifp = ifp;
aprint_normal_dev(sc->sc_dev,
"hw rev: 0x%x, fw ver %d.%d (API ver %d), address %s\n",
sc->sc_hw_rev & IWM_CSR_HW_REV_TYPE_MSK,
@ -6508,6 +6509,7 @@ iwm_attach_hook(device_t dev)
IWM_UCODE_API(sc->sc_fwver),
ether_sprintf(sc->sc_nvm.hw_addr));
ic->ic_ifp = ifp;
ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */
ic->ic_opmode = IEEE80211_M_STA; /* default to BSS mode */
ic->ic_state = IEEE80211_S_INIT;
@ -6550,9 +6552,9 @@ iwm_attach_hook(device_t dev)
IFQ_SET_READY(&ifp->if_snd);
memcpy(ifp->if_xname, DEVNAME(sc), IFNAMSIZ);
if_attach(ifp);
ic->ic_debug = 0;
if_initialize(ifp);
ieee80211_ifattach(ic);
if_register(ifp);
ic->ic_node_alloc = iwm_node_alloc;
@ -6565,7 +6567,6 @@ iwm_attach_hook(device_t dev)
iwm_radiotap_attach(sc);
callout_init(&sc->sc_calib_to, 0);
callout_setfunc(&sc->sc_calib_to, iwm_calib_timeout, sc);
iwm_radiotap_attach(sc);
//task_set(&sc->init_task, iwm_init_task, sc);
}
@ -6585,6 +6586,7 @@ iwm_attach(device_t parent, device_t self, void *aux)
sc->sc_pct = pa->pa_pc;
sc->sc_pcitag = pa->pa_tag;
sc->sc_dmat = pa->pa_dmat;
sc->sc_pciid = pa->pa_id;
pci_aprint_devinfo(pa, NULL);
@ -6639,8 +6641,27 @@ iwm_attach(device_t parent, device_t self, void *aux)
}
aprint_normal_dev(self, "interrupting at %s\n", intrstr);
/* only one firmware possibility for now */
sc->sc_fwname = IWM_FWNAME;
sc->sc_wantresp = -1;
switch (PCI_PRODUCT(sc->sc_pciid)) {
case PCI_PRODUCT_INTEL_WIFI_LINK_7260_1:
case PCI_PRODUCT_INTEL_WIFI_LINK_7260_2:
sc->sc_fwname = "iwlwifi-7260-9.ucode";
break;
case PCI_PRODUCT_INTEL_WIFI_LINK_3160_1:
case PCI_PRODUCT_INTEL_WIFI_LINK_3160_2:
sc->sc_fwname = "iwlwifi-3160-9.ucode";
break;
case PCI_PRODUCT_INTEL_WIFI_LINK_7265_1:
case PCI_PRODUCT_INTEL_WIFI_LINK_7265_2:
sc->sc_fwname = "iwlwifi-7265-9.ucode";
break;
default:
aprint_error_dev(self, "unknown product %#x",
PCI_PRODUCT(sc->sc_pciid));
return;
}
DPRINTF(("%s: firmware=%s\n", DEVNAME(sc), sc->sc_fwname));
sc->sc_fwdmasegsz = IWM_FWDMASEGSZ;
/*
@ -6697,9 +6718,9 @@ iwm_attach(device_t parent, device_t self, void *aux)
}
workqueue_create(&sc->sc_eswq, "iwmes",
(void *)iwm_endscan_cb, sc, PRI_NONE, IPL_NET, 0);
iwm_endscan_cb, sc, PRI_NONE, IPL_NET, 0);
workqueue_create(&sc->sc_nswq, "iwmns",
(void *)iwm_newstate_cb, sc, PRI_NONE, IPL_NET, 0);
iwm_newstate_cb, sc, PRI_NONE, IPL_NET, 0);
/* Clear pending interrupts. */
IWM_WRITE(sc, IWM_CSR_INT, 0xffffffff);

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_iwmvar.h,v 1.2 2015/02/13 17:14:06 nonaka Exp $ */
/* $NetBSD: if_iwmvar.h,v 1.3 2015/02/13 18:57:47 nonaka Exp $ */
/* OpenBSD: if_iwmvar.h,v 1.3 2015/02/07 07:10:44 phessler Exp */
/*
@ -138,7 +138,6 @@ struct iwm_tx_radiotap_header {
(1 << IEEE80211_RADIOTAP_CHANNEL))
#define IWM_UCODE_SECT_MAX 6
#define IWM_FWNAME "iwm-7260-9"
#define IWM_FWDMASEGSZ (192*1024)
/* sanity check value */
#define IWM_FWMAXSIZE (2*1024*1024)
@ -365,7 +364,7 @@ struct iwm_bf_data {
};
struct iwm_softc {
struct device *sc_dev;
device_t sc_dev;
struct ethercom sc_ec;
struct ieee80211com sc_ic;
@ -382,6 +381,7 @@ struct iwm_softc {
bus_dma_tag_t sc_dmat;
pci_chipset_tag_t sc_pct;
pcitag_t sc_pcitag;
pcireg_t sc_pciid;
const void *sc_ih;
/* TX scheduler rings. */