History log of /openbsd/sys/dev/ic/bwfmvar.h (Results 1 – 25 of 31)
Revision Date Author Comments
# 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 ...


12