#
e34dbedb |
| 16-Jan-2024 |
kevlo <kevlo@openbsd.org> |
Fix clang warning about possible unaligned access on arm64.
ok stsp@
|
#
59aafb1a |
| 19-Mar-2022 |
stsp <stsp@openbsd.org> |
Add initial 802.11ac support to the iwm(4) driver.
VHT MCS and 80MHz channels can now be used. Other 11ac features such as larger aggregates are left for later work.
Tested: 3160: stsp 7260: floria
Add initial 802.11ac support to the iwm(4) driver.
VHT MCS and 80MHz channels can now be used. Other 11ac features such as larger aggregates are left for later work.
Tested: 3160: stsp 7260: florian, jmatthew 7265: rfreeman, mlarkin, landry, Peter J. Philip 8260: bket 8265: jturner, Marcus MERIGHI, stsp 9260: florian, matthieu, stsp 9650: kmos, sthen
ok sthen@
show more ...
|
#
4b1a56af |
| 09-Jan-2022 |
jsg <jsg@openbsd.org> |
spelling feedback and ok tb@ jmc@ ok ratchov@
|
#
7a10236f |
| 20-Dec-2021 |
stsp <stsp@openbsd.org> |
Make iwm(4) attach to PCI devices with product ID 0x31dc.
This device is part of the 9560 chip family. With a small device-specific quirk we can make iwm(4) attach and provide a working wifi interfa
Make iwm(4) attach to PCI devices with product ID 0x31dc.
This device is part of the 9560 chip family. With a small device-specific quirk we can make iwm(4) attach and provide a working wifi interface.
Problem reported and fix tested by Joao Victor.
show more ...
|
#
880afff8 |
| 11-Oct-2021 |
stsp <stsp@openbsd.org> |
Add support for 802.11n 40MHz channels to the iwm(4) driver.
According to 11n MCS index tables our maximum data rate is now 300 Mbit/s at MCS 15, excluding protocol overhead. I have measured up to 2
Add support for 802.11n 40MHz channels to the iwm(4) driver.
According to 11n MCS index tables our maximum data rate is now 300 Mbit/s at MCS 15, excluding protocol overhead. I have measured up to 200Mbit/s of effective throughput on clean 5GHz channels.
The driver enables use of 40MHz channels automatically as long as the access point announces support for such channels in its beacons. In case 40MHz transmissions fail we ask firmware to retry with a 20MHz transmission.
There is no integration with ifconfig yet, so use of 40MHz is not yet displayed there. In the meantime, tcpdump(8) can be used to check if the current access point supports 40MHz: tcpdump -n -i iwm0 -v -y IEEE802_11_RADIO -s 4096 type mgt and subtype beacon Channel width is displayed in the HT operation information element, where a 40MHz channels looks like this: htop=<40MHz chan X:Y ...>
Tested: 7260: florian, bcallah 7265: landry 8260: bket 8265: stsp, abieber, Matthias Schmidt, Josh Rickmar, empee on mastodon 9560: stsp
show more ...
|
#
5a993115 |
| 09-Jul-2021 |
stsp <stsp@openbsd.org> |
Make iwm(4) set various scan command flags just like how iwlwifi sets them. Discrepancies found while investigating an issue related to active scanning.
|
#
ee72d26d |
| 08-Jul-2021 |
stsp <stsp@openbsd.org> |
Support MCC update response used by newer iwm(4) firmware, and verify the size of the response we receive for MCC_UPDATE commands (even though we aren't doing anything with this response yet).
With
Support MCC update response used by newer iwm(4) firmware, and verify the size of the response we receive for MCC_UPDATE commands (even though we aren't doing anything with this response yet).
With the correct expected response length this time. The driver needs to expect the maximum response size, not sizeof() the response struct. The actual response size depends on the number of channels stored in the "world" regulatory profile of the device.
ok sthen@
show more ...
|
#
1a6b37a9 |
| 08-Jul-2021 |
stsp <stsp@openbsd.org> |
Back out support for newer MCC update commands in iwm(4) for now. This seems to cause "could not init LAR" errors on some devices.
Reported by dv@ (8265) and sthen@ (9560)
|
#
c7653db7 |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support MCC update response used by newer iwm(4) firmware, and verify the size of the response we receive for MCC_UPDATE commands (even though we aren't doing anything with this response yet).
|
#
ce74846c |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support the SoC configuration command used by newer iwm(4) 9560 firmware.
|
#
a8276b32 |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support the critical temperature detection feature of newer iwm(4) firmware.
|
#
bf5c331b |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Parse CMD_VERSION TLV found in iwm(4) fw images and add iwm_lookup_cmd_ver().
It seems Intel saw a risk of eventually running out of firmware capability support and API support flags, so yet another
Parse CMD_VERSION TLV found in iwm(4) fw images and add iwm_lookup_cmd_ver().
It seems Intel saw a risk of eventually running out of firmware capability support and API support flags, so yet another such mechanism was added. If you want to know which variant of a command needs to be used there are now at least three places to check for related information.
show more ...
|
#
f28f6a8e |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support a new variant of the binding command required by new iwm(4) firmware.
|
#
5cb31a0f |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support the larger phy context command required by newer iwm(4) firmware.
|
#
73c68c46 |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Recognize and ignore new debug sections found in latest iwm(4) 9k fw images.
|
#
245b2a48 |
| 07-Jul-2021 |
stsp <stsp@openbsd.org> |
Support a new time quota command required for newer iwm(4) firmware.
|
#
665c80eb |
| 30-Jun-2021 |
stsp <stsp@openbsd.org> |
Fix Tx queue flushing in iwm(4).
iwm(4) was still using an outdated version of the TX_FLUSH command. Current firmware expects a different version which has the same size but different semantics. The
Fix Tx queue flushing in iwm(4).
iwm(4) was still using an outdated version of the TX_FLUSH command. Current firmware expects a different version which has the same size but different semantics. The iwx(4) driver is already using the new version.
Also do not log errors if flushing Tx queues fails. This can happen if the AP disappeared. Just cope by resetting the device and clearing rings.
Should fix "flushing Tx queues failed" and related firmware errors.
show more ...
|
#
148f7b49 |
| 01-Jun-2021 |
stsp <stsp@openbsd.org> |
Revert iwm(4) firmware updates for now; robert@ reports stalled Tx on 9260
|
#
1c08d219 |
| 01-Jun-2021 |
stsp <stsp@openbsd.org> |
Switch iwm(4) to new firmware images available in iwm-firmware-20210512.
This updates firmware for 3165, 3168, 7265, 8260, 8265, 9260, 9560 devices. Other devices did not receive firmware updates fr
Switch iwm(4) to new firmware images available in iwm-firmware-20210512.
This updates firmware for 3165, 3168, 7265, 8260, 8265, 9260, 9560 devices. Other devices did not receive firmware updates from Intel. New firmware images should contain revelant fixes for fragattacks: https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00473.html
Running fw_update(1) may be required before rebooting into a new kernel. sysupgrade(8) will take care of this.
When reporting issues (I am sure there will be new "fatal firmware errors" for some people) please enable 'ifconfig iwm0 debug', reproduce the error once more, and include the full dmesg in your bug report.
Important changes required for new firmware: - Support new variants of several existing firmware commands just because Intel loves adding new features and changing the commands. - Implement the 'clear persistence bit' workaround for 9k devices to avoid potential issues during suspend/resume. - Recognize Mobile Country Code update notifications for the regulatory domain, like iwx(4) does. - Handle PHY context updates more like the Linux iwlwifi driver does. Some devices need an add/remove dance if the band has changed. - For 9560, configure SoC latency parameters after booting firmware. - Handle critical temperature notifications by shutting the device down. - Use only antenna B for single-antenna Tx on 9k devices (matches what Linux and FreeBSD do; Likely only matters if Bluetooth is active, but who knows, Git logs and comments are the only documentation we have).
Other small fixes: - Fix various scan command parameters. Some fixes were taken from iwx(4). - Don't send probe requests when scanning passive channels. Experimentation has shown that this will make 9k devices crash after associating to an AP. This same fix does not seem to work on iwx(4) devices, where active scan is disabled for the same reason, and it is not yet clear why. - Fix firmware reloading after parsing the firmware image has failed. - Flushing Tx rings will fail if the AP disappears. Don't make any noise about that in dmesg, instead gracefully reset the device and continue.
Tested: 7260: florian 3168: kevlo 7265: stsp, mlarkin 8260: bket 8265: stsp, benno 9560: stsp, steven
show more ...
|
#
bdd76655 |
| 03-May-2021 |
stsp <stsp@openbsd.org> |
Add 802.11n Tx aggregation support to iwm(4).
Makes packets go swoosh swoosh swoosh. Welcome to actual 802.11n!
Tested: 7260: dv, florian 7265: trondd, dv, landry, stsp 8260: bket 8265: Matthias Sc
Add 802.11n Tx aggregation support to iwm(4).
Makes packets go swoosh swoosh swoosh. Welcome to actual 802.11n!
Tested: 7260: dv, florian 7265: trondd, dv, landry, stsp 8260: bket 8265: Matthias Schmidt, stsp 9260: kettenis 9560: phessler, stsp
show more ...
|
#
ccc2d1c4 |
| 25-Apr-2021 |
stsp <stsp@openbsd.org> |
Implement support for Rx aggregation offload in iwm(9) and iwx(4), and re-enable de-aggregation of A-MSDUs in net80211 for all drivers capable of 11n mode. This can provide improved Rx performance if
Implement support for Rx aggregation offload in iwm(9) and iwx(4), and re-enable de-aggregation of A-MSDUs in net80211 for all drivers capable of 11n mode. This can provide improved Rx performance if the access point supports transmission of A-MSDUs nested in A-MDPUs.
iwm(9) 9k and iwx(4) devices de-aggregate A-MSDUs in hardware. Neither our drivers nor the net80211 stack were prepared to handle this.
Add two Rx-info flags which drivers can use to avoid having subframes which arrived in the same A-MSDU rejected as duplicates in the net80211 input layer: IEEE80211_RXI_HWDEC_SAME_PN allows the same CCMP packet number for a series of subsequent frames. IEEE80211_RXI_SAME_SEQ allows the same 802.11 frame header sequence number for a series of subsequent of frames.
Handle A-MPDU reordering on iwm 9k and iwx devices, based on code from iwlwifi. Rx block ack window information is provided by firmware. So far this info was ignored by drivers and reordering of A-MPDU subframes happened twice: Once in firmware, and again in net80211.
Tested: iwm 7260: bcallah, dv iwm 7265: mpi, trondd, Matthias Schmidt iwm 8260: bket, Marcus MERIGHI iwm 8265: stsp, tracey, Uwe Werler iwm 9260: phessler, matthieu iwm 9560: stsp, Uwe Werler iwx ax200: jmc, stsp iwx ax201: stsp
show more ...
|
#
3fb50c38 |
| 18-May-2020 |
stsp <stsp@openbsd.org> |
Offload CCMP (WPA2) encryption and decryption to iwm(4) hardware.
This reduces CPU load during traffic bursts. Based on an older diff we had in CVS history, updated to work with newer firmware versi
Offload CCMP (WPA2) encryption and decryption to iwm(4) hardware.
This reduces CPU load during traffic bursts. Based on an older diff we had in CVS history, updated to work with newer firmware versions we use today.
Tested on the following devices, with great support from several people: 3160 (stsp) 3168 (stsp) 7260 (jmatthew, tobhe) 7265 (stsp, procter, gonzalo) 8265 (benno, tb) 8260 (stsp, Liberto on bsd.network) 9260 (stsp, Jesper Wallin) 9560 (stsp)
Not tested: 3165; these run the same firmware as 7265 so will likely be fine. I couldn't find a 3165 device in my pile.
ok jmatthew@ (who also found a small bug in my diff)
show more ...
|
#
21644f7e |
| 15-May-2020 |
stsp <stsp@openbsd.org> |
Fix wrong firmware API documentation comments for iwm(4) and iwx(4). Both drivers currently use SCAN_CHANNEL_CFG_S_VER1, not VER2.
|
#
c0746f6b |
| 05-Mar-2020 |
stsp <stsp@openbsd.org> |
Update iwm(4) firmware API documentation with respect to sequence number related fields in Tx commands and responses:
- IWM_AGG_TX_STATE_SEQ_NUM_MSK does not exist, remove it from documentation
- I
Update iwm(4) firmware API documentation with respect to sequence number related fields in Tx commands and responses:
- IWM_AGG_TX_STATE_SEQ_NUM_MSK does not exist, remove it from documentation
- In our case, iwm_agg_tx_status's "sequence" field contains the Tx queue ID and index of aggregated subframes, not sequence numbers. Update the struct definition accordingly. (This struct is not used yet.)
- iwm_tx_resp and iwm_ba_notif contain frame header sequence control fields. Be explicit about this in documentation. I don't understand which frame the sequence control field in iwm_ba_notif corresponds to. Leave a comment about that. iwlwifi doesn't use this field.
show more ...
|
#
30289eba |
| 26-Nov-2019 |
patrick <patrick@openbsd.org> |
Add support for MSI-X. MSI-X allows establishing a number of interrupt vectors and mapping events (RX on queues, commands, mgmt frames) to those vectors. For now we keep the existing behaviour, est
Add support for MSI-X. MSI-X allows establishing a number of interrupt vectors and mapping events (RX on queues, commands, mgmt frames) to those vectors. For now we keep the existing behaviour, establish a single vector and map all events to it.
Makes my Intel NUC 8i5BEH 9560 work Tested by jcs@ on a 9560 (w/ MSI-X) Tested by deraadt@ on a 9260 (w/ MSI-X) Tested by phessler@ on a 8260 (w/o MSI-X) ok stsp@
show more ...
|