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