Module Name: src
Committed By: nonaka
Date: Fri Feb 13 18:57:47 UTC 2015
Modified Files:
src/distrib/sets/lists/base: mi
src/etc/mtree: NetBSD.dist.base
src/external/intel-fw-public: Makefile
src/sys/arch/amd64/conf: ALL GENERIC
src/sys/arch/i386/conf: ALL GENERIC
src/sys/dev/pci: if_iwm.c if_iwmvar.h
Added Files:
src/external/intel-fw-public/iwl3160: Makefile
src/external/intel-fw-public/iwl3160/dist: LICENSE.iwlwifi-3160-ucode
README.iwlwifi-3160-ucode iwlwifi-3160-9.ucode
src/external/intel-fw-public/iwl7260: Makefile
src/external/intel-fw-public/iwl7260/dist: LICENSE.iwlwifi-7260-ucode
README.iwlwifi-7260-ucode iwlwifi-7260-9.ucode
src/external/intel-fw-public/iwl7265: Makefile
src/external/intel-fw-public/iwl7265/dist: LICENSE.iwlwifi-7265-ucode
README.iwlwifi-7265-ucode iwlwifi-7265-9.ucode
Log Message:
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
To generate a diff of this commit:
cvs rdiff -u -r1.1095 -r1.1096 src/distrib/sets/lists/base/mi
cvs rdiff -u -r1.142 -r1.143 src/etc/mtree/NetBSD.dist.base
cvs rdiff -u -r1.8 -r1.9 src/external/intel-fw-public/Makefile
cvs rdiff -u -r0 -r1.1 src/external/intel-fw-public/iwl3160/Makefile
cvs rdiff -u -r0 -r1.1 \
src/external/intel-fw-public/iwl3160/dist/LICENSE.iwlwifi-3160-ucode \
src/external/intel-fw-public/iwl3160/dist/README.iwlwifi-3160-ucode \
src/external/intel-fw-public/iwl3160/dist/iwlwifi-3160-9.ucode
cvs rdiff -u -r0 -r1.1 src/external/intel-fw-public/iwl7260/Makefile
cvs rdiff -u -r0 -r1.1 \
src/external/intel-fw-public/iwl7260/dist/LICENSE.iwlwifi-7260-ucode \
src/external/intel-fw-public/iwl7260/dist/README.iwlwifi-7260-ucode \
src/external/intel-fw-public/iwl7260/dist/iwlwifi-7260-9.ucode
cvs rdiff -u -r0 -r1.1 src/external/intel-fw-public/iwl7265/Makefile
cvs rdiff -u -r0 -r1.1 \
src/external/intel-fw-public/iwl7265/dist/LICENSE.iwlwifi-7265-ucode \
src/external/intel-fw-public/iwl7265/dist/README.iwlwifi-7265-ucode \
src/external/intel-fw-public/iwl7265/dist/iwlwifi-7265-9.ucode
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/amd64/conf/ALL
cvs rdiff -u -r1.407 -r1.408 src/sys/arch/amd64/conf/GENERIC
cvs rdiff -u -r1.390 -r1.391 src/sys/arch/i386/conf/ALL
cvs rdiff -u -r1.1118 -r1.1119 src/sys/arch/i386/conf/GENERIC
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/pci/if_iwm.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/pci/if_iwmvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/base/mi
diff -u src/distrib/sets/lists/base/mi:1.1095 src/distrib/sets/lists/base/mi:1.1096
--- src/distrib/sets/lists/base/mi:1.1095 Mon Jan 26 00:20:19 2015
+++ src/distrib/sets/lists/base/mi Fri Feb 13 18:57:46 2015
@@ -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
Index: src/etc/mtree/NetBSD.dist.base
diff -u src/etc/mtree/NetBSD.dist.base:1.142 src/etc/mtree/NetBSD.dist.base:1.143
--- src/etc/mtree/NetBSD.dist.base:1.142 Sun Jan 25 15:49:39 2015
+++ src/etc/mtree/NetBSD.dist.base Fri Feb 13 18:57:47 2015
@@ -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
Index: src/external/intel-fw-public/Makefile
diff -u src/external/intel-fw-public/Makefile:1.8 src/external/intel-fw-public/Makefile:1.9
--- src/external/intel-fw-public/Makefile:1.8 Thu Oct 30 13:05:58 2014
+++ src/external/intel-fw-public/Makefile Fri Feb 13 18:57:47 2015
@@ -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>
Index: src/sys/arch/amd64/conf/ALL
diff -u src/sys/arch/amd64/conf/ALL:1.24 src/sys/arch/amd64/conf/ALL:1.25
--- src/sys/arch/amd64/conf/ALL:1.24 Fri Dec 19 07:04:52 2014
+++ src/sys/arch/amd64/conf/ALL Fri Feb 13 18:57:47 2015
@@ -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
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
Index: src/sys/arch/amd64/conf/GENERIC
diff -u src/sys/arch/amd64/conf/GENERIC:1.407 src/sys/arch/amd64/conf/GENERIC:1.408
--- src/sys/arch/amd64/conf/GENERIC:1.407 Sat Feb 7 13:20:00 2015
+++ src/sys/arch/amd64/conf/GENERIC Fri Feb 13 18:57:47 2015
@@ -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
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
Index: src/sys/arch/i386/conf/ALL
diff -u src/sys/arch/i386/conf/ALL:1.390 src/sys/arch/i386/conf/ALL:1.391
--- src/sys/arch/i386/conf/ALL:1.390 Fri Dec 19 07:04:52 2014
+++ src/sys/arch/i386/conf/ALL Fri Feb 13 18:57:47 2015
@@ -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
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
Index: src/sys/arch/i386/conf/GENERIC
diff -u src/sys/arch/i386/conf/GENERIC:1.1118 src/sys/arch/i386/conf/GENERIC:1.1119
--- src/sys/arch/i386/conf/GENERIC:1.1118 Sun Nov 16 16:01:41 2014
+++ src/sys/arch/i386/conf/GENERIC Fri Feb 13 18:57:47 2015
@@ -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
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
Index: src/sys/dev/pci/if_iwm.c
diff -u src/sys/dev/pci/if_iwm.c:1.4 src/sys/dev/pci/if_iwm.c:1.5
--- src/sys/dev/pci/if_iwm.c:1.4 Fri Feb 13 18:02:32 2015
+++ src/sys/dev/pci/if_iwm.c Fri Feb 13 18:57:47 2015
@@ -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
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 *);
@@ -860,7 +859,7 @@ iwm_read_mem(struct iwm_softc *sc, uint3
static int
iwm_write_mem(struct iwm_softc *sc, uint32_t addr, const void *buf, int dwords)
{
- int offs;
+ int offs;
const uint32_t *vals = buf;
if (iwm_nic_lock(sc)) {
@@ -1217,8 +1216,9 @@ iwm_alloc_tx_ring(struct iwm_softc *sc,
+ 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
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
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;
@@ -2017,7 +2016,7 @@ iwm_phy_db_set_section(struct iwm_softc
memcpy(entry->data, phy_db_notif->data, size);
entry->size = size;
- DPRINTFN(10, ("%s(%d): [PHYDB]SET: Type %d , Size: %d, data: %p\n",
+ DPRINTFN(10, ("%s(%d): [PHYDB]SET: Type %d, Size: %d, data: %p\n",
__func__, __LINE__, type, size, entry->data));
return 0;
@@ -2126,7 +2125,8 @@ iwm_send_phy_db_cmd(struct iwm_softc *sc
.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,
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,
* 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;
@@ -3076,7 +3077,7 @@ iwm_mvm_get_signal_strength(struct iwm_s
max_energy = MAX(energy_a, energy_b);
max_energy = MAX(max_energy, energy_c);
- DPRINTFN(12, ("energy In A %d B %d C %d , and max %d\n",
+ DPRINTFN(12, ("energy In A %d B %d C %d, and max %d\n",
energy_a, energy_b, energy_c, max_energy));
return max_energy;
@@ -3549,7 +3550,7 @@ iwm_send_cmd(struct iwm_softc *sc, struc
}
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, struc
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
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, en
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, en
}
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;
@@ -5822,7 +5820,7 @@ iwm_watchdog(struct ifnet *ifp)
ifp->if_timer = 0;
if (sc->sc_tx_timer > 0) {
if (--sc->sc_tx_timer == 0) {
- aprint_error_dev(sc->sc_dev, "device timeout\n");
+ aprint_error_dev(sc->sc_dev, "device timeout\n");
#ifdef IWM_DEBUG
iwm_nic_error(sc);
#endif
@@ -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 sel
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 sel
}
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 sel
}
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);
Index: src/sys/dev/pci/if_iwmvar.h
diff -u src/sys/dev/pci/if_iwmvar.h:1.2 src/sys/dev/pci/if_iwmvar.h:1.3
--- src/sys/dev/pci/if_iwmvar.h:1.2 Fri Feb 13 17:14:06 2015
+++ src/sys/dev/pci/if_iwmvar.h Fri Feb 13 18:57:47 2015
@@ -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. */
Added files:
Index: src/external/intel-fw-public/iwl3160/Makefile
diff -u /dev/null src/external/intel-fw-public/iwl3160/Makefile:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl3160/Makefile Fri Feb 13 18:57:47 2015
@@ -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>
Index: src/external/intel-fw-public/iwl3160/dist/LICENSE.iwlwifi-3160-ucode
diff -u /dev/null src/external/intel-fw-public/iwl3160/dist/LICENSE.iwlwifi-3160-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl3160/dist/LICENSE.iwlwifi-3160-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl3160/dist/README.iwlwifi-3160-ucode
diff -u /dev/null src/external/intel-fw-public/iwl3160/dist/README.iwlwifi-3160-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl3160/dist/README.iwlwifi-3160-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl3160/dist/iwlwifi-3160-9.ucode
Binary files are different
Index: src/external/intel-fw-public/iwl7260/Makefile
diff -u /dev/null src/external/intel-fw-public/iwl7260/Makefile:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7260/Makefile Fri Feb 13 18:57:47 2015
@@ -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>
Index: src/external/intel-fw-public/iwl7260/dist/LICENSE.iwlwifi-7260-ucode
diff -u /dev/null src/external/intel-fw-public/iwl7260/dist/LICENSE.iwlwifi-7260-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7260/dist/LICENSE.iwlwifi-7260-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl7260/dist/README.iwlwifi-7260-ucode
diff -u /dev/null src/external/intel-fw-public/iwl7260/dist/README.iwlwifi-7260-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7260/dist/README.iwlwifi-7260-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl7260/dist/iwlwifi-7260-9.ucode
Binary files are different
Index: src/external/intel-fw-public/iwl7265/Makefile
diff -u /dev/null src/external/intel-fw-public/iwl7265/Makefile:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7265/Makefile Fri Feb 13 18:57:47 2015
@@ -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>
Index: src/external/intel-fw-public/iwl7265/dist/LICENSE.iwlwifi-7265-ucode
diff -u /dev/null src/external/intel-fw-public/iwl7265/dist/LICENSE.iwlwifi-7265-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7265/dist/LICENSE.iwlwifi-7265-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl7265/dist/README.iwlwifi-7265-ucode
diff -u /dev/null src/external/intel-fw-public/iwl7265/dist/README.iwlwifi-7265-ucode:1.1
--- /dev/null Fri Feb 13 18:57:48 2015
+++ src/external/intel-fw-public/iwl7265/dist/README.iwlwifi-7265-ucode Fri Feb 13 18:57:47 2015
@@ -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.
Index: src/external/intel-fw-public/iwl7265/dist/iwlwifi-7265-9.ucode
Binary files are different