#
ec9994a1 |
| 06-Mar-2022 |
kettenis <kettenis@openbsd.org> |
Look for firmware for Apple Silicon devices in /etc/firmware/apple-bwfm.
ok deraadt@
|
#
9b183917 |
| 04-Mar-2022 |
kettenis <kettenis@openbsd.org> |
Add support for the BCM4387. The firmware for this variant uses a new scan command, which is indicated by the "scan_ver" firmware variable.
ok patrick@
|
#
c6a4ab0d |
| 02-Mar-2022 |
kettenis <kettenis@openbsd.org> |
The firmware for the bwfm(4) variants in Apple Silicon Macs has variants for different module types, module vendors and module revisions. Make our driver use the same naming scheme as Asahi Linux.
The firmware for the bwfm(4) variants in Apple Silicon Macs has variants for different module types, module vendors and module revisions. Make our driver use the same naming scheme as Asahi Linux.
ok patrick@
show more ...
|
#
da5a4af2 |
| 27-Dec-2021 |
patrick <patrick@openbsd.org> |
Send TxCap and WiFi calibration blobs to the chip.
|
#
8db7132f |
| 26-Dec-2021 |
patrick <patrick@openbsd.org> |
Add information about TCM rambase and how to check the SR capability for a few more chips.
|
#
b5553ee6 |
| 20-Dec-2021 |
patrick <patrick@openbsd.org> |
bus_dmamem_unmap() should not be called from interrupt context, so free and close flowrings using bwfm_do_async().
Reported by and ok kettenis@
|
#
db31205a |
| 23-Oct-2021 |
kettenis <kettenis@openbsd.org> |
Make sure we have enough space to add padding and final token to the nvram data. Also add the MAC address to the nvram data when there is a "local-mac-address" property in the device tree. This mak
Make sure we have enough space to add padding and final token to the nvram data. Also add the MAC address to the nvram data when there is a "local-mac-address" property in the device tree. This makes bwfm(4) work with the firmware/nvram/clm_blob files provided with MacOS on the Apple M1 Macs.
ok patrick@
show more ...
|
#
1a93a9bd |
| 31-Aug-2021 |
patrick <patrick@openbsd.org> |
Implement suspend/resume for bwfm(4) with PCIe backend. We try to send the device into D3 and do a hot-resume if possible. Otherwise we need to clean up the resources to allow complete HW re-initia
Implement suspend/resume for bwfm(4) with PCIe backend. We try to send the device into D3 and do a hot-resume if possible. Otherwise we need to clean up the resources to allow complete HW re-initialization to take place.
show more ...
|
#
94e4747c |
| 26-Feb-2021 |
patrick <patrick@openbsd.org> |
Refactor bwfm(4) firmware loading. The PCIe backend will need to be able to load the CLM blob like the SDIO backend already does. Additionally it is also helpful for the PCIe backend to try a file
Refactor bwfm(4) firmware loading. The PCIe backend will need to be able to load the CLM blob like the SDIO backend already does. Additionally it is also helpful for the PCIe backend to try a file named after the device tree compatible. Thus refactor the SDIO code and make it available for both SDIO and PCIe.
show more ...
|
#
c38a9bc9 |
| 31-Jan-2021 |
patrick <patrick@openbsd.org> |
Add basic support for BCM4378 as found on the Apple M1 SoCs. There's a little bit more to do though before it can be enabled.
|
#
cbb32f9c |
| 02-Dec-2020 |
krw <krw@openbsd.org> |
Extract another couple of chunks from main() into helper functions, get_routefd() and set_user().
|
#
6c2f85e4 |
| 15-May-2020 |
patrick <patrick@openbsd.org> |
Some newer bwfm(4) chips from Cypress hold their regulatory constraints in a separate blob, instead of in the firmware. This .clm_blob needs to be loaded as well.
|
#
5bc73f03 |
| 13-Mar-2020 |
patrick <patrick@openbsd.org> |
Recognize BCM43341 as a BCM43340 variant.
From Rob Schmersel
|
#
632f7369 |
| 06-Mar-2020 |
patrick <patrick@openbsd.org> |
Process the NVRAM in bwfm(4) itself. So far we have relied on some external tool to pre-process the NVRAM, even though it's simple to do ourselves. This allows easier firmware distribution.
ok kur
Process the NVRAM in bwfm(4) itself. So far we have relied on some external tool to pre-process the NVRAM, even though it's simple to do ourselves. This allows easier firmware distribution.
ok kurt@
show more ...
|
#
6f241297 |
| 25-Feb-2020 |
patrick <patrick@openbsd.org> |
Make bwfm(4) call if_input() only once per interrupt.
This reduces drops caused by the ifq pressure drop mechanism and hence increases throughput.
ok tobhe@
|
#
625a64d2 |
| 05-Jul-2019 |
patrick <patrick@openbsd.org> |
Since on a SCAN each node is provided in its own event, the limited ring for asynchronous can easily overflow. Work around this by chaining the mbufs into a list.
Fixes a panic for jcs@ ok stsp@
|
#
2802c178 |
| 17-Jul-2018 |
patrick <patrick@openbsd.org> |
TX packets, which can be either Ethernet or control packets, must be sent in order. Otherwise it is possible that the key is set before we send out the EAPOL packet, or that packets are sent out bef
TX packets, which can be either Ethernet or control packets, must be sent in order. Otherwise it is possible that the key is set before we send out the EAPOL packet, or that packets are sent out before the key is set. Thus modify the SDIO backend to put both types into the same internal TX queue, which will be sent asynchronously.
Discussed with bluhm@
show more ...
|
#
972218f3 |
| 23-May-2018 |
patrick <patrick@openbsd.org> |
Implement a separate initialization stage so that we can still use and initialize bwfm(4) later in the case that the firmware was not available on bootup and was only later installed.
ok stsp@
|
#
029d6dd5 |
| 16-May-2018 |
patrick <patrick@openbsd.org> |
Implement a BCDC control packet mechanism based on the command request ids. So far we were only able to have one command in flight at a time and race conditions could easily lead to unexpected behav
Implement a BCDC control packet mechanism based on the command request ids. So far we were only able to have one command in flight at a time and race conditions could easily lead to unexpected behaviour, especia- lly combined with a slow bus and timeouts. With this rework we send or enqueue a control packet command and wait for replies to happen. Thus we can have multiple control packets in flight and a reply with the correct id will wake us up.
show more ...
|
#
02ee7d07 |
| 08-Feb-2018 |
patrick <patrick@openbsd.org> |
Move bwfm(4) from ifq begin/commit/rollback semantics to the newer ifq dequeue semantics. This basically means we need to check for available space before dequeuing a packet. As soon as we dequeue
Move bwfm(4) from ifq begin/commit/rollback semantics to the newer ifq dequeue semantics. This basically means we need to check for available space before dequeuing a packet. As soon as we dequeue a packet we commit to it. On the PCIe backend this check can not be done easily since the flowring depends on the packet contents and we cannot take a peek. When there is no flowring we cache the mbuf and send it out as soon as the flowring opened up. Then the ifq can be restarted and traffic can flow. Typically we usually run out of packet ids, which can be checked without consulting the packet. The flowring probably never becomes full as the bwfm(4) firmware takes the packets off the ring without actually sending them out.
Discussed with dlg@
show more ...
|
#
7dfc0b73 |
| 07-Feb-2018 |
patrick <patrick@openbsd.org> |
Move parsing the BCDC header on RX into a protocol specific RX function so it can be shared with the SDIO attachment driver.
|
#
a4c8e2b6 |
| 07-Feb-2018 |
patrick <patrick@openbsd.org> |
Add helper to find out if the chip supports Save/Restore. Will be used in the SDIO bus glue.
|
#
f4e8af02 |
| 05-Feb-2018 |
patrick <patrick@openbsd.org> |
Move event packet handling into a serialized process context to remove a state transitioning race condition. Event packets, like completing authentication and the following association completion, a
Move event packet handling into a serialized process context to remove a state transitioning race condition. Event packets, like completing authentication and the following association completion, are usually received shortly after another. The code that handles those events is scheduled using a task, so it can easily happen that the state change caused by the authentication packet was not done before the following association event arrived. By moving the event packet handling into the same context as the state task we serialize the processing and remove the race condition. Fixes connecting to the 5GHz WiFi AP used at a2k18.
ok stsp@
show more ...
|
#
f67437f3 |
| 07-Jan-2018 |
patrick <patrick@openbsd.org> |
Create multiple transmit flowrings in station mode, four in total, based on TOS values. In AP mode create multiple flowrings per connected node.
|
#
518be5f3 |
| 05-Jan-2018 |
patrick <patrick@openbsd.org> |
To send out packets we need to create a flowring. Acting as station, we typically have about four flowrings per priority. As access point we apparently need one, or four considering the priorities,
To send out packets we need to create a flowring. Acting as station, we typically have about four flowrings per priority. As access point we apparently need one, or four considering the priorities, flowrings per client. For now let's start with a single TX flowring. To setup a flowring we need to send a create request and can only start sending packets as soon as we are told that the ring is created. With this we can now do actual network traffic.
show more ...
|