Add support for BCM575xx devices, variously known as Thor or P5.
There are a few significant differences to earlier devices.
The nic now requires some host memory to use as backing store for its queues,
and for now we're overallocating to some extent. It's not a noticeable amount
of memory for a system with one of these nics in it, so this isn't a huge
concern.
P5 devices have notification queues to act as an indirection between tx/rx
completion rings and msi-x vectors. We set up one per queue and statically
map them to msi-x vectors in turn according to the intrmap.
The doorbell structures are now 64 bits, and all written to through the same
memory address.
Ring groups are not used, so the functions to allocate and free ring groups
don't do anything for P5 devices; instead, rings are directly associated
with each other on creation, and aggregation rings are identified by a
different ring type.
[3 lines not shown]
Draw message as one format, allowing prompts and messages to occupy only
a portion of the status bar, overlaying the normal status content rather
than replacing the entire line. A new message-format option now controls
the entire message (like status-format). From Conor Taylor in GitHub
issue 4861.
Implement delayed hibernation. If the machdep.hibernatedelay sysctl is
set to a value that isn't zero, this specifies a number of seconds after
which the machine will wake up from suspend and hibernate itself.
ok florian@, mlarkin@
Increase argv buffer from _POSIX2_LINE_MAX to _POSIX_ARG_MAX.
This better handles matching commands with long arguments. Note
that it is still possible for a command to have command line arguments
larger than _POSIX_ARG_MAX, but this should be enough in most cases.
From Mikolaj Kucharski
On OpenBSD, recv*msg(2) can return EPERM if the ancillary data from
the other side contains a file descriptor type we don't like. We
have some protection against ridiculous types, and when running in pledge
it gets even more strict.
ok kettenis
Add support Intel AX211 BZ MACs paired WiFi 6e RFs to iwx(4).
These devices are found in recent laptops using Intel AX211 WiFi 6e.
Only WiFi 6e, not WiFi 7, which will probably need a separate driver
as the Linux kernel does (iwlmld).
Firmware for BZ devices is available in fw_update.
There is still an unsolved problem with Tx performance. As soon as Tx
aggregation is used the device stalls and stops sending and receiving.
Tx performance is stable with block ack disabled, i.e. in mode 11a/b/g.
Help with figuring out the root cause of this would be appreciated.
I would have preferred to commit a fully working version but have
already spent quite a lot of time trying to find this last bug. It is
time to put this in anyway and hope the issue will be fixed soon.
Thanks to all involved for the support with review and testing of the
diffs which led up to this, to Johannes Berg for help with solving
various fatal firmware errors, to denis@'s company for making it
[2 lines not shown]
handle missed beacons notification sent by newer iwx(4) firmware
Newer firmware uses a new missed-beacons notification code in the
MAC_CONF group, but otherwise behaves as previously.
Check return values of fcntl(... O_CLOEXEC) calls by reusing the macro
in monitor.c. Flagged by Coverity CID 901297 in ssh-sk-client.c, a few
other instances added for good measure. begrudging ok deraadt@
Only enable MIMO on MLD iwx(4) devices if our AP supports MIMO.
Same approach as we are using for the pre-MLD device generation.
OK phessler@ kevlo@ jan@
Only add iwx(4) firmware PHY context once our channel is known.
The Linux iwlwifi driver no longer adds unused firmware PHY contexts
because newer firmware runs calibration when a PHY context is added.
See linux.git commit f3276ff0d498a364dfdff74cc1825b5f6e27f472
ok phessler@ kevlo@
Tested:
AX200: stsp
AX210: kevlo
AX211: phessler
AX211 (BZ): stsp