History log of /freebsd-current/sys/dev/iwm/if_iwmreg.h
Revision Date Author Comments
# 2fae7b81 04-Sep-2022 Gordon Bergling <gbe@FreeBSD.org>

iwm(4): Correct some typos in source code comments

- s/occured/occurred/

MFC after: 3 days


# 25432769 02-Apr-2022 Gordon Bergling <gbe@FreeBSD.org>

iwm(4): Remove a whitespace

In 9f4dc7fd97de I accidentally added a whitespace at the
end of the line. Remove it.

Reported by: Jose Luis Duran (via github)
MFC with: 9f4dc7fd97de


# 9f4dc7fd 02-Apr-2022 Gordon Bergling <gbe@FreeBSD.org>

iwm(4): Fix a typo in a source code comment

- s/coresponding/corresponding/

Obtained from: NetBSD
MFC after: 3 days


# 8acb6621 19-Nov-2021 Gordon Bergling <gbe@FreeBSD.org>

iwm(4): Fix a typo in a source code comment

- s/availabe/available/

MFC after: 3 days


# d524e370 24-Oct-2021 Adrian Chadd <adrian@FreeBSD.org>

iwm: Update SCD register accesses

This brings it inline with what's in openbsd. I tested it locally
with 2G and 5G association; it seems to work.

Tested: Intel 7260 AC, hw 0x140, STA mode, 2G/5G

Differential Revision: https://reviews.freebsd.org/D32627
Subscribers: imp
Obtainde from: OpenBSD


# 355c1513 24-Oct-2021 Adrian Chadd <adrian@FreeBSD.org>

iwm: update if_iwmreg.h to the latest (as of today) openbsd changes

Summary:
This updates the if_iwmreg.h definitions to;

OpenBSD: if_iwmreg.h,v 1.65 2021/10/11 09:03:22 stsp Exp

A few things haven't been fully converted, namely:

* I left a couple things as enums for now just to reduce the
other diffs needed; but they're the same values

* The IWM_SCD_QUEUE_* macros have different offsets which I
didn't update in case they broke things / changed based on later
firmware. But they also may be real bugfixes which are needed
for later chips. It'll need more testing before flipping this on.

The c file updates are:

* Use the newer names for things if the name changed but the semantics
didn't
* Explicitly use the earlier firmware structs which maintain compat
with the current firmware and code. The newer ones are in here and
they'll get converted when more openbsd code is merged into this tree.
* Use the older iwm rate table for now, which has entries for legacy
rates, HT and VHT. Our code works with that right now, updating it
to openbsd's err, "different" version can be done at a later date
when HT/VHT support is added.

Notably, a bunch of definitions were deleted that weren't used.
They're not used either in the openbsd/dfbsd drivers so I think it's
safe to delete them in the long run.

Test Plan: 7260 hw 0x140

Subscribers: imp
Differential Revision: https://reviews.freebsd.org/D32627
Reviewed by: md5
Obtained From: OpenBSD


# e7065dd1 27-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm(4): Remove _mvm from the namespace.

This was inherited from iwlwifi, which drives devices supported by both
iwn(4) and iwm(4) in FreeBSD. In iwm(4) _mvm is meaningless, so remove
it. OpenBSD made the same change a long time ago. No functional change
intended.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 1903c600 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Sync device initialization and reset code with iwlwifi.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 666c8655 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Implement support for scans with "adaptive" dwell time.

This is required by 9000-series firmware.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# d2c7b21a 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Set flag for pad bytes in offload_assist.

Though we don't otherwise use firmware's offload capabilities, we need
to set this flag when the MAC header's size isn't a multiple of four.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 09a07cd5 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Update the station add command for the new RX API.

The firmware expects a new version of the add-station command in
9000-series chips.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 96c5aa2f 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Implement the new receive path.

This is the multiqueue receive code required for 9000-series chips.
Note that we still only configure a single RX queue for now. Multiqueue
support will require MSI-X configuration and a scheme for managing a
global pool of RX buffers.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# b1a48ccc 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Explicitly enable MSI on newer chipsets.

9000-series chips implement support for MSI-X interrupts and disable MSI
by default.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# d2ec5b52 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Sync the firmware tx_cmd descriptor fields with iwlwifi.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 381471bc 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Add 9000-series RX register definitions.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 9dd27490 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Sync the TLV API enum with iwlwifi.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 267c626f 07-Nov-2019 Mark Johnston <markj@FreeBSD.org>

iwm: Define a name for TLV 48.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 58952690 11-Mar-2019 Andriy Voskoboinyk <avos@FreeBSD.org>

iwm(4): use correct channel list source for Intel 3168

Intel 3168 uses another EEPROM section to store channel flags;
port missing bits from iwlwifi to make it work.

PR: 230750, 236235
Tested by: Bert JW Regeer <xistence@0x58.com>
MFC after: 3 days


# bdf95b73 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

iwm - Remove unused TX_CMD_NEXT_FRAME_*

Taken-From: Linux git b1e06c65fb69c5e3fddcd91987561e225eaa9bfa

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (b0c6116f364a121ab6b9d634ca1997d4167fa747)


# 37ac41d3 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

iwm - Remove unused REPLY_MAX

Taken-From: Linux git e4eb275ac5cfe71686612d929a9829345b2a4ada

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (92a727c99d6ec5abf14bb6853e95e3a187a0cd4e)


# e4bc6d1d 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

iwm - Update alive response handling, add v4 and remove old versions.

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (3820e2bf3331ced3541d1811a38c5a5136dfab93)


# ef217a34 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

if_iwm - Add firmware API definitions for TX power commands.

* While there remove unused IWM_UCODE_TLV_CAPA_LMAC_UPLOAD definition,
which isn't defined in iwlwifi.

Taken-From: Linux iwlwifi

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (fd4f9de8bc72ea961e50829b45b59d0549040b7d)


# 9612bbf4 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

if_iwm - Configure the PCIe LTR, fix PCI express capability accesses.

Taken-From: Linux iwlwifi

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (08a7ad5a5ff65aaaf2df6a609be7a4e1df43efc3)


# 27898346 23-Jan-2019 Kyle Evans <kevans@FreeBSD.org>

if_iwm - Update struct iwm_scan_results_notif. Remove old/unused definitions

* Remove outdated notifications IWM_SCAN_ABORT_CMD,
IWM_SCAN_START_NOTIFICATION and IWM_SCAN_RESULTS_NOTIFICATION.

* Remove unused enum iwm_scan_complete_status.

* Use the updated FW Api version 3 of struct iwm_scan_results_notif.

* No functional change, since struct iwm_scan_results_notif is never
accessed in iwm at the moment.

Taken-From: Linux iwlwifi commits 1083fd7391e989be52022f0f338e9dadc048b063
and 75118fdb63496e4611ab50380499ddd62b9de69f.

Submitted by: Augustin Cavalier <waddlesplash@gmail.com> (Haiku)
Obtained from: DragonFlyBSD (c947b0b8dc96dabefd63f7b70d53695e36c7b64f)


# caa7e52f 26-Dec-2017 Eitan Adler <eadler@FreeBSD.org>

kernel: Fix several typos and minor errors

- duplicate words
- typos
- references to old versions of FreeBSD

Reviewed by: imp, benno


# 40fea7fd 25-Jul-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Sync rs (rate-selection) API definitions from Linux iwlwifi.

* While there clean up alignments and line wrapping in existing
definitions for rs API in if_iwmreg.h

Obtained from: dragonflybsd.git 085e37a042bdb17081e495e46919359ce43aa118


# 1ecccab8 25-Jul-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Sync statistics API definitions with Linux iwlwifi.

Obtained from: dragonflybsd.git 75895a53a9c1ba60d75be9b4bf6e49a37f91a7cf


# d17a5d1b 04-Jun-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Remove support for fw older than -17 and -22

* iwm(4) didn't use any of these definitions yet, anyway.

Obtained from: dragonflybsd.git f95003b8f1f7382c8396a6d408e3072632afdd3d


# 51382483 04-Jun-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Set command code for PHY_DB as well.

Obtained from: dragonflybsd.git 58318c956a74382d1286ccabaf767012fdcfe1a2


# e470115f 04-Jun-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Remove dead code from iwm_pcie_load_cpu_sections().

* If device family is 8000 then iwm_pcie_load_cpu_sections()
won't be called at all (iwm_pcie_load_cpu_sections_8000() is
called in that case) so this piece of code never gets called.

Obtained from: dragonflybsd.git 3e9aaef308100a4d630feffc131e3aca2ae12f8a


# 702287e4 11-May-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Process multiple frames per RX buffer.

* Factor out iwm_handle_rxb() function from iwm_notif_intr().

* Removing the IWM_FH_RCSR_CHNL0_RX_CONFIG_SINGLE_FRAME_MSK flag allows
the device to put multiple frames (both command responses and 80211
frames) into a single RX buffer.

* Uses m_copym() to split up the receive buffers when multiple 80211
frames are received in one RX buffer. The effect is basically the same
as when using m_split(), but we want to keep the original mbuf around
when calling iwm_mvm_rx_rx_mpdu() to make error handling a bit easier
for now.

* Contains a small optimization to avoid the m_copym() when only a single
80211 frame is received in one RX buffer (i.e. matching the existing
behaviour).

Obtained from: dragonflybsd.git b5eb43f0280bbcfd26af51cf5a4b8e8ff3590b67


# 5f39493a 11-May-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Change UCODE_TLV_API #define-s from bitmasks to indexes.

* Fixes oversight from commit 757eecf0e6c92745aa2eee95811e573c8300850e.
fw_has_api now uses the isset macro instead of a simple logical-and.

Obtained from: dragonflybsd.git c00575de8491dc402abf52c8c7e1cca1ef79e257


# 08e1076c 08-May-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Add basic powermanagement support via ifconfig wlan0 powersave.

* The DEVICE_POWER_FLAGS_CAM_MSK flag was removed in the upstream iwlwifi
in Linux commit ceef91c89480dd18bb3ac51e91280a233d0ca41f.

* Add sc_ps_disabled flag to struct iwm_softc, which corresponds to
mvm->ps_disabled in struct iwl_mvm in Linux iwlwifi.

* Adds a hw.iwm.power_scheme tunable which corresponds to the power_scheme
module parameter in Linux iwlwifi. Set this to 1 for completely
disabling power management, 2 (default) for balanced powermanagement,
and 3 for lowerpower mode (which does dtim period skipping).

* Imports the constants.h file from iwlwifi as if_iwm_constants.h.

* This doesn't allow changing the powermanagement setting while connected,
also one can only choose between enabled and disabled powersaving with
ifconfig (so switching between balanced and low-power mode requires
rebooting to change the tunable).

* After any changes to powermanagement (i.e. "ifconfig wlan0 powersave" to
enable powermanagement, or "ifconfig wlan0 -powersave" for disabling
powermanagement), one has to disconnect and reconnect to the accespoint
for the change to take effect.

Obtained from: dragonflybsd.git d7002a7990d077c92585978ea998474af50f91e0


# cd20383e 24-Mar-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Enable Energy Based Scan (EBS).

This can significantly reduce scan duration thus saving time and power.
EBS failure reported by FW disables EBS for current connection. It is
re-enabled upon new connection attempt on any WLAN interface.

Obtained from: dragonflybsd.git 89f579e9823a5c446ca172cf82bbc210d6a054a4


# d045c744 22-Mar-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Remove a couple of unneeded IWM_UCODE_TLV_FLAGS_* flags.

* All the supported firmwares have these flags set.

* This removes the following flags:
IWM_UCODE_TLV_FLAGS_PM_CMD_SUPPORT,
IWM_UCODE_TLV_FLAGS_NEWBT_COEX,
IWM_UCODE_TLV_FLAGS_BF_UPDATED,
IWM_UCODE_TLV_FLAGS_D3_CONTINUITY_API,
IWM_UCODE_TLV_FLAGS_STA_KEY_CMD,
IWM_UCODE_TLV_FLAGS_DEVICE_PS_CMD,
IWM_UCODE_TLV_FLAGS_SCHED_SCAN,
IWM_UCODE_TLV_FLAGS_RX_ENERGY_API,
IWM_UCODE_TLV_FLAGS_TIME_EVENT_API_V2

* Also remove definitions and code for dealing with the v1 time-event api.

* Remove unneeded calc_rssi() function.

Obtained from: dragonflybsd.git d078c812418d0e2c3392e99fa25fc776d07bdfad


# ad35d471 24-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Add support for Firmware paging, needed for newer 8000C firmware.

* Uses the IWM_FW_PAGING_BLOCK_CMD firmware command to tell the firmware
what memory ranges to use for paging.

Obtained from: dragonflybsd.git 8a5b199964f8e7bdb00039f0b48817a01b402f18


# 9df52443 21-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Sync IWM_MVM_ALIVE waiting and start_fw handling with iwlwifi.

* Use the notification wait API, like it's done in the Linux iwlwifi code,
to wait for the IWM_MVM_ALIVE notification.

* This also should fix some firmware load interrupt issues, and errors
in the nic lock using.

Tested:

* (adrian) Intel 7260, STA mode

Obtained from: dragonflybsd.git a7697ea01c11fd493aec52260a02f31df680eb91


# 00da8199 08-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Recognize the IWM_UCODE_TLV_FW_MEM_SEG firmware section type.

* Will be needed for loading version 22 of 7265D firmware.

Obtained from: DragonflyBSD commit 1d244c8133cf15d00d46836bc48958188cf9f510


# 4329ac62 07-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Recognize IWM_DTS_MEASUREMENT_NOTIF_WIDE notification.

* Add the command groups enum, and the iwm_phy_ops_subcmd_ids enum
to if_iwmreg.h definitions.

* The IWM_DTS_MEASUREMENT_NOTIF_WIDE notification will be generated by
version 17 firmware.

Taken-From: Linux iwlwifi

Obtained from: DragonflyBSD commit 4d8d6f9def2ffb60aaf2d88f72f069a96c0b4e3f


# a717dd3a 07-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Very basic DTS thermal sensor support (prints temp as debug msg).

* Adds IWM_DEBUG_TEMP debug message type, for printing messages related
to temperature sensors and thermal/TDP infos.

* The firmware regularly sends us DTS measurement notifications, so just
print the temperature value as a debugging message.

(Adrian's addition):

* Eventually this can be used by the driver to limit transmit rate / power to
try and do some thermal throttling.

Obtained from: DragonflyBSD commit efb7d4eb5c3140889a8880e12fd83c7bbfd0059d


# 48f3dc7b 05-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Store paging_mem_size field in firmware image information struct.

Obtained from: DragonflyBSD commit a8524cc6c440e5ce9490ba2b0507c99ff6777c6d


# 6349bdb3 05-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Sync nvm parsing code with Linux iwlwifi.

* sc->sc_nvm becomes sc->nvm_data and is now a pointer instead of an
inlined struct.

* Add sc->eeprom_size and sc->nvm_hw_section_num configuration values to
struct iwm_softc.

* For now continue to avoid negative error return-values, and use pointer
variables for some return values, as before.

* Continue to omit LAR (location aware regulatory) related code as well.

Tested:

* Intel 7260, STA mode (2GHz)

Obtained from: dragonflybsd commit 39f8331b1a6f295291e08c377da12a8e7a5436c0


# 30a0fd92 05-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Sync if_iwm_phy_db code with Linux iwlwifi.

Obtained from: Dragonflybsd commit c1019b6bfff36c856f7b4fccbdf3bb13ac27750c


# a994fb3b 05-Feb-2017 Adrian Chadd <adrian@FreeBSD.org>

[iwm] The HW Revision stepping constants should be in if_iwmreg.h.

Obtained from: dragonflybsd 84292f0c38594c462c719c0e59da5908b93aba5f


# 0ba35431 19-Sep-2016 Imre Vadász <ivadasz@FreeBSD.org>

[iwm] Use IWM_DEFAULT_SCAN_CHANNELS define as default for sc_capa_n_scan_channels.

Approved by: adrian (mentor)
Obtained from: Linux iwlwifi
Differential Revision: https://reviews.freebsd.org/D7938


# 22359652 19-Sep-2016 Imre Vadász <ivadasz@FreeBSD.org>

[iwm] Remove deprecated scan API definitions.

* This removes deprecated scan API definitions, which have been unused
since the upgrade to version 16 firmware in change r303327.

* Part of this change matches the header-file changes in Linux git commit
1f9403863c080478ad78247c89b018e95bdfb027.

* No functional change.

Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D7937


# ef81578c 19-Sep-2016 Imre Vadász <ivadasz@FreeBSD.org>

[iwm] Remove unused field from iwm_rx_data. Use uint32_t instead of enum type.

The wantresp field in struct iwm_rx_data has never been used for anything,
so we can just delete it.

Apparently struct iwm_sf_cfg_cmd was compiled correctly (using a 32bit
value to represent the enum), but it still seems like a very bad idea to use
an enum type in a __packed struct.

Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D7930


# 9afea60f 06-Sep-2016 Andriy Voskoboinyk <avos@FreeBSD.org>

iwm: fix scanning for hidden SSIDs.

Setup SSIDs in scan command so firmware will send direct probe request(s)
while scanning.

Tested by: dbkirk@gmail.com

PR: 211519
MFC after: 1 week


# e796f684 27-Aug-2016 Andriy Voskoboinyk <avos@FreeBSD.org>

iwm: fix few comment typos.


# 2b8cf46a 27-Jul-2016 Imre Vadász <ivadasz@FreeBSD.org>

[iwm] Set different pm_timeout for action frames.

When building a Tx Command for management frames, we are lacking
a check for action frames, for which we should set a different
pm_timeout. This cause the fw to stay awake for 100TU after each
such frame is transmitted, resulting an excessive power consumption.

Taken-From: Linux iwlwifi (git b084a35663c3f1f7)

Approved by: adrian (mentor)
Obtained from: Linux git b084a35663c3f1f7de1c45c4ae3006864c940fe7
Obtained from: DragonFlyBSD git ba00f0e3ae873d6f0d5743e22c3ebc49c44dfdac
Differential Revision: https://reviews.freebsd.org/D7324


# 6a5bc1d1 25-Jul-2016 Sean Bruno <sbruno@FreeBSD.org>

iwm(4) synchronize driver to DragonFlyBSD version and recent f/w update.

Submitted by: Kevin Bowling (kevin.bowling@kev009.com)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D6967


# 88b6e4f3 01-Jun-2016 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Fix several nitpicks in iwm(4).

Move some declarations to if_iwmreg.h.
Remove iwm_fw_alive(); just call iwm_post_alive() directly.
Simplify iwm_mvm_add_sta().
Return timeout error from iwm_apm_init().
Print a message when init (i.e. boot) firmware fails to load.
Remove some commented-out code which wouldn't compile anyway.
Move iwm_mvm_tx_fifo to if_iwmreg.h to match better where Linux puts it.

Taken-From: OpenBSD (if_iwm.c r1.80 and if_iwmreg.h r1.11)

Submitted by: Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD 29fcb331e5620ae145a6ab9cdda830e22fff626a


# 7a8b94e1 01-Jun-2016 Adrian Chadd <adrian@FreeBSD.org>

[iwm] Use IWM_MAX_CMD_PAYLOAD_SIZE to improve command length checks.

Taken-From: OpenBSD (parts of if_iwm.c r1.57 and if_iwmreg.h r1.10)

Obtained from: DragonflyBSD b70c1eaad06257c5c7f4d8110d21642ebec14f42


# cef367e6 16-May-2016 Eitan Adler <eadler@FreeBSD.org>

Don't repeat the the word 'the'

(one manual change to fix grammar)

Confirmed With: db
Approved by: secteam (not really, but this is a comment typo fix)


# 453130d9 02-May-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/dev: minor spelling fixes.

Most affect comments, very few have user-visible effects.


# d4886179 08-Aug-2015 Rui Paulo <rpaulo@FreeBSD.org>

Import OpenBSD's iwm WiFi driver for Intel 3160/7260/7265.

There are still several bugs, but I've been using it for a while now.
Thanks to all the testers and to Adrian for his help with this
driver.

This driver isn't connected to the build yet, but it will be soon.

There's no MFC planned because the driver isn't very stable yet.

Reviewed by: adrian
Obtained from: https://github.com/rpaulo/iwm
Tested by: adrian, gjb, dumbbell (others that I forgot).
Relnotes: yes