From 51a2b3a9324716711ab832cf3e620ef273643705 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Tue, 27 Oct 2026 07:47:57 +0100 Subject: [PATCH] feat: add Broadcom FullMAC Wi-Fi driver --- docs/raspberry-pi.md | 87 +- kernel/src/Api/BuildNo.hpp | 2 +- kernel/src/CppLib/Spinlock.hpp | 3 + kernel/src/Drivers/Init.cpp | 32 + kernel/src/Drivers/Net/Wifi/Brcmf.hpp | 218 +++++ kernel/src/Drivers/Net/Wifi/BrcmfChip.cpp | 849 +++++++++++++++++ kernel/src/Drivers/Net/Wifi/BrcmfConnect.cpp | 902 ++++++++++++++++++ kernel/src/Drivers/Net/Wifi/BrcmfProto.cpp | 592 ++++++++++++ kernel/src/Drivers/Net/Wifi/BrcmfSdio.cpp | 436 +++++++++ kernel/src/Drivers/Net/Wifi/BrcmfSdio.hpp | 63 ++ kernel/src/Drivers/Net/Wifi/Iwx.hpp | 6 + kernel/src/Drivers/Net/Wifi/IwxConnect.cpp | 8 +- kernel/src/Drivers/Net/Wifi/Wifi.cpp | 361 +++++-- kernel/src/Drivers/Net/Wifi/Wifi.hpp | 10 + kernel/src/Drivers/Net/Wifi/Wpa.hpp | 3 +- kernel/src/Drivers/Platform/RpiFirmware.cpp | 9 + kernel/src/Drivers/Platform/RpiFirmware.hpp | 4 + kernel/src/Timekeeping/Timer.cpp | 3 +- .../data/firmware/brcm/brcmfmac43455-sdio.bin | Bin 0 -> 609309 bytes .../firmware/brcm/brcmfmac43455-sdio.clm_blob | Bin 0 -> 2676 bytes .../data/firmware/brcm/brcmfmac43455-sdio.txt | 98 ++ .../data/firmware/brcm/brcmfmac43456-sdio.bin | Bin 0 -> 495898 bytes .../firmware/brcm/brcmfmac43456-sdio.clm_blob | Bin 0 -> 7163 bytes .../data/firmware/brcm/brcmfmac43456-sdio.txt | 97 ++ programs/data/licenses/NOTICES.txt | 55 ++ .../data/licenses/Synaptics-wifi-firmware.txt | 161 ++++ programs/src/wifi/main.cpp | 4 +- tests/wifi/brcmf_harness.cpp | 769 +++++++++++++++ tests/wifi/mlme_harness.cpp | 10 + tests/wifi/run.sh | 13 +- tests/wifi/shim/CppLib/Spinlock.hpp | 1 + tests/wifi/shim/Memory/Heap.hpp | 10 + tests/wifi/shim/Terminal/Terminal.hpp | 2 + tests/wifi/shim/Timekeeping/Timer.hpp | 6 +- 34 files changed, 4719 insertions(+), 95 deletions(-) create mode 100644 kernel/src/Drivers/Net/Wifi/Brcmf.hpp create mode 100644 kernel/src/Drivers/Net/Wifi/BrcmfChip.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/BrcmfConnect.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/BrcmfProto.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/BrcmfSdio.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/BrcmfSdio.hpp create mode 100644 programs/data/firmware/brcm/brcmfmac43455-sdio.bin create mode 100644 programs/data/firmware/brcm/brcmfmac43455-sdio.clm_blob create mode 100644 programs/data/firmware/brcm/brcmfmac43455-sdio.txt create mode 100644 programs/data/firmware/brcm/brcmfmac43456-sdio.bin create mode 100644 programs/data/firmware/brcm/brcmfmac43456-sdio.clm_blob create mode 100644 programs/data/firmware/brcm/brcmfmac43456-sdio.txt create mode 100644 programs/data/licenses/Synaptics-wifi-firmware.txt create mode 100644 tests/wifi/brcmf_harness.cpp create mode 100644 tests/wifi/shim/Memory/Heap.hpp diff --git a/docs/raspberry-pi.md b/docs/raspberry-pi.md index 22fde68..8f10577 100644 --- a/docs/raspberry-pi.md +++ b/docs/raspberry-pi.md @@ -157,6 +157,7 @@ PL011 on GPIO 14/15: header pins 8 (TX) and 10 (RX), ground on pin 6, 115200 | VideoCore firmware mailbox (radio power, clocks, board MAC) | `BCM2849` (`RPIQ`) | `Drivers/Platform/RpiFirmware.cpp` | | GPIO pin functions | `BCM2845` (`GPI0`) | `Drivers/Platform/RpiGpio.cpp` | | Ethernet (GENET v5 MAC, BCM54213PE PHY) | `BCM6E4E` (`\_SB.ETH0`) | `Drivers/Net/Genet.cpp` | +| Wi-Fi (the same CYW4345x, SDIO) | Arasan SD controller `BCM2847`, GPIO 34-39 | `Drivers/Net/Wifi/Brcmf*.cpp` | The VL805 sits behind the BCM2711's PCIe, whose config space is not ECAM (the root bridge's `_DSD` says `linux-ecam-quirk-id = "bcm2711"`), so the @@ -239,18 +240,100 @@ The MAC address is the board's, read from OTP through the firmware mailbox driver programmed is the fallback. `dhcp.elf` waits up to 10 s for a wired link, since autonegotiation takes about 3 s after the PHY reset. +## Wi-Fi + +The radio's WLAN half is an SDIO card on the BCM2711's older SD controller, +the Arasan-derived EMMC (`BCM2847`, `0x7E300000`); the card slot is on +EMMC2, so the two never share a bus. Its pins are GPIO 34-39 (ALT3; clock +without a pull, the rest pulled up, as Linux's `sdio_pins`) and its power +switch, `WL_ON`, is line 1 of the firmware's GPIO expander. The probe +claims the controller only while the slot is on EMMC2 (`BRCME88C` present); +if the tables do not describe the Arasan, its address is taken as EMMC2's +less 256 KiB. + +It is a FullMAC radio: the firmware does the 802.11 MLME itself and the host +sees Ethernet frames. The driver follows Linux's brcmfmac (ISC license, +Broadcom; its notice is in `NOTICES.txt`): + +| File | Part | +|---|---| +| `BrcmfSdio.cpp` | the Arasan as an SDIO host: CMD5/3/7, 4-bit at 25 MHz, CMD52/CMD53, polled PIO, 32-bit register access | +| `BrcmfChip.cpp` | backplane window (function 1), clocks, the enumeration ROM's core list, firmware + NVRAM download, function 2, the firmware console | +| `BrcmfProto.cpp` | SDPCM framing and transmit credit, CDC ioctls, BDC data, events, the receive pump, the transmit queue | +| `BrcmfConnect.cpp` | preinit and CLM, escan, join, keys, link state | + +Once the root is mounted the idle loop: + +1. routes the pins, switches the EMMC clock on, pulses `WL_ON`, enumerates + the card (function 1 blocks of 64 bytes, function 2 of 512); +2. requests the ALP clock, reads the chip ID: `0x4345` revision 9 is the + CYW43456 (Pi 400), any other revision the CYW43455 (Pi 4B), which picks + `0:/os/firmware/brcm/brcmfmac43456-sdio.*` or `brcmfmac43455-sdio.*` + (shipped unmodified from Raspberry Pi OS's firmware-nonfree); +3. halts the ARM Cortex-R4, holds the 802.11 core in reset, sizes the RAM + from the CR4's banks, writes the firmware at `0x198000` and the NVRAM + (stripped to `key=value\0` pairs and a length token) at the top of RAM, + reading both back to verify, puts the reset vector at address 0 and + releases the CPU; +4. waits for the HT clock, sends the SDPCM protocol version through the + mailbox, enables function 2, the F2 watermark and MES busy signalling of + Linux's CYW43455 settings, save/restore if the chip has it, and the card + interrupt; +5. reads `cur_etheraddr` (the NVRAM's shared placeholder address + `b8:27:eb:74:f2:6c` is replaced with the board address + 1, as on + Raspberry Pi OS), loads the CLM blob (`clmload`, 1400-byte chunks: these + firmware builds carry no regulatory data of their own), turns off glom, + roaming, ARP/ND offload and power save, enables the events it handles and + brings the interface up (`WLC_UP`). + +Nothing uses the controller's interrupt: the bus is swept from the idle +loop (and from the timer tick when the cores never idle), every 10 ms while +a scan or a connection is active and every 250 ms otherwise, and at once when +the controller shows the card interrupt. Every sweep reads the SDIO core's +interrupt status, then every frame waiting in function 2 (a 4-byte header +read, then the rest). Ioctls wait for transmit credit and their answer by +sweeping the bus themselves. Frames are delivered with the bus unlocked, and +transmitting never waits for the bus: data frames go into a 32-frame queue +that whoever holds the bus, or the next sweep, sends. + +Scans are escans (all channels, active, firmware dwell times); each result +event carries a `brcmf_bss_info_le` whose information elements go into the +same scan table the Intel driver fills from beacons. A join sets `wpaie` +(the RSN element our supplicant builds), `wpa_auth`, `auth` and `wsec`, then +`join` with the BSSID and the chanspec escan reported. The 4-way handshake +runs in the host's supplicant (`Wpa.cpp`) as for the Intel adapter: EAPOL +frames are ordinary Ethernet frames here, and the keys go to the firmware +with `wsec_key` once message 4 has left the transmit queue. The radio does +AES-CCMP only: GCMP networks are refused, as are WPA3-only (SAE), WEP and +TKIP ones. + +Unanswered ioctls (a leaky bucket of three), a halt reported through +the mailbox, or repeated bus errors mark the radio failed: the firmware's +console and any trap record are printed to the kernel log (`WiFi-FW`), and +the facade's recovery powers the radio off and repeats the bring-up (at +most three times). + +`tests/wifi/run.sh` drives `BrcmfProto.cpp` and `BrcmfConnect.cpp` with the +real supplicant against a simulated firmware: preinit and the CLM chunks, +escan parsing, open and WPA2 joins (an independent authenticator checks +messages 2 and 4 and the installed keys), the wrong passphrase, refusals, +join timeouts and a firmware that stops answering. + ## Not supported yet - SD high-speed mode: the driver transfers by polled PIO at 25 MHz on a 4-bit bus (multi-block CMD18/CMD25 with Auto CMD12), at most 12.5 MB/s; switching the card to 50 MHz (CMD6) would double that. -- Wi-Fi (the CYW4345x's SDIO half, on the Arasan controller). +- Wi-Fi beyond 802.11 station mode on one interface: no access point mode, + no SDIO high speed (50 MHz), no glom, no firmware supplicant. - Audio (HDMI via VideoCore, the 3.5 mm jack via PWM). ## Status Bluetooth works on a Pi 400 (CYW43456), including A2DP music to -headphones. Ethernet has not run yet: QEMU has no GENET model. It is untested on a Pi 4B (CYW43455), and QEMU has no model of +headphones. Ethernet has not run yet: QEMU has no GENET model. Wi-Fi has +not run on hardware yet either (QEMU has no model of the radio); only its +protocol and connection layers are tested, in the host harness. It is untested on a Pi 4B (CYW43455), and QEMU has no model of the radio. Everything else above is verified on QEMU only, including the Pi-specific path: diff --git a/kernel/src/Api/BuildNo.hpp b/kernel/src/Api/BuildNo.hpp index 6ed5512..97624f7 100644 --- a/kernel/src/Api/BuildNo.hpp +++ b/kernel/src/Api/BuildNo.hpp @@ -12,4 +12,4 @@ #pragma once -#define MONTAUK_BUILD_NUMBER 109 +#define MONTAUK_BUILD_NUMBER 123 diff --git a/kernel/src/CppLib/Spinlock.hpp b/kernel/src/CppLib/Spinlock.hpp index 0760605..8402a9f 100644 --- a/kernel/src/CppLib/Spinlock.hpp +++ b/kernel/src/CppLib/Spinlock.hpp @@ -36,6 +36,9 @@ namespace kcp { Arch::Pause(); } } + bool TryAcquire() { + return !flag.test_and_set(std::memory_order_acquire); + } void Release() { flag.clear(std::memory_order_release); } diff --git a/kernel/src/Drivers/Init.cpp b/kernel/src/Drivers/Init.cpp index 7d1adb7..843fd9f 100644 --- a/kernel/src/Drivers/Init.cpp +++ b/kernel/src/Drivers/Init.cpp @@ -449,11 +449,43 @@ namespace Drivers { Net::Genet::ProbePlatform(base, length, gsi, level, activeLow, coherent, phyMode, burst); } + // The Raspberry Pi 4/400's Wi-Fi: the CYW4345x's SDIO half on the + // BCM2711's older Arasan controller (BCM2847, GPIO 34-39). Only while the + // card slot is on EMMC2 (BRCME88C): with the firmware's "SD on Arasan" + // option the Arasan runs the slot instead, and is not the radio's. + static void ProbePlatformBroadcomWifi() { + Hal::AcpiDevices::DeviceInfo emmc2{}; + if (!Hal::AcpiDevices::FindDeviceByHid("BRCME88C", emmc2)) return; + + Hal::AML::ResourceList resources; + uint64_t base = 0, length = 0; + Hal::AcpiDevices::DeviceInfo info{}; + const char* name = "BCM2847"; + if (Hal::AcpiDevices::FindDeviceByHid("BCM2847", info) && + Hal::AcpiDevices::EvaluateCrs(info.NodeIndex, resources) && + resources.GetMemory(base, length) && base != 0) { + name = info.Path; + } else { + // Not described: the Arasan sits 256 KiB below EMMC2 on the + // BCM2711 (0x7E300000 / 0x7E340000 bus addresses). + Hal::AML::ResourceList emmc2Resources; + uint64_t emmc2Base = 0; + if (!Hal::AcpiDevices::EvaluateCrs(emmc2.NodeIndex, emmc2Resources) || + !emmc2Resources.GetMemory(emmc2Base, length) || emmc2Base < 0x40000) { + return; + } + base = emmc2Base - 0x40000; + name = "the Arasan controller (inferred from EMMC2)"; + } + Net::Wifi::ProbeBroadcomSdio(base, name); + } + void ProbeNormal() { Pci::ProbeAll(g_driverTable, g_driverTableCount, Pci::ProbePhase::Normal); ProbePlatformXhci(); ProbePlatformSdhci(); ProbePlatformGenet(); + ProbePlatformBroadcomWifi(); Bluetooth::ProbePlatformAdapter(); } diff --git a/kernel/src/Drivers/Net/Wifi/Brcmf.hpp b/kernel/src/Drivers/Net/Wifi/Brcmf.hpp new file mode 100644 index 0000000..32c54aa --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/Brcmf.hpp @@ -0,0 +1,218 @@ +/* + * Brcmf.hpp + * Broadcom/Cypress FullMAC Wi-Fi over SDIO (CYW43455 / CYW43456 on the + * Raspberry Pi 4 / 400): driver-internal interface + * Derived in part from Linux's brcmfmac, Copyright (c) 2010-2014 Broadcom + * Corporation, ISC license (notice in programs/data/licenses/NOTICES.txt). + * Copyright (c) 2026 Daniel Hammer +*/ + +#pragma once +#include +#include + +// A FullMAC radio runs the 802.11 MLME itself: the host asks for scans and +// joins through ioctls and sees Ethernet frames. Layout, after Linux's +// brcmfmac: +// +// BrcmfSdio.cpp the SD controller as an SDIO host (CMD52/CMD53) +// BrcmfChip.cpp backplane access, core enumeration (EROM), clocks, +// firmware + NVRAM download, F2 bring-up, firmware console +// BrcmfProto.cpp SDPCM framing, CDC ioctls, BDC data, the RX pump, +// firmware events +// BrcmfConnect.cpp preinit, CLM, escan, join, keys, the facade entry points +// +// The handshake runs on the host (Wpa.cpp), exactly as for the Intel +// adapter: EAPOL frames arrive as Ethernet frames and the keys go back to the +// firmware with "wsec_key". +// +// Threading: everything on the bus holds g_brcmf.BusLock for the length of one +// SDIO exchange. The RX pump (BrcmfPoll) has a reentrancy guard and releases +// the bus lock before dispatching, so the network stack may transmit from +// inside a delivered frame. Dispatch must never issue an ioctl -- its answer +// is read by the very pump it would be waiting inside. Work needing one is +// queued for BrcmfConnectService(). + +namespace Drivers::Net::Wifi { + + // Facade-visible adapter state; values are the WIFI_STATE_* ABI ones. + enum class BrcmfState : uint8_t { + Absent = 0, + Detected, + Booting, + Running, + Error, + }; + + struct BrcmfCore { + uint16_t Id = 0; + uint8_t Rev = 0; + uint32_t Base = 0; + uint32_t Wrap = 0; + }; + + struct BrcmfDevice { + BrcmfState State = BrcmfState::Absent; + uint64_t ArasanMmio = 0; + + // Chip + uint16_t ChipId = 0; + uint8_t ChipRev = 0; + const char* FwName = nullptr; // "43455" / "43456" + BrcmfCore Cores[16]; + uint32_t CoreCount = 0; + uint32_t RamBase = 0; + uint32_t RamSize = 0; + uint32_t SdioCoreBase = 0; + uint32_t PmuBase = 0; + bool SrEnabled = false; + uint32_t SharedAddr = 0; // sdpcm_shared, 0 = not read yet + uint32_t ConsoleIdx = 0; // console bytes already printed + + // Bus + kcp::Mutex BusLock; + uint32_t Window = 0xFFFFFFFF; // backplane window, 0xFFFFFFFF = unknown + uint32_t HostIntMask = 0; + + // SDPCM + uint8_t TxSeq = 0; + uint8_t TxMax = 1; + bool RxPending = false; + + // Firmware + uint8_t Mac[6] = {}; + char FwVersion[32] = {}; + uint16_t ChannelCount = 0; + bool Band24 = true; + bool Band5 = false; + + // Health + uint32_t FwErrors = 0; + uint32_t CmdFailBucket = 0; // leaky bucket of unanswered ioctls + uint64_t RxPackets = 0; + uint64_t TxPackets = 0; + uint64_t LastPollMs = 0; + }; + + extern BrcmfDevice g_brcmf; + + // ========================================================================= + // BrcmfChip.cpp + // ========================================================================= + + bool BrcmfBpRead32(uint32_t addr, uint32_t& value); + bool BrcmfBpWrite32(uint32_t addr, uint32_t value); + bool BrcmfBpReadMem(uint32_t addr, uint8_t* buffer, uint32_t len); + bool BrcmfBpWriteMem(uint32_t addr, const uint8_t* buffer, uint32_t len); + // Point the backplane window at `addr` (function 2 transfers want it on + // ChipCommon, as Linux keeps it). + bool BrcmfBpSelectWindow(uint32_t addr); + + // Function-1 SDIO-core registers in the 0x1000x space. + bool BrcmfF1Read8(uint32_t reg, uint8_t& value); + bool BrcmfF1Write8(uint32_t reg, uint8_t value); + + // Power the radio, enumerate the SDIO card, identify the chip, download + // firmware + NVRAM, start the ARM and bring up function 2. Leaves + // g_brcmf ready for SDPCM traffic. + bool BrcmfChipBringUp(); + + // Hold the radio in reset (WL_ON low). + void BrcmfChipPowerOff(); + + // Print what the firmware wrote to its console since the last call, and + // a trap/assert summary if it has one. Takes the bus lock. + void BrcmfDumpConsole(); + + // Load 0:/os/firmware/brcm/brcmfmac-sdio.. The caller frees. + uint8_t* BrcmfLoadFile(const char* ext, uint32_t& size, bool required); + + // ========================================================================= + // BrcmfProto.cpp + // ========================================================================= + + void BrcmfProtoReset(); + + // Drain the device: interrupt status, mailbox, every pending frame, and + // queued transmits. Reentrancy guarded; returns at once if another core + // is already pumping. + void BrcmfPoll(); + + // Whether a poll is due (card interrupt, queued TX, the periodic sweep). + bool BrcmfPollDue(uint64_t now, uint64_t intervalMs); + + // Synchronous firmware command. `buf` carries the request (for a query, + // its first bytes, e.g. an iovar name) and receives up to `len` bytes of + // answer. Returns false on a transport failure, a timeout, or a negative + // firmware status (*fwStatus, when given, receives it). + bool BrcmfIoctl(uint32_t cmd, bool set, void* buf, uint32_t len, int32_t* fwStatus = nullptr); + + bool BrcmfSetInt(uint32_t cmd, uint32_t value); + bool BrcmfGetInt(uint32_t cmd, uint32_t& value); + bool BrcmfIovarSet(const char* name, const void* data, uint32_t len, bool quiet = false); + bool BrcmfIovarGet(const char* name, void* out, uint32_t len, bool quiet = false); + bool BrcmfIovarSetInt(const char* name, uint32_t value, bool quiet = false); + bool BrcmfIovarGetInt(const char* name, uint32_t& value, bool quiet = false); + + // Queue an Ethernet frame for transmission (802.3, 14-byte header). + bool BrcmfTxEthernet(const uint8_t* frame, uint32_t len); + bool BrcmfTxPending(); + + // ========================================================================= + // BrcmfConnect.cpp -- called from the protocol layer + // ========================================================================= + + // A firmware event. Runs inside the pump: no ioctls. + void BrcmfOnEvent(uint32_t type, uint32_t status, uint32_t reason, uint16_t flags, + const uint8_t* addr, const uint8_t* data, uint32_t len); + + // A received Ethernet frame. Runs inside the pump. + void BrcmfOnRxEthernet(const uint8_t* frame, uint32_t len); + + // The firmware halted or stopped answering. + void BrcmfOnFirmwareFailure(const char* why); + + // ========================================================================= + // BrcmfConnect.cpp -- the facade's backend (Wifi.cpp) + // ========================================================================= + + bool BrcmfProbe(uint64_t arasanMmio); + bool BrcmfCompleteInit(); + void BrcmfShutdown(); // for recovery: power the radio off + + BrcmfState BrcmfGetState(); + bool BrcmfHasWork(uint64_t now); + void BrcmfService(); // pump + connection service + + bool BrcmfStartScan(); + void BrcmfAbortScan(); + bool BrcmfScanActive(); + + bool BrcmfConnectStart(const uint8_t* bssid, uint8_t channel, const char* ssid, + const char* password, const uint8_t* rsnIe, uint8_t rsnIeLen); + void BrcmfConnectAbort(); + int BrcmfConnectState(); // IwxConnStateId values + bool BrcmfConnectRefusedForSecurity(); + bool BrcmfJoinFailedOnAuth(); + const char* BrcmfConnectSsid(); + const uint8_t* BrcmfConnectBssid(); + uint8_t BrcmfConnectChannel(); + bool BrcmfLinkUp(); + bool BrcmfSendEthernet(const uint8_t* frame, uint32_t len); + + bool BrcmfWpaTxEapol(const uint8_t* body, uint32_t len); + bool BrcmfWpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher); + bool BrcmfWpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc); + + // ========================================================================= + // Wifi.cpp -- the facade, called by the backend + // ========================================================================= + + // One BSS from a scan: its information elements, as in a beacon body + // after the fixed fields. + void WifiRxBssInfo(const uint8_t* bssid, uint16_t beaconInterval, uint16_t capability, + const uint8_t* ies, uint32_t iesLen, uint8_t channel, int8_t rssiDbm); + void WifiRxEthernet(const uint8_t* frame, uint32_t len); + +} diff --git a/kernel/src/Drivers/Net/Wifi/BrcmfChip.cpp b/kernel/src/Drivers/Net/Wifi/BrcmfChip.cpp new file mode 100644 index 0000000..e9862bd --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/BrcmfChip.cpp @@ -0,0 +1,849 @@ +/* + * BrcmfChip.cpp + * Broadcom FullMAC over SDIO: backplane access, core enumeration, clocks, + * firmware and NVRAM download, function 2 bring-up, firmware console + * Derived in part from Linux's brcmfmac, Copyright (c) 2010-2014 Broadcom + * Corporation, ISC license (notice in programs/data/licenses/NOTICES.txt). + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Brcmf.hpp" +#include "BrcmfSdio.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// The radio is a small SoC of its own (a Broadcom "AI" interconnect): an +// ARM Cortex-R4 with its tightly coupled RAM, the 802.11 MAC/PHY core (D11), +// ChipCommon (with the PMU) and an SDIO device core. Function 1 of the SDIO +// card is a window onto that backplane: three window registers select the +// 32 KiB page, and CMD53 at offset | 0x8000 reaches it. +// +// Bring-up follows Linux's brcmfmac (sdio.c, chip.c, firmware.c): +// 1. route GPIO 34-39 to the Arasan controller, pulse WL_ON (line 1 of the +// VideoCore's GPIO expander), enumerate the card; +// 2. request the ALP clock, read the chip ID, walk the enumeration ROM for +// the cores; +// 3. halt the ARM and hold the D11 core in reset, size the RAM from the +// CR4's bank registers; +// 4. write the firmware at the RAM base and the NVRAM at its top (with the +// length token in the last word), write the reset vector to address 0 +// and release the ARM; +// 5. wait for the HT clock the firmware brings up, tell the SDIO core the +// protocol version, enable function 2 (frames) and its interrupts. + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + namespace RpiFirmware = Drivers::Platform::RpiFirmware; + namespace RpiGpio = Drivers::Platform::RpiGpio; + + BrcmfDevice g_brcmf; + + // ========================================================================= + // Registers + // ========================================================================= + + // Function 1, SDIO core local space + static constexpr uint32_t F1_WATERMARK = 0x10008; + static constexpr uint32_t F1_DEVICE_CTL = 0x10009; + static constexpr uint32_t F1_SBADDRLOW = 0x1000A; + static constexpr uint32_t F1_SBADDRMID = 0x1000B; + static constexpr uint32_t F1_SBADDRHIGH = 0x1000C; + static constexpr uint32_t F1_CHIPCLKCSR = 0x1000E; + static constexpr uint32_t F1_SDIOPULLUP = 0x1000F; + static constexpr uint32_t F1_MESBUSYCTRL = 0x1001D; + static constexpr uint32_t F1_WAKEUPCTRL = 0x1001E; + + static constexpr uint8_t CLK_FORCE_ALP = 0x01; + static constexpr uint8_t CLK_FORCE_HT = 0x02; + static constexpr uint8_t CLK_ALP_AVAIL_REQ = 0x08; + static constexpr uint8_t CLK_HT_AVAIL_REQ = 0x10; + static constexpr uint8_t CLK_FORCE_HW_REQ_OFF= 0x20; + static constexpr uint8_t CLK_ALP_AVAIL = 0x40; + static constexpr uint8_t CLK_HT_AVAIL = 0x80; + + static constexpr uint8_t DEVCTL_F2WM_ENAB = 0x10; + static constexpr uint8_t MESBUSY_ENAB = 0x80; + static constexpr uint8_t WAKEUP_HTWAIT = 0x02; + + // CYW43455 values (Linux CY_43455_*): a deeper F2 watermark and + // MES busy signalling keep the card's FIFO from overrunning. + static constexpr uint8_t F2_WATERMARK_43455 = 0x60; + static constexpr uint8_t MES_WATERMARK_43455 = 0x50; + + // Broadcom vendor CCCR + static constexpr uint32_t CCCR_BRCM_CARDCAP = 0xF0; + static constexpr uint8_t CARDCAP_CMD14 = 0x02 | 0x04; // support | ext + static constexpr uint32_t CCCR_BRCM_CARDCTRL = 0xF1; + static constexpr uint8_t CARDCTRL_WLANRESET = 0x02; + + // Backplane + static constexpr uint32_t SI_ENUM_BASE = 0x18000000; // ChipCommon + static constexpr uint32_t CC_CHIPID = 0x000; + static constexpr uint32_t CC_CAPS_EXT = 0x0AC; + static constexpr uint32_t CAPS_EXT_AOB = 0x40; // PMU in its own "always on" core + static constexpr uint32_t CC_EROMPTR = 0x0FC; + static constexpr uint32_t CC_PMUCONTROL = 0x600; + static constexpr uint32_t CC_CHIPCONTROL_ADDR = 0x650; + static constexpr uint32_t CC_CHIPCONTROL_DATA = 0x654; + static constexpr uint32_t PMU_CTL_RES_RELOAD = 2u << 13; + + // SDIO device core + static constexpr uint32_t SD_INTSTATUS = 0x20; + static constexpr uint32_t SD_HOSTINTMASK = 0x24; + static constexpr uint32_t SD_TOSBMAILBOXDATA = 0x48; + static constexpr uint32_t SDPCM_PROT_VERSION = 4; + static constexpr uint32_t HOSTINTMASK = 0x000000F0 | (1u << 29); // HMB SW | CHIPACTIVE + + // Core wrapper (AI) + static constexpr uint32_t WRAP_IOCTL = 0x408; + static constexpr uint32_t WRAP_RESET_CTL = 0x800; + static constexpr uint32_t IOCTL_CLK = 0x0001; + static constexpr uint32_t IOCTL_FGC = 0x0002; + static constexpr uint32_t RESET_CTL_RESET = 0x0001; + + static constexpr uint32_t CR4_IOCTL_CPUHALT = 0x0020; + static constexpr uint32_t D11_IOCTL_PHYCLKEN = 0x0004; + static constexpr uint32_t D11_IOCTL_PHYRESET = 0x0008; + + // ARM CR4 core + static constexpr uint32_t CR4_CAP = 0x04; + static constexpr uint32_t CR4_BANKIDX = 0x40; + static constexpr uint32_t CR4_BANKINFO = 0x44; + + // Core IDs + static constexpr uint16_t CORE_CHIPCOMMON = 0x800; + static constexpr uint16_t CORE_80211 = 0x812; + static constexpr uint16_t CORE_PMU = 0x827; + static constexpr uint16_t CORE_SDIO_DEV = 0x829; + static constexpr uint16_t CORE_ARM_CR4 = 0x83E; + static constexpr uint16_t CORE_GCI = 0x840; + + static constexpr uint16_t CHIP_4345 = 0x4345; + static constexpr uint32_t RAMBASE_4345 = 0x198000; + + // ========================================================================= + // Function 1 and the backplane + // ========================================================================= + + bool BrcmfF1Read8(uint32_t reg, uint8_t& value) { return Sdio::Read8(Sdio::FN1, reg, value); } + bool BrcmfF1Write8(uint32_t reg, uint8_t value) { return Sdio::Write8(Sdio::FN1, reg, value); } + + static bool SetWindow(uint32_t addr) { + uint32_t window = addr & ~0x7FFFu; + if (window == g_brcmf.Window) return true; + bool ok = BrcmfF1Write8(F1_SBADDRLOW, (uint8_t)((window >> 8) & 0x80)) + && BrcmfF1Write8(F1_SBADDRMID, (uint8_t)(window >> 16)) + && BrcmfF1Write8(F1_SBADDRHIGH, (uint8_t)(window >> 24)); + g_brcmf.Window = ok ? window : 0xFFFFFFFF; + return ok; + } + + bool BrcmfBpSelectWindow(uint32_t addr) { return SetWindow(addr); } + + // 0x8000 in the function 1 address selects a 4-byte backplane access. + static constexpr uint32_t SB_ACCESS_4B = 0x8000; + + bool BrcmfBpRead32(uint32_t addr, uint32_t& value) { + uint32_t word = 0; + if (!SetWindow(addr)) return false; + if (!Sdio::ReadBlock(Sdio::FN1, (addr & 0x7FFF) | SB_ACCESS_4B, true, (uint8_t*)&word, 4)) + return false; + value = word; + return true; + } + + bool BrcmfBpWrite32(uint32_t addr, uint32_t value) { + if (!SetWindow(addr)) return false; + return Sdio::WriteBlock(Sdio::FN1, (addr & 0x7FFF) | SB_ACCESS_4B, true, (const uint8_t*)&value, 4); + } + + static bool BpMem(bool write, uint32_t addr, uint8_t* buffer, uint32_t len) { + while (len > 0) { + uint32_t offset = addr & 0x7FFF; + uint32_t run = 0x8000 - offset; + if (run > len) run = len; + if (!SetWindow(addr)) return false; + bool ok = write ? Sdio::WriteBlock(Sdio::FN1, offset, true, buffer, run) + : Sdio::ReadBlock(Sdio::FN1, offset, true, buffer, run); + if (!ok) return false; + addr += run; + buffer += run; + len -= run; + } + return true; + } + + bool BrcmfBpReadMem(uint32_t addr, uint8_t* buffer, uint32_t len) { + return BpMem(false, addr, buffer, len); + } + + bool BrcmfBpWriteMem(uint32_t addr, const uint8_t* buffer, uint32_t len) { + return BpMem(true, addr, (uint8_t*)buffer, len); + } + + static uint32_t Rd(uint32_t addr) { + uint32_t v = 0; + BrcmfBpRead32(addr, v); + return v; + } + + // ========================================================================= + // Cores + // ========================================================================= + + static const BrcmfCore* FindCore(uint16_t id) { + for (uint32_t i = 0; i < g_brcmf.CoreCount; i++) + if (g_brcmf.Cores[i].Id == id) return &g_brcmf.Cores[i]; + return nullptr; + } + + // Enumeration ROM (Linux brcmf_chip_dmp_erom_scan). + static constexpr uint32_t DESC_TYPE_MSK = 0x0000000F; + static constexpr uint32_t DESC_VALID = 0x00000001; + static constexpr uint32_t DESC_COMPONENT = 0x00000001; + static constexpr uint32_t DESC_MASTER_PORT = 0x00000003; + static constexpr uint32_t DESC_ADDRESS = 0x00000005; + static constexpr uint32_t DESC_ADDRSIZE_GT32 = 0x00000008; + static constexpr uint32_t DESC_EOT = 0x0000000F; + static constexpr uint32_t COMP_PARTNUM_MASK = 0x000FFF00, COMP_PARTNUM_SHIFT = 8; + static constexpr uint32_t COMP_REV_MASK = 0xFF000000, COMP_REV_SHIFT = 24; + static constexpr uint32_t COMP_NSW_MASK = 0x00F80000, COMP_NSW_SHIFT = 19; + static constexpr uint32_t COMP_NMW_MASK = 0x0007C000, COMP_NMW_SHIFT = 14; + static constexpr uint32_t SLAVE_ADDR_BASE = 0xFFFFF000; + static constexpr uint32_t SLAVE_TYPE_MASK = 0x000000C0, SLAVE_TYPE_SHIFT = 6; + static constexpr uint32_t SLAVE_TYPE_SLAVE = 0; + static constexpr uint32_t SLAVE_TYPE_SWRAP = 2; + static constexpr uint32_t SLAVE_TYPE_MWRAP = 3; + static constexpr uint32_t SLAVE_SIZE_MASK = 0x00000030, SLAVE_SIZE_SHIFT = 4; + static constexpr uint32_t SLAVE_SIZE_4K = 0; + static constexpr uint32_t SLAVE_SIZE_8K = 1; + static constexpr uint32_t SLAVE_SIZE_DESC = 3; + + static uint32_t EromNext(uint32_t& erom, uint32_t* type) { + uint32_t v = Rd(erom); + erom += 4; + uint32_t t = v & DESC_TYPE_MSK; + if ((t & ~DESC_ADDRSIZE_GT32) == DESC_ADDRESS) t = DESC_ADDRESS; + if (type) *type = t; + return v; + } + + static bool EromRegAddr(uint32_t& erom, uint32_t& regBase, uint32_t& wrapBase) { + regBase = 0; + wrapBase = 0; + uint32_t desc = 0, val = 0; + uint32_t wrapType; + + // One descriptor decides it, as in Linux: a master port means the + // core's wrapper is a master wrapper (any further master ports are + // skipped by the address search below); an address straight away + // means a slave wrapper. Cores with master ports -- the CR4, D11, + // the SDIO core, and ChipCommon on these chips -- must not be + // looked up as slave-wrapped: their wrapper is never found, and the + // halt/release writes go nowhere. + val = EromNext(erom, &desc); + if (desc == DESC_MASTER_PORT) { + wrapType = SLAVE_TYPE_MWRAP; + } else if (desc == DESC_ADDRESS) { + erom -= 4; + wrapType = SLAVE_TYPE_SWRAP; + } else { + erom -= 4; + return false; + } + + for (int guard = 0; guard < 64; guard++) { + do { + val = EromNext(erom, &desc); + if (desc == DESC_EOT) { erom -= 4; return false; } + } while (desc != DESC_ADDRESS && desc != DESC_COMPONENT); + + if (desc == DESC_COMPONENT) { erom -= 4; return true; } + + if (val & DESC_ADDRSIZE_GT32) EromNext(erom, nullptr); + uint32_t sizeType = (val & SLAVE_SIZE_MASK) >> SLAVE_SIZE_SHIFT; + if (sizeType == SLAVE_SIZE_DESC) { + uint32_t size = EromNext(erom, nullptr); + if (size & DESC_ADDRSIZE_GT32) EromNext(erom, nullptr); + } + if (sizeType != SLAVE_SIZE_4K && sizeType != SLAVE_SIZE_8K) continue; + + uint32_t slaveType = (val & SLAVE_TYPE_MASK) >> SLAVE_TYPE_SHIFT; + if (regBase == 0 && slaveType == SLAVE_TYPE_SLAVE) regBase = val & SLAVE_ADDR_BASE; + if (wrapBase == 0 && slaveType == wrapType) wrapBase = val & SLAVE_ADDR_BASE; + if (regBase && wrapBase) return true; + } + return false; + } + + static bool ScanCores() { + g_brcmf.CoreCount = 0; + uint32_t erom = Rd(SI_ENUM_BASE + CC_EROMPTR); + if (erom == 0 || erom == 0xFFFFFFFF) return false; + + uint32_t desc = 0; + for (int guard = 0; guard < 512 && desc != DESC_EOT; guard++) { + uint32_t val = EromNext(erom, &desc); + if (!(val & DESC_VALID) || desc != DESC_COMPONENT) continue; + uint16_t id = (uint16_t)((val & COMP_PARTNUM_MASK) >> COMP_PARTNUM_SHIFT); + + val = EromNext(erom, &desc); + if (desc != DESC_COMPONENT) return false; + uint32_t nmw = (val & COMP_NMW_MASK) >> COMP_NMW_SHIFT; + uint32_t nsw = (val & COMP_NSW_MASK) >> COMP_NSW_SHIFT; + uint8_t rev = (uint8_t)((val & COMP_REV_MASK) >> COMP_REV_SHIFT); + if (nmw + nsw == 0 && id != CORE_PMU && id != CORE_GCI) continue; + + uint32_t base = 0, wrap = 0; + if (!EromRegAddr(erom, base, wrap)) continue; + if (g_brcmf.CoreCount < sizeof(g_brcmf.Cores) / sizeof(g_brcmf.Cores[0])) { + g_brcmf.Cores[g_brcmf.CoreCount++] = { id, rev, base, wrap }; + } + } + const BrcmfCore* cr4 = FindCore(CORE_ARM_CR4); + return FindCore(CORE_CHIPCOMMON) && FindCore(CORE_SDIO_DEV) && cr4 && cr4->Wrap != 0; + } + + static void CoreDisable(const BrcmfCore* core, uint32_t prereset, uint32_t reset) { + if (!(Rd(core->Wrap + WRAP_RESET_CTL) & RESET_CTL_RESET)) { + BrcmfBpWrite32(core->Wrap + WRAP_IOCTL, prereset | IOCTL_FGC | IOCTL_CLK); + Rd(core->Wrap + WRAP_IOCTL); + BrcmfBpWrite32(core->Wrap + WRAP_RESET_CTL, RESET_CTL_RESET); + Timekeeping::BusyWaitUs(20); + for (int i = 0; i < 30 && Rd(core->Wrap + WRAP_RESET_CTL) != RESET_CTL_RESET; i++) + Timekeeping::BusyWaitUs(10); + } + BrcmfBpWrite32(core->Wrap + WRAP_IOCTL, reset | IOCTL_FGC | IOCTL_CLK); + Rd(core->Wrap + WRAP_IOCTL); + } + + static void CoreReset(const BrcmfCore* core, uint32_t prereset, uint32_t reset, uint32_t postreset) { + CoreDisable(core, prereset, reset); + for (int i = 0; i < 50 && (Rd(core->Wrap + WRAP_RESET_CTL) & RESET_CTL_RESET); i++) { + BrcmfBpWrite32(core->Wrap + WRAP_RESET_CTL, 0); + Timekeeping::BusyWaitUs(50); + } + BrcmfBpWrite32(core->Wrap + WRAP_IOCTL, postreset | IOCTL_CLK); + Rd(core->Wrap + WRAP_IOCTL); + } + + // The CR4's TCM: ATCM and BTCM bank counts in CAP, each bank's size in + // 8 KiB units in BANKINFO. + static uint32_t Cr4RamSize(const BrcmfCore* cr4) { + uint32_t cap = Rd(cr4->Base + CR4_CAP); + uint32_t banks = (cap & 0xF) + ((cap >> 4) & 0xF); + uint32_t size = 0; + for (uint32_t i = 0; i < banks; i++) { + BrcmfBpWrite32(cr4->Base + CR4_BANKIDX, i); + uint32_t info = Rd(cr4->Base + CR4_BANKINFO); + size += ((info & 0x3F) + 1) * 8192; + } + return size; + } + + // ========================================================================= + // Firmware files + // ========================================================================= + + uint8_t* BrcmfLoadFile(const char* ext, uint32_t& size, bool required) { + char path[80]; + int n = 0; + auto add = [&](const char* s) { while (*s && n < 78) path[n++] = *s++; }; + add("0:/os/firmware/brcm/brcmfmac"); + add(g_brcmf.FwName); + add("-sdio."); + add(ext); + path[n] = '\0'; + + size = 0; + Fs::Vfs::BackendFile file; + if (Fs::Vfs::OpenBackendFile(path, file) < 0) { + if (required) KernelLogStream(ERROR, "WiFi") << "Firmware file not found: " << path; + return nullptr; + } + uint64_t fileSize = Fs::Vfs::GetBackendFileSize(file); + if (fileSize == 0 || fileSize > 4 * 1024 * 1024) { + Fs::Vfs::CloseBackendFile(file); + KernelLogStream(ERROR, "WiFi") << "Unusable firmware file " << path; + return nullptr; + } + // Rounded up and zero padded: everything goes over the bus in dwords. + uint32_t padded = ((uint32_t)fileSize + 3) & ~3u; + uint8_t* data = (uint8_t*)Memory::g_heap->Request(padded); + if (!data) { + Fs::Vfs::CloseBackendFile(file); + return nullptr; + } + memset(data, 0, padded); + int got = Fs::Vfs::ReadBackendFile(file, data, 0, fileSize); + Fs::Vfs::CloseBackendFile(file); + if (got != (int)fileSize) { + Memory::g_heap->Free(data); + KernelLogStream(ERROR, "WiFi") << "Short read of " << path; + return nullptr; + } + size = (uint32_t)fileSize; + KernelLogStream(INFO, "WiFi") << "Loaded " << path << " (" << (uint64_t)size << " bytes)"; + return data; + } + + // The NVRAM text ("key=value" lines, '#' comments) becomes the binary + // form the firmware reads: NUL-terminated pairs, zero padded to a dword + // (at least one extra NUL), then a token word holding the padded length + // in dwords and its complement (Linux brcmf_fw_nvram_strip). + static uint8_t* BuildNvram(const uint8_t* text, uint32_t len, uint32_t& outLen) { + uint8_t* out = (uint8_t*)Memory::g_heap->Request(len + 8); + if (!out) return nullptr; + uint32_t n = 0; + uint32_t i = 0; + auto printable = [](uint8_t c) { return c > 0x20 && c < 0x7F && c != '#'; }; + while (i < len) { + while (i < len && (text[i] == ' ' || text[i] == '\t' || text[i] == '\r' || text[i] == '\n')) i++; + if (i >= len) break; + if (text[i] == '#') { + while (i < len && text[i] != '\n') i++; + continue; + } + uint32_t start = i; + bool sawEquals = false; + while (i < len && printable(text[i])) { + if (text[i] == '=') sawEquals = true; + i++; + } + if (sawEquals && i > start) { + memcpy(out + n, text + start, i - start); + n += i - start; + out[n++] = '\0'; + } + while (i < len && text[i] != '\n') i++; + } + uint32_t padded = (n + 1 + 3) & ~3u; + while (n < padded) out[n++] = 0; + uint32_t words = padded / 4; + uint32_t token = (~words << 16) | (words & 0xFFFF); + memcpy(out + n, &token, 4); + outLen = n + 4; + return out; + } + + static bool DownloadAndVerify(uint32_t addr, const uint8_t* data, uint32_t len) { + if (!BrcmfBpWriteMem(addr, data, len)) return false; + + // Read the image back: a marginal SDIO bus shows up here as a clean + // error instead of as a firmware that never starts. + uint8_t* check = (uint8_t*)Memory::g_heap->Request(4096); + if (!check) return true; + bool ok = true; + for (uint32_t off = 0; off < len && ok; off += 4096) { + uint32_t run = len - off < 4096 ? len - off : 4096; + if (!BrcmfBpReadMem(addr + off, check, run) || memcmp(check, data + off, run) != 0) { + KernelLogStream(ERROR, "WiFi") << "Firmware verify failed at offset 0x" + << base::hex << (uint64_t)off << base::dec; + ok = false; + } + } + Memory::g_heap->Free(check); + return ok; + } + + // ========================================================================= + // Bring-up + // ========================================================================= + + static bool WaitClock(uint8_t bit, uint64_t timeoutMs) { + uint64_t start = Timekeeping::GetMilliseconds(); + for (;;) { + uint8_t v = 0; + if (BrcmfF1Read8(F1_CHIPCLKCSR, v) && (v & bit)) return true; + if (Timekeeping::GetMilliseconds() - start > timeoutMs) return false; + Timekeeping::BusyWaitUs(200); + } + } + + void BrcmfChipPowerOff() { + RpiFirmware::SetGpioOutput(RpiFirmware::EXPGPIO_WL_ON, false); + } + + static bool PowerOnAndEnumerate() { + // GPIO 34-39: CLK, CMD, DAT0-3 on ALT3 (the Arasan), pulled up but + // for the clock, as Linux's sdio_pins. + for (uint32_t pin = 34; pin <= 39; pin++) { + RpiGpio::SetFunction(pin, RpiGpio::Function::Alt3); + RpiGpio::SetPull(pin, pin == 34 ? RpiGpio::Pull::None : RpiGpio::Pull::Up); + } + + if (!RpiFirmware::SetGpioOutput(RpiFirmware::EXPGPIO_WL_ON, false)) { + KernelLogStream(ERROR, "WiFi") << "Cannot switch the radio's power (WL_ON)"; + return false; + } + Timekeeping::BusyWaitMs(20); + RpiFirmware::SetGpioOutput(RpiFirmware::EXPGPIO_WL_ON, true); + Timekeeping::BusyWaitMs(250); + + // The legacy EMMC clock feeds the Arasan; nothing on the boot path + // uses that controller, so make sure the clock is not gated. + if (!RpiFirmware::SetClockState(RpiFirmware::CLOCK_EMMC, true)) + KernelLogStream(WARNING, "WiFi") << "Could not switch the EMMC clock on"; + uint32_t clockHz = 0; + if (!RpiFirmware::GetClockRate(RpiFirmware::CLOCK_EMMC, clockHz)) clockHz = 0; + if (!Sdio::HostInit(g_brcmf.ArasanMmio, clockHz)) return false; + return Sdio::CardInit(); + } + + static bool AttachChip() { + g_brcmf.Window = 0xFFFFFFFF; + + // ALP first: the backplane runs from it until the firmware has set + // up the PLL. + uint8_t req = CLK_FORCE_HW_REQ_OFF | CLK_ALP_AVAIL_REQ; + uint8_t v = 0; + if (!BrcmfF1Write8(F1_CHIPCLKCSR, req) || !BrcmfF1Read8(F1_CHIPCLKCSR, v) || + (v & ~(CLK_ALP_AVAIL | CLK_HT_AVAIL)) != req) { + KernelLogStream(ERROR, "WiFi") << "ChipClkCSR: wrote 0x" << base::hex << (uint64_t)req + << ", read 0x" << (uint64_t)v << base::dec; + return false; + } + if (!WaitClock(CLK_ALP_AVAIL, 100)) { + KernelLogStream(ERROR, "WiFi") << "ALP clock never became available"; + return false; + } + BrcmfF1Write8(F1_CHIPCLKCSR, CLK_FORCE_HW_REQ_OFF | CLK_FORCE_ALP); + Timekeeping::BusyWaitUs(65); + BrcmfF1Write8(F1_SDIOPULLUP, 0); + + uint32_t chipId = 0; + if (!BrcmfBpRead32(SI_ENUM_BASE + CC_CHIPID, chipId)) { + KernelLogStream(ERROR, "WiFi") << "Backplane read failed"; + return false; + } + g_brcmf.ChipId = (uint16_t)(chipId & 0xFFFF); + g_brcmf.ChipRev = (uint8_t)((chipId >> 16) & 0xF); + uint32_t socType = chipId >> 28; + + KernelLogStream(INFO, "WiFi") << "Broadcom chip " << base::hex << (uint64_t)g_brcmf.ChipId + << base::dec << " rev " << (uint64_t)g_brcmf.ChipRev; + + if (g_brcmf.ChipId != CHIP_4345 || socType != 1) { + KernelLogStream(ERROR, "WiFi") << "Unsupported chip (only the BCM4345 family: " + "CYW43455 / CYW43456)"; + return false; + } + // Linux's table: revision 9 is the CYW43456 (Pi 400), the others + // the CYW43455 (Pi 4B). + g_brcmf.FwName = g_brcmf.ChipRev == 9 ? "43456" : "43455"; + + if (!ScanCores()) { + KernelLogStream(ERROR, "WiFi") << "Enumeration ROM scan found no usable cores"; + return false; + } + // Linux brcmf_chip_get_pmu: the PMU registers live in a core of their + // own only when ChipCommon (rev 35+) says the always-on block exists; + // otherwise they are ChipCommon's, at the same offsets. + const BrcmfCore* cc = FindCore(CORE_CHIPCOMMON); + const BrcmfCore* pmu = FindCore(CORE_PMU); + uint32_t capsExt = cc->Rev >= 35 ? Rd(cc->Base + CC_CAPS_EXT) : 0; + g_brcmf.PmuBase = (pmu && (capsExt & CAPS_EXT_AOB)) ? pmu->Base : cc->Base; + g_brcmf.SdioCoreBase = FindCore(CORE_SDIO_DEV)->Base; + + for (uint32_t i = 0; i < g_brcmf.CoreCount; i++) { + const BrcmfCore& c = g_brcmf.Cores[i]; + KernelLogStream(INFO, "WiFi") << " core 0x" << base::hex << (uint64_t)c.Id << " rev " + << base::dec << (uint64_t)c.Rev << " at 0x" << base::hex << (uint64_t)c.Base + << ", wrapper 0x" << (uint64_t)c.Wrap << base::dec; + } + KernelLogStream(INFO, "WiFi") << "ChipCommon rev " << (uint64_t)cc->Rev << ", caps_ext 0x" + << base::hex << (uint64_t)capsExt << ", PMU registers at 0x" << (uint64_t)g_brcmf.PmuBase + << base::dec; + + // Passive: ARM halted, D11 held in reset with its PHY clock on. + const BrcmfCore* cr4 = FindCore(CORE_ARM_CR4); + CoreReset(cr4, CR4_IOCTL_CPUHALT, CR4_IOCTL_CPUHALT, CR4_IOCTL_CPUHALT); + if (const BrcmfCore* d11 = FindCore(CORE_80211)) { + CoreReset(d11, D11_IOCTL_PHYRESET | D11_IOCTL_PHYCLKEN, D11_IOCTL_PHYCLKEN, D11_IOCTL_PHYCLKEN); + } + uint32_t haltIoctl = Rd(cr4->Wrap + WRAP_IOCTL); + uint32_t haltReset = Rd(cr4->Wrap + WRAP_RESET_CTL); + if (haltIoctl != (CR4_IOCTL_CPUHALT | IOCTL_CLK) || (haltReset & RESET_CTL_RESET)) { + KernelLogStream(ERROR, "WiFi") << "The CR4 did not take the halt (wrapper 0x" << base::hex + << (uint64_t)cr4->Wrap << ": ioctl 0x" << (uint64_t)haltIoctl << " reset 0x" + << (uint64_t)haltReset << base::dec << ", expected 0x21 / 0x0)"; + return false; + } + + g_brcmf.RamBase = RAMBASE_4345; + g_brcmf.RamSize = Cr4RamSize(cr4); + if (g_brcmf.RamSize == 0 || g_brcmf.RamSize > 4 * 1024 * 1024) { + KernelLogStream(ERROR, "WiFi") << "Implausible RAM size " << (uint64_t)g_brcmf.RamSize; + return false; + } + + // An SDIO card reset also resets the WLAN backplane, and a backplane + // reset reloads the PMU state. + uint8_t cardCtrl = 0; + if (Sdio::Read8(Sdio::FN0, CCCR_BRCM_CARDCTRL, cardCtrl)) + Sdio::Write8(Sdio::FN0, CCCR_BRCM_CARDCTRL, cardCtrl | CARDCTRL_WLANRESET); + BrcmfBpWrite32(g_brcmf.PmuBase + CC_PMUCONTROL, + Rd(g_brcmf.PmuBase + CC_PMUCONTROL) | PMU_CTL_RES_RELOAD); + + KernelLogStream(INFO, "WiFi") << "CYW" << g_brcmf.FwName << ": " << (uint64_t)g_brcmf.CoreCount + << " cores, " << (uint64_t)(g_brcmf.RamSize / 1024) << " KiB RAM at 0x" << base::hex + << (uint64_t)g_brcmf.RamBase << base::dec; + return true; + } + + static bool DownloadFirmware() { + uint32_t fwLen = 0, nvLen = 0; + uint8_t* fw = BrcmfLoadFile("bin", fwLen, true); + if (!fw) return false; + uint8_t* nvText = BrcmfLoadFile("txt", nvLen, true); + if (!nvText) { + Memory::g_heap->Free(fw); + return false; + } + + uint32_t nvramLen = 0; + uint8_t* nvram = BuildNvram(nvText, nvLen, nvramLen); + Memory::g_heap->Free(nvText); + uint32_t fwPadded = (fwLen + 3) & ~3u; + + bool ok = nvram && fwPadded + nvramLen < g_brcmf.RamSize; + if (!ok) KernelLogStream(ERROR, "WiFi") << "Firmware and NVRAM do not fit in the radio's RAM"; + + uint32_t rstvec = 0; + memcpy(&rstvec, fw, 4); + + // Download under a plain ALP request, as Linux does (alp_only): + // the probe's FORCE_HW_REQ_OFF | FORCE_ALP must be gone before the + // ARM starts, or the firmware's own clock requests -- the HT clock + // its PLL setup asks for above all -- are blocked. + if (ok) { + BrcmfF1Write8(F1_CHIPCLKCSR, CLK_ALP_AVAIL_REQ); + if (!WaitClock(CLK_ALP_AVAIL, 100)) + KernelLogStream(WARNING, "WiFi") << "ALP clock lost on its plain request"; + } + + uint64_t start = Timekeeping::GetMilliseconds(); + if (ok && !DownloadAndVerify(g_brcmf.RamBase, fw, fwPadded)) { + KernelLogStream(ERROR, "WiFi") << "Firmware download failed"; + ok = false; + } + if (ok && !DownloadAndVerify(g_brcmf.RamBase + g_brcmf.RamSize - nvramLen, nvram, nvramLen)) { + KernelLogStream(ERROR, "WiFi") << "NVRAM download failed"; + ok = false; + } + if (ok) { + KernelLogStream(INFO, "WiFi") << "Firmware and NVRAM written in " + << (Timekeeping::GetMilliseconds() - start) << " ms"; + } + + Memory::g_heap->Free(fw); + if (nvram) Memory::g_heap->Free(nvram); + if (!ok) return false; + + // Start the ARM: clear the SDIO core's interrupts, put the reset + // vector at address 0 and take the CPU out of halt. + BrcmfBpWrite32(g_brcmf.SdioCoreBase + SD_INTSTATUS, 0xFFFFFFFF); + uint32_t vecBack = 0; + bool vecOk = BrcmfBpWriteMem(0, (const uint8_t*)&rstvec, 4) + && BrcmfBpReadMem(0, (uint8_t*)&vecBack, 4) && vecBack == rstvec; + const BrcmfCore* cr4 = FindCore(CORE_ARM_CR4); + CoreReset(cr4, CR4_IOCTL_CPUHALT, 0, 0); + if (!vecOk) + KernelLogStream(ERROR, "WiFi") << "Reset vector did not stick: address 0 reads 0x" + << base::hex << (uint64_t)vecBack << base::dec; + KernelLogStream(INFO, "WiFi") << "Reset vector 0x" << base::hex << (uint64_t)rstvec + << "; CR4 released: ioctl 0x" << (uint64_t)Rd(cr4->Wrap + WRAP_IOCTL) << " reset 0x" + << (uint64_t)Rd(cr4->Wrap + WRAP_RESET_CTL) << base::dec << " (expect 0x1 / 0x0)"; + return true; + } + + // Save/restore: the firmware can power its domains down between + // frames; the host then has to allow for the HT clock coming back. + static bool SrCapable() { + BrcmfBpWrite32(g_brcmf.PmuBase + CC_CHIPCONTROL_ADDR, 3); + return (Rd(g_brcmf.PmuBase + CC_CHIPCONTROL_DATA) & (1u << 2)) != 0; + } + + static bool StartFrames() { + // Clear the ALP force, then ask for HT: the running firmware brings + // up the PLL. + BrcmfF1Write8(F1_CHIPCLKCSR, 0); + BrcmfF1Write8(F1_CHIPCLKCSR, CLK_HT_AVAIL_REQ); + bool ht = WaitClock(CLK_HT_AVAIL, 20); + if (!ht) { + // Not yet: a snapshot 20 ms in tells a CPU that never ran from + // one that ran and was reset. + const BrcmfCore* cr4 = FindCore(CORE_ARM_CR4); + uint8_t csr = 0; + BrcmfF1Read8(F1_CHIPCLKCSR, csr); + KernelLogStream(INFO, "WiFi") << "20 ms after release: ChipClkCSR 0x" << base::hex + << (uint64_t)csr << ", CR4 ioctl 0x" << (uint64_t)Rd(cr4->Wrap + WRAP_IOCTL) << " reset 0x" + << (uint64_t)Rd(cr4->Wrap + WRAP_RESET_CTL) << ", RAM top 0x" + << (uint64_t)Rd(g_brcmf.RamBase + g_brcmf.RamSize - 4) << base::dec; + ht = WaitClock(CLK_HT_AVAIL, 2000); + } + if (!ht) { + // What the hardware was doing, for the next attempt: the clock + // register (or whether function 1 still answers at all), the + // CPU's wrapper state, and whether the firmware ever replaced + // the NVRAM token in the last word of RAM with its shared area. + uint8_t csr = 0; + bool csrOk = BrcmfF1Read8(F1_CHIPCLKCSR, csr); + const BrcmfCore* cr4 = FindCore(CORE_ARM_CR4); + uint32_t ioctl = Rd(cr4->Wrap + WRAP_IOCTL); + uint32_t reset = Rd(cr4->Wrap + WRAP_RESET_CTL); + uint32_t top = Rd(g_brcmf.RamBase + g_brcmf.RamSize - 4); + KernelLogStream(ERROR, "WiFi") << "HT clock never became available (firmware did not start)"; + KernelLogStream(ERROR, "WiFi") << "ChipClkCSR " << (csrOk ? "0x" : "unreadable") + << base::hex << (uint64_t)(csrOk ? csr : 0) << ", CR4 ioctl 0x" << (uint64_t)ioctl + << " reset 0x" << (uint64_t)reset << ", RAM top word 0x" << (uint64_t)top + << base::dec << (((~top >> 16) & 0xFFFF) == (top & 0xFFFF) + ? " (still the NVRAM token)" : " (written by the firmware)"); + return false; + } + + uint8_t saveClk = 0; + BrcmfF1Read8(F1_CHIPCLKCSR, saveClk); + BrcmfF1Write8(F1_CHIPCLKCSR, saveClk | CLK_FORCE_HT); + + BrcmfBpWrite32(g_brcmf.SdioCoreBase + SD_TOSBMAILBOXDATA, SDPCM_PROT_VERSION << 16); + if (!Sdio::EnableFunction(Sdio::FN2, true, 3000)) { + KernelLogStream(ERROR, "WiFi") << "Function 2 did not become ready"; + Sdio::EnableFunction(Sdio::FN2, false, 0); + return false; + } + + g_brcmf.HostIntMask = HOSTINTMASK; + BrcmfBpWrite32(g_brcmf.SdioCoreBase + SD_HOSTINTMASK, HOSTINTMASK); + + BrcmfF1Write8(F1_WATERMARK, F2_WATERMARK_43455); + uint8_t devCtl = 0; + if (BrcmfF1Read8(F1_DEVICE_CTL, devCtl)) + BrcmfF1Write8(F1_DEVICE_CTL, devCtl | DEVCTL_F2WM_ENAB); + BrcmfF1Write8(F1_MESBUSYCTRL, MES_WATERMARK_43455 | MESBUSY_ENAB); + + g_brcmf.SrEnabled = SrCapable(); + if (g_brcmf.SrEnabled) { + uint8_t wake = 0; + if (BrcmfF1Read8(F1_WAKEUPCTRL, wake)) BrcmfF1Write8(F1_WAKEUPCTRL, wake | WAKEUP_HTWAIT); + Sdio::Write8(Sdio::FN0, CCCR_BRCM_CARDCAP, CARDCAP_CMD14); + BrcmfF1Write8(F1_CHIPCLKCSR, CLK_FORCE_HT); + } else { + BrcmfF1Write8(F1_CHIPCLKCSR, saveClk); + } + + // Master, function 1 and function 2. + Sdio::EnableCardInterrupts(0x07); + return true; + } + + bool BrcmfChipBringUp() { + g_brcmf.BusLock.Acquire(); + g_brcmf.SharedAddr = 0; + g_brcmf.ConsoleIdx = 0; + g_brcmf.RamSize = 0; + bool ok = PowerOnAndEnumerate() && AttachChip() && DownloadFirmware() && StartFrames(); + g_brcmf.BusLock.Release(); + if (!ok) { + // A firmware that started and then trapped has said why on its + // console (no-op when it never got that far). + BrcmfDumpConsole(); + BrcmfChipPowerOff(); + } + return ok; + } + + // ========================================================================= + // Firmware console and trap report + // ========================================================================= + + static bool InRam(uint32_t addr, uint32_t len) { + return addr >= g_brcmf.RamBase && addr + len <= g_brcmf.RamBase + g_brcmf.RamSize + && addr + len >= addr; + } + + static bool ReadShared(uint32_t sh[16]) { + if (!g_brcmf.SharedAddr) { + uint32_t addr = Rd(g_brcmf.RamBase + g_brcmf.RamSize - 4); + // Still the NVRAM token: the firmware has not published it. + if (((~addr >> 16) & 0xFFFF) == (addr & 0xFFFF) || !InRam(addr, 64)) return false; + g_brcmf.SharedAddr = addr; + } + return BrcmfBpReadMem(g_brcmf.SharedAddr, (uint8_t*)sh, 64); + } + + static void EmitConsole(const char* buf, uint32_t size, uint32_t from, uint32_t to) { + char line[161]; + uint32_t n = 0; + for (uint32_t i = from; i != to; i = (i + 1) % size) { + char c = buf[i]; + if (c == '\r') continue; + if (c == '\n' || n == sizeof(line) - 1) { + line[n] = '\0'; + if (n) KernelLogStream(INFO, "WiFi-FW") << line; + n = 0; + if (c == '\n') continue; + } + line[n++] = (c >= 0x20 && c < 0x7F) ? c : '.'; + } + line[n] = '\0'; + if (n) KernelLogStream(INFO, "WiFi-FW") << line; + } + + void BrcmfDumpConsole() { + if (g_brcmf.RamSize == 0) return; + g_brcmf.BusLock.Acquire(); + + // sdpcm_shared: flags, trap_addr, assert_exp_addr, assert_file_addr, + // assert_line, console_addr, msgtrace_addr, tag[32], brpt_addr + uint32_t sh[16] = {}; + if (!ReadShared(sh)) { + g_brcmf.BusLock.Release(); + return; + } + uint32_t flags = sh[0]; + + // rte_console: vcons_in, vcons_out, then the log: buf, buf_size, + // idx, out_idx. + uint32_t log[4] = {}; + if (InRam(sh[5], 24) && BrcmfBpReadMem(sh[5] + 8, (uint8_t*)log, 16) + && log[1] > 0 && log[1] <= 16384 && InRam(log[0], log[1]) && log[2] < log[1]) { + uint32_t size = log[1]; + char* buf = (char*)Memory::g_heap->Request((size + 3) & ~3u); + if (buf && BrcmfBpReadMem(log[0], (uint8_t*)buf, (size + 3) & ~3u)) { + if (g_brcmf.ConsoleIdx >= size) g_brcmf.ConsoleIdx = 0; + EmitConsole(buf, size, g_brcmf.ConsoleIdx, log[2]); + g_brcmf.ConsoleIdx = log[2]; + } + if (buf) Memory::g_heap->Free(buf); + } + + if ((flags & 0x0400) && InRam(sh[1], 72)) { + // brcmf_trap_info: type, epc, cpsr, spsr, r0-r12, sp, lr, pc + uint32_t trap[20] = {}; + if (BrcmfBpReadMem(sh[1], (uint8_t*)trap, sizeof(trap))) { + KernelLogStream(ERROR, "WiFi-FW") << "Firmware trap: type 0x" << base::hex + << (uint64_t)trap[0] << ", epc 0x" << (uint64_t)trap[1] << ", lr 0x" + << (uint64_t)trap[18] << ", pc 0x" << (uint64_t)trap[19] << base::dec; + } + } + if (flags & 0x0200) { + char file[64] = {}; + if (InRam(sh[3], 60)) BrcmfBpReadMem(sh[3], (uint8_t*)file, 60); + file[63] = '\0'; + KernelLogStream(ERROR, "WiFi-FW") << "Firmware assert at " << file << ":" + << (uint64_t)sh[4]; + } + g_brcmf.BusLock.Release(); + } + +} diff --git a/kernel/src/Drivers/Net/Wifi/BrcmfConnect.cpp b/kernel/src/Drivers/Net/Wifi/BrcmfConnect.cpp new file mode 100644 index 0000000..e344841 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/BrcmfConnect.cpp @@ -0,0 +1,902 @@ +/* + * BrcmfConnect.cpp + * Broadcom FullMAC over SDIO: firmware preinit (CLM, events), escan, + * join, key installation, link state, and the entry points the Wi-Fi + * facade calls + * Derived in part from Linux's brcmfmac, Copyright (c) 2010-2014 Broadcom + * Corporation, ISC license (notice in programs/data/licenses/NOTICES.txt). + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Brcmf.hpp" +#include "BrcmfSdio.hpp" +#include "Ieee80211.hpp" +#include "Wpa.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Joining follows brcmf_cfg80211_connect with the supplicant on the host: +// "wpaie" the RSN element our supplicant built (the firmware puts it in +// the association request, and it must match message 2's copy) +// "wpa_auth" WPA2-PSK (0x80) or PSK-SHA256 (0x8000), 0 for open +// "auth" open system +// "wsec" AES (4) for CCMP, 0 for open +// "join" SSID, BSSID and the chanspec escan reported +// The firmware answers with E_SET_SSID (status 0 = associated) and E_LINK; +// the access point then starts the 4-way handshake, whose EAPOL frames come +// and go as ordinary Ethernet frames. The keys it produces go to the +// firmware with "wsec_key". The radio does AES-CCMP only: GCMP networks are +// refused. + +using namespace Kt; +using namespace montauk::abi; + +namespace Drivers::Net::Wifi { + + // WLC ioctls + static constexpr uint32_t WLC_UP = 2; + static constexpr uint32_t WLC_SET_INFRA = 20; + static constexpr uint32_t WLC_SET_SSID = 26; + static constexpr uint32_t WLC_SCAN = 50; + static constexpr uint32_t WLC_DISASSOC = 52; + static constexpr uint32_t WLC_SET_PM = 86; + static constexpr uint32_t WLC_GET_VALID_CHANNELS = 217; + + // Events + static constexpr uint32_t E_SET_SSID = 0; + static constexpr uint32_t E_AUTH = 3; + static constexpr uint32_t E_DEAUTH = 5; + static constexpr uint32_t E_DEAUTH_IND = 6; + static constexpr uint32_t E_ASSOC = 7; + static constexpr uint32_t E_REASSOC = 9; + static constexpr uint32_t E_DISASSOC = 11; + static constexpr uint32_t E_DISASSOC_IND = 12; + static constexpr uint32_t E_LINK = 16; + static constexpr uint32_t E_ROAM = 19; + static constexpr uint32_t E_PSK_SUP = 46; + static constexpr uint32_t E_ESCAN_RESULT = 69; + + static constexpr uint32_t STATUS_SUCCESS = 0; + static constexpr uint32_t STATUS_PARTIAL = 8; + static constexpr uint16_t EVENT_FLAG_LINK = 0x01; + + static constexpr uint32_t WPA_AUTH_DISABLED = 0; + static constexpr uint32_t WPA2_AUTH_PSK = 0x80; + static constexpr uint32_t WPA2_AUTH_PSK_SHA256= 0x8000; + static constexpr uint32_t AES_ENABLED = 4; + static constexpr uint32_t CRYPTO_ALGO_AES_CCM = 4; + static constexpr uint32_t KEY_FLAG_PRIMARY = 1u << 1; + + + static constexpr uint64_t JOIN_TIMEOUT_MS = 12000; + static constexpr uint64_t SCAN_TIMEOUT_MS = 25000; + static constexpr uint64_t POLL_ACTIVE_MS = 10; + static constexpr uint64_t POLL_IDLE_MS = 250; + + // The NVRAM files ship one address for every board; the radio's own + // OTP normally overrides it. + static constexpr uint8_t NVRAM_PLACEHOLDER_MAC[6] = { 0xb8, 0x27, 0xeb, 0x74, 0xf2, 0x6c }; + + // ========================================================================= + // State + // ========================================================================= + + static volatile uint32_t g_conn = WIFI_CONN_IDLE; + static uint8_t g_bssid[6]; + static char g_ssid[33]; + static uint8_t g_ssidLen = 0; + static uint8_t g_channel = 0; + static bool g_secure = false; + static bool g_refusedSecurity = false; + static bool g_authFailed = false; + static bool g_sawEapol = false; + static uint64_t g_joinStartMs = 0; + static uint64_t g_lastServiceMs = 0; + static WpaConfig g_wpaCfg = {}; + + // Raised by events inside the pump, consumed by ConnectService(). + static volatile bool g_evAssoc = false; + static volatile bool g_evJoinFailed = false; + static volatile bool g_evLinkDown = false; + static volatile uint32_t g_evStatus = 0; + static volatile uint32_t g_evReason = 0; + + static volatile bool g_scanActive = false; + static uint64_t g_scanStartMs = 0; + static uint16_t g_syncId = 0; + static uint32_t g_scanSeen = 0; + + static volatile bool g_dumpConsole = false; + static bool g_failureLogged = false; + + // The chanspec escan reported for each BSS, in the firmware's own + // encoding, so the join names the channel exactly. + struct BssChan { uint8_t Bssid[6]; uint16_t Chanspec; bool Used; }; + static BssChan g_chans[64]; + static kcp::Spinlock g_chanLock; + + struct PendingEapol { uint32_t Len; uint8_t Data[512]; }; + static constexpr uint32_t EAPOL_DEPTH = 4; + static PendingEapol g_eapolQ[EAPOL_DEPTH]; + static uint32_t g_eapolHead = 0, g_eapolTail = 0; + static kcp::Spinlock g_eapolLock; + + static inline uint16_t Le16(const uint8_t* p) { return (uint16_t)(p[0] | p[1] << 8); } + static inline uint32_t Le32(const uint8_t* p) { + return (uint32_t)p[0] | (uint32_t)p[1] << 8 | (uint32_t)p[2] << 16 | (uint32_t)p[3] << 24; + } + static inline void Put32(uint8_t* p, uint32_t v) { memcpy(p, &v, 4); } + static inline void Put16(uint8_t* p, uint16_t v) { memcpy(p, &v, 2); } + + static bool Elapsed(uint64_t now, uint64_t since, uint64_t ms) { + return now >= since && now - since >= ms; + } + + static void PutMac(KernelLogStream& s, const uint8_t* m) { + static const char hex[] = "0123456789abcdef"; + char buf[18]; + for (int i = 0; i < 6; i++) { + buf[i * 3] = hex[m[i] >> 4]; + buf[i * 3 + 1] = hex[m[i] & 0xF]; + buf[i * 3 + 2] = i < 5 ? ':' : '\0'; + } + s << buf; + } + + // ========================================================================= + // Events (inside the pump: record, never send) + // ========================================================================= + + static void RememberChanspec(const uint8_t* bssid, uint16_t chanspec) { + g_chanLock.Acquire(); + BssChan* slot = nullptr; + for (auto& c : g_chans) { + if (c.Used && memcmp(c.Bssid, bssid, 6) == 0) { slot = &c; break; } + if (!c.Used && !slot) slot = &c; + } + if (slot) { + memcpy(slot->Bssid, bssid, 6); + slot->Chanspec = chanspec; + slot->Used = true; + } + g_chanLock.Release(); + } + + static uint16_t LookupChanspec(const uint8_t* bssid, uint8_t channel) { + uint16_t found = 0; + g_chanLock.Acquire(); + for (auto& c : g_chans) { + if (c.Used && memcmp(c.Bssid, bssid, 6) == 0) { found = c.Chanspec; break; } + } + g_chanLock.Release(); + if (found) return found; + // 802.11ac encoding: channel, 20 MHz, band. + return (uint16_t)(channel | 0x1000 | (channel > 14 ? 0xC000 : 0x0000)); + } + + // brcmf_escan_result_le: buflen, version, sync_id, bss_count, then + // brcmf_bss_info_le records (128 bytes fixed, IEs at ie_offset). + static void HandleEscanResult(const uint8_t* data, uint32_t len) { + if (len < 12) return; + uint16_t count = Le16(data + 10); + uint32_t off = 12; + for (uint16_t i = 0; i < count; i++) { + if (off + 128 > len) break; + const uint8_t* bi = data + off; + uint32_t biLen = Le32(bi + 4); + if (biLen < 128 || biLen > len - off) break; + + const uint8_t* bssid = bi + 8; + uint16_t beacon = Le16(bi + 14); + uint16_t caps = Le16(bi + 16); + uint16_t chanspec = Le16(bi + 72); + int16_t rssi = (int16_t)Le16(bi + 78); + uint8_t ctlCh = bi[88]; + uint16_t ieOff = Le16(bi + 116); + uint32_t ieLen = Le32(bi + 120); + if (ieOff > biLen || ieLen > biLen - ieOff) ieLen = 0; + + uint8_t channel = ctlCh ? ctlCh : (uint8_t)(chanspec & 0xFF); + if (rssi < -127) rssi = -127; + if (rssi > 0) rssi = 0; + RememberChanspec(bssid, chanspec); + WifiRxBssInfo(bssid, beacon, caps, ieLen ? bi + ieOff : nullptr, ieLen, + channel, (int8_t)rssi); + g_scanSeen++; + off += biLen; + } + } + + void BrcmfOnEvent(uint32_t type, uint32_t status, uint32_t reason, uint16_t flags, + const uint8_t* addr, const uint8_t* data, uint32_t len) { + (void)addr; + switch (type) { + case E_ESCAN_RESULT: + if (status == STATUS_PARTIAL) { + HandleEscanResult(data, len); + } else if (g_scanActive) { + g_scanActive = false; + KernelLogStream(INFO, "WiFi") << "Scan " << (status == STATUS_SUCCESS ? "complete" : "ended") + << ": " << (uint64_t)g_scanSeen << " results"; + } + break; + + case E_SET_SSID: + if (g_conn != WIFI_CONN_ASSOCIATING) break; + if (status == STATUS_SUCCESS) { + g_evAssoc = true; + } else { + g_evStatus = status; + g_evJoinFailed = true; + } + break; + + case E_LINK: + if (flags & EVENT_FLAG_LINK) { + if (g_conn == WIFI_CONN_ASSOCIATING) g_evAssoc = true; + } else if (g_conn >= WIFI_CONN_ASSOCIATED && g_conn != WIFI_CONN_FAILED) { + g_evReason = reason; + g_evLinkDown = true; + } + break; + + case E_DEAUTH: + case E_DEAUTH_IND: + case E_DISASSOC_IND: + if (g_conn >= WIFI_CONN_ASSOCIATED && g_conn != WIFI_CONN_FAILED) { + g_evReason = reason; + g_evLinkDown = true; + } + break; + + case E_AUTH: + if (status != STATUS_SUCCESS && g_conn == WIFI_CONN_ASSOCIATING) + KernelLogStream(WARNING, "WiFi") << "Authentication rejected (status " + << (uint64_t)status << ", reason " << (uint64_t)reason << ")"; + break; + + case E_ASSOC: + case E_REASSOC: + if (status != STATUS_SUCCESS && g_conn == WIFI_CONN_ASSOCIATING) + KernelLogStream(WARNING, "WiFi") << "Association rejected (status " + << (uint64_t)status << ", reason " << (uint64_t)reason << ")"; + break; + + default: + break; + } + } + + static void QueueEapol(const uint8_t* body, uint32_t len) { + if (len > sizeof(g_eapolQ[0].Data)) return; + g_eapolLock.Acquire(); + uint32_t next = (g_eapolHead + 1) % EAPOL_DEPTH; + if (next == g_eapolTail) g_eapolTail = (g_eapolTail + 1) % EAPOL_DEPTH; + memcpy(g_eapolQ[g_eapolHead].Data, body, len); + g_eapolQ[g_eapolHead].Len = len; + g_eapolHead = next; + g_eapolLock.Release(); + } + + static bool EapolPending() { + g_eapolLock.Acquire(); + bool pending = g_eapolHead != g_eapolTail; + g_eapolLock.Release(); + return pending; + } + + void BrcmfOnRxEthernet(const uint8_t* frame, uint32_t len) { + uint16_t etherType = (uint16_t)(frame[12] << 8 | frame[13]); + if (etherType == ETHERTYPE_EAPOL) { + if (g_secure && g_conn >= WIFI_CONN_ASSOCIATING && g_conn != WIFI_CONN_FAILED) { + QueueEapol(frame + 14, len - 14); + } + return; + } + if (BrcmfLinkUp()) WifiRxEthernet(frame, len); + } + + void BrcmfOnFirmwareFailure(const char* why) { + if (g_brcmf.State != BrcmfState::Running) return; + g_brcmf.State = BrcmfState::Error; + g_brcmf.FwErrors++; + g_scanActive = false; + g_dumpConsole = true; + if (!g_failureLogged) { + g_failureLogged = true; + KernelLogStream(ERROR, "WiFi") << "Radio failed: " << why; + } + } + + // ========================================================================= + // Bring-up + // ========================================================================= + + // CLM blob: the regulatory database the firmware ships without + // ("clm_min"). Sent in 1400-byte chunks behind brcmf_dload_data_le: + // flag (handler version 1 << 12 | begin 2 | end 4), type (2 = CLM), + // length, CRC (unused), data. + static bool LoadClm() { + uint32_t size = 0; + uint8_t* blob = BrcmfLoadFile("clm_blob", size, false); + if (!blob) { + KernelLogStream(WARNING, "WiFi") << "No CLM blob; the firmware's own regulatory data is used"; + return true; + } + + constexpr uint32_t CHUNK = 1400; + constexpr uint32_t HDR = 12; + uint8_t* chunk = (uint8_t*)Memory::g_heap->Request(HDR + CHUNK + 4); + bool ok = chunk != nullptr; + uint32_t off = 0; + uint16_t flag = 1u << 12 | 0x0002; + while (ok && off < size) { + uint32_t n = size - off > CHUNK ? CHUNK : size - off; + if (off + n == size) flag |= 0x0004; + memset(chunk, 0, HDR + CHUNK + 4); + Put16(chunk, flag); + Put16(chunk + 2, 2); + Put32(chunk + 4, n); + Put32(chunk + 8, 0); + memcpy(chunk + HDR, blob + off, n); + // Linux sends sizeof(struct) + len - 1: three bytes of padding. + ok = BrcmfIovarSet("clmload", chunk, HDR + n + 3); + flag &= (uint16_t)~0x0002; + off += n; + } + if (chunk) Memory::g_heap->Free(chunk); + Memory::g_heap->Free(blob); + + uint32_t status = 0; + if (ok && BrcmfIovarGetInt("clmload_status", status, true) && status != 0) { + KernelLogStream(ERROR, "WiFi") << "The firmware rejected the CLM blob (status " + << (uint64_t)status << ")"; + ok = false; + } + if (ok) KernelLogStream(INFO, "WiFi") << "CLM blob loaded (" << (uint64_t)size << " bytes)"; + return ok; + } + + static void SetEventMask() { + uint8_t mask[16] = {}; + const uint32_t events[] = { + E_SET_SSID, E_AUTH, E_DEAUTH, E_DEAUTH_IND, E_ASSOC, E_REASSOC, E_DISASSOC, + E_DISASSOC_IND, E_LINK, E_ROAM, E_PSK_SUP, E_ESCAN_RESULT, + }; + for (uint32_t e : events) mask[e / 8] |= (uint8_t)(1u << (e % 8)); + BrcmfIovarSet("event_msgs", mask, sizeof(mask)); + } + + // "Version: 7.45.265 (28bca26 CY) CRC: ..." -> "7.45.265" + static void ParseVersion(const char* ver) { + const char* p = ver; + const char* key = "version "; + while (*p) { + const char* a = p; + const char* b = key; + while (*a && *b && (*a | 0x20) == *b) { a++; b++; } + if (!*b) { p = a; break; } + p++; + } + if (!*p) p = ver; + int n = 0; + while (p[n] && p[n] != ' ' && p[n] != '\n' && n < 31) { + g_brcmf.FwVersion[n] = p[n]; + n++; + } + g_brcmf.FwVersion[n] = '\0'; + } + + static void ReadChannels() { + uint32_t list[65] = {}; + list[0] = 64; + g_brcmf.ChannelCount = 0; + if (!BrcmfIoctl(WLC_GET_VALID_CHANNELS, false, list, sizeof(list))) return; + uint32_t count = list[0] > 64 ? 64 : list[0]; + bool b24 = false, b5 = false; + for (uint32_t i = 0; i < count; i++) { + if (list[1 + i] > 14) b5 = true; + else if (list[1 + i] > 0) b24 = true; + } + g_brcmf.ChannelCount = (uint16_t)count; + g_brcmf.Band24 = b24; + g_brcmf.Band5 = b5; + } + + static bool Preinit() { + uint8_t mac[6] = {}; + if (!BrcmfIovarGet("cur_etheraddr", mac, 6)) return false; + if (memcmp(mac, NVRAM_PLACEHOLDER_MAC, 6) == 0) { + // Raspberry Pi convention: wlan0 is the board (Ethernet) address + // plus one. + uint8_t board[6]; + if (Drivers::Platform::RpiFirmware::GetBoardMacAddress(board)) { + memcpy(mac, board, 6); + for (int i = 5; i >= 3; i--) if (++mac[i] != 0) break; + BrcmfIovarSet("cur_etheraddr", mac, 6); + } + } + memcpy(g_brcmf.Mac, mac, 6); + + char ver[256] = {}; + if (BrcmfIovarGet("ver", ver, sizeof(ver) - 1)) { + ver[sizeof(ver) - 1] = '\0'; + for (char& c : ver) if (c == '\n' || c == '\r') c = ' '; + KernelLogStream(INFO, "WiFi") << "Firmware: " << ver; + ParseVersion(ver); + } + + if (!LoadClm()) return false; + + // No glomming in either direction: one SDPCM frame per transfer. + BrcmfIovarSetInt("bus:txglom", 0, true); + BrcmfIovarSetInt("bus:rxglom", 0, true); + + BrcmfSetInt(WLC_SET_INFRA, 1); + // Roaming would re-key without the host's supplicant; ARP/ND offload + // would answer for an address the firmware was never told. + BrcmfIovarSetInt("roam_off", 1, true); + BrcmfIovarSetInt("arpoe", 0, true); + BrcmfIovarSetInt("ndoe", 0, true); + // Power save off: the radio misses broadcasts (ARP, DHCP offers) + // while dozing, and the Pi is not on a battery. + BrcmfSetInt(WLC_SET_PM, 0); + + SetEventMask(); + if (!BrcmfSetInt(WLC_UP, 1)) { + KernelLogStream(ERROR, "WiFi") << "The firmware would not bring the interface up"; + return false; + } + ReadChannels(); + return true; + } + + static void ResetConnection() { + g_conn = WIFI_CONN_IDLE; + g_evAssoc = false; + g_evJoinFailed = false; + g_evLinkDown = false; + g_secure = false; + g_sawEapol = false; + g_eapolLock.Acquire(); + g_eapolHead = g_eapolTail = 0; + g_eapolLock.Release(); + WpaReset(); + } + + bool BrcmfProbe(uint64_t arasanMmio) { + if (g_brcmf.State != BrcmfState::Absent) return false; + g_brcmf.ArasanMmio = arasanMmio; + g_brcmf.State = BrcmfState::Detected; + return true; + } + + bool BrcmfCompleteInit() { + g_brcmf.State = BrcmfState::Booting; + g_failureLogged = false; + g_dumpConsole = false; + g_scanActive = false; + g_brcmf.CmdFailBucket = 0; + ResetConnection(); + BrcmfProtoReset(); + + // One retry from power-off: the Bluetooth half of the same chip may + // be powering up or taking its patch download at the same moment. + bool up = BrcmfChipBringUp(); + if (!up) { + KernelLogStream(WARNING, "WiFi") << "Bring-up failed; power-cycling the radio and trying once more"; + Timekeeping::BusyWaitMs(100); + up = BrcmfChipBringUp(); + } + if (!up) { + g_brcmf.State = BrcmfState::Error; + return false; + } + + // Running from here: the preinit below is the first SDPCM traffic. + g_brcmf.LastPollMs = Timekeeping::GetMilliseconds(); + g_brcmf.State = BrcmfState::Running; + BrcmfDumpConsole(); + + if (!Preinit()) { + KernelLogStream(ERROR, "WiFi") << "Firmware initialization failed"; + BrcmfDumpConsole(); + g_brcmf.State = BrcmfState::Error; + BrcmfChipPowerOff(); + return false; + } + BrcmfDumpConsole(); + + auto log = KernelLogStream(OK, "WiFi"); + log << "CYW" << g_brcmf.FwName << " ready: firmware " << g_brcmf.FwVersion << ", " + << (uint64_t)g_brcmf.ChannelCount << " channels, MAC "; + PutMac(log, g_brcmf.Mac); + return true; + } + + void BrcmfShutdown() { + g_scanActive = false; + ResetConnection(); + BrcmfChipPowerOff(); + g_brcmf.State = BrcmfState::Detected; + } + + BrcmfState BrcmfGetState() { return g_brcmf.State; } + + // ========================================================================= + // Scanning + // ========================================================================= + + bool BrcmfScanActive() { return g_scanActive; } + + bool BrcmfStartScan() { + if (g_brcmf.State != BrcmfState::Running) return false; + if (g_scanActive) return true; + + // brcmf_escan_params_le: version 1, action 1 (start), sync id, then + // brcmf_scan_params_le: SSID (any), BSSID (broadcast), BSS type any, + // active scan, firmware defaults for every dwell, all channels. + uint8_t p[72] = {}; + Put32(p, 1); + Put16(p + 4, 1); + Put16(p + 6, ++g_syncId); + memset(p + 44, 0xFF, 6); + p[50] = 2; + p[51] = 0; + Put32(p + 52, 0xFFFFFFFF); + Put32(p + 56, 0xFFFFFFFF); + Put32(p + 60, 0xFFFFFFFF); + Put32(p + 64, 0xFFFFFFFF); + Put32(p + 68, 0); + + g_scanSeen = 0; + g_scanStartMs = Timekeeping::GetMilliseconds(); + g_scanActive = true; // results may arrive while the ioctl is pumping + if (!BrcmfIovarSet("escan", p, sizeof(p))) { + g_scanActive = false; + return false; + } + return true; + } + + void BrcmfAbortScan() { + if (!g_scanActive) return; + // A WLC_SCAN naming channel -1 cancels the scan in progress. + uint8_t p[68] = {}; + memset(p + 36, 0xFF, 6); + p[42] = 2; + Put32(p + 44, 0xFFFFFFFF); + Put32(p + 48, 0xFFFFFFFF); + Put32(p + 52, 0xFFFFFFFF); + Put32(p + 56, 0xFFFFFFFF); + Put32(p + 60, 1); + Put16(p + 64, 0xFFFF); + BrcmfIoctl(WLC_SCAN, true, p, sizeof(p)); + g_scanActive = false; + } + + // ========================================================================= + // Joining + // ========================================================================= + + int BrcmfConnectState() { return (int)g_conn; } + bool BrcmfConnectRefusedForSecurity() { return g_refusedSecurity; } + bool BrcmfJoinFailedOnAuth() { return g_authFailed || WpaGetState() == WpaState::Failed; } + const char* BrcmfConnectSsid() { return g_ssid; } + const uint8_t* BrcmfConnectBssid() { return g_bssid; } + uint8_t BrcmfConnectChannel() { return g_channel; } + bool BrcmfLinkUp() { return g_brcmf.State == BrcmfState::Running && g_conn == WIFI_CONN_CONNECTED; } + + static void Disassociate() { + uint8_t scb[12] = {}; + Put32(scb, 3); // deauthenticated: leaving + memcpy(scb + 4, g_bssid, 6); + BrcmfIoctl(WLC_DISASSOC, true, scb, sizeof(scb)); + } + + void BrcmfConnectAbort() { + if (g_conn != WIFI_CONN_IDLE && g_brcmf.State == BrcmfState::Running) Disassociate(); + ResetConnection(); + } + + bool BrcmfConnectStart(const uint8_t* bssid, uint8_t channel, const char* ssid, + const char* password, const uint8_t* rsnIe, uint8_t rsnIeLen) { + if (g_brcmf.State != BrcmfState::Running) return false; + if (g_conn != WIFI_CONN_IDLE) BrcmfConnectAbort(); + g_refusedSecurity = false; + g_authFailed = false; + + memcpy(g_bssid, bssid, 6); + g_channel = channel; + g_ssidLen = 0; + while (ssid && g_ssidLen < 32 && ssid[g_ssidLen]) { + g_ssid[g_ssidLen] = ssid[g_ssidLen]; + g_ssidLen++; + } + g_ssid[g_ssidLen] = '\0'; + + bool secure = rsnIe && rsnIeLen > 0; + uint8_t ie[64]; + uint32_t ieLen = 0; + if (secure) { + memset(&g_wpaCfg, 0, sizeof(g_wpaCfg)); + if (!WpaParseApRsn(rsnIe, rsnIeLen, g_wpaCfg)) { + g_refusedSecurity = true; + return false; + } + if (g_wpaCfg.PairwiseCipher != RSN_CIPHER_CCMP || g_wpaCfg.GroupCipher != RSN_CIPHER_CCMP) { + KernelLogStream(WARNING, "WiFi") << "This radio does AES-CCMP only; the network uses GCMP"; + g_refusedSecurity = true; + return false; + } + uint32_t pl = 0; + if (password) while (pl < sizeof(g_wpaCfg.Passphrase) - 1 && password[pl]) pl++; + if (pl == 0) { + KernelLogStream(WARNING, "WiFi") << "This network is encrypted and needs a passphrase"; + g_refusedSecurity = true; + return false; + } + memcpy(g_wpaCfg.Passphrase, password, pl); + g_wpaCfg.Passphrase[pl] = '\0'; + g_wpaCfg.PassLen = (uint8_t)pl; + memcpy(g_wpaCfg.OwnMac, g_brcmf.Mac, 6); + memcpy(g_wpaCfg.Bssid, g_bssid, 6); + memcpy(g_wpaCfg.Ssid, g_ssid, g_ssidLen); + g_wpaCfg.SsidLen = g_ssidLen; + if (!WpaStart(g_wpaCfg)) { + g_refusedSecurity = true; + return false; + } + ieLen = WpaBuildRsnIe(ie, sizeof(ie)); + if (ieLen == 0) return false; + } + + if (g_scanActive) BrcmfAbortScan(); + + bool sha256 = secure && g_wpaCfg.Akm == RSN_AKM_PSK_SHA256; + if (secure) BrcmfIovarSet("wpaie", ie, ieLen); + else BrcmfIovarSet("wpaie", nullptr, 0, true); + bool ok = BrcmfIovarSetInt("wpa_auth", secure ? (sha256 ? WPA2_AUTH_PSK_SHA256 : WPA2_AUTH_PSK) + : WPA_AUTH_DISABLED) + && BrcmfIovarSetInt("auth", 0) + && BrcmfIovarSetInt("wsec", secure ? AES_ENABLED : 0); + BrcmfIovarSetInt("mfp", 0, true); + BrcmfIovarSetInt("sup_wpa", 0, true); + if (!ok) { + WpaReset(); + return false; + } + + uint16_t chanspec = LookupChanspec(g_bssid, channel); + + g_secure = secure; + g_evAssoc = false; + g_evJoinFailed = false; + g_evLinkDown = false; + g_joinStartMs = Timekeeping::GetMilliseconds(); + g_conn = WIFI_CONN_ASSOCIATING; // before "join": its events may land while it pumps + + // brcmf_ext_join_params_le: SSID; join scan (type default, probes + // and dwells as Linux uses for a known channel); BSSID, one chanspec. + uint8_t jp[72] = {}; + Put32(jp, g_ssidLen); + memcpy(jp + 4, g_ssid, g_ssidLen); + jp[36] = 0xFF; + Put32(jp + 40, 16); + Put32(jp + 44, 320); + Put32(jp + 48, 400); + Put32(jp + 52, 0xFFFFFFFF); + memcpy(jp + 56, g_bssid, 6); + Put32(jp + 64, 1); + Put16(jp + 68, chanspec); + + if (!BrcmfIovarSet("join", jp, sizeof(jp), true)) { + // Older firmware: WLC_SET_SSID with brcmf_join_params_le. + uint8_t sp[52] = {}; + Put32(sp, g_ssidLen); + memcpy(sp + 4, g_ssid, g_ssidLen); + memcpy(sp + 36, g_bssid, 6); + Put32(sp + 44, 1); + Put16(sp + 48, chanspec); + if (!BrcmfIoctl(WLC_SET_SSID, true, sp, sizeof(sp))) { + KernelLogStream(ERROR, "WiFi") << "The firmware refused the join request"; + ResetConnection(); + return false; + } + } + + auto log = KernelLogStream(INFO, "WiFi"); + log << "Joining \"" << g_ssid << "\" ("; + PutMac(log, g_bssid); + log << ", channel " << (uint64_t)channel << ", chanspec 0x" << base::hex << (uint64_t)chanspec + << base::dec << (secure ? ", WPA2-PSK)" : ", open)"); + return true; + } + + // ========================================================================= + // Keys and EAPOL (the supplicant's hooks) + // ========================================================================= + + bool BrcmfWpaTxEapol(const uint8_t* body, uint32_t len) { + uint8_t frame[14 + 512]; + if (len > 512) return false; + memcpy(frame, g_bssid, 6); + memcpy(frame + 6, g_brcmf.Mac, 6); + frame[12] = ETHERTYPE_EAPOL >> 8; + frame[13] = ETHERTYPE_EAPOL & 0xFF; + memcpy(frame + 14, body, len); + return BrcmfTxEthernet(frame, 14 + len); + } + + // brcmf_wsec_key_le: index, len, data[32], pad[18], algo, flags, pad[3], + // iv_initialized, pad, rxiv {hi, lo}, pad[2], ea[6] -- 164 bytes. + static bool SendKey(uint32_t index, const uint8_t* key, uint32_t keyLen, uint32_t flags, + const uint8_t* ea, const uint8_t* rsc) { + if (keyLen > 32) return false; + uint8_t k[164] = {}; + Put32(k, index); + Put32(k + 4, keyLen); + memcpy(k + 8, key, keyLen); + Put32(k + 112, CRYPTO_ALGO_AES_CCM); + Put32(k + 116, flags); + if (rsc) { + Put32(k + 132, 1); + Put32(k + 140, (uint32_t)rsc[2] | (uint32_t)rsc[3] << 8 | (uint32_t)rsc[4] << 16 + | (uint32_t)rsc[5] << 24); + Put16(k + 144, (uint16_t)(rsc[0] | rsc[1] << 8)); + } + if (ea) memcpy(k + 156, ea, 6); + bool ok = BrcmfIovarSet("wsec_key", k, sizeof(k)); + Crypto::SecureZero(k, sizeof(k)); + return ok; + } + + // Message 4 is still in the transmit queue when the supplicant installs + // the pairwise key; it has to reach the radio first or it goes out + // encrypted and the access point never sees it (Linux waits for its + // pending 802.1X frames the same way). + static void DrainTx() { + uint64_t start = Timekeeping::GetMilliseconds(); + while (BrcmfTxPending() && Timekeeping::GetMilliseconds() - start < 200) { + BrcmfPoll(); + Timekeeping::BusyWaitUs(200); + } + Timekeeping::BusyWaitMs(10); + } + + bool BrcmfWpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { + if (cipher != RSN_CIPHER_CCMP) return false; + DrainTx(); + return SendKey(0, tk, tkLen, 0, g_bssid, nullptr); + } + + bool BrcmfWpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc) { + if (cipher != RSN_CIPHER_CCMP) return false; + DrainTx(); + return SendKey(keyIdx, gtk, gtkLen, KEY_FLAG_PRIMARY, nullptr, rsc); + } + + // ========================================================================= + // Service (idle loop / syscall waits: may send ioctls) + // ========================================================================= + + static void ConnectService() { + static volatile bool inService = false; + if (__atomic_test_and_set(&inService, __ATOMIC_ACQUIRE)) return; + struct Guard { ~Guard() { __atomic_clear(&inService, __ATOMIC_RELEASE); } } guard; + + uint64_t now = Timekeeping::GetMilliseconds(); + g_lastServiceMs = now; + + if (g_scanActive && Elapsed(now, g_scanStartMs, SCAN_TIMEOUT_MS)) { + KernelLogStream(WARNING, "WiFi") << "Scan never finished; abandoning it"; + BrcmfAbortScan(); + } + + if (g_conn == WIFI_CONN_ASSOCIATING) { + if (g_evJoinFailed) { + g_evJoinFailed = false; + KernelLogStream(WARNING, "WiFi") << "Could not join \"" << g_ssid << "\" (status " + << (uint64_t)g_evStatus << (g_evStatus == 3 ? ": network not found)" : ")"); + g_conn = WIFI_CONN_FAILED; + } else if (g_evAssoc) { + g_evAssoc = false; + if (g_secure) { + KernelLogStream(OK, "WiFi") << "Associated with \"" << g_ssid << "\"; starting the key handshake"; + g_conn = WIFI_CONN_HANDSHAKING; + } else { + KernelLogStream(OK, "WiFi") << "Connected to \"" << g_ssid << "\" (open network)"; + g_conn = WIFI_CONN_CONNECTED; + } + } else if (Elapsed(Timekeeping::GetMilliseconds(), g_joinStartMs, JOIN_TIMEOUT_MS)) { + KernelLogStream(WARNING, "WiFi") << "Timed out joining \"" << g_ssid << "\""; + g_conn = WIFI_CONN_FAILED; + } + } + + if (g_evLinkDown && g_conn >= WIFI_CONN_ASSOCIATED && g_conn != WIFI_CONN_FAILED) { + g_evLinkDown = false; + if (g_conn == WIFI_CONN_HANDSHAKING) { + // The access point gives up on a handshake whose MICs do not + // verify: a wrong passphrase, nearly always. + KernelLogStream(WARNING, "WiFi") << "The access point dropped the connection during the key " + "handshake (reason " << (uint64_t)g_evReason << "); check the passphrase"; + g_authFailed = g_sawEapol; + g_conn = WIFI_CONN_FAILED; + } else { + KernelLogStream(WARNING, "WiFi") << "Disconnected from \"" << g_ssid << "\" (reason " + << (uint64_t)g_evReason << ")"; + ResetConnection(); + } + } + + if (g_conn == WIFI_CONN_HANDSHAKING || g_conn == WIFI_CONN_CONNECTED) { + uint8_t body[512]; + for (;;) { + uint32_t len = 0; + g_eapolLock.Acquire(); + if (g_eapolHead != g_eapolTail) { + len = g_eapolQ[g_eapolTail].Len; + memcpy(body, g_eapolQ[g_eapolTail].Data, len); + g_eapolTail = (g_eapolTail + 1) % EAPOL_DEPTH; + } + g_eapolLock.Release(); + if (!len) break; + g_sawEapol = true; + WpaOnEapol(body, len); + } + } + + if (g_conn == WIFI_CONN_HANDSHAKING) { + WpaService(Timekeeping::GetMilliseconds()); + if (WpaIsComplete()) { + KernelLogStream(OK, "WiFi") << "Connected to \"" << g_ssid << "\""; + g_conn = WIFI_CONN_CONNECTED; + } else if (WpaGetState() == WpaState::Failed) { + g_authFailed = true; + g_conn = WIFI_CONN_FAILED; + } + } + } + + bool BrcmfHasWork(uint64_t now) { + if (g_brcmf.State == BrcmfState::Error) return g_dumpConsole; + if (g_brcmf.State != BrcmfState::Running) return false; + + bool active = g_scanActive || (g_conn != WIFI_CONN_IDLE && g_conn != WIFI_CONN_FAILED); + if (BrcmfPollDue(now, active ? POLL_ACTIVE_MS : POLL_IDLE_MS)) return true; + if (g_evAssoc || g_evJoinFailed || g_evLinkDown || EapolPending()) return true; + // Deadlines and the supplicant's retransmissions, even with the air quiet. + if ((g_conn == WIFI_CONN_ASSOCIATING || g_conn == WIFI_CONN_HANDSHAKING || g_scanActive) + && Elapsed(now, g_lastServiceMs, 50)) + return true; + return false; + } + + void BrcmfService() { + if (g_brcmf.State == BrcmfState::Error) { + if (g_dumpConsole) { + g_dumpConsole = false; + BrcmfDumpConsole(); + } + return; + } + if (g_brcmf.State != BrcmfState::Running) return; + BrcmfPoll(); + ConnectService(); + } + + bool BrcmfSendEthernet(const uint8_t* frame, uint32_t len) { + if (!BrcmfLinkUp()) return false; + return BrcmfTxEthernet(frame, len); + } + +} diff --git a/kernel/src/Drivers/Net/Wifi/BrcmfProto.cpp b/kernel/src/Drivers/Net/Wifi/BrcmfProto.cpp new file mode 100644 index 0000000..7c2e75e --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/BrcmfProto.cpp @@ -0,0 +1,592 @@ +/* + * BrcmfProto.cpp + * Broadcom FullMAC over SDIO: SDPCM framing, CDC ioctls, BDC data frames, + * firmware events, the RX pump and the transmit queue + * Derived in part from Linux's brcmfmac, Copyright (c) 2010-2014 Broadcom + * Corporation, ISC license (notice in programs/data/licenses/NOTICES.txt). + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Brcmf.hpp" +#include "BrcmfSdio.hpp" +#include +#include +#include +#include +#include +#include + +// Every frame on function 2 starts with the SDPCM header (Linux sdio.c): +// +// hardware u16 len (the whole frame), u16 ~len +// software u8 seq, u8 channel (low nibble; bit 7 = glom descriptor), +// u8 next length, u8 data offset (from the frame start), +// u8 flow control bitmap, u8 max seq (TX credit, inbound), +// u16 reserved +// +// Channel 0 carries ioctls and their answers behind a 16-byte CDC header +// (cmd, len, flags: id [31:16] | interface [15:12] | set [1] | error [0], +// status). Channels 1 (events) and 2 (data) carry Ethernet frames behind a +// 4-byte BDC header (flags: version 2 in [7:4]; priority; flags2: interface; +// data offset in dwords to skip). Events are Ethernet frames of type 0x886C +// with Broadcom's OUI. +// +// Transmit credit: the device's max seq bounds what may be sent, every frame +// (ioctls included) takes the next sequence number. + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + static constexpr uint32_t SDPCM_HDRLEN = 12; + static constexpr uint8_t CHAN_CONTROL = 0; + static constexpr uint8_t CHAN_EVENT = 1; + static constexpr uint8_t CHAN_DATA = 2; + static constexpr uint8_t CHAN_GLOM = 3; + static constexpr uint8_t GLOM_DESC = 0x80; + + static constexpr uint32_t CDC_HDRLEN = 16; + static constexpr uint32_t CDCF_ERROR = 0x01; + static constexpr uint32_t CDCF_SET = 0x02; + static constexpr uint32_t BDC_HDRLEN = 4; + static constexpr uint8_t BDC_VERSION = 2; + + static constexpr uint16_t ETHERTYPE_BRCM = 0x886C; + + // SDIO device core + static constexpr uint32_t SD_INTSTATUS = 0x20; + static constexpr uint32_t SD_TOSBMAILBOX = 0x40; + static constexpr uint32_t SD_TOHOSTMAILBOXDATA = 0x4C; + static constexpr uint32_t I_HMB_FRAME_IND = 1u << 6; + static constexpr uint32_t I_HMB_HOST_INT = 1u << 7; + static constexpr uint32_t SMB_INT_ACK = 1u << 1; + static constexpr uint32_t HMB_DATA_FWHALT = 0x10; + + static constexpr uint32_t F1_FRAMECTRL = 0x1000D; + static constexpr uint32_t F1_RFRAMEBCLO = 0x1001B; + static constexpr uint32_t F1_RFRAMEBCHI = 0x1001C; + static constexpr uint8_t SFC_RF_TERM = 0x01; + + // Function 2's FIFO; the address is ChipCommon's window | 4-byte access. + static constexpr uint32_t F2_ADDR = 0x8000; + static constexpr uint32_t SI_ENUM_BASE = 0x18000000; + + static constexpr uint32_t RX_MAX = 8192; + static constexpr uint32_t CTRL_MAX = 2048; // ioctl payload + static constexpr uint32_t TX_SLOT = 2048; // padded data frame + static constexpr uint32_t TXQ_DEPTH = 32; + static constexpr uint64_t CREDIT_TIMEOUT_MS = 1000; + static constexpr uint64_t IOCTL_TIMEOUT_MS = 2000; + static constexpr uint32_t FAIL_BUCKET_LIMIT = 3; + static constexpr uint32_t BUS_ERROR_LIMIT = 16; + + static uint32_t g_rxBuf[RX_MAX / 4 + 16]; + static volatile bool g_pumping = false; + static uint32_t g_busErrors = 0; + static bool g_glomWarned = false; + + struct TxSlot { + uint32_t Len; // bytes on the bus (padded) + uint32_t Data[TX_SLOT / 4]; + }; + static TxSlot g_txq[TXQ_DEPTH]; + static uint32_t g_txHead = 0, g_txTail = 0; + static kcp::Spinlock g_txqLock; + + // The outstanding ioctl, if any. The pump on whichever core finds the + // answer copies it here under g_respLock; the caller copies it out. + static kcp::Mutex g_ctrlLock; + static kcp::Spinlock g_respLock; + // Room for the largest ioctl padded to whole blocks. + static uint32_t g_ctrlTx[(SDPCM_HDRLEN + CDC_HDRLEN + CTRL_MAX + Sdio::FN2_BLOCK - 1) + / Sdio::FN2_BLOCK * Sdio::FN2_BLOCK / 4]; + static uint8_t g_ctrlResp[CTRL_MAX]; + static uint32_t g_ctrlRespLen = 0; + static uint16_t g_reqId = 0; + static uint16_t g_waitId = 0; // 0 = nobody waiting + static int32_t g_ctrlStatus = 0; + static uint32_t g_ctrlFlags = 0; + static std::atomic g_ctrlDone{false}; + + static inline uint16_t Be16(const uint8_t* p) { return (uint16_t)(p[0] << 8 | p[1]); } + static inline uint32_t Be32(const uint8_t* p) { + return (uint32_t)p[0] << 24 | (uint32_t)p[1] << 16 | (uint32_t)p[2] << 8 | p[3]; + } + static inline void Le32(uint8_t* p, uint32_t v) { memcpy(p, &v, 4); } + + void BrcmfProtoReset() { + g_brcmf.TxSeq = 0; + g_brcmf.TxMax = 1; + g_brcmf.RxPending = false; + g_txqLock.Acquire(); + g_txHead = g_txTail = 0; + g_txqLock.Release(); + g_respLock.Acquire(); + g_waitId = 0; + g_respLock.Release(); + g_busErrors = 0; + g_glomWarned = false; + } + + // ========================================================================= + // Bus transfers (bus lock held) + // ========================================================================= + + static bool CanSend() { + uint8_t room = (uint8_t)(g_brcmf.TxMax - g_brcmf.TxSeq); + return room != 0 && (room & 0x80) == 0; + } + + static void NoteBusError() { + if (++g_busErrors == BUS_ERROR_LIMIT) BrcmfOnFirmwareFailure("SDIO bus errors"); + } + + static bool SendFrameLocked(uint8_t* frame, uint32_t busLen) { + frame[4] = g_brcmf.TxSeq; + if (!BrcmfBpSelectWindow(SI_ENUM_BASE) || + !Sdio::WriteBlock(Sdio::FN2, F2_ADDR, false, frame, busLen)) { + NoteBusError(); + return false; + } + g_busErrors = 0; + g_brcmf.TxSeq++; + return true; + } + + // Bytes on the bus for a frame: dwords, and whole blocks once it is + // longer than one (the device takes the length from the header). + static uint32_t BusLength(uint32_t len) { + if (len > Sdio::FN2_BLOCK) + return (len + Sdio::FN2_BLOCK - 1) / Sdio::FN2_BLOCK * Sdio::FN2_BLOCK; + return (len + 3) & ~3u; + } + + static void PutSdpcm(uint8_t* f, uint32_t len, uint8_t channel) { + uint16_t l = (uint16_t)len; + f[0] = (uint8_t)l; f[1] = (uint8_t)(l >> 8); + f[2] = (uint8_t)~l; f[3] = (uint8_t)(~l >> 8); + f[4] = 0; // seq, filled in at send time + f[5] = channel; + f[6] = 0; + f[7] = SDPCM_HDRLEN; + f[8] = f[9] = f[10] = f[11] = 0; + } + + // Abandon a frame half read: abort function 2, have the device drop the + // rest of it, and wait for its read FIFO to empty (Linux rxfail). + static void RxFailLocked() { + Sdio::Abort(Sdio::FN2); + BrcmfF1Write8(F1_FRAMECTRL, SFC_RF_TERM); + for (int i = 0; i < 100; i++) { + uint8_t hi = 0, lo = 0; + if (!BrcmfF1Read8(F1_RFRAMEBCHI, hi) || !BrcmfF1Read8(F1_RFRAMEBCLO, lo)) break; + if (hi == 0 && lo == 0) break; + } + NoteBusError(); + } + + // Read one frame into g_rxBuf. 1 = a frame, 0 = none waiting, -1 = error. + static int ReadFrameLocked(uint32_t& len) { + uint8_t* buf = (uint8_t*)g_rxBuf; + if (!BrcmfBpSelectWindow(SI_ENUM_BASE) || + !Sdio::ReadBlock(Sdio::FN2, F2_ADDR, false, buf, 4)) { + RxFailLocked(); + return -1; + } + uint16_t l = (uint16_t)(buf[0] | buf[1] << 8); + uint16_t check = (uint16_t)(buf[2] | buf[3] << 8); + if ((l | check) == 0) return 0; + if ((uint16_t)(l ^ check) != 0xFFFF || l < SDPCM_HDRLEN || l > RX_MAX) { + KernelLogStream(WARNING, "WiFi") << "Bad SDPCM header (len 0x" << base::hex + << (uint64_t)l << ", check 0x" << (uint64_t)check << base::dec << ")"; + RxFailLocked(); + return -1; + } + uint32_t rest = ((l + 3u) & ~3u) - 4; + if (rest && !Sdio::ReadBlock(Sdio::FN2, F2_ADDR, false, buf + 4, rest)) { + RxFailLocked(); + return -1; + } + g_busErrors = 0; + len = l; + return 1; + } + + static void FlushTxLocked() { + for (;;) { + g_txqLock.Acquire(); + bool empty = g_txHead == g_txTail; + g_txqLock.Release(); + if (empty || !CanSend()) return; + + TxSlot& slot = g_txq[g_txTail % TXQ_DEPTH]; + if (SendFrameLocked((uint8_t*)slot.Data, slot.Len)) g_brcmf.TxPackets++; + + g_txqLock.Acquire(); + g_txTail++; + g_txqLock.Release(); + } + } + + // ========================================================================= + // Receive dispatch (bus lock released) + // ========================================================================= + + static void HandleControl(const uint8_t* p, uint32_t len) { + if (len < CDC_HDRLEN) return; + uint32_t cmd, dlen, flags, status; + memcpy(&cmd, p, 4); + memcpy(&dlen, p + 4, 4); + memcpy(&flags, p + 8, 4); + memcpy(&status, p + 12, 4); + (void)cmd; + (void)dlen; + uint16_t id = (uint16_t)(flags >> 16); + + g_respLock.Acquire(); + if (g_waitId != 0 && id == g_waitId) { + uint32_t n = len - CDC_HDRLEN; + if (n > CTRL_MAX) n = CTRL_MAX; + memcpy(g_ctrlResp, p + CDC_HDRLEN, n); + g_ctrlRespLen = n; + g_ctrlStatus = (int32_t)status; + g_ctrlFlags = flags; + g_waitId = 0; + g_ctrlDone.store(true, std::memory_order_release); + } + g_respLock.Release(); + } + + static void HandleEvent(const uint8_t* eth, uint32_t len) { + // Ethernet (14), bcm_ethhdr (10): subtype 0x8001, length, version 1, + // OUI 00:10:18, user subtype 1; then the 48-byte event message. + constexpr uint32_t MSG = 24; + constexpr uint32_t DATA = MSG + 48; + if (len < DATA) return; + const uint8_t* h = eth + 14; + if (Be16(h) != 0x8001 || h[5] != 0x00 || h[6] != 0x10 || h[7] != 0x18 || Be16(h + 8) != 1) + return; + + const uint8_t* m = eth + MSG; + uint16_t flags = Be16(m + 2); + uint32_t type = Be32(m + 4); + uint32_t status = Be32(m + 8); + uint32_t reason = Be32(m + 12); + uint32_t dataLen = Be32(m + 20); + const uint8_t* addr = m + 24; + uint8_t ifidx = m[46]; + if (ifidx != 0) return; + if (dataLen > len - DATA) dataLen = len - DATA; + BrcmfOnEvent(type, status, reason, flags, addr, eth + DATA, dataLen); + } + + static void Dispatch(const uint8_t* f, uint32_t len) { + const uint8_t* sw = f + 4; + uint8_t channel = sw[1] & 0x0F; + uint8_t offset = sw[3]; + + // Credit: the device's max seq, sanity checked as Linux does. + uint8_t max = sw[5]; + if ((uint8_t)(max - g_brcmf.TxSeq) > 0x40) max = (uint8_t)(g_brcmf.TxSeq + 2); + g_brcmf.TxMax = max; + + if ((sw[1] & GLOM_DESC) || channel == CHAN_GLOM) { + if (!g_glomWarned) { + g_glomWarned = true; + KernelLogStream(WARNING, "WiFi") << "Dropping a glommed superframe (rx glom is off)"; + } + return; + } + if (offset < SDPCM_HDRLEN || offset > len) return; + const uint8_t* p = f + offset; + uint32_t plen = len - offset; + if (plen == 0) return; // credit update only + + if (channel == CHAN_CONTROL) { + HandleControl(p, plen); + return; + } + if (channel != CHAN_EVENT && channel != CHAN_DATA) return; + + if (plen < BDC_HDRLEN || (p[0] >> 4) != BDC_VERSION) return; + if ((p[2] & 0x0F) != 0) return; // another interface + uint32_t skip = BDC_HDRLEN + (uint32_t)p[3] * 4; + if (skip + 14 > plen) return; + const uint8_t* eth = p + skip; + uint32_t elen = plen - skip; + + if (Be16(eth + 12) == ETHERTYPE_BRCM) { + HandleEvent(eth, elen); + return; + } + if (channel == CHAN_DATA) { + g_brcmf.RxPackets++; + BrcmfOnRxEthernet(eth, elen); + } + } + + // ========================================================================= + // The pump + // ========================================================================= + + bool BrcmfTxPending() { + g_txqLock.Acquire(); + bool pending = g_txHead != g_txTail; + g_txqLock.Release(); + return pending; + } + + bool BrcmfPollDue(uint64_t now, uint64_t intervalMs) { + if (g_brcmf.State != BrcmfState::Running) return false; + if (g_brcmf.RxPending || BrcmfTxPending()) return true; + if (Sdio::CardInterruptPending()) return true; + uint64_t last = g_brcmf.LastPollMs; + return now < last || now - last >= intervalMs; + } + + void BrcmfPoll() { + if (g_brcmf.State != BrcmfState::Running) return; + if (__atomic_test_and_set(&g_pumping, __ATOMIC_ACQUIRE)) return; + struct Guard { ~Guard() { __atomic_clear(&g_pumping, __ATOMIC_RELEASE); } } guard; + + const uint32_t sdio = g_brcmf.SdioCoreBase; + for (int round = 0; round < 8 && g_brcmf.State == BrcmfState::Running; round++) { + bool frames = g_brcmf.RxPending; + uint32_t intStatus = 0; + bool halted = false; + + g_brcmf.BusLock.Acquire(); + if (BrcmfBpRead32(sdio + SD_INTSTATUS, intStatus)) { + intStatus &= g_brcmf.HostIntMask; + if (intStatus) BrcmfBpWrite32(sdio + SD_INTSTATUS, intStatus); + if (intStatus & I_HMB_HOST_INT) { + uint32_t mbox = 0; + BrcmfBpRead32(sdio + SD_TOHOSTMAILBOXDATA, mbox); + BrcmfBpWrite32(sdio + SD_TOSBMAILBOX, SMB_INT_ACK); + halted = (mbox & HMB_DATA_FWHALT) != 0; + } + if (intStatus & I_HMB_FRAME_IND) frames = true; + } else { + NoteBusError(); + } + g_brcmf.BusLock.Release(); + g_brcmf.LastPollMs = Timekeeping::GetMilliseconds(); + + if (halted) { + BrcmfOnFirmwareFailure("firmware halted"); + return; + } + + for (int n = 0; frames && n < 32; n++) { + uint32_t len = 0; + g_brcmf.BusLock.Acquire(); + int r = ReadFrameLocked(len); + g_brcmf.BusLock.Release(); + if (r <= 0) { + frames = false; + break; + } + Dispatch((const uint8_t*)g_rxBuf, len); + } + g_brcmf.RxPending = frames; + + if (BrcmfTxPending()) { + g_brcmf.BusLock.Acquire(); + FlushTxLocked(); + g_brcmf.BusLock.Release(); + } + + if (!frames && intStatus == 0) break; + } + } + + // ========================================================================= + // Transmit + // ========================================================================= + + bool BrcmfTxEthernet(const uint8_t* frame, uint32_t len) { + if (g_brcmf.State != BrcmfState::Running || len < 14 || len > 1518) return false; + uint32_t total = SDPCM_HDRLEN + BDC_HDRLEN + len; + uint32_t busLen = BusLength(total); + + g_txqLock.Acquire(); + if (g_txHead - g_txTail >= TXQ_DEPTH) { + g_txqLock.Release(); + return false; + } + TxSlot& slot = g_txq[g_txHead % TXQ_DEPTH]; + uint8_t* f = (uint8_t*)slot.Data; + PutSdpcm(f, total, CHAN_DATA); + f[12] = BDC_VERSION << 4; + f[13] = 0; // priority: best effort + f[14] = 0; // interface 0 + f[15] = 0; // no signalling TLVs + memcpy(f + 16, frame, len); + memset(f + total, 0, busLen - total); + slot.Len = busLen; + g_txHead++; + g_txqLock.Release(); + + // Never wait for the bus here: the caller may be the network stack + // inside a frame the pump is delivering, or a process that just + // preempted the bus lock's holder. Whoever holds it, or the next + // pump, sends what is queued. + if (g_brcmf.BusLock.TryAcquire()) { + FlushTxLocked(); + g_brcmf.BusLock.Release(); + } + return true; + } + + // ========================================================================= + // Control + // ========================================================================= + + bool BrcmfIoctl(uint32_t cmd, bool set, void* buf, uint32_t len, int32_t* fwStatus) { + if (fwStatus) *fwStatus = 0; + if (g_brcmf.State != BrcmfState::Running || len > CTRL_MAX) return false; + + g_ctrlLock.Acquire(); + + uint16_t id = ++g_reqId; + if (id == 0) id = ++g_reqId; + uint8_t* f = (uint8_t*)g_ctrlTx; + uint32_t total = SDPCM_HDRLEN + CDC_HDRLEN + len; + PutSdpcm(f, total, CHAN_CONTROL); + uint8_t* cdc = f + SDPCM_HDRLEN; + Le32(cdc, cmd); + Le32(cdc + 4, len); + Le32(cdc + 8, (uint32_t)id << 16 | (set ? CDCF_SET : 0)); + Le32(cdc + 12, 0); + if (len) memcpy(cdc + CDC_HDRLEN, buf, len); + uint32_t busLen = BusLength(total); + memset(f + total, 0, busLen - total); + + g_respLock.Acquire(); + g_waitId = id; + g_ctrlDone.store(false, std::memory_order_relaxed); + g_respLock.Release(); + + // Wait for transmit credit, pumping meanwhile: credit only ever + // arrives in the header of a received frame. + bool sent = false; + uint64_t start = Timekeeping::GetMilliseconds(); + while (!sent && g_brcmf.State == BrcmfState::Running) { + g_brcmf.BusLock.Acquire(); + if (CanSend()) { + sent = SendFrameLocked(f, busLen); + if (!sent) { + g_brcmf.BusLock.Release(); + break; + } + } + g_brcmf.BusLock.Release(); + if (sent) break; + if (Timekeeping::GetMilliseconds() - start > CREDIT_TIMEOUT_MS) break; + BrcmfPoll(); + Timekeeping::BusyWaitUs(100); + } + + bool done = false; + if (sent) { + start = Timekeeping::GetMilliseconds(); + while (g_brcmf.State == BrcmfState::Running) { + if (g_ctrlDone.load(std::memory_order_acquire)) { done = true; break; } + if (Timekeeping::GetMilliseconds() - start > IOCTL_TIMEOUT_MS) break; + BrcmfPoll(); + if (g_ctrlDone.load(std::memory_order_acquire)) { done = true; break; } + Timekeeping::BusyWaitUs(50); + } + } + + g_respLock.Acquire(); + g_waitId = 0; + bool ok = false; + if (done) { + int32_t status = g_ctrlStatus; + if (fwStatus) *fwStatus = status; + ok = !(g_ctrlFlags & CDCF_ERROR) && status >= 0; + if (!set && len) { + uint32_t n = g_ctrlRespLen < len ? g_ctrlRespLen : len; + memcpy(buf, g_ctrlResp, n); + } + } + g_respLock.Release(); + + if (done) { + if (g_brcmf.CmdFailBucket) g_brcmf.CmdFailBucket--; + } else if (g_brcmf.State == BrcmfState::Running) { + KernelLogStream(WARNING, "WiFi") << "Firmware command " << (uint64_t)cmd + << (sent ? " went unanswered" : " could not be sent (no transmit credit)"); + if (++g_brcmf.CmdFailBucket >= FAIL_BUCKET_LIMIT) + BrcmfOnFirmwareFailure("firmware stopped answering commands"); + } + + g_ctrlLock.Release(); + return ok; + } + + static constexpr uint32_t WLC_GET_VAR = 262; + static constexpr uint32_t WLC_SET_VAR = 263; + + static kcp::Mutex g_iovarLock; + static uint8_t g_iovarBuf[CTRL_MAX]; + + static uint32_t NameLen(const char* name) { + uint32_t n = 0; + while (name[n]) n++; + return n + 1; + } + + bool BrcmfIovarSet(const char* name, const void* data, uint32_t len, bool quiet) { + uint32_t nameLen = NameLen(name); + if (nameLen + len > CTRL_MAX) return false; + g_iovarLock.Acquire(); + memcpy(g_iovarBuf, name, nameLen); + if (len) memcpy(g_iovarBuf + nameLen, data, len); + int32_t status = 0; + bool ok = BrcmfIoctl(WLC_SET_VAR, true, g_iovarBuf, nameLen + len, &status); + g_iovarLock.Release(); + if (!ok && !quiet) + KernelLogStream(WARNING, "WiFi") << "Setting \"" << name << "\" failed (status " + << (int)status << ")"; + return ok; + } + + bool BrcmfIovarGet(const char* name, void* out, uint32_t len, bool quiet) { + uint32_t nameLen = NameLen(name); + uint32_t bufLen = nameLen > len ? nameLen : len; + if (bufLen > CTRL_MAX) return false; + g_iovarLock.Acquire(); + memset(g_iovarBuf, 0, bufLen); + memcpy(g_iovarBuf, name, nameLen); + int32_t status = 0; + bool ok = BrcmfIoctl(WLC_GET_VAR, false, g_iovarBuf, bufLen, &status); + if (ok) memcpy(out, g_iovarBuf, len); + g_iovarLock.Release(); + if (!ok && !quiet) + KernelLogStream(WARNING, "WiFi") << "Reading \"" << name << "\" failed (status " + << (int)status << ")"; + return ok; + } + + bool BrcmfIovarSetInt(const char* name, uint32_t value, bool quiet) { + return BrcmfIovarSet(name, &value, 4, quiet); + } + + bool BrcmfIovarGetInt(const char* name, uint32_t& value, bool quiet) { + return BrcmfIovarGet(name, &value, 4, quiet); + } + + bool BrcmfSetInt(uint32_t cmd, uint32_t value) { + return BrcmfIoctl(cmd, true, &value, 4); + } + + bool BrcmfGetInt(uint32_t cmd, uint32_t& value) { + uint32_t v = 0; + if (!BrcmfIoctl(cmd, false, &v, 4)) return false; + value = v; + return true; + } + +} diff --git a/kernel/src/Drivers/Net/Wifi/BrcmfSdio.cpp b/kernel/src/Drivers/Net/Wifi/BrcmfSdio.cpp new file mode 100644 index 0000000..2d11e2c --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/BrcmfSdio.cpp @@ -0,0 +1,436 @@ +/* + * BrcmfSdio.cpp + * SDIO host on the Raspberry Pi 4/400's Arasan SD controller + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "BrcmfSdio.hpp" +#include +#include +#include +#include +#include +#include +#include + +// Register access follows Drivers/Storage/Sdhci: the Broadcom/Arasan +// controller only takes 32-bit accesses, so 8/16-bit fields are written by +// read-modify-write of their dword and the transfer-mode/command pair in +// the one write that issues the command. Linux (sdhci-iproc, bcm2835 data) +// also waits four SD clocks after every write while the bus runs at 400 kHz +// or below; so does this. +// +// SDIO commands (SDIO Simplified Specification 3.00): +// CMD5 IO_SEND_OP_COND, R4: OCR [23:0], ready [31] +// CMD52 IO_RW_DIRECT, R5: flags [15:8], data [7:0] +// arg: R/W [31], function [30:28], RAW [27], address [25:9], data [7:0] +// CMD53 IO_RW_EXTENDED, R5 +// arg: R/W [31], function [30:28], block mode [27], incrementing +// address [26], address [25:9], count [8:0] (0 = 512) + +using namespace Kt; + +namespace Drivers::Net::Wifi::Sdio { + + static constexpr uint32_t REG_BLOCK_SIZE_COUNT = 0x04; + static constexpr uint32_t REG_ARGUMENT = 0x08; + static constexpr uint32_t REG_XFER_MODE_CMD = 0x0C; + static constexpr uint32_t REG_RESPONSE = 0x10; + static constexpr uint32_t REG_BUFFER_DATA = 0x20; + static constexpr uint32_t REG_PRESENT_STATE = 0x24; + static constexpr uint32_t REG_HOST_CONTROL = 0x28; + static constexpr uint32_t REG_CLOCK_CONTROL = 0x2C; + static constexpr uint32_t REG_INT_STATUS = 0x30; + static constexpr uint32_t REG_INT_ENABLE = 0x34; + static constexpr uint32_t REG_INT_SIGNAL = 0x38; + static constexpr uint32_t REG_CAPABILITIES = 0x40; + static constexpr uint32_t REG_VERSION = 0xFC; + + static constexpr uint32_t PS_CMD_INHIBIT = 1u << 0; + static constexpr uint32_t PS_DAT_INHIBIT = 1u << 1; + + static constexpr uint32_t INT_CMD_COMPLETE = 1u << 0; + static constexpr uint32_t INT_XFER_COMPLETE = 1u << 1; + static constexpr uint32_t INT_WRITE_READY = 1u << 4; + static constexpr uint32_t INT_READ_READY = 1u << 5; + static constexpr uint32_t INT_CARD = 1u << 8; + static constexpr uint32_t INT_ERROR = 1u << 15; + static constexpr uint32_t INT_ERROR_MASK = 0xFFFF0000u; + // Status enables: the completions, both buffer-ready bits, the card + // interrupt and every error. Card insert/remove stay off: nothing is + // ever inserted, and the detect line is not wired to the radio. + static constexpr uint32_t INT_ENABLES = 0x03FF0000u | INT_CMD_COMPLETE | INT_XFER_COMPLETE + | INT_WRITE_READY | INT_READ_READY | INT_CARD; + + static constexpr uint32_t HC_4BIT = 1u << 1; + static constexpr uint32_t PWR_ON = 1u << 8; + static constexpr uint32_t PWR_330 = 7u << 9; + + static constexpr uint32_t CLK_INT_EN = 1u << 0; + static constexpr uint32_t CLK_INT_STABLE = 1u << 1; + static constexpr uint32_t CLK_SD_EN = 1u << 2; + static constexpr uint32_t TIMEOUT_MAX = 0xEu << 16; + + static constexpr uint32_t RESET_ALL = 1u << 24; + static constexpr uint32_t RESET_CMD = 1u << 25; + static constexpr uint32_t RESET_DAT = 1u << 26; + + static constexpr uint32_t XM_BLOCK_COUNT_EN = 1u << 1; + static constexpr uint32_t XM_READ = 1u << 4; + static constexpr uint32_t XM_MULTI_BLOCK = 1u << 5; + + enum Response : uint32_t { + RespNone = 0, + Resp48 = 2 | 3u << 3, // R1, R5, R6: CRC and index checked + Resp48NoCrc = 2, // R4 + }; + static constexpr uint32_t CMD_DATA = 1u << 5; + + // R5 flags: COM_CRC_ERROR, ILLEGAL_COMMAND, ERROR, FUNCTION_NUMBER, + // OUT_OF_RANGE. + static constexpr uint32_t R5_ERRORS = 0xCB00; + + // CCCR + static constexpr uint32_t CCCR_IOEN = 0x02; + static constexpr uint32_t CCCR_IORDY = 0x03; + static constexpr uint32_t CCCR_INTEN = 0x04; + static constexpr uint32_t CCCR_ABORT = 0x06; + static constexpr uint32_t CCCR_BUSIF = 0x07; + static constexpr uint32_t BUSIF_4BIT = 0x02; + static constexpr uint32_t BUSIF_CD_DIS = 0x80; + static constexpr uint32_t FBR_BLKSIZE = 0x10; // in function n's FBR at n * 0x100 + + static constexpr uint64_t CommandTimeoutMs = 100; + static constexpr uint64_t DataTimeoutMs = 500; + // CMD53's count field is nine bits. + static constexpr uint32_t MaxBlocks = 511; + + // The legacy EMMC clock the firmware sets up; only used when neither the + // mailbox nor the capabilities name one. Assuming it high errs towards a + // slower bus, never a faster one. + static constexpr uint32_t FallbackBaseClockHz = 250000000; + + static volatile uint8_t* g_regs = nullptr; + static uint32_t g_version = 0; + static uint32_t g_baseClockHz = 0; + static uint32_t g_clockHz = 0; + static uint32_t g_rca = 0; + static bool g_initialized = false; + + static inline uint32_t Read(uint32_t reg) { + return *(volatile uint32_t*)(g_regs + reg); + } + + static inline void Write(uint32_t reg, uint32_t value) { + *(volatile uint32_t*)(g_regs + reg) = value; + if (g_clockHz <= 400000) Timekeeping::BusyWaitUs(10); + } + + static bool WaitClear(uint32_t reg, uint32_t mask, uint64_t timeoutMs) { + uint64_t start = Timekeeping::GetMilliseconds(); + while (Read(reg) & mask) { + if (Timekeeping::GetMilliseconds() - start > timeoutMs) return false; + Arch::Pause(); + } + return true; + } + + static bool Reset(uint32_t which) { + Write(REG_CLOCK_CONTROL, Read(REG_CLOCK_CONTROL) | which); + return WaitClear(REG_CLOCK_CONTROL, which, 100); + } + + static bool WaitStatus(uint32_t bits, uint64_t timeoutMs) { + uint64_t start = Timekeeping::GetMilliseconds(); + for (;;) { + uint32_t status = Read(REG_INT_STATUS); + if (status & (INT_ERROR | INT_ERROR_MASK)) { + Write(REG_INT_STATUS, status & ~INT_CARD); + Reset(RESET_CMD | RESET_DAT); + return false; + } + if (status & bits) { + Write(REG_INT_STATUS, status & bits); + return true; + } + if (Timekeeping::GetMilliseconds() - start > timeoutMs) { + Reset(RESET_CMD | RESET_DAT); + return false; + } + Arch::Pause(); + } + } + + static bool SendCommand(uint32_t index, uint32_t argument, uint32_t response, + uint32_t transferMode = 0, bool data = false) { + uint32_t inhibit = PS_CMD_INHIBIT | (data ? PS_DAT_INHIBIT : 0); + if (!WaitClear(REG_PRESENT_STATE, inhibit, CommandTimeoutMs)) { + Reset(RESET_CMD | RESET_DAT); + return false; + } + + Write(REG_INT_STATUS, ~INT_CARD); + Write(REG_ARGUMENT, argument); + uint32_t command = index << 8 | response | (data ? CMD_DATA : 0); + Write(REG_XFER_MODE_CMD, command << 16 | transferMode); + return WaitStatus(INT_CMD_COMPLETE, CommandTimeoutMs); + } + + static bool SetClock(uint32_t hz) { + Write(REG_CLOCK_CONTROL, Read(REG_CLOCK_CONTROL) & ~0xFFFFu); + + uint32_t divider = 0; // base / (2 * divider); 0 = undivided + if (hz < g_baseClockHz) { + divider = (g_baseClockHz + 2 * hz - 1) / (2 * hz); + uint32_t max = g_version >= 2 ? 0x3FF : 0x80; + if (divider > max) divider = max; + if (g_version < 2) { + uint32_t p = 1; + while (p < divider) p <<= 1; + divider = p; + } + } + uint32_t actual = divider ? g_baseClockHz / (2 * divider) : g_baseClockHz; + + uint32_t field = (divider & 0xFF) << 8 | ((divider >> 8) & 0x3) << 6; + Write(REG_CLOCK_CONTROL, (Read(REG_CLOCK_CONTROL) & ~0xFFFFu) | field | CLK_INT_EN); + + uint64_t start = Timekeeping::GetMilliseconds(); + while (!(Read(REG_CLOCK_CONTROL) & CLK_INT_STABLE)) { + if (Timekeeping::GetMilliseconds() - start > 20) return false; + Arch::Pause(); + } + Write(REG_CLOCK_CONTROL, Read(REG_CLOCK_CONTROL) | CLK_SD_EN); + g_clockHz = actual; + return true; + } + + static bool Cmd52(bool write, uint32_t fn, uint32_t addr, uint8_t in, uint8_t* out) { + uint32_t arg = (write ? 1u << 31 : 0) | (fn & 7) << 28 | (addr & 0x1FFFF) << 9 | in; + if (!SendCommand(52, arg, Resp48)) return false; + uint32_t r = Read(REG_RESPONSE); + if (r & R5_ERRORS) return false; + if (out) *out = (uint8_t)r; + return true; + } + + bool Read8(uint32_t fn, uint32_t addr, uint8_t& value) { + return Cmd52(false, fn, addr, 0, &value); + } + + bool Write8(uint32_t fn, uint32_t addr, uint8_t value) { + return Cmd52(true, fn, addr, value, nullptr); + } + + // One CMD53: `count` blocks of `blockSize` bytes, or (byte mode) one run + // of `blockSize` bytes. `words` is 4-byte aligned. + static bool Cmd53(bool write, uint32_t fn, uint32_t addr, bool incr, uint32_t* words, + bool blockMode, uint32_t count, uint32_t blockSize) { + uint32_t arg = (write ? 1u << 31 : 0) | (fn & 7) << 28 | (blockMode ? 1u << 27 : 0) + | (incr ? 1u << 26 : 0) | (addr & 0x1FFFF) << 9 + | ((blockMode ? count : blockSize) & 0x1FF); + uint32_t blocks = blockMode ? count : 1; + Write(REG_BLOCK_SIZE_COUNT, blocks << 16 | blockSize); + + uint32_t mode = write ? 0 : XM_READ; + if (blockMode) mode |= XM_BLOCK_COUNT_EN | (blocks > 1 ? XM_MULTI_BLOCK : 0); + if (!SendCommand(53, arg, Resp48, mode, true)) return false; + if (Read(REG_RESPONSE) & R5_ERRORS) { + Abort(fn); + Reset(RESET_CMD | RESET_DAT); + return false; + } + + uint32_t perBlock = (blockSize + 3) / 4; + for (uint32_t b = 0; b < blocks; b++) { + if (!WaitStatus(write ? INT_WRITE_READY : INT_READ_READY, DataTimeoutMs)) { + Abort(fn); + return false; + } + for (uint32_t i = 0; i < perBlock; i++) { + if (write) *(volatile uint32_t*)(g_regs + REG_BUFFER_DATA) = *words++; + else *words++ = Read(REG_BUFFER_DATA); + } + } + if (!WaitStatus(INT_XFER_COMPLETE, DataTimeoutMs)) { + Abort(fn); + return false; + } + return true; + } + + static bool Transfer(bool write, uint32_t fn, uint32_t addr, bool incr, + uint8_t* buffer, uint32_t len) { + if (!g_initialized || (len & 3) != 0) return false; + uint32_t blockSize = fn == FN2 ? FN2_BLOCK : FN1_BLOCK; + + // The data port moves dwords; callers' buffers are only byte aligned + // in general. + uint32_t bounce[FN2_BLOCK / 4]; + while (len > 0) { + bool blockMode = len >= blockSize; + uint32_t count = blockMode ? len / blockSize : 0; + if (count > MaxBlocks) count = MaxBlocks; + uint32_t run = blockMode ? count * blockSize : len; + if (!blockMode && run > FN2_BLOCK) run = FN2_BLOCK; + + bool aligned = ((uintptr_t)buffer & 3) == 0; + if (aligned) { + if (!Cmd53(write, fn, addr, incr, (uint32_t*)buffer, blockMode, count, + blockMode ? blockSize : run)) return false; + } else { + // Unaligned: one block (or the byte-mode run) at a time + // through the bounce buffer. + if (blockMode) { count = 1; run = blockSize; } + if (write) memcpy(bounce, buffer, run); + if (!Cmd53(write, fn, addr, incr, bounce, blockMode, count, + blockMode ? blockSize : run)) return false; + if (!write) memcpy(buffer, bounce, run); + } + buffer += run; + if (incr) addr += run; + len -= run; + } + return true; + } + + bool ReadBlock(uint32_t fn, uint32_t addr, bool incr, uint8_t* buffer, uint32_t len) { + return Transfer(false, fn, addr, incr, buffer, len); + } + + bool WriteBlock(uint32_t fn, uint32_t addr, bool incr, const uint8_t* buffer, uint32_t len) { + return Transfer(true, fn, addr, incr, (uint8_t*)buffer, len); + } + + void Abort(uint32_t fn) { + Cmd52(true, FN0, CCCR_ABORT, (uint8_t)fn, nullptr); + } + + bool EnableFunction(uint32_t fn, bool enable, uint64_t timeoutMs) { + uint8_t ioen = 0; + if (!Read8(FN0, CCCR_IOEN, ioen)) return false; + uint8_t bit = (uint8_t)(1u << fn); + ioen = enable ? (ioen | bit) : (ioen & ~bit); + if (!Write8(FN0, CCCR_IOEN, ioen)) return false; + if (!enable) return true; + + uint64_t start = Timekeeping::GetMilliseconds(); + for (;;) { + uint8_t ready = 0; + if (Read8(FN0, CCCR_IORDY, ready) && (ready & bit)) return true; + if (Timekeeping::GetMilliseconds() - start > timeoutMs) return false; + Timekeeping::BusyWaitUs(500); + } + } + + bool EnableCardInterrupts(uint8_t mask) { + return Write8(FN0, CCCR_INTEN, mask); + } + + bool CardInterruptPending() { + return g_initialized && (Read(REG_INT_STATUS) & INT_CARD) != 0; + } + + bool IsInitialized() { return g_initialized; } + + bool HostInit(uint64_t mmioPhys, uint32_t baseClockHz) { + g_initialized = false; + if (!g_regs) { + Memory::VMM::g_paging->MapMMIO(mmioPhys & ~0xFFFULL, Memory::HHDM(mmioPhys & ~0xFFFULL)); + g_regs = (volatile uint8_t*)Memory::HHDM(mmioPhys); + } + g_clockHz = 0; + + if (!Reset(RESET_ALL)) { + KernelLogStream(ERROR, "WiFi-SDIO") << "Controller reset timed out"; + return false; + } + + g_version = (Read(REG_VERSION) >> 16) & 0xFF; + uint32_t caps = Read(REG_CAPABILITIES); + uint32_t capsMhz = g_version >= 2 ? (caps >> 8) & 0xFF : (caps >> 8) & 0x3F; + g_baseClockHz = baseClockHz ? baseClockHz + : capsMhz ? capsMhz * 1000000 : FallbackBaseClockHz; + + // The radio's 3.3 V supply is not switched by the controller, but the + // bus power bit gates the controller's own drivers. + Write(REG_HOST_CONTROL, (Read(REG_HOST_CONTROL) & ~0xFF00u) | PWR_330 | PWR_ON); + Write(REG_INT_ENABLE, INT_ENABLES); + Write(REG_INT_SIGNAL, 0); + Write(REG_CLOCK_CONTROL, (Read(REG_CLOCK_CONTROL) & ~0xFF0000u) | TIMEOUT_MAX); + + if (!SetClock(400000)) { + KernelLogStream(ERROR, "WiFi-SDIO") << "Clock did not stabilize"; + return false; + } + // 74 clocks before the first command. + Timekeeping::BusyWaitMs(2); + + KernelLogStream(INFO, "WiFi-SDIO") << "Arasan controller at 0x" << base::hex << mmioPhys + << base::dec << ", version " << (uint64_t)(g_version + 1) << ".00, base clock " + << (uint64_t)(g_baseClockHz / 1000000) << " MHz"; + return true; + } + + bool CardInit() { + // Allow Transfer()/Cmd52 during bring-up; cleared again on failure. + g_initialized = true; + auto fail = [](const char* what) { + KernelLogStream(WARNING, "WiFi-SDIO") << what; + g_initialized = false; + return false; + }; + + SendCommand(0, 0, RespNone); + Timekeeping::BusyWaitMs(2); + + // CMD5 with no voltage first to read the OCR; the radio may still be + // coming out of reset, so give it a few tries. + uint32_t ocr = 0; + bool answered = false; + for (int i = 0; i < 10 && !answered; i++) { + answered = SendCommand(5, 0, Resp48NoCrc); + if (!answered) Timekeeping::BusyWaitMs(10); + } + if (!answered) return fail("No SDIO card answers CMD5"); + ocr = Read(REG_RESPONSE) & 0x00FFFFFF; + + uint32_t want = ocr & 0x00300000; // 3.2-3.4 V + if (!want) want = ocr & 0x00FF8000; + uint64_t start = Timekeeping::GetMilliseconds(); + for (;;) { + if (!SendCommand(5, want, Resp48NoCrc)) return fail("CMD5 failed"); + if (Read(REG_RESPONSE) & (1u << 31)) break; + if (Timekeeping::GetMilliseconds() - start > 1000) return fail("Card stayed busy (CMD5)"); + Timekeeping::BusyWaitMs(1); + } + + if (!SendCommand(3, 0, Resp48)) return fail("CMD3 failed"); + g_rca = Read(REG_RESPONSE) >> 16; + if (!SendCommand(7, g_rca << 16, Resp48)) return fail("CMD7 failed"); + + // 4-bit bus; disconnect the card-detect pull-up on DAT3. + uint8_t busif = 0; + if (!Read8(FN0, CCCR_BUSIF, busif)) return fail("CCCR read failed"); + busif = (uint8_t)((busif & ~0x03) | BUSIF_4BIT | BUSIF_CD_DIS); + if (!Write8(FN0, CCCR_BUSIF, busif)) return fail("Could not select the 4-bit bus"); + Write(REG_HOST_CONTROL, Read(REG_HOST_CONTROL) | HC_4BIT); + + if (!SetClock(25000000)) return fail("Clock did not stabilize at 25 MHz"); + + // Function block sizes (little endian in the FBR). + bool ok = Write8(FN0, 1 * 0x100 + FBR_BLKSIZE, (uint8_t)(FN1_BLOCK & 0xFF)) + && Write8(FN0, 1 * 0x100 + FBR_BLKSIZE + 1, (uint8_t)(FN1_BLOCK >> 8)) + && Write8(FN0, 2 * 0x100 + FBR_BLKSIZE, (uint8_t)(FN2_BLOCK & 0xFF)) + && Write8(FN0, 2 * 0x100 + FBR_BLKSIZE + 1, (uint8_t)(FN2_BLOCK >> 8)); + if (!ok) return fail("Could not set the function block sizes"); + + if (!EnableFunction(FN1, true, 1000)) return fail("Function 1 did not become ready"); + + KernelLogStream(OK, "WiFi-SDIO") << "SDIO card ready (RCA 0x" << base::hex << (uint64_t)g_rca + << base::dec << ", OCR 0x" << base::hex << (uint64_t)ocr << base::dec << ", " + << (uint64_t)(g_clockHz / 1000) << " kHz, 4-bit)"; + return true; + } + +} diff --git a/kernel/src/Drivers/Net/Wifi/BrcmfSdio.hpp b/kernel/src/Drivers/Net/Wifi/BrcmfSdio.hpp new file mode 100644 index 0000000..a6612f4 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/BrcmfSdio.hpp @@ -0,0 +1,63 @@ +/* + * BrcmfSdio.hpp + * SDIO host on the Raspberry Pi 4/400's Arasan SD controller, for the + * CYW4345x Wi-Fi radio wired to it + * Copyright (c) 2026 Daniel Hammer +*/ + +#pragma once +#include + +// The BCM2711 has two SD controllers: EMMC2 runs the card slot +// (Drivers/Storage/Sdhci) and the older Arasan-derived EMMC, routed to GPIO +// 34-39, runs the radio's SDIO interface. This is a minimal SDIO host for +// the latter: one card, polled, programmed I/O, CMD52 and CMD53 only. +// +// None of these calls lock; the Broadcom driver above serializes them. + +namespace Drivers::Net::Wifi::Sdio { + + // SDIO functions on the radio. + constexpr uint32_t FN0 = 0; // CCCR / FBR + constexpr uint32_t FN1 = 1; // backplane + constexpr uint32_t FN2 = 2; // WLAN frames + + // Block sizes the card is configured with. + constexpr uint32_t FN1_BLOCK = 64; + constexpr uint32_t FN2_BLOCK = 512; + + // Map the controller's registers and reset it. `baseClockHz` is the + // controller's input clock (0 = take it from the capabilities). + bool HostInit(uint64_t mmioPhys, uint32_t baseClockHz); + + // Enumerate the card: CMD0/5/3/7, 4-bit bus at 25 MHz, function 1/2 + // block sizes, function 1 enabled. Returns false when nothing answers. + bool CardInit(); + + // CMD52: one byte. + bool Read8(uint32_t fn, uint32_t addr, uint8_t& value); + bool Write8(uint32_t fn, uint32_t addr, uint8_t value); + + // CMD53: `len` bytes, a multiple of 4. `incr` selects an incrementing + // address (backplane memory) over a fixed one (the function 2 FIFO). + // Longer transfers are split into block-mode runs plus a byte-mode tail. + bool ReadBlock(uint32_t fn, uint32_t addr, bool incr, uint8_t* buffer, uint32_t len); + bool WriteBlock(uint32_t fn, uint32_t addr, bool incr, const uint8_t* buffer, uint32_t len); + + // Enable or disable function `fn`'s I/O; waits up to `timeoutMs` for the + // card to report it ready. + bool EnableFunction(uint32_t fn, bool enable, uint64_t timeoutMs); + + // CCCR interrupt enables (master | functions). + bool EnableCardInterrupts(uint8_t mask); + + // Abort a function's transfer in progress (CCCR I/O Abort). + void Abort(uint32_t fn); + + // The card is signalling an interrupt on DAT1. One register read, safe + // from any context. + bool CardInterruptPending(); + + bool IsInitialized(); + +} diff --git a/kernel/src/Drivers/Net/Wifi/Iwx.hpp b/kernel/src/Drivers/Net/Wifi/Iwx.hpp index 0b49e2d..c39402f 100644 --- a/kernel/src/Drivers/Net/Wifi/Iwx.hpp +++ b/kernel/src/Drivers/Net/Wifi/Iwx.hpp @@ -443,6 +443,12 @@ namespace Drivers::Net::Wifi { // Send an Ethernet frame over the air (called by the netif). bool IwxConnectSendEthernet(const uint8_t* frame, uint32_t len); + // The supplicant's hooks (Wpa.hpp) for this MLME; Wifi.cpp routes them. + bool IwxWpaTxEapol(const uint8_t* body, uint32_t len); + bool IwxWpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher); + bool IwxWpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc); + // Sink for decapsulated Ethernet frames, implemented by Wifi.cpp. void WifiRxEthernet(const uint8_t* frame, uint32_t len); } diff --git a/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp b/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp index a32054d..cc4353c 100644 --- a/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp +++ b/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp @@ -535,7 +535,7 @@ namespace Drivers::Net::Wifi { // The supplicant transmits EAPOL frames unencrypted: they are what // establishes the key in the first place. - bool WpaTxEapol(const uint8_t* body, uint32_t len) { + bool IwxWpaTxEapol(const uint8_t* body, uint32_t len) { return SendDataFrame(g_bssid, ETHERTYPE_EAPOL, body, len, false); } @@ -545,14 +545,14 @@ namespace Drivers::Net::Wifi { static InstalledKey g_ptkKey = {}; static InstalledKey g_gtkKey = {}; - bool WpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { + bool IwxWpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { if (!IwxSetKey(tk, tkLen, 0, true, cipher, nullptr)) return false; g_ptkKey = { true, 0, cipher, (uint8_t)tkLen }; return true; } - bool WpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, - uint8_t cipher, const uint8_t* rsc) { + bool IwxWpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc) { if (gtkLen != 16 && gtkLen != 32) return false; if (!IwxSetKey(gtk, gtkLen, keyIdx, false, cipher, rsc)) return false; g_gtkKey = { true, keyIdx, cipher, (uint8_t)gtkLen }; diff --git a/kernel/src/Drivers/Net/Wifi/Wifi.cpp b/kernel/src/Drivers/Net/Wifi/Wifi.cpp index ed45c6e..8fd77d3 100644 --- a/kernel/src/Drivers/Net/Wifi/Wifi.cpp +++ b/kernel/src/Drivers/Net/Wifi/Wifi.cpp @@ -14,6 +14,7 @@ #include "Wifi.hpp" #include #include "Iwx.hpp" +#include "Brcmf.hpp" #include "Wpa.hpp" #include #include @@ -34,6 +35,72 @@ namespace Drivers::Net::Wifi { static std::atomic g_initPending{false}; static bool g_initialized = false; + // ========================================================================= + // Backend + // + // Two kinds of adapter sit behind this facade: the Intel AX210 family on + // PCIe (Iwx*: the firmware is a SoftMAC, the MLME is ours) and the + // Raspberry Pi 4/400's Broadcom/Cypress radio on SDIO (Brcmf*: FullMAC, + // the firmware joins by itself). A machine has at most one; whichever + // probes first owns the facade. Both use the same scan table, the same + // supplicant and the same connection-state numbering (WIFI_CONN_*, which + // IwxConnStateId mirrors). + // ========================================================================= + + enum class Backend : uint8_t { None, Iwx, Brcmf }; + static Backend g_backend = Backend::None; + + static bool IsBrcmf() { return g_backend == Backend::Brcmf; } + + static bool FwRunning() { + return IsBrcmf() ? BrcmfGetState() == BrcmfState::Running + : g_iwx.State == IwxFwState::Running; + } + + static bool FwFailed() { + return IsBrcmf() ? BrcmfGetState() == BrcmfState::Error + : g_iwx.State == IwxFwState::Error; + } + + static bool ScanActive() { return IsBrcmf() ? BrcmfScanActive() : g_iwx.ScanActive; } + static bool BeginScan() { return IsBrcmf() ? BrcmfStartScan() : IwxStartScan(nullptr); } + + static void AbortScan() { + if (IsBrcmf()) BrcmfAbortScan(); + else IwxAbortScan(); + } + + // What a blocking wait pumps: the receive path, and for a join the + // state machine behind it. + static void PumpEvents() { + if (IsBrcmf()) BrcmfService(); + else IwxProcessEvents(); + } + + static void PumpConnection() { + if (IsBrcmf()) { + BrcmfService(); + } else { + IwxProcessEvents(); + IwxConnectService(); + } + } + + static int ConnState() { return IsBrcmf() ? BrcmfConnectState() : IwxConnectState(); } + + static void ConnAbort() { + if (IsBrcmf()) BrcmfConnectAbort(); + else IwxConnectAbort(); + } + + // A handshake that got as far as exchanging EAPOL frames and then failed + // is almost always a wrong passphrase. + static bool JoinFailedOnAuth() { + return IsBrcmf() ? BrcmfJoinFailedOnAuth() : WpaGetState() == WpaState::Failed; + } + + static bool LinkUp() { return IsBrcmf() ? BrcmfLinkUp() : IwxLinkUp(); } + // ========================================================================= // Scan result table // ========================================================================= @@ -141,22 +208,12 @@ namespace Drivers::Net::Wifi { uint8_t RsnLen = 0; }; - static bool ParseBeacon(const uint8_t* frame, uint32_t len, ParsedBeacon* out) { - // 24-byte MAC header, then timestamp(8) + beacon interval(2) + caps(2). - constexpr uint32_t HDR = 24; - constexpr uint32_t FIXED = 12; - if (len < HDR + FIXED) return false; - - const uint8_t* fixed = frame + HDR; - out->BeaconInterval = (uint16_t)(fixed[8] | (fixed[9] << 8)); - uint16_t caps = (uint16_t)(fixed[10] | (fixed[11] << 8)); - bool privacy = (caps & 0x0010) != 0; - + // The information elements of a beacon or probe response; `privacy` is + // the capability field's Privacy bit. + static void ParseIes(const uint8_t* ie, const uint8_t* end, bool privacy, ParsedBeacon* out) { bool haveRsn = false, haveWpa = false; - const uint8_t* ie = frame + HDR + FIXED; - const uint8_t* end = frame + len; - while (ie + 2 <= end) { + while (ie && ie + 2 <= end) { uint8_t id = ie[0]; uint8_t ielen = ie[1]; if (ie + 2 + ielen > end) break; @@ -200,9 +257,24 @@ namespace Drivers::Net::Wifi { else if (privacy) out->Security = WIFI_SEC_WEP; else out->Security = WIFI_SEC_OPEN; } + } + + static bool ParseBeacon(const uint8_t* frame, uint32_t len, ParsedBeacon* out) { + // 24-byte MAC header, then timestamp(8) + beacon interval(2) + caps(2). + constexpr uint32_t HDR = 24; + constexpr uint32_t FIXED = 12; + if (len < HDR + FIXED) return false; + + const uint8_t* fixed = frame + HDR; + out->BeaconInterval = (uint16_t)(fixed[8] | (fixed[9] << 8)); + uint16_t caps = (uint16_t)(fixed[10] | (fixed[11] << 8)); + ParseIes(frame + HDR + FIXED, frame + len, (caps & 0x0010) != 0, out); return true; } + static void StoreScanResult(const uint8_t* bssid, const ParsedBeacon& pb, uint8_t ch, + int8_t rssiDbm); + // Called by the MVM RX path for every received management frame. void WifiRxMgmtFrame(const uint8_t* frame, uint32_t len, uint8_t channel, int8_t rssiDbm) { @@ -224,9 +296,21 @@ namespace Drivers::Net::Wifi { ParsedBeacon pb; if (!ParseBeacon(frame, len, &pb)) return; - const uint8_t* bssid = frame + 16; // addr3 of a beacon - uint8_t ch = pb.Channel ? pb.Channel : channel; + // addr3 of a beacon + StoreScanResult(frame + 16, pb, pb.Channel ? pb.Channel : channel, rssiDbm); + } + // One BSS a FullMAC firmware reported from its own scan. + void WifiRxBssInfo(const uint8_t* bssid, uint16_t beaconInterval, uint16_t capability, + const uint8_t* ies, uint32_t iesLen, uint8_t channel, int8_t rssiDbm) { + ParsedBeacon pb; + pb.BeaconInterval = beaconInterval; + ParseIes(ies, ies ? ies + iesLen : nullptr, (capability & 0x0010) != 0, &pb); + StoreScanResult(bssid, pb, pb.Channel ? pb.Channel : channel, rssiDbm); + } + + static void StoreScanResult(const uint8_t* bssid, const ParsedBeacon& pb, uint8_t ch, + int8_t rssiDbm) { g_resultLock.Acquire(); ScanEntry* slot = nullptr; @@ -275,7 +359,9 @@ namespace Drivers::Net::Wifi { // ========================================================================= bool Probe(const Pci::PciDevice& dev) { + if (g_backend != Backend::None) return false; if (!IwxProbe(dev)) return false; + g_backend = Backend::Iwx; // Firmware comes off the ramdisk, which is not mounted during the PCI // scan; hand the rest of the bring-up to the idle loop. @@ -283,7 +369,23 @@ namespace Drivers::Net::Wifi { return true; } + bool ProbeBroadcomSdio(uint64_t mmioPhys, const char* name) { + if (g_backend != Backend::None) return false; + if (!BrcmfProbe(mmioPhys)) return false; + g_backend = Backend::Brcmf; + KernelLogStream(INFO, "WiFi") << "Broadcom SDIO radio on " << name + << "; firmware loads once the root filesystem is up"; + // Same reason as the PCI path: the firmware is on the root volume. + g_initPending.store(true, std::memory_order_release); + return true; + } + static void CompleteInit() { + if (IsBrcmf()) { + g_initialized = BrcmfCompleteInit(); + return; + } + if (!IwxReadFirmware()) { g_iwx.State = IwxFwState::Error; return; @@ -348,7 +450,7 @@ namespace Drivers::Net::Wifi { static constexpr uint64_t RECOVERY_BACKOFF_MS = 5000; static void ServiceRecovery() { - if (g_iwx.State != IwxFwState::Error || g_recoveryGaveUp) return; + if (!FwFailed() || g_recoveryGaveUp) return; // An adapter that never finished its first bring-up is ServiceDeferredInit's // problem, not this one. if (!g_initialized) return; @@ -366,7 +468,7 @@ namespace Drivers::Net::Wifi { // Re-check under the gate: the winner of the race may have just // finished a reset that fixed things. - if (g_iwx.State != IwxFwState::Error) return; + if (!FwFailed()) return; uint64_t now = Timekeeping::GetMilliseconds(); if (g_lastRecoveryMs && now - g_lastRecoveryMs < RECOVERY_BACKOFF_MS) return; @@ -384,6 +486,24 @@ namespace Drivers::Net::Wifi { << " (attempt " << (uint64_t)g_recoveryAttempts << " of " << (uint64_t)MAX_RECOVERY_ATTEMPTS << ")"; + if (IsBrcmf()) { + // A FullMAC radio is reset by power: WL_ON low, then the whole + // bring-up (firmware download included) again. + g_initialized = false; + g_asyncConnect = false; + g_scanDeadline = 0; + g_lastError = WIFI_ERR_NO_ADAPTER; + ClearResults(); + BrcmfShutdown(); + CompleteInit(); + if (g_initialized) { + KernelLogStream(OK, "WiFi") << "Adapter recovered"; + g_recoveryAttempts = 0; + g_lastError = 0; + } + return; + } + // Nothing may be mid-command while the device is torn down. Taking // CmdLock is enough: it is what serializes every sender, and the RX // pump has its own reentrancy guard. @@ -517,8 +637,24 @@ namespace Drivers::Net::Wifi { return false; } + // The facade's own deadlines (async scan and join) and a due reset. + static bool FacadeWorkDue(uint64_t now) { + if (g_scanDeadline != 0 && (now >= g_scanDeadline || !ScanActive())) return true; + if (g_asyncConnect) return true; + return FwFailed() && g_initialized && !g_recoveryGaveUp && + (g_lastRecoveryMs == 0 || now - g_lastRecoveryMs >= RECOVERY_BACKOFF_MS); + } + + bool HasPolledWork() { + return IsBrcmf() && BrcmfHasWork(Timekeeping::GetMilliseconds()); + } + bool HasDeferredWork() { if (InitDue()) return true; + if (IsBrcmf()) { + uint64_t now = Timekeeping::GetMilliseconds(); + return BrcmfHasWork(now) || FacadeWorkDue(now); + } if (!g_iwx.Mmio) return false; if (g_iwx.WorkPending) return true; @@ -527,7 +663,29 @@ namespace Drivers::Net::Wifi { return HasBlockingWork(now); } + // The Broadcom radio has no interrupt in use: everything on its bus is + // polled, and everything on its bus waits (SDIO transfers, ioctls), so + // all of it goes through the blocking gate. + static void ServiceBrcmf() { + uint64_t now = Timekeeping::GetMilliseconds(); + bool radioWork = BrcmfHasWork(now); + if (!radioWork && !FacadeWorkDue(now)) return; + if (LeaveToAp()) return; + if (__atomic_test_and_set(&g_blockingBusy, __ATOMIC_ACQUIRE)) return; + struct Guard { + ~Guard() { __atomic_clear(&g_blockingBusy, __ATOMIC_RELEASE); } + } guard; + + if (radioWork) BrcmfService(); + ServiceAsync(); + ServiceRecovery(); + } + void ServiceEvents() { + if (IsBrcmf()) { + ServiceBrcmf(); + return; + } if (!g_iwx.Mmio) return; // The non-blocking half: any core, the BSP included. @@ -573,7 +731,11 @@ namespace Drivers::Net::Wifi { } bool IsInitialized() { return g_initialized; } - bool IsPresent() { return g_iwx.State != IwxFwState::Absent; } + + bool IsPresent() { + return IsBrcmf() ? BrcmfGetState() != BrcmfState::Absent + : g_iwx.State != IwxFwState::Absent; + } // ========================================================================= // Public operations @@ -611,26 +773,26 @@ namespace Drivers::Net::Wifi { int Scan(WifiNetwork* out, int maxCount, uint32_t timeoutMs) { if (!out || maxCount <= 0) return -1; if (!g_initialized) return -1; - if (g_iwx.State != IwxFwState::Running) return -1; + if (!FwRunning()) return -1; if (timeoutMs < 1000) timeoutMs = 1000; if (timeoutMs > 20000) timeoutMs = 20000; ClearResults(); - if (!IwxStartScan(nullptr)) return -1; + if (!BeginScan()) return -1; uint64_t start = Timekeeping::GetMilliseconds(); - while (g_iwx.ScanActive && Timekeeping::GetMilliseconds() - start < timeoutMs) { - IwxProcessEvents(); + while (ScanActive() && Timekeeping::GetMilliseconds() - start < timeoutMs) { + PumpEvents(); for (int i = 0; i < 200; i++) Arch::Pause(); } - if (g_iwx.ScanActive) { - IwxAbortScan(); + if (ScanActive()) { + AbortScan(); // Drain whatever the firmware queued before the abort landed. uint64_t t0 = Timekeeping::GetMilliseconds(); - while (Timekeeping::GetMilliseconds() - t0 < 200) IwxProcessEvents(); + while (Timekeeping::GetMilliseconds() - t0 < 200) PumpEvents(); } g_scanGeneration++; @@ -639,14 +801,14 @@ namespace Drivers::Net::Wifi { int StartScan(uint32_t timeoutMs) { if (!g_initialized) return -1; - if (g_iwx.State != IwxFwState::Running) return -1; - if (g_iwx.ScanActive) return 1; // already sweeping + if (!FwRunning()) return -1; + if (ScanActive()) return 1; // already sweeping if (timeoutMs < 1000) timeoutMs = 1000; if (timeoutMs > 20000) timeoutMs = 20000; ClearResults(); - if (!IwxStartScan(nullptr)) return -1; + if (!BeginScan()) return -1; g_scanDeadline = Timekeeping::GetMilliseconds() + timeoutMs; return 0; @@ -657,33 +819,47 @@ namespace Drivers::Net::Wifi { memset(out, 0, sizeof(*out)); out->present = IsPresent() ? 1 : 0; - out->state = (uint8_t)g_iwx.State; if (!IsPresent()) return -1; - memcpy(out->mac, g_iwx.Nvm.HwAddr, 6); - out->scanning = g_iwx.ScanActive ? 1 : 0; - out->bands = (uint8_t)((g_iwx.Nvm.Sku24GHz ? 1 : 0) - | (g_iwx.Nvm.Sku52GHz ? 2 : 0)); - out->channels = (uint16_t)g_iwx.ChannelCount; - out->rxPackets = g_iwx.RxPackets; - out->txPackets = g_iwx.TxPackets; - out->fwErrors = (uint32_t)g_iwx.FwErrors; - out->connState = (uint32_t)IwxConnectState(); - out->connected = IwxLinkUp() ? 1 : 0; + const char* fwVersion; + if (IsBrcmf()) { + out->state = (uint8_t)BrcmfGetState(); + memcpy(out->mac, g_brcmf.Mac, 6); + out->bands = (uint8_t)((g_brcmf.Band24 ? 1 : 0) | (g_brcmf.Band5 ? 2 : 0)); + out->channels = g_brcmf.ChannelCount; + out->rxPackets = g_brcmf.RxPackets; + out->txPackets = g_brcmf.TxPackets; + out->fwErrors = g_brcmf.FwErrors; + fwVersion = g_brcmf.FwVersion; + } else { + out->state = (uint8_t)g_iwx.State; + memcpy(out->mac, g_iwx.Nvm.HwAddr, 6); + out->bands = (uint8_t)((g_iwx.Nvm.Sku24GHz ? 1 : 0) + | (g_iwx.Nvm.Sku52GHz ? 2 : 0)); + out->channels = (uint16_t)g_iwx.ChannelCount; + out->rxPackets = g_iwx.RxPackets; + out->txPackets = g_iwx.TxPackets; + out->fwErrors = (uint32_t)g_iwx.FwErrors; + fwVersion = g_iwx.Fw.Version; + } + out->scanning = ScanActive() ? 1 : 0; + out->connState = (uint32_t)ConnState(); + out->connected = LinkUp() ? 1 : 0; out->lastError = (int32_t)g_lastError; out->scanGeneration = g_scanGeneration; out->joining = g_asyncConnect ? 1 : 0; - if (IwxConnectState() != (int)IwxConnStateId::Idle) { - const char* ssid = IwxConnectSsid(); + if (ConnState() != (int)IwxConnStateId::Idle) { + const char* ssid = IsBrcmf() ? BrcmfConnectSsid() : IwxConnectSsid(); int k = 0; for (; k < 32 && ssid[k]; k++) out->ssid[k] = ssid[k]; out->ssid[k] = '\0'; - memcpy(out->bssid, IwxConnectBssid(), 6); + memcpy(out->bssid, IsBrcmf() ? BrcmfConnectBssid() : IwxConnectBssid(), 6); + if (IsBrcmf()) out->channel = BrcmfConnectChannel(); } int i = 0; - for (; i < 31 && g_iwx.Fw.Version[i]; i++) out->fwVersion[i] = g_iwx.Fw.Version[i]; + for (; i < 31 && fwVersion[i]; i++) out->fwVersion[i] = fwVersion[i]; out->fwVersion[i] = '\0'; return 0; } @@ -695,24 +871,20 @@ namespace Drivers::Net::Wifi { uint64_t start = Timekeeping::GetMilliseconds(); while (Timekeeping::GetMilliseconds() - start < timeoutMs) { - IwxProcessEvents(); - IwxConnectService(); + PumpConnection(); - auto state = (IwxConnStateId)IwxConnectState(); + auto state = (IwxConnStateId)ConnState(); if (state == IwxConnStateId::Connected) return 0; if (state == IwxConnStateId::Failed) { - // A handshake that got as far as exchanging EAPOL frames and - // then failed is almost always a wrong passphrase. - int rc = WpaGetState() == WpaState::Failed - ? WIFI_ERR_AUTH : WIFI_ERR_FAILED; + int rc = JoinFailedOnAuth() ? WIFI_ERR_AUTH : WIFI_ERR_FAILED; // A rejection seen on the RX path only marks the state; the // firmware contexts are still up and have to come back down. - IwxConnectAbort(); + ConnAbort(); return rc; } if (state == IwxConnStateId::Idle) return WIFI_ERR_FAILED; - if (g_iwx.State == IwxFwState::Error) { - IwxConnectAbort(); + if (FwFailed()) { + ConnAbort(); return WIFI_ERR_FAILED; } @@ -721,7 +893,7 @@ namespace Drivers::Net::Wifi { Sched::Schedule(); } - IwxConnectAbort(); + ConnAbort(); return WIFI_ERR_TIMEOUT; } @@ -732,7 +904,7 @@ namespace Drivers::Net::Wifi { // scan table is worth a (blocking) sweep to look for it. static int StartJoin(const char* ssid, const char* password, bool rescan) { if (!g_initialized || !ssid) return WIFI_ERR_NO_ADAPTER; - if (g_iwx.State != IwxFwState::Running) return WIFI_ERR_NO_ADAPTER; + if (!FwRunning()) return WIFI_ERR_NO_ADAPTER; // Locate the network in the most recent scan results: the firmware // contexts need its BSSID and channel, and the connect path needs its @@ -809,17 +981,24 @@ namespace Drivers::Net::Wifi { if (!havePassword) return WIFI_ERR_NEED_KEY; } - if (!IwxConnectStart(bssid, channel, is5, ssid, - havePassword ? password : nullptr, - security == WIFI_SEC_OPEN ? nullptr : rsnIe, - security == WIFI_SEC_OPEN ? 0 : rsnIeLen, - beaconInterval, dtimPeriod)) { - // IwxConnectStart already logged the specific reason. Only report + bool started = IsBrcmf() + ? BrcmfConnectStart(bssid, channel, ssid, + havePassword ? password : nullptr, + security == WIFI_SEC_OPEN ? nullptr : rsnIe, + security == WIFI_SEC_OPEN ? 0 : rsnIeLen) + : IwxConnectStart(bssid, channel, is5, ssid, + havePassword ? password : nullptr, + security == WIFI_SEC_OPEN ? nullptr : rsnIe, + security == WIFI_SEC_OPEN ? 0 : rsnIeLen, + beaconInterval, dtimPeriod); + if (!started) { + // The backend already logged the specific reason. Only report // a security problem when that is genuinely what happened; a radio // or firmware failure needs completely different advice. - bool security_ = IwxConnectRefusedForSecurity(); - auto state = (IwxConnStateId)IwxConnectState(); - if (state != IwxConnStateId::Idle) IwxConnectAbort(); + bool security_ = IsBrcmf() ? BrcmfConnectRefusedForSecurity() + : IwxConnectRefusedForSecurity(); + auto state = (IwxConnStateId)ConnState(); + if (state != IwxConnStateId::Idle) ConnAbort(); return security_ ? WIFI_ERR_UNSUPPORTED : WIFI_ERR_FAILED; } @@ -835,8 +1014,8 @@ namespace Drivers::Net::Wifi { int ConnectAsync(const char* ssid, const char* password) { // A join already in flight owns the firmware contexts; tear it down // rather than stacking a second one on top. - if (g_asyncConnect || (IwxConnectState() != (int)IwxConnStateId::Idle)) - IwxConnectAbort(); + if (g_asyncConnect || (ConnState() != (int)IwxConnStateId::Idle)) + ConnAbort(); g_asyncConnect = false; g_lastError = 0; @@ -858,7 +1037,7 @@ namespace Drivers::Net::Wifi { if (!g_initialized) return -1; g_asyncConnect = false; g_lastError = 0; - IwxConnectAbort(); + ConnAbort(); return 0; } @@ -881,11 +1060,11 @@ namespace Drivers::Net::Wifi { uint64_t now = Timekeeping::GetMilliseconds(); if (g_scanDeadline) { - if (!g_iwx.ScanActive) { + if (!ScanActive()) { g_scanDeadline = 0; g_scanGeneration++; } else if (now >= g_scanDeadline) { - IwxAbortScan(); + AbortScan(); g_scanDeadline = 0; g_scanGeneration++; } @@ -893,31 +1072,29 @@ namespace Drivers::Net::Wifi { if (!g_asyncConnect) return; - auto state = (IwxConnStateId)IwxConnectState(); + auto state = (IwxConnStateId)ConnState(); if (state == IwxConnStateId::Connected) { g_asyncConnect = false; g_lastError = 0; return; } if (state == IwxConnStateId::Failed) { - // Same reading as the blocking path: a handshake that exchanged - // EAPOL frames and then failed is almost always a wrong passphrase. - g_lastError = WpaGetState() == WpaState::Failed - ? WIFI_ERR_AUTH : WIFI_ERR_FAILED; + // Same reading as the blocking path. + g_lastError = JoinFailedOnAuth() ? WIFI_ERR_AUTH : WIFI_ERR_FAILED; g_asyncConnect = false; - IwxConnectAbort(); + ConnAbort(); return; } - if (state == IwxConnStateId::Idle || g_iwx.State == IwxFwState::Error) { + if (state == IwxConnStateId::Idle || FwFailed()) { g_lastError = WIFI_ERR_FAILED; g_asyncConnect = false; - if (state != IwxConnStateId::Idle) IwxConnectAbort(); + if (state != IwxConnStateId::Idle) ConnAbort(); return; } if (now >= g_asyncConnectDeadline) { g_lastError = WIFI_ERR_TIMEOUT; g_asyncConnect = false; - IwxConnectAbort(); + ConnAbort(); } } @@ -927,13 +1104,33 @@ namespace Drivers::Net::Wifi { static RxCallback g_rxCallback = nullptr; - const uint8_t* GetMacAddress() { return g_iwx.Nvm.HwAddr; } + const uint8_t* GetMacAddress() { return IsBrcmf() ? g_brcmf.Mac : g_iwx.Nvm.HwAddr; } - bool IsLinkUp() { return g_initialized && IwxLinkUp(); } + bool IsLinkUp() { return g_initialized && LinkUp(); } bool SendPacket(const uint8_t* data, uint16_t length) { if (!IsLinkUp()) return false; - return IwxConnectSendEthernet(data, length); + return IsBrcmf() ? BrcmfSendEthernet(data, length) + : IwxConnectSendEthernet(data, length); + } + + // ========================================================================= + // Supplicant hooks (Wpa.hpp): to whichever backend is running the join + // ========================================================================= + + bool WpaTxEapol(const uint8_t* body, uint32_t len) { + return IsBrcmf() ? BrcmfWpaTxEapol(body, len) : IwxWpaTxEapol(body, len); + } + + bool WpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { + return IsBrcmf() ? BrcmfWpaInstallPtk(tk, tkLen, cipher) + : IwxWpaInstallPtk(tk, tkLen, cipher); + } + + bool WpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc) { + return IsBrcmf() ? BrcmfWpaInstallGtk(gtk, gtkLen, keyIdx, cipher, rsc) + : IwxWpaInstallGtk(gtk, gtkLen, keyIdx, cipher, rsc); } void SetRxCallback(RxCallback callback) { g_rxCallback = callback; } diff --git a/kernel/src/Drivers/Net/Wifi/Wifi.hpp b/kernel/src/Drivers/Net/Wifi/Wifi.hpp index b4f70c2..07b04a8 100644 --- a/kernel/src/Drivers/Net/Wifi/Wifi.hpp +++ b/kernel/src/Drivers/Net/Wifi/Wifi.hpp @@ -14,6 +14,11 @@ namespace Drivers::Net::Wifi { // PCI driver-table probe entry point. bool Probe(const Pci::PciDevice& dev); + // The Raspberry Pi 4/400's Broadcom/Cypress radio, on the SDIO + // controller (Arasan) at `mmioPhys`. Claims it; the bring-up waits for + // the root filesystem like the PCI path. + bool ProbeBroadcomSdio(uint64_t mmioPhys, const char* name); + // Complete the firmware-dependent bring-up once the ramdisk is mounted. // Cheap no-op unless a device is waiting. Called from the idle loop. void ServiceDeferredInit(); @@ -25,6 +30,11 @@ namespace Drivers::Net::Wifi { // deadline, or a due recovery attempt needs idle-context servicing. bool HasDeferredWork(); + // A polled adapter (the Broadcom radio has no interrupt in use) is due a + // sweep. Cheap and safe from the timer interrupt: the tick uses it to + // force a bottom-half pass when the cores never go idle. + bool HasPolledWork(); + bool IsInitialized(); bool IsPresent(); diff --git a/kernel/src/Drivers/Net/Wifi/Wpa.hpp b/kernel/src/Drivers/Net/Wifi/Wpa.hpp index 48aefd2..67f2622 100644 --- a/kernel/src/Drivers/Net/Wifi/Wpa.hpp +++ b/kernel/src/Drivers/Net/Wifi/Wpa.hpp @@ -66,7 +66,8 @@ namespace Drivers::Net::Wifi { bool WpaParseApRsn(const uint8_t* ie, uint32_t len, WpaConfig& cfg); // ------------------------------------------------------------------------- - // Hooks implemented by the MLME (IwxConnect.cpp) + // Hooks into the driver running the join (Wifi.cpp routes them to + // IwxConnect.cpp or BrcmfConnect.cpp) // ------------------------------------------------------------------------- // Transmit an EAPOL frame body (802.1X header included) to the AP. diff --git a/kernel/src/Drivers/Platform/RpiFirmware.cpp b/kernel/src/Drivers/Platform/RpiFirmware.cpp index 026b6fb..8bc2aa3 100644 --- a/kernel/src/Drivers/Platform/RpiFirmware.cpp +++ b/kernel/src/Drivers/Platform/RpiFirmware.cpp @@ -45,6 +45,7 @@ namespace Drivers::Platform::RpiFirmware { static constexpr uint32_t TAG_RESPONSE = 0x80000000; static constexpr uint32_t TAG_GET_BOARD_MAC = 0x00010003; + static constexpr uint32_t TAG_SET_CLOCK_STATE = 0x00038001; static constexpr uint32_t TAG_GET_CLOCK_RATE = 0x00030002; static constexpr uint32_t TAG_GET_GPIO_STATE = 0x00030041; static constexpr uint32_t TAG_SET_GPIO_STATE = 0x00038041; @@ -233,6 +234,14 @@ namespace Drivers::Platform::RpiFirmware { return hz != 0; } + // State bit 0 = on; the answer echoes the clock ID and its new state + // (bit 1 set: no such clock). + bool SetClockState(uint32_t clockId, bool on) { + uint32_t v[2] = { clockId, on ? 1u : 0u }; + if (PropertyCall(TAG_SET_CLOCK_STATE, v, 2) < 8 || v[0] != clockId) return false; + return (v[1] & 2) == 0 && ((v[1] & 1) != 0) == on; + } + // The GPIO tags answer in place of the GPIO number with a status word, // 0 for success (as Linux's raspberrypi-exp-gpio driver checks). bool SetGpioState(uint32_t gpio, bool high) { diff --git a/kernel/src/Drivers/Platform/RpiFirmware.hpp b/kernel/src/Drivers/Platform/RpiFirmware.hpp index 2043939..c066b3b 100644 --- a/kernel/src/Drivers/Platform/RpiFirmware.hpp +++ b/kernel/src/Drivers/Platform/RpiFirmware.hpp @@ -27,11 +27,15 @@ namespace Drivers::Platform::RpiFirmware { bool IsPresent(); // Clock identifiers (the firmware's numbering). + constexpr uint32_t CLOCK_EMMC = 1; // legacy EMMC (Arasan), runs the Wi-Fi SDIO bus constexpr uint32_t CLOCK_CORE = 4; // VPU core clock, feeds the mini UART // Current rate of a firmware clock, in Hz. bool GetClockRate(uint32_t clockId, uint32_t& hz); + // Gate a firmware clock on or off. + bool SetClockState(uint32_t clockId, bool on); + // The firmware's GPIO expander lines are numbered from 128. constexpr uint32_t EXPGPIO_BASE = 128; constexpr uint32_t EXPGPIO_BT_ON = EXPGPIO_BASE + 0; // Bluetooth power (high = on) diff --git a/kernel/src/Timekeeping/Timer.cpp b/kernel/src/Timekeeping/Timer.cpp index b47393d..c36c4f9 100644 --- a/kernel/src/Timekeeping/Timer.cpp +++ b/kernel/src/Timekeeping/Timer.cpp @@ -67,7 +67,8 @@ namespace Timekeeping { bool audioWork = Drivers::Audio::IntelHda::HasDeferredWork(); bool netWork = Drivers::Net::E1000::HasDeferredWork() || Drivers::Net::E1000E::HasDeferredWork() || - Drivers::Net::Genet::HasDeferredWork(); + Drivers::Net::Genet::HasDeferredWork() || + Drivers::Net::Wifi::HasPolledWork(); // A forced trip into the idle bottom-half context is safe only when // this timer interrupted ring 3. If it interrupted a syscall, that // suspended kernel stack may own one of the process-context mutexes diff --git a/programs/data/firmware/brcm/brcmfmac43455-sdio.bin b/programs/data/firmware/brcm/brcmfmac43455-sdio.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd7a32dedd4cee4fcca7b6a91f327dc5530dbe98 GIT binary patch literal 609309 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ˀrK` zgef%fRDaU-;Topv#D=!Wxsin<_{h2Od@O#4^ACDPR;~8*n9iHo%a5$pOnOOAw#L>n zTNleX{ggYWlmK)!T5(LSbQjOO*;r#hl-+fAw66;Od62PaJB)2C zSL|UdpDk}(&I(4dcsV<_)b)BRo6##=J3nq=!tn=vx&$JuqUvnoHqH;Gb7h_|?IC z#casw2@NY8&8r+=`p9)(_@d{h^EOXBALCgBjt~2<`Icg&|KKIa>#qaE(s4mVxylZi zP`?1`rSfj~`xctby&H7rsCR5R%wbkp%mc<;~ zP{`eyUm9!^vv>=C4k@ScOdYxWNG01qQyDHla=*r|$zqUJGsUfMM(Q{9^?F5}vY~{_ z&nMeTgU^Y&?J63d2`=PQ53W>>G;o}**#X&)i;hA^(d_&sqDRXAN z9@0yLOHpQX)8hDM^Y!77h2q4*c)sv}xoY}>#kJ>ZnX9Uxxi)+9{2aAZvhn%N!=Jv8 zLQqTM_>baN+D*ZvJn$S3#Nf zByt;w&Vz^H?gL!_J_+|#@YA`XZM%nK^ZDTU5Q8zMb&$aH_A7{=_~WJ78qR?7ygF!X zUln{~aJrw2vv84unknO66V)z_z-r01)xpXuWJgMX)jERN?3~;k&T(B652SDz73EMytLV|P%niGto0ngTWlLP~hLx9!V$Qo)1s4r6 zw%wH$cZaC9pRZQ>m4#%CnP)Q1E(=!Ifojq@3FXd){#J4B+ECxVkdm`_-2A@Uy?m(e z>#G(nyMqv8o0Dg3ClcPj6sy=&d9+5+bMx>`kWyVul9xsQOk3RE`CLH>5`Kq81;i0}q2PSa; z^+R^Y7o#oYU+=#5rLj%pR~2r2BA$nAr0EP7JPy%nXEM`V2ER2;=c^7d%p}jB5|>o5B9l(iuJ~qfl;7+jsXzNH zX+QbMgs;3L?VOibDaY9#a@$k*WR9`BNvQ9QtJ?Mym)OBfQcU>JN37|*L$q1Mj+nx! zZSnjmac41Gb=AY{4fP!iG0jSDMte>BC_mEke9#s$dH%_hiG4o3znr&ndw6DhW8UiE zlOnCPet`AU5w~yX@(;5*veB0}oM6#kN^W)Vm}r2Wj(4dGNwSGA5Aq=;<{ayxsoxZ_ z*XX4BZzgEskDG@F~@xjSM zyUUfr1aO=$XBuo3iiUAgct%K4=|MK}t_4X|PDK<{^{+!NsRE(Pu(w zk!KSMo1DtC3SoK9fy?eBRacypw{}P;FgoSbb|E@iD==E7%RA>=A2gdKr`KKb*aZ{0 z))Kg}?xgQ}Y5UPV*b!h|MiNN^-2&o4>p^dTz61?`s6AuOOu}f$$FAzq>_#rWFp^Vq zv0M@#m)~jTgU1ImxHN85J{fD{U~jrRwS4g1!9Cn{+$ewAVqduI#(yh&WPU2zZQr0& z;wj3>hfsQ^>s{w}*as+R&&>|?^}S0vX*tIs|5>1GWw~Y}xDi+54780t`Hkn2C(=yD zU^Yxzr5*4w$dG)|l7TUVgU=F8sx=vORfBN<`OI(K38? zdjx0Uv~yPlpS#M~Hj9?b$_`iAR#CTXPoCYhS=2Msrh00Uj+}dw+KSKsW7Yn#ur^XT z#;Oct_D|-bF=t$5pO-i0K})0rd@p-Wi>AyRPkdEYn6KkPr9&A=Xg@9X8siW~Q;z6A zCiWIrc2L>1o-JZ*CX*iN-6B4aakFP`sjARe#yZkHMFIC3Ef=#q)b}3UV-GM4wK<58 zqG6KXZdG#G)J7d-QXH3@)u+YAj7BH9cmuS3sBdqGNv5%1A-0-xT*^fJo@6GOj8pDe zXqvjMD8Oh-gZB@n_+gLlN#mHnp3otIiPrmC_%hxW*pNdtxUJX4Hk%{Tho5WVmp%}u zHl8+XqP&k6(h(HTGk)ssdxC0YGEwv?{2caX%(!gmNhWYOq(XcA-N*W6e^p4ihlal% zQXsq+Hkc#ugZs1?u*dU_bI8T7fxpc-EnXPL_7v!L@<~@}`wMbk6Thib25uKOA`J=r z-R%{%?&+^(aFa###EsPsjOT=bR8C=apw530JH&77pXX==1)*U`Ylm$nY6S!Pn)toz z0CYr|f6?5Q+P&C!Dg1S{Tex^ryBKR(AX+UXE$E{uT6psVY<=8l#g?}P63u!i*0hMR z#U?+yT`MR_!QAUOea`f~vqj@Xt(7!{`c{ZrMSb#SF(SD})LBph3u!iFLXt(XU2C1P zhw>~G*``l8MdN~mDNP^kw+2EAea@7W<{b$p)Y~R9&&q8~q&9!rm&z@~*kA(h z4*dh|b)eRewMQ_JM(k1}h3}aI)e38?E7Ye!dwq}gqG1Z_9zjp2+@Zd!p@M*;B&XN0 zX8K;O6*awK4|b75eg6ufoEh01>Y9w0H-TDl49Xb zcLHhYm<{zs4bAaO^Di)aC_H+gWwN>1(1=W6#gNlaY_DT}9=K;KG(pzAw9K@`YwkTQ zYBODBOx7{D_dYPOaAUx&IH_xfUO0leDcU!A4xz`jzRar1DrYybMB9l@p~o9QOEcd{ zr6rs1Jtm69D2I;qC*~&>@Im&fTm~jxEtP=@%o?KO{xu(gJ{hos-`)|3+!}6?EBF0N&PF{-<+QG3&)hTlVerI14O?a&06 z`I$HePEj#|eS?bR6twv9t0YBnj_QwTp%jk6{QmI;D%n@@p-25&#Yd7!nj=t+bX%Fz;`75oeQf`IG(5xBKC94G7Qd=7 z&ySJOnDG~<>Evm#HG`xt^_~_FX6&zRa{i$!D$JV|=Cy};6(mr)if+X+MzCrb9MO`-+H^3uyY3 zOe^wF$-LSw$qvVF6QRMzQeHhIG)vszT^K3VcP>WJR))sY+CC-A@-t&oII-g(`s+3H z8`bwzhu4W!8IQJ-@haH*^&Hh|iszW;Y@VA6iqLmm{ptQE`8qMp>J__|B{~**ocyrq zsx)=i6SbGp*sk6wR-A>sXmNF+~VBYI5zOk zpoVj_PlMzZoMFS(#HctuxXcf}jKj5V{*vj4>6H19YYF#u^^5#a-<84Z3wO!(u$}e9 z*CcaqZ**|5R|D;XGr60vhV8DsWOB#vhE>1Ql?g4pxSz_}Rr?AoSqB$1H=AB@Dc{&# z%>)(>D6Hc}MWmgZ#trp-I@lpbLFY_^er`>84S1;U=wMN|-uA4hO=f#5OJZ`Advm&V zB~N_x)f-)~ei$6AG_ka&$nHm2mT;kV2Q>Y}ZLptlwzQ;gkK~x82!xnfX zL&+6-yy%yqzPCaoS?;@`zK+oOr%C$VzO7`i0duX_ zD(j0L5t>Gti(*E02U1w+s%P~qm-@G{vp1_nTECm2SH8{I$6L5m?xbm-YhUdtGh=P3 z#`)w>6=WJS4f#x#zTg3lb2Vo%l?{gsa7eWN4e;o|(wrsS!m zL+1dGTzWIgF~%b@=o-}IG-J zU-)10twg>Fo!4xzYh`~VgO>e4>^S9;oqxwGl8id>q2!31BS77rB^uQk*n!D8-HH+# zLgQls`sjpC*ylDHl2eMX-TSQTD&y2$*G4sBY#Fg{rB%_7b z&Y)$}Vpgs1pl1t}m;zj@+CUOEqO6WjTX zbF0pXV-$)&wBnO0ZMzaBHK3#)nG|U+x?Zfs$sW7AdW3JJ$5wM`Bk_;ts2!p9c8Oa1 z(keC(%_`DId#7(%A!Q1|~H z+5=5W>q@Q?|2Qs}BNGnzut&o=4ApHHpyRe-O&Qj^z6k5dY$X?oo6B1FuwM6_BfP6_ za+IxE-I$l+DbHudmqXqgLsVC;DW|)jY!9E$jJp$|FAXXDQ(?2Kxm4ANGhd18t6gPX z;tG3Xp2g!r$~(YQKhz~oveR@H&+SOJ2w^ot-Ac+o?>GE^0RIBSJ@^~`h2Wouu*#tp zC7mTRrI9l;gI5lR&ms9789>m>Gc%f`zH|(mlMi1q`hSQSp9)SV#&QvCm|Sr78fh=* zW@JeFC^m4<6=K6q%Fc|7ZjWl$`p0>2c9UEcOzj^9R295U#HHIAI+rZ{BYNv5kMiaC zEm(;{eTE?>MeR%U%s`*b;u!xd?htoc{33&yyu+zEWh;ZG$g(Zh;qKtgJ>1=x zN3EeReZP)Nx}(`Aov*x)eZVy>s{c1Fs*tRew+86ApqA5YF}nWARSt>PO-30=0v@pdcvWYaLk#BBhmi)UFQoRf}4WWjSLpb~sCktzmh6*`{Tc zc}Gi~rJI&DU^h$%vC$o|b-Aic$+64-tG!NqIO71;!_C9C<5#xI=QICm|1>3>%;NVuVYFH|4tg7IhXqk1vXG6qhDcuZ!ANKAYqOqVQr|S)XZC@6p)TJ#u4as_h|HI9znX4V~zaG3y za;Q%nxK5)zL)S6dBUJa%{ui(A(df?5UH(HDMF~BaV)-W&|Kb%ogI=XCW*=WazKtM&uQ&sTp{$a34Xn)dO)q_DB2|#(+W*b479SOV<`zFy;EDtay6xK(BigtjBU9* z<=logkfnUwN%zNrqDOJ+!`3%*(M`q|MsbQQBpv(H@#nYU>`cL_%A(H^b#5Vw<` zovR4!45_)|_DM+lnP&N!N%@ltBwM@auHfTumsC8;|I?(!1^uJ0P1T2?*&@8s{@J^L z!-*k3?=0N>{@l*^!M@jUpOIEWo^9Glb7Z{a`qRGo9LF(DWiGZ! z(VXszF~lqB$qnPpK~J{0GB|DF2iOa_u%5@4Hs;B@h4olNt1+I+Cnb?Tg51*CHeE;O zS)#ZRTqDY74r#cZ=+}AHyMjMnDe4WBd?*^+50w=4KDcI<>uO1Y?P1r96$aZou7_4A zZEvs0Mqgolmip-#eoHGE7s<8MMyI#)Zcb70-*^|G+Y-4gYFqR+b$xC{WLMMNSUxtu zDDg(4x-s9(H5N?b?h1Z(MZ2x<>j(JAEqcRnZ!K)_$Ssj4pDEDs$I(W0`Olz@j$a{T z?hZt1BDZR{p8t9n7umG`GWnC@EEyBIwd?EMf-$0ue<*VCob1jgxuq()H*7X_*Svpe z?rFQs31e2$l_##Wxb7=_ z8DVCAp_pvU@W7%W#Ht9qIYewN8`aJ6@tOwB_Q>XsO$+B3yI$vGCzbN!0vnv~U5aI_ zy)MN<^Dd|I6y3LwG1_{Qze{u&sf@*@*bMalkdj*jnRp?PyoryU@)u0I6Fr;cG9voX2?A)kFO)QR?o}=KU=`Vbteu0dc=5Kjop=dL{ zx{G*EM=) zNIZEMZ*4|>yTqCH@?bDD#ebkGUU_d7c3rm2s+b(1igM(1Gs{Te#1$V$#xL>PxxxY^ z=F?z5%W2;(n9C#&=gF1~t_ypZ=Sr90{e+!!N*q7+*R;lRRz(A2V;eMnW6RB= zA@b=9Iug~w)+-vQoVgsmEj}1B3Q^G-PVduipN*R^xzAYt-GNaW$gfv7=Xl7rRFsmA z|Hx(%IB-?#Clg{jZCpBsQEMdD?bYh~Xb*1s8??DkYbOR*&0{G@aGNu2q(Q#h)*j}EAzTgO6kcVRC)Cf~`8DR{f$u3(Eu zZ%rA@;nM?T%oP98T3bNFep9OmXcY0vctcFi(dut%ed>9gIe4>Z1HH&Qxuey)*Kb<; zc7>ZiVjAr08Mr26|G*^N@-H;+uKmcg%k^Tl#k!j}SAJ7_Qq7zhW2K17T~bM`O_jUW ze^yCXvp_W+i|=9#=7Tm?JXu@W*5EX7kMf$6HoP}EshNJp3Tk)rSBVK{M(4*v1Lle2{omD&4QNz1RjC6S^+e@F!{nUrs-vn#2DI4c&k1N%-&IFe zjR>$RmG_m>alMWyT(@e@%gdNF2KTDO|8do>wHqslrPkDJe$lnNy0U|wGEwc8H^5k^ zy>V^Mm@sF4LRs~REN5&xQXX^e`3f?@c#fIA%gKHgUxE7%lHabvO{ftsB$Zw^Us-S` z<^zFUPG#JL^s_5TV2T0xQxer3fiVzOhmlMxuD($~N@RmJ8!UupCw zb9 z%(HvWm%b2JQu_TeCaYwb-hUn^=jWHJq+VdpDDzdQ<7U*cvV-PD%hHZIMo*z{82XCH z7!~&fH=bj*j^md2GYb!kBQ5fN`ZMf`8$?B&E)cDw_JT^c!8_bgUkBrQ z{uY$EW%=KwbA6SU>IH?5Y2H4^=q0uc@J#2jO81n1j@qVpTFS^6lo$MrpXTvCM=gvO zaetLw%4DT4`}_y`hK}mZKJ=rK8^tl6wD$2*d*q)Pm!IQ*to+aIAC!}c6MWSr@0ZM7 zzF;}V)3a9Ifp+&@^}9&Q1aAsA$^U0(yzl+;!%mYIFvHl2*37^Jz=IIMHB$Lw@oG*_+%#k7bf`M9T>=~^z z`raC%?>dL1G4fv+9|`D}kI_Hfz(Key&m=eU4+PhAy79Xcw~NNMy8>O}U4ie#!M+Lo zcLoOf?+U!qujK9wwDnuKRRI^mdF;xlJz5?t#}~6yA0=_5htU!tifx=j&mcx}?Af~h zC_71?^Vz70H=b1r!xhQvOV(o*u$?kB&Y5!R{6o7Q!U|!{zsRsn&P-oIzEX%`SnFWl zt5+7iz3bug57YI7NgwOWo0xQVt2ogfuiPq5upqQ#t9ZR7CTFX79rfArvtqAoy3{zw za4O2fTo>uf<~Degf{C$1*7hs(?N*=~dX>oTXvw9Rz7?czL@V(AgSvaL4l;!~qQzL5 zN8g07g*S^9l4D-vbo8)zb1Q{$q&6Eb#hj%}T*T^JX0BzXo2zmA%oi?WYniOsE*3rp zyKUI#YjJWsPU-I{!w#;TnSvQP`TY79oWakD#j>`tqq6PMQYAOqlg^i70nY?@b4(Cswm#p6etF~k$5zz^)~F>^s?wMLO&czg-PUAsQ?{h((o1E>j15+LPazDo3WQFb_<#*Ohn z`(Jm#NBm=@_e0_)I;T~I1o}zof1=iHdV=0)8%e6@tIU(*%slbOaZgek5hJ_bCw+e) zox{oLSihWxv6Iw(q>|6*?0DyB7&9+NJBh@NUOd?|hu3>zp`Bv6pKwZOUZAXHCOKWo z>aH5b-sN6YQ{z0;`O$tOcc^o*+urf})RFB@ygQm$b7rHQ?te>Vu+GiVX415qP3}ci z9&Nz~Pw4ms;@ILH#j5s|E-S{ZwfeIfX8LD1**v<@j64{|9k`>&pe|_SLTIYVlTM)^*ii zxEYV$MWqHhEL@;NmiqzZj%c6mXR;TejxLX3488)G^b)=!x$IT>nVE)J2Zhj$3ST<3 zE*WPSuenNQ9?bnh)E;>U`uArq^t-`uMLCer%|!p;y$j_yi*oGoMEqMhZgNG{GP9zp z6`oiZbHh2Qb^)yEfevE1Ru*Ly%UxH**k|1_GGI~n`O+saK9*DYCr;3IqW08g99PzE zuCk|%^ew5XN@Ki>a5k&RGFqeY=1Xfe_>F0LpQ*~8qVX-Ns!BmTzKv025x?F_EW`YY zt0Z@`({S>S?WqUSIdc^=`S9(-1G&+nFTzFjF>RO8+=MD7Ym}%wl7JY4HzAwgp8nyw?8YNOIC+cxu#iyPg$Ypc_5T9EdaYlbu7Vq{gPx7~948>ewp6F^7WKOCRbbD7ck}m>)SJ95&Us!z>Fjkc z|Hv@AJ13)df24j+HSJ^c(P46|Q8GOV2iD^dfb!i$OO0ZmQi}X{Mwdwpzbrh-m#2UjX zq)?^py;?S)Q6>lQSSIJaYG*feImQA=n53ALhIZuCXI1%@WYyd|gMYfp=4(50oa|i8 zaeQ%m80&x@?dlz;Blb2|yV0LpwL4+EGvbu0>RG4Gd&G1%^l*IqMSH2 z%(zi;Db8Yjox!>)^DHTbPS%24^R#V@l@Bf(O!4GYsd0N?Nw1N5Prg$d$z>L>RuwnU zmm1pB-czMbzYX6{uz|veNR>7s@(-LT^e#Bj(!t0;*=si883K{ zc6khKzmiyR4U@S1LyZ!b+N%IpluzwvEEZQ~hr()wty0;cwAoye#Z2247G0>oq=*{@G&>QoeFiAF-(gLIBT`xXX6YgmUPJ=W_^AMQ1#8@+gE_oqnwk|Mp= zlCGux4I1z6%Vf>9^%!~OQ95$Tffc*pVjzokm=a8#G)%<(B)zvKf#=<9l^y5A&2B9h zYbD8d1~pgss_Fzb)p7ATcXw5bv`=Ng@w8i!ZL1`KIyal*xLE7%d4Rs=(4?!nmh3MI ztSzo{kTWHf9zjbU@iHk@-n0jYx0gRi(${#m5yg~N=dQ}tr&K)~*`*K4>9k#oXu8`T zcd%!0Hh+b^wA)orUKI3rOU0xwI;)+$?~XU(zQL>3g_48=&YMn= zdUUK#Q0iFmh1(|%j}?;i`JGB(mYx-N+)ivo-DT#?=STR{hg)BNTGZKz&4FFuy#x8#7v{kgHT(Y_$5WX zWQ|wcX+#Jc<1%)%iWQbtvC`NouC_DNKQSw)e#&FHRuMDcAGqg?NsPi6$*;=DEGJ1-5PW!jC>?K00xv^r|d%(TT=r;K#9?WAw2 zS+24TwR0R0S6g;D3y{W3HaZQy#`06*iQ-dYor{#FINb3m4x)3T{9dAK-{_p`z2j~& z?pEYIN3^;c#LVIm?G56W#ZP-$1yU4+mZ%_1=A6Vdlx8=TY#!lo#537P#V+#E4~Z2c z7$)=nI1e9D;Bh5Z+!yzw3n`5ACH|MpV;u$Y%ru$~{6<+s3Qs9?O&GIGU1dNT@?i`00$3+Gx-s`zsyi5e z1h*98=6%8>qb~s%?Ela6IG1qM{~+%r;(wxd`Jud4ac(hQy5L)wD6S6Q z)-CbhRPdK4R05+vDCXBS@r|`Q{(xvavOpYPc~BnV-HiU@IhEdo9zvYn1J0rViPF+{ zhdG~$20!e>hTGa%oT$2QqJCOS1#TFQ0mFFP}1v;(EEzqWseGtx(E*QJ?shOr(L=i0{>koq)kZ2rpNKZer$ zI4w-y1=)*sg|LNg#+z`ded+tPOe6G~h1j0KjZ|dACY}u#Bj^c>0d2-a;EU%7l4|H=Yzo^h z+%&&~RxwxUJ)hMwevAgoFwgs!$#N!Hak=;2qTb*dHnaZfrHfCR4niv)6f0e~qPDAz z_n1>1M`7pI?w^epNzaolS1$?RyR^xw5aNFK4w!jpwIN@ zaU1#$k>8Gl`pQHt&DE%Cf}YCVSypRe0-0A-9N$jQc+@@%&Vb(^Bz9^;gnqE0?zUwg z`swU2vMTQ;K0*j(9_@)>V;ricW|PXhkH7XN3-4NZVq121jH`~DEsiUuqnxBp^&z*) ztx*o12HXoH>m&EII8S#n4a~C^ zoJx~=Cx?@vDWSei1K`J~Npz6w-`u|^cg;D-a+cg(l$#@tLk~nY{No2nCV2MNzTi}% z2i!MD;`BSR(Gehy91&l}V-#j_%ob)!as}Q#h9$O%3o8>HXGBNc88O%W`|_f!`08xT z&NugOi2sIu=RAA)-4De%#c??6Cfo2uQvJ1B&{^VMNbhO1o!4riXiz*Gfzx-po0-DY zCs!Cg!Aoq6{$J}6b&lTcB)D(ORX3dbQEhW}>l6#)as>oH%oP4#m& z^qSrv7Q9KYyo9l#=uwZ{UH(T`v~*5R*O|G+Ipx)>@j{@NEHt~E0yU0fHe!hiXx`uA{LzQiK{^}y z7H32BjL30olH^{v=I)KcnQN%;pCQIJyGl_NbA=J;ZLvP5y6Q;>-D_x}bNh18ZdxU* zrIE0b=HLW|y`sGo)2)k6_tJL|)^z>3^QBAFnlp~zc!pT3@Q#w98W88aMZL$CuM2({ z!uvG0g)1qQd6)i%H|G~#$Hg(=^@Lb{G+w_m+CxH8^l{$~F~wf!nS(b2wD+gsrXmxk zE(b%Z9I7jaHqq~_LVb;RTVYMdsW3;&@>}^azsN7@JpuXEs4MIGwJeK&Qyw+$?nK*%fZPPt;x~f)%r^*HRDG)QST#2Ul>y1?V~EN zUiF$b)Hf@{`ZrazI5l2_-AGS()B7-ILw!?1Yz@t25o8nTyn7_hAnyx4)~_$zD!ObW z1vA>lq-_;>o3<0L^s<<=*v`8#d+;XDmhQ?#zmv{&$?r$gHDffFQ(A{r#fq;-YB@zc zTdzYo|EN|=y;FtnsAwIpm6G<3IHW>**vbs)C8Z;Ip9zx3a@Kcd|F(0;~7#_0>rK3eiy&Mzj`*3J% zH&HQDlCJv~T1T;$-52V+FQjNDHqyCU{vrA^npx%yGxL&9+D*(>zo5i@dlK@xZHS~)dX3#`E$P;1Cj4fG z{PCBOwk~-5H+dx>uPH-x{Nm0+8o$4`{<`3Sf8$I>sdBotY?g~$|DWgII{G&Mm-%-T z(lx)6{_E^mhr5s8b6y-|`J|kwE=_YIt2#~3nQ6W63fKD#>b;$1PSbkRxN1JT%@Lf* zZg(oV>wHJ~h;+8AD6r?A?GEO&A${!Gf{P|w6V4e5f)2b@(RictjRo{|@5l5VF-+wKy#p>VY_2K`>>vk!xulxT~Ucar^zW
    BBd--wUMWWCT-cq&xm)2W1RD``DX`t<)q$esRRIiZ+ zs@bZ7f9_Af%5VucCpo2tG-@p=@ns9q8ag%OaQ@jj0^gWXsRl`^TyNUK^M>e`epDta z^$PXL{X*NSL@Iw2`el(i;y3-0F*McjhC^;)rGF~42z<%pImgA@myf)nx>Ob9`svrb z^qie)y>-Ew0g_B-Q&lkLiW@G@=?65Df3`?9(2Od&R)qTQ9E`vnn!>&)M_t&1Zozb}W{8j7!c7C28q_vUtspDcSMr$$j3)UiN{@<^Q>w=$3 zymVcZIcNM|e0>Rc6W6)+%xJe|BQJn#3}|7oEf&dUhbBVCgE2|WlJ=SW4Y!-Twq74)%HAHAiu@Pw9#EFY%o1${wq_ zMl4LB$2kcr&(LJ;wZBt3*qP~mLPs}^wv&~YSaMMlc0-Or(32#G>G6_ZS~0&bW3%{r zBlSA{Mkv?{|7w@#!0jr^Y7F1I2`eU2Hc8VgPt$^D7i95o7~it_ucd-tz*;GCL*zR) zh$A~z9N9!`qWbA~*W0c9ghyIF?>?F5>iQ&T^)H|+Az$FToWNE-_F=89cgdVvDW?7$ zsmZ)H7gn6*qMy(vZ+M=QUK!Fb?*(`9zxkZ4{C`0ojZq=;IpqDz`^bBTX7NYArT2R& zAL|Qck+ROUW@48TF6*P~!`X-F!)2ZDotz)-e@DNUGOmxTP?*K7GwtE^&LxogG>YpL z?^_FvqL5Y0zjT)LY%+#ppamX7q~Qhh$zte)%YchO%0$M^_j~aAhi?nF`1M|~77y$2 zXq|ubFm1RFpNeTS?aHRBf?rRpW`EO5yiM0ZcTUz7(%xwpo1x$(tXKc8y(d4+G5q!> zaUTEQT;En+`@NKVdU>(EGp(kFWqsz6^%$0ykuMo8>+|2q`O)_7>icfW6=JQ%Sf|*J z+?G>Y`H3Mi6Kw|PF&uUa7D!`qVRg4{a|?ESnRcDn&czs2Tlp)Y>Coa4Yu^OaSvHW0 zyWu=!ut=zchLu=8Y~>BT1g(JBAb$|TT!ky>M|;!YOHF7;L&UB$JUb1KaHWrag*vgk zL;N1$fGN~%sC6H$*~^dAjBvmI4JjtE-97hz^!{}Z(}%g;E8^@uH19oHhNa(2+15kW z^P&2+_6*hU2M_C)_^^JNV*NtF+ieuVc(D_id&(Fc{04J?Pcnxi{(05TEc92x=dOtG zxm)>>kJLLn+wS^K`M%w+Y~|^PT?HYQW^6rX&K(%ef5xGWVU!>maA59}mF8e25B*O|NRP zYEe`UHAUN&#IEHh!e;~OD1uo%P+-Djj$kEk*{&uJ;JTq+J--WMZc;+)BxA4sODLm!|gNMZZ{=ZvkM?GwH z^2N9C)$mikR~85T6};)u1CwoPQA56!mk*GcGpvOxT}bxMlws%d#Qulunu{RsyQrbM zs%W2Zh0;Io0$!LM-bhv0Pc&f7KZv&4!at1?QWJKFW9ZNQWVagTHd6%Vr;@`V_gvf| zYZ`TU5IAIHRkhwxPz>a$WMv&1`59=hwnz5O7f|lW*z-#4lDFiisEL_Fxx6t5nQ}N6 zIVFkYGSuJaAeT2E=0eu7EqoOCEQy_zfPC2rXuG9IRo#E<`Bm_FxTuqM?O-kmS2Tv_ z584>iZxLI+5MSUGO5Yc}c(yNy7!Z);!)MW;hIH|nP_rir7Fzot1>FWI=pmc>suuPs zqX%_v8SvH!&W`51^x+l34$@%`8i#|(X<}G|dnd4}+BwQlzfgsACRX9URu<>cbM$Pz zy(waw^1v6y#OVtj`ZbZ;68jz{+ZQzUYurXi%8hu7GMCsfYPcxmaHTBKlfu!{QtY*R zmk0)+AUuF|i$=8F_&4e1{kwEuRVUo1mYdIL+uXtu>OggTo0Lsqwd^6=Cy=Exoo|C` zKA);}RhisKVNQUBEoeX;Ba(Turt zVJzB{GHA{uz#2)a-@LcxE9barBAxo=FYi9D~lx=Jb4cS>NbZy+-GEsz%wRLW-f zdl1PsNxLDCLJ`ZRK;Aycu2lz>wTil}{FlO3Lnb6;R$e`S3$Vf{z3TW@{=xvQ-^r4z zkKrR>A=Cr7 zFRMw!l?(S3EVTQdaJw1C}q~6%d+Xt|p zXh(hTGN{A;{=7REp~KuS*>Fd#CVI}SJ8EM2Q73J>-WoD)<#Pt)jlfFLUv6!ph+R3k zCyU&hGY~EAJ`&C(vNlIl`mmd6ZaPioWzwR2y9|uK%s}}oftEq(ji|w@0nvulO!mRV z<6yo|M7*N)1iKZexv^rT6RT}!=S}Vt!w#jJPeTgp1luS9mnP~)c6KU zN^riGifW z!tWFC5i^(|SCGhWv39sX+2vZKEG-Y~YNq z6okvK6w8D$+rtnWHa|6vSWx!EhOrb_Sgq$n!DHy@Lf)&@jqGEKW2V%xd-uvz&FFJU^)}@-6PKEsmIF^OE)zV?8DYL(Q@*@hnn6-pc{#PyHr3Z$ zO~yllH#YUGpf)q`;!x^_`G?I)PNlE$T7}=ljm%9F^H_^EqFX;x7zMQ|<_aA=p zUpfDEKb>0Xee@Xx%JhQQ#5E~OuYBvTpC3v81=6qerovl6NfkgBF!cVTeJlO2yV}m8 zj!%oet4~|hQ}SSk1`mt)r|>uLsqy2VdMbmGHsWa^M+-KtI74xo)^V8k& zutP-K(7nOWMDz@c@6j56h*6b>GL(Z?rBjXGNAJDgKT5n)fjc8G+VjQt=Ub#Yjo--a zFOSMe=DsS=x+69EIAv}Tzc56472}ub$b6(AtIy7#!w-SjJPr@4C@uP!9egNfNpL4Q z{tUbh375o4EvaTQlJ=gXbBg%!z-HTkK1eVv3f%c_Id@=1w)=Ro5|W3peW_RlQu-+4 z(WOKeNLDIwjsw!|m-I;ZYlVVw@I`QWOdQAk88Ss>-|$=u3tLy@EDV}})wkcATnxUh zaFl;HHya~Z*8L@Q3?4eo_TJ#4K3TVyl6U`^Cgrj9Z3t|Y?1t^YhQLOg|750(yM?Rf zu)oY{l#x|NiDekZ(vCwdvf_DBtegRcX5<{jY0ncEbgho7i8V5l|}rk zgA0M;lpJMz@tYUA_9jOieNkd8eDT)iGr}LJf#CdpV65O-b=#nh(KX}AkyLN6zgMZZ zvg`QNo{<3wE%k-dHi`RuS@(XX1oy`Em|SyPK@c#riR3F(fm`LAdsQpc z+L-(}jIU(0)H~2hq`HlcRQ5U-AGjybx>@HXNToS*F@H}>v{A1GZ(yWrrx=(zNu9J# zm#=bE1CveOqB(DNXMyJ(#qAW<&t(ov4oeTq4wnQj!iMuGH%v??8I;0P(Il3R$mNOU zJ(>UISkpTr->tg`J|noEK7iOYIFDO7mNMZ8%iLKm25UT3<0_|8m-&_oDv@8w^G!qj zuJtHTzf7)_yMZ3|r=D@Sdh{?O>i4?=i$5EEd_Fr3b!;3sx>wO9QT+LuQ8++?>F}bKj=vaMTNP27jmD4JH5f}@PjAi2oA{M zt00$4;CU``sx!>2TI}0o9tdX1*kkY!9tn;9P1rYtf^u*+oY)I7Cru|`is?xezf>yP z@@_wio_Gwc_q+b6CZk;nJJRT;*{t!$x$LL#=Ijk-^&ElUD^Q3w5Wc$T$F%WNVV9Y# zNh7@V7%TOVwGi&$m{4P`7i9RKA^#T&d)#Dj zHU{>XF)AfNPvKq`Q3T5|5IdGhz{UNqkPxrlIqXPeOCf|2%S9-0itbxoD&+-2aZiNbb<5U_f z;LLl2z_`K;xR$cu`bz<+*H8hMvtHPM`jm?GBkQaBW)VkCSeLs_99>WM=dgMQ4V1jw z1Luh*tuz$O6Xa~Er-<`&H&L4>g;lv}=(VfR(m#l#e$lVP*qJNrWSbwRn=LFA(=A21 zw0<+b@)Thx?~ewaWnV?^Rmfc@>|(D*p8CC@X~!A>NuLcn<}5s^7N3k0^6`A^!{-~Z zlhU-WW7qph-4QU#2nc-4!sPh_x2?+O_`|^8GDG%qKa`K(?hr|D$JKv_W_pH7v31}v zb}{UilHtEtvLo9Ub^p!fryjhy#_B^GX-FF>yEjs>EY%MLub~Z6J$gqD8;!PEIWX04 zE0fQWb+1>{ig-nLcI+%C$o;d}-NHqTj(DMK@9U6RP_@N-=~`uX9;0_KwXNk05H)n1 zq;?MKQ#(jX5*3JMWJc6_Kqrrf8D zja(4M=_yc`=;tJO`dMev9}yw{l&z0FDNaJETI(|pktgC^R`n5O#Vvq`VE zVQpGja>5OJSaX5n%j%Ii#9wyD>Jd46R;y=loTTeB`DX4z$Za;;`-2}0v?l?^0IOkv z1AS?b*1;czjq)p5rQgcR;gu!zYawI9J{UYv7_<4o*Lt26rC)VK~|^`>?7$S%1u)_Zn^-8~p=9;Ea@&7?jTq#BLEv-ER8sVU-r+)Gc3 zn)G*H*t0Io)d#AE&SpqUhx;$Crsqk4HscR~ha3<9BMgO&855oG6U{uJ_|8exkrg;n|gp*<*U)zGjcBu_60NTqaUo$X%d z>%vA#*1d@aVip5!Sm6#x}PWLeO zYRYXp-UdH)_vs$#k|&d*ah99Av{5)KbuAC9dC3dZZKr#p%#_iqErrKjR`HwF(m=bk zq4FISHED%c0#BEf4l4a=Z;g-%td%7=@6zqHJ#h(W4Zz-V;y>26%F!;QS~TZrc)!#L z(=0}`67HCtxW;q9#F^&JDke`hRNkm8$l7aTZqOOz*&1Mz#-G9+O=IOj+vrOxxhAe% zm}H?KCrAbMSu}FRU28+-(yaZqXrEU|jRRG`h{F9iuP`Z&Tuq9jGaz|4T&vt``}?rE*XgH(M4+`P8Kt)gb|N*x>&%d^6XdC| z&L(~y8d&|Y!1hbhBO*{(>*QH zldxW_lN*^@*ihA}fu)kbwsWzIB!NcY>}cKU91B~-YkO`3eM@3^6)^yw^~7{1P~^X! z;3~|DLw6ec36D2l7Dc^<`7i+a(P<&EK*`p%$ODXgIIt&-PNIQOPf$)cB)nqAILR>P zQ8oKKL`E*HmDQ>ZG;l2xb;>$bUDO-Vht#z|2dNuYr>RTyuWAJ*b0nR#+r=pA)JD2S zUaPE8)re{9khW%6ji$x~zwX%FgS6SPe zWQiRT$91{lO2Ym24N~tRL1Urk?!vFcLFwfNBd{AGaosE_DB_n1^z_p`8uJm`A3I~w zPmMd^JpwuQZ((ti?Y_WSMEODyzZNnC;5446^~4+f9P|xDk5UPKmi%rMf42?TVe730 z|1=TUiEq+clx<1>r^1^{DMR7TZwihHR$#sD!ZA(1OW1?+ZXBa=oq}U5jxqXXEt3J6 zZF;ld(g@hyS}nVTS2V{2WgIXFaYV-fD-mZ6jyN3gabaKDi-TytQc}A@{&tA8sWC81 zLg|j-YS#JV60#=~vb?}9BQ1z11@2^SjvGBvACF&FALV`qD9KlZNlSsq2&u*MSEUc? zOC@GXU&NPUZCeKk<61A5@{F%QZ25`iWXD0t(^rWmM$!rlRzS+M))#IG8ZFTU zyT8>y@>%IEPs#T-lh|Y`pu#M9!hajyr#W6pnG}ADJGpzw=WO#YmsDSuPrRZuLb6^O zZU@pP;kFnnw#8VqMPJXOZDBb#)DqYype3e9T4G$JB}VuMq2Zy7U3U0znubN*6@3}@ zu6W08*j1wy(AGmeelk$@TYSKSR(_uSKKhdyv+oalMa50ks}!?4p5vzbi;9aKO@ z@;lfR3OhHVKkgR$WH9fDU@onPWM`Tg5`1v-Y76nrr%jHlR1SKq-L*pp7#I5-GFBqL`{$yNv%$>)%c%$wMo;}{+XwyoFey?@b{!2 zr;V-93r(6qQhZy3-k$G%jTC&1K#vD#y`=0Oe7$c=PVzz&3+z$jeTCe?Y=y7Lo`b#3 z%RN`HyZs70Tn-BfF>rog?CC^(X#ZCc?520oYX@JWU`G!=%aY}}z^NiVKYw6DU^Fb~ zX@hb!5C;so&Lmci_4gM&#NYXxC_9N@UZ%0&mZCO}n^2MRY?i#p3}m||tc1;lRO%Gp zEh6iQvaiham*$UM`a3z}`LguU;S@S2C2cbOugBQG#cnf!8du>?I(*(Vq1 z8P)|-b5C$%Pod*z@iMH2@h@jVVopz|Asv{`hF3Yw^^a|xongM%S-b=*R7iNYknFPw z0!1=pCBOv(M;@q3#Q416AX?chtb;#@l+E8y)GG=s?SZ=I#0$E8UIN46&|& z?YzcdHZ09jf}>K#(SH2u8!O{IQHI7BX#d*u*sDdwS1UCh#&G=w&3Rese%RWlP~YlY z!4mInuJ3V#{K7e9dGBW*LytPTD8w z<12wsr^w9$>Q>*~zNvoY45ASj<-b=x%43E%Yrat9Au=HgM)M28<^ywgqb)bxE4~1H zFM`Tnv3t_Ylh~D=w3}zB5DBEHcvNLW_Fp=iONjS{ggaU^5F7-*V8zM-{=|GW`@ItS zIyL1>-xTaL%xsDMZ$+d`l#a8LGx_@B|84Ul^EatmEb8XzEh`#ZDbRY`!Bkaj?<6n`IDVixQME{D9HR6{E4Sq0$#(~T7eN_LwL z#JjVQmi8O*YuepcOf_Ck?kc2=radKl?zyH-r!((4%`?AknLnXrL|-1PnBmsh@JQ=i z&u%8IlX}*t_0Wb^r@sh({6%+dgcV*pbIbB=NX84seNlnLKuiO_b2<>27@ZIGG zQp?KFx$;vRE2{5pB;UM`drwd{6W=fL-8WaMXN14I=8@Xn_|A7{9;q4K^s|!sY}9S) zXTFK}^0V;e|6U};?wqrKTQ~B}g)`A*gojMkJucI)WkfAH=SVP-y*mNax|F)CQkc19i}h=#${!jf2<|p$$suskk$d zo(M}f12Cm(FWjTD=CDptrg$P04ZEUMkk~3ZqH{Mt9(Eqa()#dt%5n?qm#8PpA%DRatC3z){a`#$)6Pz({AUrn;K%$u#1o@ZXL%W8 z9wKneW}UZ{;B?v%vp{VYf`1(-d$ov<8Bn075FJt?HFw*s7v^jef`1yQIB;|iWt`34 z+9U0r#hBO}FOU*TXX~M(XEu9Wm6Hwz-7Lwi0cTff-UK0$ZF=#zxxM+8wHRoNwCvNSs(Jx5tf&p<)UNNVYlbvIXe}=$BTkkvnBNl5M^0897Sy^=EJA#X1GICmX+WyrU-Yqf` zl#U|EdITGej7$x@hMCBC4D$yms3YMM=HEy_UN<9q-o|#x!*y^SzAW<%RFiwP_)QCn+CQNr#7f_2!0c> zEhyw&f(*ObH|g1<)tF~)^*&{jPeNVtQwPnD5)_e zc;iiTy=qeda74zLe&ii*%J&X8t@JJMXJP-;Db2q^G*83&SNqAiyg%RnnS(_um?AwS zSCkn%>4%2=cpB#GWBoKZ;jEiO+zsJj=7GC0vk5Pl4P<4e=Pu8hl?h(OlHqT`@A6aY zV88hdcN*7291*cGuY>ok$)0YHLf#x&RtRqCr6v3K!{HSW%kBsM2z|VO|17kB^0c;e{12PZ<3f-n z`h3K4tA!0Qk#tu%!@Wi-F*cGuQ>zf?@{TOn$mqmby8`;8TMo*^d1*b-HvadZY|L|= zbR(t5-f}5&gLH5(I0DvdWKUVaKj@G0iOX&NqV={SioyT zFZeS!UApobd5Tu%MxIiKI6ocOMLW|ZUZy)K8os6Y>M7Cr*lGTlU(-uBDF_l9w~~E~ zj21D!0=|3jN&jK&9GFd;iVgR-+lX{!se&m`bQlnUh=DXG3h^Q!iPFz;_~bH3SK{?H zV3|S=rEe`xcF%D@^0RDCLB^|=(Y;lzuWqZF>sE9pQ5l>N9N(A8&D|o04uGuB7L3ga zgJ%njduPo^YJI z&|Y5*_CoZ``V|AgpY{^zU*l5gjIeCyZs&LraaoSN6QvK^O^1RXoVSK;s9%d)jhJ;9 z?>3ytxEJNKaZ+}+D4)ITNy;G{LIGd$F=cFqM0Oqjgg63oEJSXL$Qg7E+0SfRnMFZf zrG+gct*8CXLQY%--!X8@K|?A7-+D_Cq&MN&&bWIFfTE{}G8#(pHG~lbJJ? z{jGyaD}a2>8mM<>frrj@qc`ccp*%KSp{J=j0sTUW9pZ)nBg>9_-;}`}{-Tluw=Jgt zcJajS5^*N6o1{{=K%(HHAjj1V26yxmc>~q~DuIj&i+X5GVDCap$e2))F@gUu&zoRf zVFWh|)GQ)%L#r0k7+*wQ8LiLfJ{3~wddx1<^i9>H6rT!{XdU}?0n<^*ztc0%U&-f% zX8VD%?`0;-d>3HBa9LPSck&JqE{U9AlS)$HBT^dcF~J*vB}C9kXyIyF|*K zte{LqUel{_kMjR}$UO8& zSdKsi-Ur`G+IBiL{43c4{*V2Pk$FqU{=$y^rQBo>VQ;}S=4Riv)0apepp7Nq`PQtrd8yja|q}MPCHipfwTi(ZS%I0p_i@ z+)|V{ja|ty&{pV;%g{ElAuGn&n8>I&2)nI;;9-H3Ex{{2LP`Owb=bxljLVTaI7m__ zMpAFZLa~E_* z`~Am%8Rk(1%ps%E_lWI#J1k@dgLiwiB9~FYr}a^jEnd}R+N+*ygmobl9i-pQ0}*v=z#SOoR+VxKdPopd)B6SR?V-dGO3hN=XmIiI4Lp<_9 zloadIc<&*sl!NJdZzz2%t~GIAdx%z$te^GV3a+NFyL+!K-q%na2W#PIUs#e{!A~9} za_;EJH)-jMNc>Uuww_xKlUQQnPhQE7IZynSS@`YZTk+;akjRBi~uJ9dwtaANFJOoI(+KStUTq@C2fc{iD3(H<>~ ziGjYr8t^)YGzNwIrCzdY{K8oRD~Dl{-vB3dr{vl79>00?uYgb*&U?3LJMc^AnmgK5 zxi=5ePn6Z1mEC^#UFSXSb0F(H;WO*{FklS?;4r;!rYs^A$7_-`Urz#XV}t}MOB z5g9n`m8Qr08eOYg=WHt9(&VDzQ^4_6wXU=sw9%cwDY!ZGz9;d%HO>o=izxjwV8ca5 z@8{s(s0qXlkhH<7Y*=weN;hMGP$YHad%|w_ZeQd(QYiVqU@LA7{KFXl-;svM&L%st zl4--2qXM01d*bIbNIU@W|7B;Um@llGpf+cMd)h7P!bqD#KY{j3v84Hv z6uK*f`@1Al!@`!t!vvQpXwGFihO`=)1*81`|6HOY_nk#o<(UN$t(W+HN)Bw^)P=nh zGc40#M(&9O4Q{y+hun}^5DcyyTnF?-vW5kN^9K(@dqJfx@MSo(>_1%b_noU5Z#BM= z+Fz}RxwIw-8ISfN;nST;ms_9NffZrw2Enki>Ki4DR<`A<2rU^T$h%ezx(G9Mfr z(7H(vyX%|hFXDc3AXqhe2YL5wNHWJ_w5l*?&S#m%%d~TH>^vfxyi6%p2aP2d+&NIh6(306amQ7w_)C?fV`T*y8!I;#xqyM? zl=zEW7Sos4e*1SZSNI6#;`^+|QI3OP10}}lz;hntT-DO31&A9;wYEH$z-~+_l~s z<9g9LDa+}qcFnh{k?v`ax4N^M3MeQd^}7&3s0P2LYsXXI)5PQE9!%!o*%HoxV`S@u zpF^|6oB-bq%x{|@g>>g^-z^Sw^K!QtYaVoER1{h}GsGaW>c@O%Z_4=u#H@+wR?y9e zCv&Sm)qMmyy0A|CN{IOF2w4Y(cxT=nmy#M!G)p9A{gXupb`l<8nfFz0^D{D&yi2B< z?0Y|DleP|VA(n{#3L95PXI&!5n?;2s30Xx&ZwUK!3~W6vwJvkNKYEjPN!g~=wmb0n zx$j(B-AcRP*?FBxyz(c(r5hDX>U>#ShbQQao%mJy)!2O^)`!4o8eju?19k_H;+aFh zu%)L<{U=ghOe!f`-n-+$KU=f2&s;vrWi2>rKUz(=4`PRnT+K$H`uMk^D)$(26ySV?p&L`yLSM&Ft8~TfK!`ZO>z7re?DnyTXiU_s;SXTusPW?5PEw z+vRRr0$gA0(y#+M2rZM5uA?T*WKSW2P8#B$%v=2BP-ITnOnnSU`rA8Av9G z_3;=h?%I{)z7kP1$s9Z^@BlM@m@a9c(&|Y$@%F{;g@}waTTJoShbdr7O2)B>xoPwZb+kKa224 zJA`eTND8V}sMM^;I@lKgwek__OAo0pJwkmsLhWqbA-o)+Z_}(uMlO^Jzb}cuFXMNI zP$AymA+(tBE<`yvtEm%ObO(V8xh<0#&%o}enakBn;0&gGj z>k`nOft?F^x<$7W=#jD(GxS}X$#~4sb9VmAL5vPP1-qqYP7#<3KMOmejUZljU?Vsy zvKMoN$Vk7-?dLxN=U#dKPYSXhU%=fG$NXHh^v8T3cGzU!3<=VC&G}T=0=kG_rh&W> zUX~)??c|EMQ7?bxQ3MV{KBGhYE++--5bS`0!J_^m@&z<2Fmo+-%NJ7yE!P{oja(7m zDiq#9627t@vgWa8h$kskt7H|qbgd#+u_&HnYLhwn;sXAE1X&A(bS2M>r5dM6Qd*bkk^;XkYk{O&5*;1rkEZL0X6GHQvz4jKyVE3*z-E1W zR)H8*g~TvgmAoo@+4TzUooc2ln$CAnwf(^ny;LLFWyi7h96K)=e4Dd#%5I57kGMx9 z5(|lYBnk9O;$i#Ie)l9$F(u3w$(LH+wllSj%HIo8r=<3s>L%^cs!5UPD_>XBz^Eqj zzGy^W`MUax??hj@Q03(E7X*XmUOijJr6cCW!JeU6Y7%snfgTx9W#s;^x)|nYb<=`( z?3mkH-sQ-CD%pFBjNhUt!>y`VV{z&66cbi)JHG=w**Npb(#MUajfaGZ=9BmxZ#Hc@ zBup@$+@zjPW-p}|7AvLicQcX_@U=#yesTfbl$AaCS~$-P*R85K?o`&D5)6LRlj)*h ztDoVNHg&n9jdFtt?E@v*_)c5jM-a*m`|Y4h*K+1hp)a- zIeibl7t>@!o*{iQYv-p9NScnma9C(I&vnmY5m8oC!Dl0u;2uySK0mKjt{F=yN$;hI zA9^4!wv0$z$^VRNc~Y5aUyI`AvpGp@nZeFa7PShkekmf)zw11T(J*Ny;qrg#^ueNj zOzid6QBks5M0`E0s7o+Lmo5fQ`(o66zd7&DWpxVp>uB$Py7B@_Roo{e=2&U>-xl2{Y98O^00rDdC`ZE8g+GAx2lNR|t)xrY2 zM%B=;U@b>=spRnat@%}%yi1CGa&^z|1zkcb3g< z)kX*C=y+LtjO>WA;ebu&Qyh6Rd$bS8$Tgm>#0^>>NiX+a%}xN1MPi}70qk8#!_zG6 z8MJ#!$^3Fz__?_5{alv{ZjFxqRQuO5X4Bm4>RrGSR9HkOU^c;Tl@`+XQ4bc0)nt@+|!d)ifDT*>s|v>1cXk?*X!fLVenx=@9ZK{}BsKBaZ(+)|XFHu4POA>myg;vibM5%7Ss z-uZY_D~=Rm$qTq?DsvO&FD`oA8MR z263uey(j}7M|R-vYy7jZdJ&Y1QG-W;Hi6MOl1fW#gNGV4TY>qNe8I277Bv%4@2^pg zS!WIkGj;nM#AY7$H20ke`wGZAn!qDsX0eF#i=I$+3bh(?t`po#h7-L+7egP!YBnB` ztM@NC2;Sg;ZFd`1T&hlJ)zEAUI0i8n^FCX`WwNF{87jlqBpgPwdAa8j<|0U1pfS17 zPm{5ZH#F;@1B8unT{R-ib8|8i**UZ7s%q?310P%#!kig!Li2vBiUPg?Z4B$`UjCSd zEl^Hzs+)G~cO<&w;4Rm@P$RDQBQTG}u+|N6==t+{HgoZavn_-E%;cSYHQHo__DpYz z_D(U4^d^~R6UjaCq|nzYGCLTgUf^xRRK$)) z0*O+7u@+XsO~n#7;@tongxF|jp+}E;xdQXEliC7Z6yaEoLtk8`yWp85x#1>}1bhG{>A3v=$?14g6Vn{#)jMwOg{h(I*%4q2eD zUqIjY>!tVoYgOuTQS@x}e40Bb{8MwRwcHJSerj3ks@7T!({)rb)^xmWEaJ+I#mscJ zErIQ9U2x|DM&drlRTuFtXntUQ;)ZBbp+^4u9QFI#?>TX0J|p8^7k)^h+!RYWdJ^%) zx^7Lp?|eb#XC@7c{71bIja|oW%1X2-q^x9HWS*0}rj zB?(^UzI|CMqAWyvTOYKqp?%sEiN6)`BV|6F7)8N+p4Nfq#1ZXCz=}OT!Q*KtPx4S) zjWCHS^Dy_VrSNOmuJ)E<_oTCE%W~Y!-3&d{I%0GjUAUFL;&R-u=h#HM4np=m%Doc& zI%0iceL$-lF0@A3H391;l%(6ao$+CeY?k?3yQ%GyeHU7@fT4u8*_4p=2_xd|C)mPg z3ByqL{W?OUBrOk|h#rH{pQ-U<-z{EKnNhg5ir3amDXyJUl|)8kjJA_E6J5LLN6Nvw zLDnJcx31&p8SCutalg{OXV4 z;3#ppJA@jIJmrN*s?=DHxe$tgtS%-rC8jwT9JEswKS7L z`jwFJuCzCD)!GI-TBL0#y~aozvYZMdH%lW?nwX%ixH34esVWrFt|In$Aal;gZbit$$x z;UPBO%QTD$Jl#j78oXb_s)%@M>U@dtwb6-Qn`(>)85OqRqtRbC1f=4xMEq5Wzt~-X zJ_5g5Ajc40IQf<1SBL*y&(Ff%c{t|!zTgYcFCSfZ3@Fekp zD1~oxi!oFGXkZ*-3w=#&OJO%MvJh()4&jUycniaU*4GnM!S}j^Im*@8+5@#tS+|n; zS@j#Z-tSzQwCb4?kTt*JTn`Ft*Aloh^s zb8}R!RkroMpLHuG&x~TA6;?`={+Wy43GdMidMN>^Oed_+R4ZGAR9?^<#>k--k8=lJL;`Q?q}L<;iBy>=SM@K5eh<373PoP_I% zpWL(Ra2+o}WCF<)3uH^g(v_Mt4!X|CzFrS(veOJ+YU()O4fh!j;RA>JP6-9nkPi(! zF;Yh${Yc-F?qwc_TjVT#uV6$7=V!rcgII3paAt2H8(NtNiKF?pXQH`PM#q7M-d9`iGwVIsamx#$A=2+E&HB-<>Xb%O<(>m_004 zA@Q&a5tBG}@zZVZcc-Y{?>49stkG`lI8;v|)~fNP>k8GCG^|L+yN6Nj+PQYvXatBv zW+(?MMLUHvaRKXAQi2gIByO#v7mxZ8WlFfNf=1lO*9#wFUYX?m5HpI&i-?_FJLFbs z3q?QntG+e+#AX&!9;<3I2~ZlD9ish4Us( zmLt!-#u?c)yj0X7l9rkGo{CBy2HW0fqO($>JU)J6uN1LBPN4*}&)+)Ee+s3L`w)i% zI*Y73l*ZYb>^FJ7X&tt>31yaEmw_|%@sA0gw5k_Ve)ZxcaLEe)Xzk>3Szx>Dbwu%? z%}&^+J-GZ0v!Klyuu{%evd1Rx=8mYSM4V@xiD4Vy(`RJwtX`(bX``pnnXx9pCv{7v zo#uB9(y21v$%+*i>C$O<2RN=-uoVio-&j`SHh9M7j7QDh7@X-p4IF1Wb)@fHMZO}j zW07(G-B{XK${34EJD^%T%^&TJH5QiLD#dJy$Tnd6GWgc!(qr01M&>bN>HNDiy-rN| zUn!^g1HDDCZEr4BBS!I@XO?2b$^?3`o|WdT;R^=oX~QPn^O2r64{i7)j+rP^jbdEK z{^G<_Z$l2Dk`bFX%=pl$8ys=la@smuOfz;m;=w8&r#IqIAu*-j;f}ai>iqQ4it8NHBz0lj;^6}iB0N5Oik1i zk{Ttj=HkE~4m%P3dd#7Zcuy#f$bZ`64P&X8@eF0b@n9T7JvlvDw3}aV=|r?5C3x$< z%C_;Tp`lR@8)?`~6YZ%JwaHJ|#vcb)&ke_YSu;1QjT*m=|7nQw(9;n)VOlflJ}qt= ze^{iD@{_$Z^nl&7ls+MGqa1UxcBup&q4l?^7&WYLj(4kpR}Z`R-g8{6Nm8Tsnc)TY zE`J186HB2>Ud$2=^Qgdl;Cf_Wf0m(J=8lJ5#G`kU1G9S6{#CG{m^6(xDZX=WWZ*`> zvGNo=I-fN+!SixG?S!0kGbE1iK;+--e_eRStaE3=rgk^37=N@IXG$i@3(5XO{!H#{_2H?}fzn z3-{U+T7j;0Kv>@nO^Et{FxyNaQu;>j10l5(5(EG51+DXdFsohSlbXlY>1u#wXx7z@ zt)XBY9#@x8VF0$En2UtuJ%qv-l`Aq2s(Raz3A)NVrYsr|{$)dI7LTcilf%O}IHFmP%sxb%g zXZe5hNeS;c4jLWt|F6N3B(}-MQR4^?>sOdNvLS~aoApP`JhR!;{3{`)n|K6gVyA63 zXQGF=;2D_4ehAE0Y1Z2cZO3d#jL0mNJOC_-RC29^53y2un(rDQ&swEJdHu4V{I8Re zRd2ydz>UE{MozP^K9OK^*y*u>7Y86o59C3^U!Sf&+4vQhr7U>)N*P z?h!uOna{i`yKjf@KeYxny}mTmcGsX5mLPWiI`+)rd+lrVJ|pVB+}xy4du6a>efxp+ zsXup9^!%<^`ifZd9}W`x5j+2Q2$rf#_Oz1g*`aSOR#`*~K)f2uD34L(6E!|#F>O%|L4GjLfB5}b&hxWgJ_xXlgohcqx50VOiyrp$gk@8O{1Pnqcv^ z2%J1?waycx29Z+)#bLXRyw>xnyEA0^-+d>`ODq)PfDQa_3jpxK9Zy zb%pMvpIGnCjE}PBVz;%L3df;A#K4HJGuds@EQNKdG@}8rhOpk!2YJI;uaHAu;Qw~6 zMJS%O&t^VDBrNNJf!Zt-C!WkdkONg}tzO;=ib6!gQ*} z4I6U)7%e_qy%NPDC~kQzW>tE0GlYm33sK{2JcK$=9<;t{KZ0 zj4IxVyv!3(9^Fc}78XrTepSdE$)Dt{tW*2LIm5DH{0ZpphH|;tDGy)cZOTr(gSp13 zfuT_VUZ$_-J%4oL4o?Q+tOAQ8J^HE#{y0jXwy{p@ielV!=8~M*tiqtETf;xsy9-u`Px#JtONL2qz;{QY zuGx6Qcw9{puzXBX3OR4i=K(rcTA^jxhFaAyO2vKjR*0L}aOC6I0Vp*!+sSU_WH zRgKcxQH`?N1Ggy^k$Wo|iO2a|R(a(3LUj$%TFAUnM@(f2Sa}u)iU!n24!C9A(lM{nA+KWt{imcpt}h z6IS`YkiIhDjqfCI;TRrm??9(tBJegOUvw+?&&Z%N{d@&SBU zieCKytE3UXxv)~Pn-2(2n2V6&Df3bMR)SUl+7k1F;1322+X&u(6y6jEgm~S9;Ix5T zuB$Rx#}UDgnI{? zUn1wA0wZ=3DFzjY--#78(+`Xz*f%(w#$&vx-@x5+oEMao;TM-+BLF#6OrG}1A&XA(Tev4Jh@$b%Q%sm zB2xQ7eLMT$lA~jW{>cVe$VBEBwe@3LIi*!STJ`VJyB7Krb9~YtT06klz zPZ8-8BJ^FL&lc%sk)9f%?*VlW|4^j=NTfd%q5mB8MIt?4q%Voke*yXrMEXjRzAQp-0o@|fSBvzgBlK3# z$BXo5Mf#5-^wXdxiS$B|zA{4p73eV{eXU4e9ig8EofhfqMEbK4`bVHY5J-REM7ljf z|263U5b4Dty)Z)m81$PWeZ5Fu8=<#@?i1s12>HN%XpGJ9KX_9^JQtTHUl7{kE+d}pd|X|@)#sYM$(NxQ zTZaEX)rWCpYQRm{5R-PlIjMNBHt8qHg^Xjbw&D5Y=RV=~Y8%%jFDA%W^$Y3g^2z^& z{R~ODqBt38SClN%HWV+@UKWmP$nVd^-xmBLmx9ZJQ-}PXU#4AwqXEY?a=l?0G@6ZT z^R-foHq8s&E3-iGHLf+lpJ@Ly6}8U+eZl5^1sCuhr{%JCaUt<*XegAj8pwr*v+|z~ z1~2xWgoP+@bqh{zKee@M`@OCAs*SKa+au_yJJm$fn2^=V-K#oPO|ZvW?Wd|v0ueNk zUM@(Zp%;tZXY28eawRxtVuwgpGsr7pWAjNHW3HA`M5+!}ggyg-e z_BLYo&0Hq7A;bJ%y7svm5ocTpE%6%uC)oMT$eFq5S@{1G>x)%4fNh&*?K~sQVU+Xd zXH$^dlGsDb{KPsQs$tmh0TY~`3hrIbt}MCkCN2C)^~6P_?0Z*FSQIBPH6%te$AMSt z`a*RL=#bZ7%S&exoXB8sTWHAw;6_sE+^J%+g2olombk(!cQO#F^xjKc`2UpuN7tJN zG6#p}v&tghtaRgu$V2dc|D#iR6>qUvHEzciS={RXz+xvoqCzsONN$xY2RG>HdwGW@<)(j>m# z)Ff7)Y7!4zY!d6hgxgY@?fLl`rJt04JyafLs&zmr@k;eM=o|{41wD{)ZWBI3K7>gB zS#fP_Zi=C2DCd~C7WCr_1po5}-p|m;R!LJ$WheG}Wla0=qJ@z6V(6n{jV{X10u|tD zDfEPTzAZZpTwhlz3sRD4p93XK&3lbKudFljW7yLuZ@m)}3pQ!0xndCUg)Dqg&3p01 zEo-i5E^3r3IyMw1tBvLBD&dD)w$6boOt;F$bMm@Cz%sND?~}Am9$!5)Ct>%Tr_oXr z{Pmov8By45R7~fDd=lXnE2>L6MWj4{g>e*L1dWZ9o578R&azsV)qkQ$>58>BuW2pK z@O&+3|w*(nGft!zl7RkuEx3g3Y$+QKG zmDeT2572&>kR1G4oCa=^uVE4XlQ>I{J*+MIFu$Vf5_1_=(~rbi(U-+(SX-iLGt19m z|AZ^TBugaKM)>vypnH%AdS-mdnK&QSy-`N#S0$VgEsLK@c=9nO>yvxRht%W$tE9&l z&Anh^4Fns|6PVV93>#+-!-HO3rBK6GGxoQLlX$PC&Q@2YGS!u7D<2Y7n#K54XsYom z(|GaAXtY&n4i&ewDv>L81OiTE|A?ICXkqbfP`VSwV-6kH{CwB*tTAH~W!$i-dDBo} zpJ>Ke#n^Yth*b(AsqXeBqTBB!@zz%2S^2zbq1^~%9LaMY!o_`-vFnr^y1uL${Y@pi zx>&)qAAyB`-ql?0bA4~1Vo1q(!HN1v-lKRkpBq;T&-VSC6Zv7cxhUCv-5z2{{#sm_ zMWxc_KViMiUjYp64DNGtg{`9M^O+T8Y2Y*)In*zW!*AJh@33s7p}!3L*epTwp0!8L zjGT6)?0i+E`K;}HSx>+g`7HPYiH@D=-DD>*Iab(rmSX7DJ$ZdY#KvP0D1iGAg zx60nOJF61m!()xewz$OA0)+k5T;X+kZ_ZmqjBhTOyX5{{;WT*H71*QZ9@(*u-@(4M z=E#djz=gaJHc}OPWQ`Hl7B%dLlJy!s%hk|Z7tdBx#J@EScoHQtG$vdQtEMkSTuaO4{tG10ZcUa5=~N4}Dd#PE}c z$bIJE$S3`Cq&oZ&*r{J&{{l)ZrqlS}iloF09660M)3H8<+7TNUiQt-o{bT);r7Ms2 zPmcV>@yG@hI!SIt}aX zSdYVcE7oJN-h%Z*SeIa(iuFdUjab{UHb{9sR|{*;r$04@dKilt%QP%=vE*U-C6;Aa zmSb6qr3lMrEH7i(jpa93-o)}-EGMv>#nOi56D)tm@-3EISpJPg#3Fxs3>A(g8cRGD z9hQf%JdDM3hJ5FC*h*FlEI84N&{yxl(nL_n#0Ok0PIzG?uTm1M62XK$=XDk#r~I#r zeJpR0(2ULYYqCil7qPD@(4mdqLBE63<<#5`lYlVgsT zc(CHVn>NJIu^nWlX|~}`I{X82Ls8%`LdH$9245ky3^N5hcJ#Pr`zBJeWd>vhE)37P zb7}MDbs-F_JijI6$+uAt*Zbg$7&nc`bQK{VIKQB_h~}fh_MB4k7A4__k3$;-TNd5< ztO%aLCc@@RJ*RToy+?|!QFMnKjI&nWu`CG|*&}P__&S+iv>(GaNSGF;`H$?y{f)=q zBN}TO46N^`mBxR5#3{Ha;7Jc zIB-~$>lj1|?!y}R6$6uf%uXM_++xMQjUJ#M9^s4jr}KQC%#e2{j0KM>r8>S3jMAjM z%GnbT`>BcV`%eFO3~%MDe)5~&=N0P^YjqL7Nf*ew@iuS_Suu+ulSn~J%lIH zO-OjiCix+eA!Y?$_-Pd(v{#@P+VmR|)gm$aO|A_xw!=fMHqdp~lU`NM`1Q z#OKz||m@DyafUuWf{< znaTLHnDtRxDSiiVNq-SuJC|Q+@Q`;)P~o(n^y7R7LDXrus-j?k4<0Ehti0vWUfADD zoA&p@gOm~1W&zHfFf%zI3#;*L{>NB=(R z3+kbrx1%V!`5(*g6|r6O*w)^Z5_v5((duoZrU5T=un%%>+AJ>x-`*-={m^Ex1*QVo zV)BlDM1DL6-s<%mn-)-MX}&)~iZl2NL|J~1`>kSP%VoWvx%bQ;i7zMG9S%fCOgrLb z=_uHv4X~&O12+ccE=Et!Y|JrX?)kmM(Gv_T9ipeoU5zF!WZG(wxj*2&*+II~8T;TFEvk`JqU9C)J`wIhwc0 z!tyZ!(CeekVw^>pU%0YK{MzC`?uI0{L%a%h-fJc;e4uwQr(eZFbcaYpG(>Uo8X4!d zN9-8^%xwOigf`|OaIqi)K@UE=kqn7=yyIvWd*Gip(On6jC$!jFs;(qubFF2xF^0c_ z{GZcoq|{}pRJpw?;c`;BtsIdB6=kg7i>qSzlfZBGOm49^j@ps3)6rF=&9L09hb&3*qYVbS;H{;Ar6Mss6MY4u+T# z8mggEYh`O*hOg(fvDyukCw5)(*6Yf+_Sg+8DwkN2Dqp+9Xi$!B6=fG$R|PUrk-e%G zUpGxpL##VmUf=B|_wTK275%!ixT;nBPM3qY?*$(I03%}8G|AH^j45_%lZ#p0KG zF2)O9_bw~bBA(XKT`@5&UCCpR2~S7s6n+*FQIw7W4>!?n9d62*1s~}&I-M)zqWKR7 zLcTn3_Mi-M3ZZN$zMb@gc+Pz)XpnLH0Jw_4?}r$B+jOVIjj4=;(4?NYAr3fH5=v9b zLzRu0D|<{0{P{hWsbgvhTK8+j5g_i%37qbvtDZ*Wrn

    E1MpS2WQ5~gepV>%HRQWWGs;Qb< zdYsHZyOHsaA?-Epn7z4bySb@*J1wu?ZiwBl;*Q%WeRJ6=Va&imXmy)CQ4I{@Z5-fB ztQQqcWYm%7_-#O5AQA{|wk^t?*F&wC(HP~)>v81C8&8WHCyf(dm=)g0OjP?6jU-#p z=y3_-M${%ZE^v=%WTpZQh8k(ww9?TLb@E0{{Wx(`ic;L7Y2JGkn(~RFrE;btS)LqW z@Ncpof`)P49o48rO)4{Dd@k5ht}7$)Tp``Lbo7iyTlQ~q6p{uV<||0?ITX@=M0!!T zV$9&up3*y`F_~7P2fA7yorv*2)3MKs@sf_+WN)q*2s{>4{!GK3)hL@7=94#)c)zJ) zNoJ|=Rq&*EmP+)`z|*cZlRILNy~DY{si5oL1gS=5G7H2BOqDgun4484ty+FR}56=y&66>q4e!a7h79W##McQESOROA4RbQbz$#&&T%orSOQ zs41fR9Q*JI%9+~SDYOoS-feCM?fn#7G>kEqORcBK^PBbxN5u!vM2&mMnOdzvt2Y;Y z(@iU_JhcuZ*SO|27sPX5DT}OyRfO0fmo=|BEWU+|45&Q=f24^#0k|x%{~^QF(1wFT z{Sf)u{%P6_ue4T~#a%#b9yP90@C>MHmDO@T(GPxVQ7KuS#sxIw|y9 zlQG^1sllvhG)nsk#?eOO9}4GN^s8Arf(_ULOkrtv{g!qUs8s5^di2ZxY!=QF}gO=OZV88 z0AK&a1m|S08>sThzE||B9ID(icx?Frs#`*4&M&^6*R+;=w)dpoV)F1#d2*;216BEQ*cr(_kWaXD6Pk z

    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

    23&5-s= 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

      #OR(we<~4ohmIKCO2oZz7cOGhV#KYu3l}l$ zQp7zy1Q#*vQ)IUYxLEXGaj|F+7qf!6C-C{bAZG6Ao|dq<8B#7;%5%R}UMtcR0}%NGcF3D^IZhulv1JLYVP zae=^VzxPmf9d!BPvT+)!W>m|KGRUIkOifX_2%J(3{wS%@R!D1#Dr7ZH6>{(v1!UC_ z$o!#@_?0y`D#L2DYr|_)c^=0PnBgOhqu%#&Cp>&t;2dBWbgK=FmuvNqbA%}4d4-qz z!1H5Q;6x-`*je{-%^q9Vf0_&7kj4Loc~gsXzhwB=W4`DyZ)U(BsAYGs7K`UpSJz#q zwdBm?b>UP6Ly+?{|1PzfEQlEmCV4DyM{%Y`R|eJC&Ibt|zmcHwG97dc6J6r_3|j3_D5xt7Io#MP1F+JTt@z5y}}4zuRspCqF@W4inZ4(5eHXPN#G#s zkO4J*=GLyiz78pHMe9)Cy4`$CpuV+2eQQzQhU@E*1FmR&pbuF0)z>#5ZbL|RAzYvr zw00tDeA9j929Y(F;nX6LaBbMQ3h?=HNPQieu3eO`qts43p z#`Fd>Z0K*o=o0OBKtF>17SyO^gW8{bQ1`=p#2)bVb&FJ$g1+nJJg({g*4zL8pm-t( zMVrfc{r?><1Wh)$!+=`@|DSL%u%9p^2*oR|f!zcm{}-<(qk#R4;JyNxO?Nb60>@CD zSVVN2xgNVt=5Gind6;V+yOYRBHa3a_-5$nWPkmBI_$-{YmTkmL445K&K6_8QvIQzawj1U%|nshJ^_t+{hS<7Cz+3 zon)OgqeW|+09oN(enewPit;k09%J-4zISJ~#o(p0aGOXM(*XIOhwYvQhNoxdG*Y#3 zbz#>^ToSHi=#LES#?WnOqsi2KYl$y>cQ$ZexG*u2<`Iq?bHwmsN?hU^dp{c#-J zbh!C&g>e4^zWp73Ph%cM!jbz# zEvrg&DavaJu(POP$*amRX98|gOTVSZGZU<=#3r7AkMr4-6GY?R#;c4l=Tg|PsbZN9 zCNZW{f_wH0S+}FsZJyUJZ6KxlR=ZJ`ayL*(VcB6&71o}@)x3;m&uPg0?^ zuo={;-A2zSaC+C&v^HdkuBh3)+@Jjku%d<+ogLy^^JLO}v9_+*qHVu%SRRwsHgAiU z%5Ft#nOia0T`E~^*S4#%T`GC4?zQh?Z^kP2iSW*Z9zQH!T05d)0ZY|L52mr%td|St z7qpGQ>rdGAh>SDS_WQi>sY78EVHn!f)xrIdO^BW!6g z>y-xC?qRIE`lGR|s8Rf8w)H_PHExt?oJq9%)DL>Rs+-uZV)dugaCqIG9|!9sq+IDy z)2y`c{;4+0bA{4{3a?=Uc|aHQ_VZ&)mFx)fCcMIyv#`dcsl!N0@tVWq(7DdE zQi*9DwC+Huu5>^4HK=shq0+s>hg-Hz{;1uG`$=0BU8P%fD@v*H%^Qc?7T{IS3|P>t z@afx%%~XmKHVfk@Uc+-j`jd!#ik`Nw@K#xi_y;YTawa8&k-OkF5lH^2_6u zFl&4&*J~Eb%mLlV(-+w_GG-8)om<(?dkYuHhLT< z`+rk9p)`}_PemR*yH=DU?|5?*UR>WgCoVKKna;jMEc%c(0`JbF>|>9!ja@w zTNqo={TeKJ)Alj)y`0rYD0F5=dn~^eot+2dn(XjupXxVoFQNaEyonBoiPCEgs z1ex9!J@1 zE1iL|>Ec^kWmSd>^I}6K-W-va({fPO^QW^{>0q^YLs5e%dzHjiwJJXts#;ZN?&zVZ z%y#m=nT8Xwc>RqRt7lrDl)F1i=Y^WH`wZ!!Cb>D(O!XP`Iw5qxVMxt|4L6!1Z&xCZ z&RHd9jaCcZquul$YwIc@ZxdrKh31CXHm)iW;;;H27veADWvet7FWhOjBOW&f<**4% z1FOWXUOa~SH5{R-G25>3YD*-m*#8>dAC1QAp)3}5yqvGQHnBf|8e?2C4t9!WUX4BC z=58;|E*^a~cBx@xw<01OcKC=5YP|)s&$$715>vO4vY?B3l=Io+3y5#4{V1i|dYDd9 zwjbtM^>R&SFN5W~ zVGqMzAROKn;iWKFAZ2Z8de?BakyuBlzQ$)-uJN-D#Jshan=4pApzMb>QW~4q?TGGw z50=lVDf0F)umX9rkZ|_PZe?S0u}JeatiS6_7;V`(*jPAoo6>LQ^%QwaGsi90X0mj> z+i@ON=-w;Z%umoqHvXgNNRNNEy!~t4@t&_EwzZ$V6%uleuhXBxh@8XvxS!9(?*YBC z@g1J6eurOed57P9fJ&L$(X=WCuWQAZbU25IF(G6kbE$b1Yyp_UoL{?PiBVLS72RoD z8Rqo6C5eg-;&Zv>iDJR$a4QoK z$T|qo2ZIoiGH^c&(K+=w{_`PFeH`$=Sfkj?|9%LB$A&=IreBG-;&d|kYQ;JJ1HG#A zeRHdWd0qtDFSF?FSq$(%WfLA_$wD5q(4r?_yC8Wl!ha6d_{b=0(1#>oRgO1tVa|u$ zYPd87pY?#3hs_=7%;QNR&S;Mq# zJ^qMy_#CzJ@-g_Nc(aR;p0SCwB$lkr@g3l{l0@(~kK4A)6688~iHjKCEn-EvqwsdX zhPRAwE*e9v1#MHBWY*<4?kD$z@vgUfn^5|i+qA+Qm7 zwN12`AE&3MiA=Xzk7WJn0$)ZrbIV-o1@bb|zBOPEcQi}v9erfUUdh~&4j1+DOA5MU zlOEy4v*-sx+o%a|0dvGU6lMRlg}X^>AK@cs9XG_mVp5Ie=b?Uj5SD_zbAaWmewk@_ zzjC71N+-v5&}lDs<^=nzK!2A=r9ywhoO1@t8G6T}-0%7y;pMYLrl*Hs=ZPVGPP!-m zK3D?PrVtBY_u_HbJvlcCH8bXz>`6oF9*R%5YXI{BSW51ydngp&-;?uUQujoWS=Y^o zAZO|!In3SASNyxk`>Dwr`WF9=NDUNZ#s+*FfKt0*pNZf$2k&b47~PI_-rYu6|3!S6 zcb8Er_||xb+o@+L`wlDYDt69-oVTCUN9qZ4a{Yl`c6#sNbznr2k^T+r zISsUgg{udVcyXr=uqyHcF;>ft*aP0YTcq{hv( zMQY68+bQ7J6TOtW1afz-hf18>LHOow?jxSeKw^uH%)p`ZY4H%~zb;ZbKk*OcWCIwY zv|-K%26GZlrgVPbmzn5kgoB;A5U?S9;56=T0Y(C$m}OUru1W3u@{hw9o78T9<(06z z;k@h#z}e@%1E=XOIES|G$9HrF#^)=v{_I_F4vYtZvwJY7q4z1|eEi?we5(C!IO%K7 zZ~?|gUkM+8akPNTEkPKYhQJtp7mPz&{&2A6g1#@&a{OH|4#hg&pc zvp(r0m@EQ(RBq|KGat@i$f{;4AYWv7jjdrLzNtRU{5Ikb`+kU^w!o<|w%tD1xf>4) zwug+cSFnf;I~2ATwEoNRz0YSy>?K@x4>#VuAV0L__wL&qzDsb>-wFw5jm$0YrS`VE z9lXS?f;?N=pTdT;gw`t?+>V_7kcOG!>^@w-6XbqFR4SWomx@BOv%5cEoMkV}64!>d z%*t0Dl++w?J8tXj8?tqMrK0J171^Z5d42E6NUgHkd3|T*Va~=-d*^k3E^|BX54J*o zNZN_)4{4O|Q`Fv>lSA<-8N?D@J3) zOx@Ib;n3Cmu$3KwbzqipIP^5PW3|f!n-bI6;Z{GV_RDO3Zj>M6@bY1|!$H}IJxiri z2|0$027^DF4tS>3XEW3mV2k~{NB>3r;-IzIEtObT$`5b&t4 z@XagIlN3m%_;$*8Vs8ZVA9gYV_OIrGK1*>I<0KsDGrOMMahTH0TL~){&?4ov)vTgc z1U~h3yR5Hlq^!?Ak{Z83sRWM_wWQ~zgGYVqqST^;ZillUUmUp4*?Kz5e&HdT9F`KP zTE!vQ<*3bKWrz0QUKy=R!Z)snjLgCoLK1%0dUY%5l!@2w;AUvQZutf%A%L4D;M&?0 zVqNrZ*+c34^F29pydvoQmg01iyph0>#3~xI0ErA#aLp$JMhGP2%Mdhn_gXpwcAE*$ z0}cwP@jJlt!dM35C*CXBE8nZwt8@a^!FtnY|S)a0)^=h@^MX-kPPZm?0M zmSWuEAbZac)|Ogs3&ukU=}va-Fzg12&lhw@CZ280?w04?fpCC&DXr2OH>52B;Wp3E zSv_dLL%ip5LFJfmRCn#?3ZcgRN%$CE3{a(EC zQZ&dLspRP$ahShq7Uy~?Bd~TqA&n8Fa>55*79dmF-UAIjhB;}&d^F(qFv5r6D17H3 z0TBPi{h#K*!$bN;a(?PoG&1HC8?~&=D;x(9dE(FM{RPMZo56ZUeZl%j9=lhLy!7 z;9q~^g&F$>c`HfmW`+ZUIqtx>B_aRuso-}EO2WnfWVBR#&1g3)Q4u}}%>WYE>0_Bk z!PQtgWm0Fhpy{2(Xbfn2O6P9{XlU>WBF7QF94}ypaQ=IFPu(Eoft*q|^b*|YPQjPO zCSDt;eJB-f__x~s3Ecv==z_Hmg{0)3+W+DroGnm$CM+9~uSIQu9U~1a#qQxA5`4tk zyPvbPQMwGGabsN@Yy1#AfLI%IIehrWz;tN*!!*QRmz#UeU3~&Jy7U2?niDY_Rj`ia z=8D{U#EbP;#dCV6L|;|bW=XCbak!QyV(-wk7`sWm`k3eKEJJEuoGo(H>9TqwUlcjE z7uVvuMdbcowp}g4H;ptNZ6l?0CcvTvoe4(CWwmYUMr ziJcKiTc#BIb2s|pD zIiQ52)AH~&I#OSSO2*S?cH}&kAhn^aGKyyohoV$h&XKvFT%gmLX;CT1I!Vv>a4#Ik zcR`_3@vsd$64JBM+2Pfz_i#n{hL73$2a{eWdnk#`Hf=Sfo5`x^=brFSGZ7n$f zbpYo;@}qLt^oqC2a{C=~AOYY^$gIJaJLAkDknzs@iA7A3k9us3V6UCnZRd|h=F1=t zCYVoJyUdN&u=&a6hOCHArL)>=!|05|=%<)uwoG=MS?SyY{<4RQcTHreiTL)8F5Lth zkL{#Ra^6MkNGhD);~N(*cf9-Dv)E_*T2D?%F7OxCy613a*J*mL1$NZH0byHQ>Ac1h zOO?cD29+qBRj$cK1}C8kX9wuoFo*1*DV$$IQ?^6}{Ks9*tG|_nUNQ)~Yk_>07r?KO z?*o_27LUEU1=uAZ`v$wYk#6i0r^ew6j|%5!sD)Y>sO1o(x#32aBf@LIcRh&2vbJBA zxEq$urCQ1+)fV)bQqN;n@8JyOR08m+d|l5yN&2G}-`d2S=PyQTpW6khF+G=rJuPw$ z2Sa?K^oexDO3Zn3K67?ePVeJswOL^u;>$U`kHV+wjJD-DCu?hA!#mG81-}uUXZX$O zdCoMPF$H|7y0gX5qY#_Z`*1q(XC5VAfi#&E=@{$c(lk;(Nto!uNg40o(I%85sW?_&o*(S#Sf18%G&4QER>@!I+5r zE(hz;m!_0aDe`u|E~PZJj7ow}lZrThimcP0Bi5Bk%E_VArD!1^1wvv7|C{#*FfAAR*O&Ty;6E%ZTHC7v(V zR&x{j>HSBoDeMJ)r#jk7z9+R)O-~i4M}l5Obv|xhzo-s27x4X${rECtBF6Y5UUFD} z>cP>l-L;|v6btLHrdQ zRYJisSWSj?b?3YOkVI4Ax%SKaM1AuzZ6c9Nn}zTP>KldMQVEx|iNhclJt>X4M1fMt z7u}T39|X-&>HIrnwGLimnll8 zD;#N?gZBT3l_%6W5jsbxv)Dh{dW9dB`s*xF#}%9#y_H3Geg;XD>=-M0#0p~F8+);H zZ(K;ioPOVf6DVOX5oc{2NzB)EVZd`btgGkP*;`m=@e)fi!n3v z$alWAp)9qF?D2%+TRT!VQKrC(t^4WV*M;CXy3(0~yTvNz@c9utoq)~VK4>E;hw-u~~OcO>ixQ4ZiYuN5pbVitjk)}M{ zfMmxBuNJosRH$1w$P=XvHj>!xjqY4(AM1Jy_XQARyEg)N0sWJoF(-1%=i9r*#^KT$ z%s#5lG5G4{dl?6=#1PppB-~`LI*PF3NxOon{O&9mdVvd-I6X;B9yFVT`d9>svHr|hSeTkLmFjf;4PU4UlS{w%%y(EtaJyT$Pw2eM#%!i`czdI_ z2F?{FBBTbMdw(fi$}l^yhP<>2_OycjfetftyxF-AyLV7v80?o01#S!4g^|f(T4472 z7vPU(F*D8s%!e&GQ(6ftaZWpAKv2Tlcyk<|>348iCv5xln5AeyUIt_!hinK!*7eBv zr;|}`IM!M%DAeJ;6qL*wj+4H!5NOS#bBui5ZMpp^EiB!F}4weba90*M!Nv(67M0zcB ztubmLPa~L2B}$pizS#R1MDjV_!{*^;yt58_3N~JyY^;{_!(EGqq&_e7eIBP!@U_z$ z(=m%&!1+s$GXK^d;|{NZ4eF|?QV#A~A+?}tfcL(W_dh#ZecU}s!hXm#4!5j1?P}LZ z_~p5`zut}aF?;np8fLeBP*Ux$#~T(jra4L+-#M!NuXYd2hK*oYXK(i&Xve)xm`y%d z+wLuD@1Fzv?1`i*B1eFAdaFZki^x{&SMFEsSML`*S?Gf_#|Wv9tjWIMX!ovfSA$n_ zprD*C5l&Hi3U(0x_ zV2!f(^F`7;2N~{fg#~`xdr;q|A~l;Q3HR>x@_ zFERNbHROYE(@8l^O}WC;k9M$I8A(!Y(ZBNaD0OnztNCnSdkS-CM#Mtw_*ri3@f(G) zS8#J(Mg)sL+i?Z8)M3mK&-Pw>VYT1bWiP7sCtyaZ_Q!WI>M&cGDj!I|JfN0#;=ehM z^JifvZbL@9Ber%7+H*M0&%4r2+l|s`dR1LZt+;t|w9QG!rx0&TX){ev(WN!hNhwN` zlcuE*Q$60jw4>I}`YuTxkH5uo_0^bu~Oh?}3yL(YeAsF`ay0fi&7<=df7xLoHzJ{^nW-?x69E#tAF%mpI;M=ZG)| z+o7wZX51R_PxQp1POK9|*Emmp6n{puk$RJQtw!8AXcdx<(04?(FZ_m9i#l-|Efc?? z6(WOeqfUem2E$tsJ{$~hL%22=E)V+K?H$E|T${xAf}xGTa|Yp?5x$N4IKsPv>05&S zaVN`NMK|iJ=q5;wSJBOo7O$d@^XC>kx6uaVs|(`05Uvk~k0Sg=FnkPi!}lGhsa2ES z7$e8psQ2q0wx41rkg1Xm-(KIdosL?Dw_#oU3$4%SZ<{Ff&x!J7w*Q6Jk!Z*z_Cv3J ze=XaPDxIUXiVyse?aY4y@eg2&Y&#vfV>=zOJOgd+DOp`Jv0Io;imE;0K}VSj{F zPD84ssbcp6TG;B;@CDVuf=#$nRgF8l8ia~6>@@^WC~U8rQDWGkxhONQ=YYG`p6L6b zC#~>`U2m9`b7YA{nw32)Z^;t79g>gU3P8>mhxv959C*$OO__%{z0eU_b2q|T$AL581u{``zfrP zI@bhw4!#TajvP9}HoDmvDp?CB`|7&J88W4>d26nuxRcP|-ECj4YaA_4#2w~VX&e26 z6L;}~2Y@|vW3oINH~m0j2)AZpq&E(ehan#BnbD3F81bQU0*6oOa-$3*Zb>L`Y@@$8 zMbv8-F-eMNmCvf4RX;n}W_1k4UwjZZHO0$ncf4$nx*>0!;flkKlzRV)|Hg**Wc9FF zIUtLxc_@Lz!JSKvC7JMNz^&JX@;kwLv4>F)izPFWRtUEf?g-o`a6iC>JdA()SAkr` zzdbWlB#DR*N8AQqFe)Ik`;33Z`?ymO`xGU+kyxC1bA>Wu#dDcqtyM+8TC6R?`L8W1 zw-=P@jGO%;p3WTBQdN|3^OLz%nMS0ngOAmq=m}%A8&bx}QBAUOl5rbV8#Hc(2Uo;J zD1I&z5RXt6Rkf=PQOW%-{Wl(DK#QsX&pvt-yUwev-(F*P^m-!nSZRjij^0S$v0ipt zlP3i?zV;vPszu7{JVlp!mL42)hK`Atz*ArBC73}DjyXxk7|zlKkpbLlj=Lc3EOiVB zq&&@29Ai=5z(C5@KzZZN(q9GzQa13EU&iYpnTr+A5$-YK4%ljq=+b(Y;x<;?#0u;R z9v{hZD-f>}L{}fr$Q}l-Lw&0eS9l@=_=rD%78xW+0cHL<|0++8OKv|fi)BHJ{}L&_fvEx;xgh|&sBb(v5fcv z#MPebywnAVFX8y%JpU5JN2El$Sl$r`J2-AUuaN`sQ)&@2egiM-6k6<4#QS;<^0Gc1 zixKKMi2atTj7_f({xrFxVf?)ew*eLc!= zz-Z8T4)OdA7!7YAj`rd8djs)z5LbAH@cO)i_*ITy#PP2p{tM!2k1;Uv5Z{gWRr^=* z{JZhKHo(I?t2w+4@J}^5eD5z9m#28>8bZxH^gTi!@X&V%ea=JY5o+Nf(1Yk%9{LiY zdftj5{44A6l{(&v&-1tF@Ks%StJd=?k9Xm%lK}7Id6DT!@%(Q9EELkwSnzk)SlBP2xvYkNl{eUt`f51O^%S(D(oPH29Ry zLvf4OAm2<#a1Ovsdet6hi_fu2!bn|H3{LLR9Wgnvwm@tTRS_%F`gRP=85B$-iF>G; zrz$%}NqeY<2yd^ye~@oz@1sYr&lkq-$iy8+l5(W)D7(#@xOJkbXd6`tJtsmBz@}e5 z?iBghK*qvNgzF181uhDXzN^G-6fN}N(0m)Km$GQELuop*hNVQVWzVhjO)K-Q(pLJG zbz#o!I)B)nbu_E-K77S}!CJO^-$B}%)LVeP}3D| zg+jltkxYg8-ND*cLsnUh-qLEq@i6E0O2wI-`ueoR)jRN%gyr;~-&SVx3= zPqG?5TbueA~Is!I$S4d?(j3&k0uje7Uq-|~S9XVkgB zMwwTWHNmn58RN0esSG9uTLrOlT5F1`K&cF@jbVXW8Fa~-;Cgo(Utsr1HQhwNJPKC} zcNlJX0qiNGAJ2aT+63JDa0;ZeGg2SiRb`ZtaN3RZO~4&ESPKPRqe&ixdzFonk*AO3 z={kk3F+n!+^dUUmz|$8fb+{37AWx6w=>vGWL(Ohi4CUzqd3s2o9F5o*$@e2=?cp2> zylB9fei3rL1D5W98mpq`H?i^Z9udsC-{ycR#eQHcO-La&V zkEMvUb#(Q-I$8p^7H%Efqj2ltHqOiNSq9Y6tx*a?9o;-nn^;H7qf`iIYS?bOj&1># zGYT-!F3kCLG-Fvgos^IJ!QqC(X_l7Lk?;D6vqMl|85N=OsG}Psg*I z4g~I?e8`9_E29(aM#olY4zOn(f4;__x%@c?&#&>e^=ajFLs})hSO26ox@jxD&kBy4 zNk{}OWoaGFhkrGtoc;oB54p6Q-k4uU<+1U;pL^8o&J;k#jGNsydaViX7W2yK%KNs_ z!E;Ow=p+onSK&00j#xQ;c6mAd>;2{Q{QcYLETn9sv-#7JS4Zp2C0t^=AEerdc}$B6 zH#d&Ool`{jkz{sbtx!ymGNw`Q&-6Oz#Vx6jdDq-ahgl3-%c5p>2H6SAjUl=l={l36ihf{yZhGstfxE{%J8%0GH>mfM zG@vZu&kDRZhI-$o>0{GfOiPUAJDhogg$>DloWv*2lq)T2c-CWl|$4QNs`Gi zRsybg7i!;POcyh$$%&d8NvBfGS|Oxm6$GTaS?x79(uEfnAB;(O-zFuXwx6T!pQnaD zmoB{!qpLZVA5v4AA6j!OKddIL0J}5X=PA}Ie?G0qqGR=aYVNg{qP$W-T2ixUqLY26 zFt)F>KeGk396(r{opQB~aL73vl)j;76}ZvKt%Sx~SPNvAIYlYL4XSEhUzascaQ_7u zni}VIt8miJYgra7rz}dW@_!2H$Lp=$Yxwin9<&N_1CEsJUjG-6Axn3e9HV6`C~|)9 z+r6Qtd+_y#RZ8QC9IdAv^h5?vmdzagVsDt~ZVp!%lK}rQ2p=ko9R5sixM?JZtBoSy zj2_AI50Rre{E6N^rokMpF~$P^*C0Gv)^m7qZ(ma%4%Zo@0B`IrLGDOd$D#J#ekP+s zkCj4|?e{M1W&dLQiAJS@+>N}c;5}2p~o~s z#s^{aElws6-b)NSAagdmt$M9l@_Rq)S%TYxf8MS%fzC5$J9MiA(^+a4X8JDl^qQTL z8Y@9`VT|Lv{~UEnCdVr@)tOZEKv5knDiy~BZ3YLY*Qlt-mG)fMkZjyP%2wmJ4eaLOLf=D_{h#-Wm0D%XPrEWbqT(lK z6`e00b){mxRJ9(X7p*665tG)fNY*q3Vi_i4`u3>B^)CI;n&nX_UxCl5hdZ}6=--VR znwQl=FJ&sL?9m0e>Y6OOre>R6Rddp=$YVPy1#X{ug6~H%K$ZTs5WDn&hgN;Nio(7v zPA{O4Jd1VbS&WovJ)km|oVX%NYL6AvqAqoMW2IbSs|0LZPsYuW`nLhodPd+xepr>> z__X|_Z8uuyw0`}u%7OWn<@Io0MmH%sLOG{ise1xm5{yfNtu(-2BgFkF3zVtzq@OP9xRWDyr;M96t6AHKn-}E`& z@enZP0pmlw<4DQ)E6U$6yr@MBFzy3J4lv$C88h@rS6B%OP=z#}tH3x5jM>1*0>)vK zQCBkHN(%5rDJO><5URsHk?q+zv4i6r+Rye}*Akt<2pUc=>|TqGFsQYHFXtHu%HnR7 zwJ}Xjv1Oo~_1#0oo8L3Y8bB%l86jJ269HM#ohbgmA*1l_YCw|Yp|-JrJk*^eo(BXr zy3orb)K=_LhS){}GN(IP{2PZ5eDi~X6%?{Twq!u2b&n7~a+!twXjxJ5Mvkilplul~UI3mpl>h&g97{HNg# z!Mz6eKHO(;7vQeL^(zFw2yPqPlN%LeKHMqn$v#B&O*m4NK>EX(;KswTZ*)OQ zGsClZD;s53P{SptVYR&9wjcGl&^1=P_j}P{kY09F=BPY1y`U#4tc?}uB{q8h+BHGU z!WXDKb@&1Ya_*3K*q#F9gRV*9xbJu6h!Q)gV~k;p%7AZ?x7f-7f1_)%n1r0+9yMBW zCPwyS@_O4AKwj+1xVcJ<22AT&j8UJ9TqW`v+j_wEbxje&015Majh;EBj&3ZHi)^LY zI#AI1cv$;>ir!i(FSQi|dt;X*wq0g_qy@EW&{#1-AGQ?&vZ|{{yaq_PCl&R21CRys z0^1Tm>|HCwiyU%=T3vR0=Uk-D@0ub09jO}6LDY60YBW=xXhRqY6eg?X~@ zmU6&Sd4UoiGI<84FbL|Zyw?VUMd zDIkI;6)m|NkRce!X@LCFxky~b%X<#*ssLn=9Bms3$Ui$D5EpXD0n|NLYi*3cNHzoV zRp*1^Oh7cAcLA9PNT?iUGXiqDbFnxD5YU}4LJkYWe0Qr7V>uqMKX*PPrd%dXYz(up zoP%*Uzd%9q;ctig^}{#&RKu@>dk5|$+*fdy;eLhdflF8co(Ehm+{19I;huoo3->(S z8*nG!K8L#m$G-R)zPK9SwMpJ=+l+dYc0Mfr8{;J0^BKOlPKa)NM1I8fSavwle(+E3 z-sNIr$cS7OI&0%E*FmgQU%-D=pVc{SI)I9 z03^P1m3V-^m!0od8gK&y^1g$-Gh~^Mq_ED_;&$X!dxl`#Uj<~UJk`c#*Pf1IaXla^ z&l=S67eFS;ciE-`a-*X}TmeX^=O`d;fQ*sH@OkoT$6E0rK$Mt^D>t(H zt=T;JWQS9PCT?4238dRZ6*#-UkF#Ge4m#mNS0<2nxY2OA(miA{{5f!TxMH{`;P%43 z2=^A;M{q50Zn!o$%_=zT;xtB;^bXw;RZE>?Na5YSKHcx&d={cGNlzYC8IRG)3K8-; zx~wAzDbj?A-qrw5DbBa+!vHslX$t<;In-AP>Z5KTIEUKwCNj(bYH)wwkS=fo$BPoE zs*&-&(U2%QOFdEXzGNPngtSC(tz@OnRp}oH-d3%G(V6b%)VA8xBv^CMgQgMQbQX32 zzNTj9c^a*cz=&Ss(}LE7yQ{~2N~5hN#{)&rXa01CB%Y-!Qx`5|7*l-z=vIvtM|yE$ zvI{D3(4lLK8`MB)1+7W}8ZM`{f_mEHZvih-;W^uDVzhVtUt&^l=eol47f`ZIj+4|a zvh=IOj5?m`4y0Wb&(iaARj^s|A4jFXv3smUM$%RTR)zC(MVyOPcZd!nZsF_ohk;hS zQiul4a6SHom2*Iw!#7s?U*z9d2kLpaT1Na?9uFVOIE8tRVZQAhI7=8wvcGiz?$Qp$ z&i?cM*)g`oF|Iz~LixRqwF~3Y$MTb%cp&rFGb-I{2l^hU0RJWz{EzrUgPC+o zLx0adArBzBrb;i$e(zoFQSKgpU1y&^=0ZlI?;mZ@-MNja@R(ttKyExBPn8Z}94A79 zWsDSFMLh8z_BpuARSB-!ChBk*B%@RToBLCxJ=sjcqWq{y+AY6~eSCO(LXC`57NpQ# zzn85u;O1inkhW!S$Gf{>d)9wK?dUc3sUgFfsj6Zs;|5#%)|{r-8SQM$Y3jCbqjoW? z=wzN2d)^H>r=h|wVA%*T7GMgsTpCVNq1;FHHc0+ zf2@;!vj+CjF&gX+v}*phg)yuBkf_&4I@dBe3;mNK#rbYA$(QG{VdW*v6usoSU;fd-*2+Cp zZz7(>CzuXS{GmP9b&A0?ipse-FJws}&wWAlxGC>R)FZsY?8?EL?na(c`nPLF)KgcW zyfH|C^_v?}!dKKyls5(_2BvlU$99^)%j@=E?W&{mH1E)(!VCW6J)y4=E9A?>Q0qKM zBbf3<{Q1pYX7sT+dmLI?rqkUTDYOQ=?35I#-|M)w82Vc&*q5H5lSE-$oG+wDGwMd` z>^8AS*vo!x|fKiTnmCFHd23%EA>F>iSV08-l{YcbCpiyX-)(?Iv!Trr^V6Ot_!Ts0= zrXai=u0lUj`!xJUxWz9jNVq+LB!TdQ>lqCe-5m0J-tRqQ&~Kqpl+wnTG{FGJnmZ}u=25;F2GKc#kbSpQuD25 zq%0(C?w`{ArtKVN3cvSi&pFH+88=tYsVaIp6a3GX{wqK)g`EXkYb)-N{?XFEHHP!a zwox1S?7f_ewrI%`P%}4*LJ(pVW%n`flTSpPKjz)_gyFo`qCMYc8T{2%OI*vZmY9~W zEdwFzwzE{Qj5*&Qn1`Owe09uw@QLvA88-*@ugcW&v?ORD)I6cU^OYyW*3@9x8^tBR zy5Z`czS^-?!Xuo#JCq2W?=LJ;{eIM17mOyBL^6Rf*6O0?GB9aAjULcXnV0;?HNCL*k zz+m6F!pyxA7j1N4;asM4{`fJ z<9-tE?{Js!U(JMj0Imow{G@?gM*0neH^6N|cqjZCxF&>IJJgZDxDWLBvf%scQMw)P zUn0hsUZwT;vkoqKmA-C0!fWF9&h385_9|UQSWN;sZQU;*#c@YUM)x746y1?Bz8knh zkJ4q7 zGl`i+K(if1|q@gLojV^`Y zb(ShT25KrgL%YP2l)`z$GthfDN!ys!7jRkx+D`A~bJsWi(LE-I zzKz&JTV}WE^IxGCMMiT{xCG2N^F@^#PhxT$p%;mv2J5GfO zfW`vag;U{=X@3J0_j+(CjU?!{u>6C75dn;!f$?+NdzV3(QQJ_HvyfU&@_h&#-TVE3 zqXW)`uGwvyO6xEG5o35U#&9g$G`KoA8`cN5zSP414DLU0{Yn!^I^1G7Aqjgtl)0TY z*p;3Ssq8w2Qjek3xA5kFr-fJDC)HgB6>=?G50{Cd##iVP>p4iy$2w=X%>y6KDlBrI zGM=Lq)*;SC&e6WFA%(*D7$(QX!mk`tlGWc;(dpJm7qbyFDD@rsV`^4g^SxP~A<8<0 z1EWmt{sh{0fpy~0x?Vn$UtBl)W^XC*jgcAbA7R*EtrwEDth<@8!U=Jtu@^k4b0zW;O!pj(MjtnWu?ww|K#FS9Wn(XIEWG&qyBC=JoR z4q8r!zN~VmNYTDF7S0dUsi%v;W*_6Yhj}LVPS7gOu|I5RYKMkd@`KbUbadX=_CH4q zN5C_^M}LJs+4q@X)tu$KUB5D)qhpIUkn0hjMAPxD0X+S0->@GXp(C#S;0QhK8sxFV z0+`k#3avK;LF>s--~?j$>V}{YC4`KEr-g#M5;|HM7W@~-V|QKBU&>~GB&3o;LvMtl zPv_A@dzw_@d$zkF4`Kb@!pV)3(Ytq{cbhshZqCfw>(<&7j@7)sP&B-|Br68ZrTZdftWRVl^SlFRpmmYtH)qE`>#TA=~#a<)KV{E1N;1 zG26b@p*3q-SZp9-FC(UF6$=Fe&J>{WKA7^{#=CrFo$TK^h=1-nP7+fk6~1jwCo~ib zuuo5#;eHZhoQ?nI!OMOd;cws+>p-V~yUj11k1+c`JD~GqMj2+5F&Z^)Ee)?q3Q`qT zgC}cZoNnxf$~sD1N-0{3gnnGCE5Y{EgLAZgjDt|)GyWfN#y+U2br8b={{hOze9L&T zChQoj6&#AR4|YePe0_F!jSuJlAubtvZ-u9W_BklJ_W8RZkI<*8Zxyqp*y}$|#Tt_< zyaqB`$VuGdVNr@;_6wfbi2AZ`QerLpa%c#73GsArb4pxl&;ZSj9{+((vqO#Z8tx~8 zygbtf-RJ-E!*rax^;;5%=Uq+FGvGF)qo)Q#`g}nnI~)ANvCscukCn?8TQR@A)iKvS zI!9$^vcY0dZgd3p{3EdEw@4P-h-}=d*P-V;p)hxH4s;)?6u=yg^jC3$umUm+XS;Z` z=B|zrZuO0DGC_(r`n(Txh;Hrc*1{CW*Z$dE$=I{%H)&s6_@Iy_q(zhpsqq$HD;tM` zWx$1M`gKZGBdi3Bf57qI91Mo>V&=s&N}O7u1KUdy%~C&T)R3l!LBD#aUnu!;s**J0 zdmA(2$idPO!oEEUj=;SH*d+M>-EJKnx7+PmoUa4zmde|$1GtQDzM~-=t+uuM&Q>!8 zTWvI2EwW<{cyTJb0JG)-_$!v|5jhIaKVW~zVOLx2g4RCV&f0n~+PW{= z`m1)mJC65;61@=v_&?iCke`i~{{zcXuj4%F0yT!USs8CLCTUNaRtMWmJwr(ZI6ux9 zk7dS@g>XIi_Ag{52|@aVCm{caup8~k+Jv>|dZg_EjJ0Q=jTjAOk5h-1`ghlzEw#5h zi;u4?wA7aN&Ag?ef-N;AdkR|0_FGHcEkESGI|uxeHLR^x@b;L9_V^w)NGAkaDUdo2 zsozl6f@9@r?y<;I!Sk%-c~SxWltZoZShw{zXfcP51hf$)j>rk+eX^RTCL{GNp2sZ5 zxk+^>cqH|j)!=lhJYVuLKNS5j^ndh+0sUb>d!GddOm>Or54JjoLaSpRWIhRWkJ#?y z9Wfvy9%%Q+gYCXFD~?QuW9@FsRg%XL9u9y0EG4Nx`xYX+58)3HK8J8C!onOS>4xt? z+FT;W&da&jk8a zC+_qA;lFzHm99;^M>nEJ_tWd{4ZM9-b}RN)Ld9b_tld-|9dFBZ@>%z~-`c;HxAYpc z=rbHzBA<4b{042~&{a7~&riLqXIIF7a<2&XQ2@3KuuB}aOs;n?3yugT?_IB10@#-v zmMCGr-CQpBh<7dmWg6XwJnWv|6d`Zp>rnecV z@$>^6KT{sZ(?bny#tfeR6i=TlC-ZbC%Ads3byNdcev@M&W|KYFp>c~nZ+dn*{;eA9 z*aNfBIE>zLkRp}|ENVH%fKGhd)=4*{?quXn!RS?Gd%b_`Wi!Qpdf4pBM(pn3c=hHf z$+dZL)|@n0;5|2Xh!SR7?sfNww@2E(!c zXHJ2VRIdvmY}~ScfYEiGjFbLIGps(U3{K1^(0VK=%g-=uvxl2L%2yjs+Vv)#F)L3< z+Lk8{&C2f&dfahq6l7$q;mU$&)6`|NJt?|v1F}MX)VHa z_GZ|&Y^I+#H`A7qW_l^3nO@CprXKiRVl$;&KY-~@Fzsn3zc)t7b{@@Kl5q^=nJ4l1 zaUP$9xK(S#XfOfiEuLnDbmQlWXrzT9t*(R7s9O}^EYCF~Ee>giz%gi<3o5ZfhgcQI zcu)y?;@oJ&p9b{7d(YB%{+@DPW<1_=iDPdDc0tS;TAz9bG(VQVv_mykKe7!}?|P20 z0z2J8EG>+i1A9%Nvb!b zLk2rsYIS{D$ZC}V+$(uFDHE1+0?)Y{w4w?gPvP+jYk*U*&p-SGVF*em!r!E1)NU^AS>3wx341X4fgKhRYB}nb2flJG>A1`padfrb4Di zLciq?mXwZkoMk_-F39Ti&H|t7a|JQq*TN~|#7USvFSM^h-w57w+6(U4Z3?_&BGRl{ zw(3?p(bD-M-epDFO5n|I+fw=z@T!5AgtP~hEbq-UC(=GaT0GJYs#sck+M{l#xU7iT z!)<`(e8x>>)+%6?11khrV|dPA(+YxVz2NgqLfY)M&7}+7{qas8QsQ~a-KeQ7h0Zwbm`{Ofv!$3<>jRVLw_@J6cYhF(j&S4)Z4QUV@uDtKrLljCbzzxCTf zNEVX}SX%y+eu^=HG(I+1?fhv&+$z}X`4MzmR>wc1To3<}&a?=;YX{QaMA{@Z!|qLk zr3Tcf4k^1Ki#WTjtbkkGE^~^n;+qfBPcTYk*ULqMc%|qojFF5~Hd3(TF8duf{oOvW zKtarwmR|p2(9D@0?4q99A~seBw-*#W;5t~u#?YX4Vk{^+ly5KE=Vx-o1^F0VkRsma z59OSi-Qx_fKf&hK_p$3Y*>CSQJCCPBmhRS64Rp-w$u7uzC18YQ!%{r^hM&^(?j+Mx zjFh&q6Y->Dbv2k}#xpIFKlO9b78si9XOV!Wz!UA|YP9wj^FGH6(pa-*& zYk!@%-c|Pb4yNZJ8ow<(37I*oaZz4|@lamL47RU0?rNdA{LkGBO4KF(*FVYSv@fNZ zAZe{!lUhw~aac3kk9n=kLy402-~;Sg?m?gDDww7m(*fP*&!$SLSgv#v z!v{t$?Eed)zIrr>|!Zb)~SuX zIM)q>R*QKKq&}@=*f~(#YSt^Djh$iAoAR~`hI0C0ngUp(^yPFUEJoKxGVN&NBSz`S zBPLKOMwH|gs0|k$Q5Y^fHVk9Yxd!7hQsEX2FT)qc!vadGZuGxfNfOgC0%eK6Yc#&d z>KyJH(XGI$zMX!*^$-5>9gr|BP#Mh9r0l!71diZ&wYMSj6m=^#7cGu4+3CFYpLEW1 zGpuph<2Y7`X9{ee*>NhdIMQU3TMu3Tf#51%Qr^}#t?>T|dVwS56v>30z^l+*x3C>A zGj{GjyxF{R6vu zO^i-+BFzFhu`IpC_kQ=MNWn~(YVk$1m(!0+b=cFeQB&bB1!uLwU&6=QZGF<3;2z{u zIrOkMDajl-w(ehm-w3DNj(srPOIwxXyW%)!LS;+s71^7Qscl-e(ehfzZp^gk_4CjjFG}&5#Q-5vV?>Ro`naOj^M2C9umSB$p$zhoC$6yTq0Z&+%T(Yt!OG(i~Dk{3H+~_#9QjA4wh1|R&9b@ zEx2nNOGW8Q*{3GcR#u|f%0|I_Ykg}OtFBC=EUq| zUh2ag6ZmKzmTeA>=JPl?21YZ}n`64%CR>`M_kGr7&tqD%253C96SM*2*MRYB04>A7 z`IlyBM~fK8xK*#+;(+G2YY2bGNLbB*)CZlWAL+Xrf7x)m)*a{-GiLq@eR%8QK17CO~j(m=>!}@a; z-~{_K$n&nt@O2iPEDOw|6|UF(&-U0II#6}G{c^i|H5(mQyT#QNe$2^y_N?$<;=1pT zOb+P2?`SB&c=-Dr+V2(qFS=8B?^@BjC)yXFcT3Q_mH6&Nd$d?!ukio5TU^F$|3o8w zNBa_#@K(2b+3(}yjc$>bAfklB?P(}s2{6~R4@TP(Q+&3fGCo_VQdS1^$nB0;TP*&a zY@Ajsju_|#2>90vwhot$Y=zwhez%In5ry^+!yL1&Jq#@l+hx5L$Z;-o6b#p1>WlX{ z+ClR}dSK0AEq*fC-aj-c$tx$(mSu57d^CixZ{LG9JO+1xwKdj{it8D|js|TZvj$M% zpMmy}8#5%YqrxwB4~Lz&2l0mS?JjpTZvF6rXAe5>bvrSwJ+k(G+t;A@`MgVLfus4T zeJ#_{Q6{gtK+N-7wB|MEGhuzznzt__T1GAOc_r#R zsx{APDR4~Z^h2NbZk{3|B_o(J1}RGOaHLEMrdW82*n(R>pT~5oV(bdo~_R z?TSFpn3;hNBDX|Lsv;2&x3bVKj;BE_IPqWQJtIqwSYhPIc8| z{>GF$Mq$; z#^v&jYs+&ou=*^+47Dsr0jGjv)YfITW!cIDUAR?O38{@G@}+B}0%r(EL3Wql13G-P zD^E_9=GmU)C;pY#8>C7P<%D=<;ly9RT)6n4d=j)jCe5EBL2kp-zefQY!2-yrmADtc zYVDru(S*V4HS<9yNa56xd9vL-F9>5?_Ik}6z)T#LE6?Rr2epA1XXTJ;CFGG9&0(f2 z1=9s%HcubV(`D#C2dF8jMv13ec=|Nx8wJwqjF~+BZJwS1eWO6S)i{}_NAmPZ&^Kb~ z&4!W2i9B7))6+4pu=EO~V|P=nfNchLZe^Ah`enCy<=#-(t++~3(Dqv(lfALDqVv`* z%hmuL^xGhHgYER|o`y`uS4#3%_-$}!G0(*Oq$K*?ps^wS`2%re)fFXKfbsd{-Zw@DlbP?Fr=8Q*mS(@c;S`C0Pc4)el$$kf#jcIS6k+xC!A$u7Z9C|4sN~ z_au-B@Ylk}v536Q;wa}w_|vZ`$*{f9y*?O67Q=t)u29geTc~-yN_xblvnixv-|!wS z{u2@Z$wb(>!7hNGS)!V##u|`6-y|)-LChE((aEl785Ls?&6V3_4cGyDK_es`vD0-BazKR*tq42;O zR2#|oY`tKJ=ur6kB+vM%uXe^ygeWh~jYi5%4$o9%p^Om?S`*56#FmXR?xm_ zm-Eye<%IvQr^`L@sv|F^QTH~e0w|94rbysX)_r~a>HefIxdmM~6_ zn+%q|4QpI{uPr+6%7*Q%eTsdmed>K({+Ge4GC9V}BcTt|<~`qC>`{`rZUJ=a!>Uk; z(Y(bjhGCTxImTarp(0c9mmF3J28GcAjD8%$EXQ+hgyMxFsVZQh;8r6Yoy zjV)&P?EB#QJrZMcpGHLnVSHXPh-4jT*Lz4{yfQhb6WvNO6|j#~Dw3yDk;efmKzt1L z@N8TkK)B@H0aE78`xHZ@r=P6K43~80GjGm^&Wq`*%$vFJN44tQnK$hSCA7@C>CLRl zOl(bX|LsWu8l}aayOb7tKUf(o_Dn}83U(WnSOLqe7gTZQEDpt87W*K;vN?+z@!bPnH+*8swv9U4<$g4Td*D@h77C}SG$~$KGGW^OW1R`V-EML*fS;7aj~Qc z?W|9UUBm1Q=u;N0QF8yHQ!>Vug&G%?3C2V4FP5F9QJ`Tl+o8PRxd`$BSaWp z0?U|DlD2hFj?$oq#m6(CT{7E?G4J=!IYXOsdvPl~IE`3+>t{e30z7f%Go23RD-D8? z`Ji&FxgBz@3BWRL3K1;CctpF$gpiMl8|W<90eq_Hn5)+^@IrK$kS>^`&MP5ROF~1; z{m!q4H3AQ*Fo&Lpy+RU#{SXlaQRR-76m9{$4JM8?fSSk#M{$>#d=qj$ zaAhlX@4ke&D#0S0A81jvC^4hix=2v_iZq?t&&CV0n>!HqyoF-N*M{?d!LA`$mQ~A~ zhcwD_rd`Z(xXH=J&N*6bjoG~~Q{DQ&ZnfoblLWbeWlppOX`xOcU^UqUI~Th#7TI1U z96N<*P#VGo5wg#Wp3&wF`yiaZ<8r4S{TiNfXs!Olcc=ryZ(*3&#S5Gs5}txH9qOi$ zU$xi*D_npwXnk*_B8aBERN86ond$O zKMNm_+PrU~qn#Pj4fprVwvB$E3wcV3J53V2x;11}RMUO1nDkG2wM@pIA(LR07#H%KVqc>} zxleVV-J#xhjE#{oyn2|S|-pN^Vj!)?s0y9R8;>&~uvEa-3+a&-mB&oTeojnZFD6BBjyzmkTQW;%_lyQf4DSzH72&rE> z4>@nw;3C?|2`Lk=w+c3pN|xoiSiC>t%i9IWHkFLSJ(N!3ww4?zUQo0ivP??nHs?vF zvP@yhDpQ%Z!9Q81Gby(szLkh-Ca1A&7TRzR-0PShrosIkVg0*oUg-2E9FKs-+77?v z1hbk7D^@t2k`ec{xMBOM!+#%6^kf)pVRcW&msC4rAm<~I!~QH9khwcghk~P^^{8O? z<5N&!rbJtcewU9(N)yIG9uNQhaqA12m(MUh2BhRYWpqk3<8f$VPl?gnoc4b$@Abde zjqlS$yPol%=tg@lJ5n4C3idPpKS4L(NO5dF`(hSeWz`?Q2-S3xUxwnt?Mm6^`!WrqfN?*?a{U`=BCk=N(Xe|`Szug{-x z2y#K#n_!z!z7pXQXp~3i%=VBx<+4y|`Z5)?%O~QzHygLEl+%}UlhKZNk4Z1rf%B#? z^|RGMCRA&xgT}rJ&sVLmN}#Ocboha#uhOC8!XZ6s9M|UUp^S<=CPgq6tSdR;sK0i+ z8Sm3S8@Pj_rs1H3w}!?3k=b{|PW42ll=z$)ZT}GNlx4Hw_uI^Q&qL~t(TVyC7RMs2 z`fh?#zWofe2cVf|buVXqto2O*?`9Xlos)KVvBvj(XYCTUGq3EmO0Q#t$I=YfLTM3X zK6iHQJUT&o6@OU+Y*)PkSU4@gjw2MX4PDH>YeI*!vj+F8y~yW~=jjFXzYRChu5Xtc z?~)Edw&@VlfT(EmK10Jz&s;eO%Nwv4SHf;OZ1aB9yWht3@-Q2`4@&a_fsN`K|M{MP z^nMbT-e+mhzp~c&KM$sdTIYlE2w9qZ*v{&Lod{F@74{`(I@t3c*mDv?x^D;OQ>;fR z6MPdex*0#j+PD!ldX%02XkU|j#VS2!Yx8dD?S+k60rnwg5r%i56L(M+ze8thl%d!-oC@``dgPKa5tFH>x-DVk-`wc?%D3`@)f(<-L(Y+4%S zzKR_wOFibTe^}%G)e_c<(PLtDJCvzD54<)f@IW0#4QAT@P~7Gn)SLb&{?aW1?1(6h zv5(Hc+aVjbrp+7LJKdIUza3NdX4%&N7VGNCupR#`=It@9s?kup>YRW-C{&v0%cbZA z)MDpswsvoVmF|?(D%?ib_fW5F?J)A%R@U68k1Uv`?VHe{`?yMhX?*G z_Mg;1KNkN=HR3PAO-20A@E!0UhJO+6OE@3g4{&90e}#J#ZWf#ZYu?9xa>TP+rrlhZIvufQ#Ijn30QyISCbxtlREy9AU>t!z7XFS@D==M%jpF6J zm1;)(&xj`h`d+F5v40|#(9##V&ma`b@mf-&0Qnm6{=mDC+6S>85ewtcE2(P4e?eRc zo9NH?ugVl!afcXWh@izHz5}ZC_r|2IT1y{?y6#^zy6ip-)R8#5LMdQpFb zZV`>EPQof-KAyWoh7p!rCzm&Y#{yaFc{np37Z>H<^1j=HyVi^qNEKIggoR zH?cMb{_I=cx}F$Q-Q~m@_I6FxmExCIhF0Po;+u4$cyUF)%Gj0q%0(+9D%m^wR~{;g z1ay`dRT;ZtK&5fjz{>np+A3XzrhZW6BFDFmH)*;)tnv#`(E1z*uhM#A@U{wKZ~Vsp zb-POX#($yxahxTU(q{RVcX^NAwEVIe@)#rp+BsvBpcJ&gXQtM1FikdklsC#B8L6i%?YSF@YLqnq;Z-^*^y zzHZ0|LQ_C^w&v+HSyiPmsVgnW`w27+s;$Y8hF@3|k@wuw5oH&io>PX?P1(ZTt!3bk zr}Q&k*eVzffiC}5yRI?P^tPK>Tw%M2=cf0z%>pd~H>kkAgH;;B=bj5)rd7>H)9vTA zSfGyT4AJ<<#xrxE$-%H)a zO5a`Ji%s`!$jXnz809Vdk)AcvzD0JJ-{^8t-8^roq*Xn zo2FxZThSg3yUBa}rOYz1WWq{d0OpA9fu<3tAJ!f06<%5?c>djKfn59CqSJIiqA+ng zy)W?$JxuCd%Jns{Ds4o0GrKLYplZZwe3(%G-5qx9%`KoP9M;z2&F68+@TO`3(cf}C_j_uExye~UH60^BQ2|iaO zc<7z5Uu!CgbK#z1a?1;AM};gLkMI_HgomRMUXT0kSb7w~YpIEc^$4#-Yq5RlGyeC% ze}^^%`1vL8ep{#lPjSI2A`G>*dv)}8NzP~duhCJQVmK1x|GBPv+)7Ceen1u-nsd^A z7B)A~c3h4wNoF>5W@^;XkOw4UBeO-cL=>kzMSu#aMjvK(vG!hmhpcNF#ut+h zegp0LEnL_O31lMNO1NE!FFvXwecn?M)(%X5%)@A{Q;FjhM{{Aus_mH(UtM#I5`?kG zW8RySWmng1gFTXycDv&h`^or)(FTuF$g_J+FsnPB6UdnoU3k-5)`XCtcM*iYYhup6gK|VkpB#Dtu2s_zvcZHoa+?nF5jOZ z*|+(`bhL#8yPxg&_T(4Y9V?8Yz{W30GNUacJC6xUZ+YppX!io0YcJ@z>mf_L7n}%T zoNAP(6*LX->G%3y#2Gfee+2k1eSK=oogz=I<~$pkvDg1h6Zq9ApN(55INkvp%ANiz z9rogA9bs<-oJpeZFZ^clMwz0R#W`0OYLT9`Eo`p&4PuZgSb~oT*9O&GURl~S7)FN zd;PsVjPE%amR`ZfsG1DU&SY?QCWEFs8Qh)8LH_gIw!5=C{l_5zYH>`GW89O1G}upZ z_N>=T$Pqj{IV@ccbFν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 literal 0 HcmV?d00001 diff --git a/programs/data/firmware/brcm/brcmfmac43455-sdio.clm_blob b/programs/data/firmware/brcm/brcmfmac43455-sdio.clm_blob new file mode 100644 index 0000000000000000000000000000000000000000..c905a503e0182c5d4eae657a587949b3df7ef7ae GIT binary patch literal 2676 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 literal 0 HcmV?d00001 diff --git a/programs/data/firmware/brcm/brcmfmac43456-sdio.clm_blob b/programs/data/firmware/brcm/brcmfmac43456-sdio.clm_blob new file mode 100644 index 0000000000000000000000000000000000000000..36b8652655e5bf1704cc3471eba91f7e836d9b05 GIT binary patch literal 7163 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

      Ae$V zeg{#+BA8!0cY?a_AmP3;^1K==lGWI!!NSlgaRV+qN;HDGqcxPl2JA@i+&~4raCQ++ z(Zp+NS7mh%oO0TBz@w<;mZ|Y?TD$;#buYJ@@E=|0@8?bkO zpVFapm}p-mVLwQwy|1Rj{sE1QkBpGmM=iXJ?e~C3m%i==W!eXgy_wqtk>p(FCWz!M zgUx`?c2hC4xlh)O0l;V?t5QcagRF8>Wwoga*9@j!wi!$`(Si%j(ka`5Wm#Nq1#3dK zr9y6jtFz`TbkyR|Y6Ki>sma(1xN5aj>@CFJA5GA73we%5urq17et>o>U;?)Sj&Uo% zoNp=2Erq!S%s88ZceS#$kTGvIweFFXbEaWASS~~x;lyJm+3g@4tF7wZMid^y+lXS= zOjEv%9D0jGTfITr0avqam#nbUN8An&T5aHw%AyTlav98i7DSqL;dCgLqG=btJcF)U zPTd_ET1?Foy8&CWE;4pAc8jvEa_Xv#xxwsa_aI<`i?oDHFv?YFaf3C}c2Pl(emKy> zehE4_)}sl+R^c}A+%zkcKL}#y0~ObSnsEmR$K%*RuqNa?7?p{QQ?>)LdFx>ZIh6FX zI-rF2%I+vibau#IvGJDaC?<3iAv=2kH#&+N9mS1~inN1B<=UI=0GRJf<+&3?YIRU| zFPWX7+@f<&Sq{o=;keY>W+c0++}(h^R#%mvt0rt$m7p8Ee621JdNu6^2=iTqunUCV z^z15x-2h>>3xqc!*pqaD&;#GS8`P_-fZahdr_Bsy@4$N|HU=ShUuf7wdixgb4%q9h zkayImLyYp~;32}1!0f{y*5UD(551 zBzjAPE!QA+b9pl6^&1eDu>-}?9raeAtj|ye8$E;NQrW|PEaeG7;qpC%JQK@8xkFLW z$CSlRFcJ!fG3pM5t{PV$98zB>BwOxMI-8!L>0Xb*ldzNN$wfxLj;(tSSNL-+l`=7QO)bd4#+dkc96Al%S)0z=We^C9Ei+poCQ=tSRB9 z5{gQ=r39p9#RS8TKnZX6b);rWf-XeLPL**+Ym07KjNxP?Wm}ol+=OgP%eHYgL~3{f zZ;qlZN*Pg^7u#jg&p57i@G0ngET;HE3_62ytRu(zN4rC4O*yHO-&ztkrGFf!o4bv7R6yfJg$g{5E6PONSY5FxKly~p1n*@#J8gK{5aZW zjOU*nKP>^wAyIQ;3UN+gpun+{jMES#QUl1M=nlwYhHzvrpHmsX#Svk@#eo4&C+%f8 zVLMq=LWbVW%92S+ST>O3fJxNLV$@Hl^qLlvvg)G{N1+#jp5yCPa5M}($H7T44xmJ% zAS}MnQcijn2gNwF5WQK^D~l0~cTxgJO`e#7*iDIH8Ox9t%aDxa6PKfi*+~;li9~Hq z_)qvJf+J4nKv$n4mdt2cte1r@sWbqq0|CoC9(!C&dw?dcPpm?DP;^&Ck}vd>gO-&U zj0DKj>*91pJVX6`@begrlN(|CL+7C;V>z9dIukOM5yUd`Q+3BrndBgp7sP-+T+S&R z@QBBA;&EAA0n$-v{trZy1IIC9Mkzv?zErauWyF5EP wTbg}1dp`Se_Pg01N~O|y>E*+R56>UIeE8k@`T5K9A6~wE`5mqw@R33P3wm?iS^xk5 literal 0 HcmV?d00001 diff --git a/programs/data/firmware/brcm/brcmfmac43456-sdio.txt b/programs/data/firmware/brcm/brcmfmac43456-sdio.txt new file mode 100644 index 0000000..a34c691 --- /dev/null +++ b/programs/data/firmware/brcm/brcmfmac43456-sdio.txt @@ -0,0 +1,97 @@ +# Cloned from bcm94345wlpagb_p2xx.txt +NVRAMRev=$Rev: 498373 $ +sromrev=11 +vendid=0x14e4 +devid=0x43ab +manfid=0x2d0 +prodid=0x06e4 +#macaddr=00:90:4c:c5:12:38 +macaddr=b8:27:eb:74:f2:6c +nocrc=1 +boardtype=0x6e4 +boardrev=0x1304 + +#XTAL 37.4MHz +xtalfreq=37400 + +btc_mode=1 +#------------------------------------------------------ +#boardflags: 5GHz eTR switch by default +# 2.4GHz eTR switch by default +# bit1 for btcoex +boardflags=0x00480201 +boardflags2=0x40800000 +boardflags3=0x44200100 +phycal_tempdelta=15 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=1 +tssipos2g=1 +femctrl=0 +AvVmid_c0=0,157,1,126,1,126,1,126,1,126 +pa2ga0=-170,5896,-680 +pa2ga1=-156,4032,-547 +pa5ga0=-150,5547,-628,-150,5583,-640,-158,5608,-649,-160,5757,-673 +pa5ga1=-109,3831,-519,-88,3821,-512,-125,3731,-528,-103,3829,-516 +itrsw=1 +pdoffsetcckma0=2 +pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 +pdoffset2g40ma0=16 +pdoffset40ma0=0x8888 +pdoffset80ma0=0x8888 +extpagain5g=2 +extpagain2g=2 +tworangetssi2g=1 +tworangetssi5g=1 +# LTECX flags +# WCI2 +ltecxmux=0 +ltecxpadnum=0x0504 +ltecxfnsel=0x22 +ltecxgcigpio=0x32 + +maxp2ga0=80 +ofdmlrbw202gpo=0x0022 +dot11agofdmhrbw202gpo=0x4442 +mcsbw202gpo=0x98444422 +mcsbw402gpo=0x98444422 +maxp5ga0=82,82,82,82 +mcsbw205glpo=0xb9555000 +mcsbw205gmpo=0xb9555000 +mcsbw205ghpo=0xb9555000 +mcsbw405glpo=0xb9555000 +mcsbw405gmpo=0xb9555000 +mcsbw405ghpo=0xb9555000 +mcsbw805glpo=0xb9555000 +mcsbw805gmpo=0xb9555000 +mcsbw805ghpo=0xb9555000 + +swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff +swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 + +vcodivmode=1 +deadman_to=481500000 + +ed_thresh2g=-54 +ed_thresh5g=-54 +eu_edthresh2g=-54 +eu_edthresh5g=-54 +ldo1=4 +rawtempsense=0x1ff +cckPwrIdxCorr=3 +cckTssiDelay=150 +ofdmTssiDelay=150 +txpwr2gAdcScale=1 +txpwr5gAdcScale=1 +dot11b_opts=0x3aa85 +cbfilttype=1 +fdsslevel_ch11=6 + +# Improved Bluetooth coexistence parameters from Cypress +btc_mode=1 +btc_params8=0x4e20 +btc_params1=0x7530 diff --git a/programs/data/licenses/NOTICES.txt b/programs/data/licenses/NOTICES.txt index 191d2ae..1817235 100644 --- a/programs/data/licenses/NOTICES.txt +++ b/programs/data/licenses/NOTICES.txt @@ -675,6 +675,61 @@ License: Cypress Wireless Connectivity Devices Driver End User License use with Cypress integrated circuit products. The full license text is included at 0:/os/licenses/Cypress-bt-firmware.txt. +================================================================================ +24. Cypress / Synaptics (Broadcom) Wi-Fi firmware +================================================================================ +Shipped as binary firmware, CLM regulatory blobs and NVRAM files +(0:/os/firmware/brcm/brcmfmac43455-sdio.{bin,clm_blob,txt} and +brcmfmac43456-sdio.{bin,clm_blob,txt}), loaded at runtime into the CYW43455 / +CYW43456 Wi-Fi radio of the Raspberry Pi 4 and 400 by the MontaukOS Wi-Fi +driver. The files are taken unmodified from Raspberry Pi OS's firmware-nonfree +package (brcmfmac43455-sdio.bin and .clm_blob are its +cypress/cyfmac43455-sdio-standard.bin and cyfmac43455-sdio.clm_blob). + + Upstream: https://github.com/RPi-Distro/firmware-nonfree + (debian/config/brcm80211/) + + CYW43455 firmware, CLM blob and NVRAM: + Copyright (c) Cypress Semiconductor Corporation (an Infineon company) + License: Cypress Wireless Connectivity Devices Driver End User License + Agreement (the same text as for the Bluetooth firmware above); full + text at 0:/os/licenses/Cypress-bt-firmware.txt. Reproduction and + distribution in object code form are permitted solely for use with + Cypress integrated circuit products. + + CYW43456 firmware, CLM blob and NVRAM: + Copyright (c) Synaptics Incorporated + License: Synaptics Wireless Connectivity Devices Driver End User License + Agreement (binary distribution); full text at + 0:/os/licenses/Synaptics-wifi-firmware.txt. Distribution in object code + form is permitted solely for use with Synaptics integrated circuit + products. + +================================================================================ +25. Linux brcmfmac (Broadcom FullMAC Wi-Fi driver) +================================================================================ +The MontaukOS Broadcom Wi-Fi driver (kernel/src/Drivers/Net/Wifi/Brcmf.hpp, +BrcmfChip.cpp, BrcmfProto.cpp, BrcmfConnect.cpp) is derived in part from the +brcmfmac driver in the Linux kernel (drivers/net/wireless/broadcom/brcm80211/): +its chip enumeration, core reset, clock and firmware start-up sequences, NVRAM +format, and the firmware interface's constants and structure layouts. + +License: ISC License + + Copyright (c) 2010-2014 Broadcom Corporation + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + ================================================================================ For licensing inquiries regarding MontaukOS itself, contact: licensing@montaukos.org ================================================================================ diff --git a/programs/data/licenses/Synaptics-wifi-firmware.txt b/programs/data/licenses/Synaptics-wifi-firmware.txt new file mode 100644 index 0000000..bd7eb2d --- /dev/null +++ b/programs/data/licenses/Synaptics-wifi-firmware.txt @@ -0,0 +1,161 @@ +SYNAPTICS WIRELESS CONNECTIVITY DEVICES +DRIVER END USER LICENSE AGREEMENT (BINARY DISTRIBUTION) + +PLEASE READ THIS END USER LICENSE AGREEMENT ("Agreement") CAREFULLY BEFORE +DOWNLOADING, INSTALLING, OR USING THIS SOFTWARE, ANY ACCOMPANYING +DOCUMENTATION, OR ANY UPDATES PROVIDED BY SYNAPTICS ("Software"). BY +DOWNLOADING, INSTALLING, OR USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND +BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS +AGREEMENT, PROMPTLY RETURN AND DO NOT USE THE SOFTWARE. IF YOU HAVE +PURCHASED THE SOFTWARE, YOUR RIGHT TO RETURN THE SOFTWARE EXPIRES 30 DAYS +AFTER YOUR PURCHASE AND APPLIES ONLY TO THE ORIGINAL PURCHASER. + +Software Provided in Binary Code Form. This paragraph applies to any Software +provided in binary code form. Subject to the terms and conditions of this +Agreement, Synaptics Incorporated ("Synaptics") grants you a +non-exclusive, non-transferable license under its copyright rights in the +Software to reproduce and distribute the Software in object code form only, +solely for use in connection with Synaptics integrated circuit products +("Purpose"). + +Proprietary Rights. The Software, including all intellectual property rights +therein, is and will remain the sole and exclusive property of Synaptics or its +suppliers. Except as otherwise expressly provided in this Agreement, you may +not: (i) modify, adapt, or create derivative works based upon the Software; +(ii) copy the Software; (iii) except and only to the extent explicitly +permitted by applicable law despite this limitation, decompile, translate, +reverse engineer, disassemble or otherwise reduce the Software to +human-readable form; or (iv) use the Software other than for the Purpose. + +No Support. Synaptics may, but is not required to, provide technical support for +the Software. + +Term and Termination. This Agreement is effective until terminated. This +Agreement and Your license rights will terminate immediately without notice +from Synaptics if you fail to comply with any provision of this Agreement. Upon +termination, you must destroy all copies of Software in your possession or +control. Termination of this Agreement will not affect any licenses validly +granted as of the termination date to any end users of the Software. The +following paragraphs shall survive any termination of this Agreement: +"Proprietary Rights," "Compliance With Law," +"Disclaimer," "Limitation of Liability," and "General." + +Compliance With Law. Each party agrees to comply with all applicable laws, +rules and regulations in connection with its activities under this Agreement. +Without limiting the foregoing, the Software may be subject to export control +laws and regulations of the United States and other countries. You agree to +comply strictly with all such laws and regulations and acknowledge that you +have the responsibility to obtain licenses to export, re-export, or import +the Software. + +Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, SYNAPTICS MAKES +NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THE SOFTWARE, +INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Synaptics reserves the +right to make changes to the Software without notice. Synaptics does not assume +any liability arising out of the application or use of Software or any +product or circuit described in the Software. Synaptics does not authorize its +products for use as critical components in life-support systems where a +malfunction or failure may reasonably be expected to result in significant +injury to the user. The inclusion of Synaptics product in a life-support +system or application implies that the manufacturer of such system or +application assumes all risk of such use and in doing so indemnifies Synaptics +against all charges. + +Limitation of Liability. IN NO EVENT WILL SYNAPTICS OR ITS SUPPLIERS, +RESELLERS, OR DISTRIBUTORS BE LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, +OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES +HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE +USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF SYNAPTICS OR ITS SUPPLIERS, +RESELLERS, OR DISTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. IN NO EVENT SHALL SYNAPTICS' OR ITS SUPPLIERS' RESELLERS', OR +DISTRIBUTORS' TOTAL LIABILITY TO YOU, WHETHER IN CONTRACT, TORT (INCLUDING +NEGLIGENCE), OR OTHERWISE, EXCEED THE PRICE PAID BY YOU FOR THE SOFTWARE. +THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE ABOVE-STATED WARRANTY FAILS +OF ITS ESSENTIAL PURPOSE. BECAUSE SOME STATES OR JURISDICTIONS DO NOT ALLOW +LIMITATION OR EXCLUSION OF CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE +LIMITATION MAY NOT APPLY TO YOU. + +Restricted Rights. The Software under this Agreement is commercial computer +software as that term is described in 48 C.F.R. 252.227-7014(a)(1). If +acquired by or on behalf of a civilian agency, the U.S. Government acquires +this commercial computer software and/or commercial computer software +documentation subject to the terms of this Agreement as specified in 48 +C.F.R. 12.212 (Computer Software) and 12.211 (Technical Data) of the Federal +Acquisition Regulations ("FAR") and its successors. If acquired by or on +behalf of any agency within the Department of Defense ("DOD"), the U.S. +Government acquires this commercial computer software and/or commercial +computer software documentation subject to the terms of this Agreement as +specified in 48 C.F.R. 227.7202-3 of the DOD FAR Supplement ("DFAR") and its +successors. + +General. This Agreement will bind and inure to the benefit of each party's +successors and assigns, provided that you may not assign or transfer this +Agreement, in whole or in part, without Synaptics' written consent. This +Agreement shall be governed by and construed in accordance with the laws of +the State of California, United States of America, as if performed wholly +within the state and without giving effect to the principles of conflict of +law. The parties consent to personal and exclusive jurisdiction of and venue +in, the state and federal courts within Santa Clara County, California; +provided however, that nothing in this Agreement will limit Synaptics' right to +bring legal action in any venue in order to protect or enforce its +intellectual property rights. No failure of either party to exercise or +enforce any of its rights under this Agreement will act as a waiver of such +rights. If any portion hereof is found to be void or unenforceable, the +remaining provisions of this Agreement shall remain in full force and +effect. This Agreement is the complete and exclusive agreement between the +parties with respect to the subject matter hereof, superseding and replacing +any and all prior agreements, communications, and understandings (both +written and oral) regarding such subject matter. Any notice to Synaptics will +application assumes all risk of such use and in doing so indemnifies Synaptics +against all charges. + +Limitation of Liability. IN NO EVENT WILL SYNAPTICS OR ITS SUPPLIERS, +RESELLERS, OR DISTRIBUTORS BE LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, +OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES +HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE +USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF SYNAPTICS OR ITS SUPPLIERS, +RESELLERS, OR DISTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. IN NO EVENT SHALL SYNAPTICS' OR ITS SUPPLIERS' RESELLERS', OR +DISTRIBUTORS' TOTAL LIABILITY TO YOU, WHETHER IN CONTRACT, TORT (INCLUDING +NEGLIGENCE), OR OTHERWISE, EXCEED THE PRICE PAID BY YOU FOR THE SOFTWARE. +THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE ABOVE-STATED WARRANTY FAILS +OF ITS ESSENTIAL PURPOSE. BECAUSE SOME STATES OR JURISDICTIONS DO NOT ALLOW +LIMITATION OR EXCLUSION OF CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE +LIMITATION MAY NOT APPLY TO YOU. + +Restricted Rights. The Software under this Agreement is commercial computer +software as that term is described in 48 C.F.R. 252.227-7014(a)(1). If +acquired by or on behalf of a civilian agency, the U.S. Government acquires +this commercial computer software and/or commercial computer software +documentation subject to the terms of this Agreement as specified in 48 +C.F.R. 12.212 (Computer Software) and 12.211 (Technical Data) of the Federal +Acquisition Regulations ("FAR") and its successors. If acquired by or on +behalf of any agency within the Department of Defense ("DOD"), the U.S. +Government acquires this commercial computer software and/or commercial +computer software documentation subject to the terms of this Agreement as +specified in 48 C.F.R. 227.7202-3 of the DOD FAR Supplement ("DFAR") and its +successors. + +General. This Agreement will bind and inure to the benefit of each party's +successors and assigns, provided that you may not assign or transfer this +Agreement, in whole or in part, without Synaptics' written consent. This +Agreement shall be governed by and construed in accordance with the laws of +the State of California, United States of America, as if performed wholly +within the state and without giving effect to the principles of conflict of +law. The parties consent to personal and exclusive jurisdiction of and venue +in, the state and federal courts within Santa Clara County, California; +provided however, that nothing in this Agreement will limit Synaptics' right to +bring legal action in any venue in order to protect or enforce its +intellectual property rights. No failure of either party to exercise or +enforce any of its rights under this Agreement will act as a waiver of such +rights. If any portion hereof is found to be void or unenforceable, the +remaining provisions of this Agreement shall remain in full force and +effect. This Agreement is the complete and exclusive agreement between the +parties with respect to the subject matter hereof, superseding and replacing +any and all prior agreements, communications, and understandings (both +written and oral) regarding such subject matter. Any notice to Synaptics will +be deemed effective when actually received and must be sent to Synaptics +Incorporated, ATTN: General Counsel, 1109 McKay Dr. +San Jose, CA 95131, USA + diff --git a/programs/src/wifi/main.cpp b/programs/src/wifi/main.cpp index 0579977..c2b3047 100644 --- a/programs/src/wifi/main.cpp +++ b/programs/src/wifi/main.cpp @@ -146,8 +146,8 @@ static abi::WifiNetwork g_nets[64]; static bool require_adapter(abi::WifiInfo& info) { if (wifi_info(&info) != 0 || !info.present) { print("wifi: no supported Wi-Fi adapter found.\n"); - print(" Only Intel AX210-family devices with an RF type of GF " - "(AX211) are supported.\n"); + print(" Supported: Intel AX210-family devices with an RF type of GF " + "(AX211), and the Raspberry Pi 4/400's on-board radio.\n"); return false; } if (info.state != abi::WIFI_STATE_RUNNING) { diff --git a/tests/wifi/brcmf_harness.cpp b/tests/wifi/brcmf_harness.cpp new file mode 100644 index 0000000..85db8e1 --- /dev/null +++ b/tests/wifi/brcmf_harness.cpp @@ -0,0 +1,769 @@ +/* + * brcmf_harness.cpp + * Host harness for the Broadcom FullMAC driver's protocol and connection + * layers (BrcmfProto.cpp, BrcmfConnect.cpp, with the real supplicant). + * + * The SDIO bus and the backplane are replaced by a simulated CYW4345x + * firmware: it decodes every SDPCM frame the driver writes to function 2 + * (CDC ioctls, BDC data), answers ioctls the way the firmware does, and + * feeds back events and data frames through the same framing. The access + * point side of the WPA2 handshake is written here independently of + * Wpa.cpp, on the crypto primitives crypto_vectors checks against the + * published vectors. + * + * What stays untested is everything that needs the chip: the SDIO host, + * the backplane, firmware download (BrcmfSdio.cpp, BrcmfChip.cpp), and + * the firmware's own opinion of the structures it is sent. + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "Drivers/Net/Wifi/Brcmf.hpp" +#include "Drivers/Net/Wifi/BrcmfSdio.hpp" +#include "Drivers/Net/Wifi/Ieee80211.hpp" +#include "Drivers/Net/Wifi/Wpa.hpp" +#include "Drivers/Platform/RpiFirmware.hpp" +#include "Libraries/Crypto.hpp" + +using namespace Drivers::Net::Wifi; +using Bytes = std::vector; + +namespace Timekeeping { + uint64_t g_ms = 1000; + uint64_t GetMilliseconds() { return g_ms; } + void BusyWaitMs(uint64_t ms) { g_ms += ms; } + void BusyWaitUs(uint64_t us) { g_ms += (us + 999) / 1000; } +} + +static int g_fails = 0; +static void check(bool cond, const char* what) { + printf(" %s %s\n", cond ? "PASS" : "FAIL", what); + if (!cond) g_fails++; +} + +static uint16_t be16(const uint8_t* p) { return (uint16_t)(p[0] << 8 | p[1]); } +static uint16_t le16(const uint8_t* p) { return (uint16_t)(p[0] | p[1] << 8); } +static uint32_t le32(const uint8_t* p) { uint32_t v; memcpy(&v, p, 4); return v; } +static void putle16(Bytes& b, uint16_t v) { b.push_back((uint8_t)v); b.push_back((uint8_t)(v >> 8)); } +static void putle32(Bytes& b, uint32_t v) { for (int i = 0; i < 4; i++) b.push_back((uint8_t)(v >> (8 * i))); } +static void putbe16(Bytes& b, uint16_t v) { b.push_back((uint8_t)(v >> 8)); b.push_back((uint8_t)v); } +static void putbe32(Bytes& b, uint32_t v) { for (int i = 3; i >= 0; i--) b.push_back((uint8_t)(v >> (8 * i))); } +static void append(Bytes& b, const uint8_t* p, size_t n) { b.insert(b.end(), p, p + n); } + +static const uint8_t PLACEHOLDER_MAC[6] = { 0xb8, 0x27, 0xeb, 0x74, 0xf2, 0x6c }; +static const uint8_t BOARD_MAC[6] = { 0xdc, 0xa6, 0x32, 0x01, 0x02, 0xff }; +static const uint8_t WLAN_MAC[6] = { 0xdc, 0xa6, 0x32, 0x01, 0x03, 0x00 }; // board + 1, with carry +static const uint8_t AP_OPEN[6] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x01 }; +static const uint8_t AP_WPA[6] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x02 }; + +// ============================================================================= +// Simulated firmware +// ============================================================================= + +struct Ioctl { + uint32_t Cmd; + bool Set; + std::string Name; // iovar name, for GET_VAR/SET_VAR + Bytes Data; // what follows the name (or the whole payload) + uint64_t Order; +}; + +struct Fw { + std::deque ToHost; // complete SDPCM frames + Bytes Cur; + size_t CurOff = 0; + uint8_t HostSeq = 0; // next sequence number expected + uint8_t Window = 8; + bool SeqError = false; + bool Mute = false; // stop answering ioctls + std::vector Ioctls; + std::vector> DataTx; // Ethernet frames, order + uint64_t Order = 0; + bool AutoJoin = true; + void (*OnEapol)(const Bytes& body) = nullptr; +}; +static Fw fw; + +static void QueueFrame(uint8_t channel, const Bytes& payload) { + Bytes f(12, 0); + uint16_t len = (uint16_t)(12 + payload.size()); + f[0] = (uint8_t)len; f[1] = (uint8_t)(len >> 8); + f[2] = (uint8_t)~len; f[3] = (uint8_t)(~len >> 8); + f[4] = 0; + f[5] = channel; + f[7] = 12; + f[9] = (uint8_t)(fw.HostSeq + fw.Window); // credit + append(f, payload.data(), payload.size()); + fw.ToHost.push_back(f); +} + +static Bytes Bdc(const Bytes& eth) { + Bytes b = { 0x20, 0, 0, 0 }; + append(b, eth.data(), eth.size()); + return b; +} + +static void QueueEvent(uint32_t type, uint32_t status, uint32_t reason, uint16_t flags, + const uint8_t* addr, const Bytes& data = {}) { + Bytes e; + append(e, WLAN_MAC, 6); + append(e, AP_WPA, 6); + putbe16(e, 0x886C); + putbe16(e, 0x8001); + putbe16(e, (uint16_t)(48 + data.size())); + e.push_back(1); + e.push_back(0x00); e.push_back(0x10); e.push_back(0x18); + putbe16(e, 1); + putbe16(e, 2); // version + putbe16(e, flags); + putbe32(e, type); + putbe32(e, status); + putbe32(e, reason); + putbe32(e, 0); // auth type + putbe32(e, (uint32_t)data.size()); + Bytes a(6, 0); + if (addr) memcpy(a.data(), addr, 6); + append(e, a.data(), 6); + Bytes ifname(16, 0); + memcpy(ifname.data(), "wlan0", 5); + append(e, ifname.data(), 16); + e.push_back(0); // ifidx + e.push_back(0); // bsscfgidx + append(e, data.data(), data.size()); + QueueFrame(1, Bdc(e)); +} + +static void QueueEthernet(const uint8_t* src, uint16_t type, const Bytes& body) { + Bytes e; + append(e, WLAN_MAC, 6); + append(e, src, 6); + putbe16(e, type); + append(e, body.data(), body.size()); + QueueFrame(2, Bdc(e)); +} + +// One brcmf_bss_info_le, laid out as Linux's struct. +static Bytes BssInfo(const uint8_t* bssid, const char* ssid, uint16_t chanspec, uint8_t ctl, + int16_t rssi, uint16_t caps, const Bytes& ies) { + Bytes b(128, 0); + memcpy(&b[0], "\x6d\x00\x00\x00", 4); // version 109 + uint32_t len = (uint32_t)(128 + ies.size()); + memcpy(&b[4], &len, 4); + memcpy(&b[8], bssid, 6); + uint16_t bcn = 100; + memcpy(&b[14], &bcn, 2); + memcpy(&b[16], &caps, 2); + b[18] = (uint8_t)strlen(ssid); + memcpy(&b[19], ssid, strlen(ssid)); + memcpy(&b[72], &chanspec, 2); + b[76] = 3; + memcpy(&b[78], &rssi, 2); + b[88] = ctl; + uint16_t ieOff = 128; + memcpy(&b[116], &ieOff, 2); + uint32_t ieLen = (uint32_t)ies.size(); + memcpy(&b[120], &ieLen, 4); + append(b, ies.data(), ies.size()); + return b; +} + +static const Bytes RSN_CCMP = { + 0x01, 0x00, 0x00, 0x0f, 0xac, 0x04, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x04, + 0x01, 0x00, 0x00, 0x0f, 0xac, 0x02, 0x00, 0x00, +}; +static const Bytes RSN_GCMP = { + 0x01, 0x00, 0x00, 0x0f, 0xac, 0x08, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x08, + 0x01, 0x00, 0x00, 0x0f, 0xac, 0x02, 0x00, 0x00, +}; + +static Bytes Ies(const char* ssid, uint8_t channel, const Bytes* rsn) { + Bytes ie; + ie.push_back(0); ie.push_back((uint8_t)strlen(ssid)); + append(ie, (const uint8_t*)ssid, strlen(ssid)); + ie.push_back(1); ie.push_back(4); ie.push_back(0x82); ie.push_back(0x84); ie.push_back(0x0b); ie.push_back(0x16); + ie.push_back(3); ie.push_back(1); ie.push_back(channel); + if (rsn) { + ie.push_back(48); ie.push_back((uint8_t)rsn->size()); + append(ie, rsn->data(), rsn->size()); + } + return ie; +} + +static void QueueEscan(uint16_t syncId) { + Bytes bss1 = BssInfo(AP_OPEN, "OpenNet", 0x1006, 6, -48, 0x0401, Ies("OpenNet", 6, nullptr)); + Bytes bss2 = BssInfo(AP_WPA, "SecureNet", 0xd024, 36, -61, 0x0411, Ies("SecureNet", 36, &RSN_CCMP)); + for (const Bytes* bss : { &bss1, &bss2 }) { + Bytes r; + putle32(r, (uint32_t)(12 + bss->size())); + putle32(r, 1); + putle16(r, syncId); + putle16(r, 1); + append(r, bss->data(), bss->size()); + QueueEvent(69, 8, 0, 0, nullptr, r); // PARTIAL + } + QueueEvent(69, 0, 0, 0, nullptr); // done +} + +static void FwControl(const uint8_t* p, size_t len) { + uint32_t cmd = le32(p), dlen = le32(p + 4), flags = le32(p + 8); + bool set = flags & 2; + const uint8_t* data = p + 16; + size_t avail = len - 16; + if (dlen > avail) dlen = (uint32_t)avail; + + Ioctl io{cmd, set, "", {}, fw.Order++}; + if (cmd == 262 || cmd == 263) { + size_t n = strnlen((const char*)data, dlen); + io.Name.assign((const char*)data, n); + if (n + 1 < dlen) io.Data.assign(data + n + 1, data + dlen); + } else { + io.Data.assign(data, data + dlen); + } + fw.Ioctls.push_back(io); + if (fw.Mute) return; + + int32_t status = 0; + Bytes resp(dlen, 0); + if (cmd == 262) { + if (io.Name == "cur_etheraddr") memcpy(resp.data(), PLACEHOLDER_MAC, 6); + else if (io.Name == "ver") { + const char* v = "wl0: Aug 29 2023 01:51:02 version 7.45.265 (28bca26 CY) FWID 01-b677b91b\n"; + memcpy(resp.data(), v, strlen(v) < dlen ? strlen(v) : dlen); + } else if (io.Name == "clmload_status") { + } else status = -23; // BCME_UNSUPPORTED + } else if (cmd == 263) { + if (io.Name == "escan") { + QueueEscan(le16(io.Data.data() + 6)); + } else if (io.Name == "join" && fw.AutoJoin) { + QueueEvent(0, 0, 0, 0, io.Data.data() + 56); + QueueEvent(16, 0, 0, 1, io.Data.data() + 56); + } else if (io.Name == "bus:rxglom" || io.Name == "mfp" || io.Name == "sup_wpa") { + status = -23; + } + } else if (cmd == 217) { // valid channels + uint32_t list[3] = { 2, 1, 36 }; + memcpy(resp.data(), list, sizeof(list) < dlen ? sizeof(list) : dlen); + } + + Bytes r; + putle32(r, cmd); + putle32(r, dlen); + putle32(r, (flags & 0xFFFF0002u) | (status < 0 ? 1 : 0)); + putle32(r, (uint32_t)status); + append(r, resp.data(), resp.size()); + QueueFrame(0, r); +} + +static void FwReceive(const uint8_t* f, size_t busLen) { + uint16_t len = le16(f), check = le16(f + 2); + if ((uint16_t)(len ^ check) != 0xFFFF || len > busLen) { fw.SeqError = true; return; } + if (f[4] != fw.HostSeq) fw.SeqError = true; + fw.HostSeq = (uint8_t)(f[4] + 1); + uint8_t ch = f[5] & 0x0F, off = f[7]; + const uint8_t* p = f + off; + size_t plen = len - off; + if (ch == 0) { + FwControl(p, plen); + } else if (ch == 2) { + if (plen < 4 || (p[0] >> 4) != 2 || p[3] != 0) { fw.SeqError = true; return; } + Bytes eth(p + 4, p + plen); + fw.DataTx.push_back({eth, fw.Order++}); + if (eth.size() >= 14 && be16(ð[12]) == 0x888E && fw.OnEapol) + fw.OnEapol(Bytes(eth.begin() + 14, eth.end())); + } +} + +// ============================================================================= +// What the driver links against instead of the hardware +// ============================================================================= + +namespace Drivers::Net::Wifi { + + BrcmfDevice g_brcmf; + + bool BrcmfBpRead32(uint32_t addr, uint32_t& value) { + value = 0; + if (addr == g_brcmf.SdioCoreBase + 0x20 && (!fw.ToHost.empty() || !fw.Cur.empty())) + value = 0x40; // I_HMB_FRAME_IND + return true; + } + bool BrcmfBpWrite32(uint32_t, uint32_t) { return true; } + bool BrcmfBpReadMem(uint32_t, uint8_t*, uint32_t) { return true; } + bool BrcmfBpWriteMem(uint32_t, const uint8_t*, uint32_t) { return true; } + bool BrcmfBpSelectWindow(uint32_t) { return true; } + bool BrcmfF1Read8(uint32_t, uint8_t& v) { v = 0; return true; } + bool BrcmfF1Write8(uint32_t, uint8_t) { return true; } + + bool BrcmfChipBringUp() { + g_brcmf.FwName = "43456"; + g_brcmf.SdioCoreBase = 0x18002000; + g_brcmf.HostIntMask = 0x200000F0; + return true; + } + void BrcmfChipPowerOff() {} + void BrcmfDumpConsole() {} + + uint8_t* BrcmfLoadFile(const char* ext, uint32_t& size, bool) { + if (strcmp(ext, "clm_blob") != 0) return nullptr; + size = 3000; + uint8_t* p = (uint8_t*)malloc(size); + for (uint32_t i = 0; i < size; i++) p[i] = (uint8_t)i; + return p; + } + + struct Seen { Bytes Bssid; Bytes Ies; uint16_t Beacon, Caps; uint8_t Channel; int8_t Rssi; }; + static std::vector g_seen; + static std::vector g_delivered; + + void WifiRxBssInfo(const uint8_t* bssid, uint16_t beaconInterval, uint16_t capability, + const uint8_t* ies, uint32_t iesLen, uint8_t channel, int8_t rssiDbm) { + g_seen.push_back({Bytes(bssid, bssid + 6), Bytes(ies, ies + iesLen), beaconInterval, + capability, channel, rssiDbm}); + } + void WifiRxEthernet(const uint8_t* frame, uint32_t len) { + g_delivered.push_back(Bytes(frame, frame + len)); + } + + // Routed by Wifi.cpp in the kernel. + bool WpaTxEapol(const uint8_t* body, uint32_t len) { return BrcmfWpaTxEapol(body, len); } + bool WpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { + return BrcmfWpaInstallPtk(tk, tkLen, cipher); + } + bool WpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc) { + return BrcmfWpaInstallGtk(gtk, gtkLen, keyIdx, cipher, rsc); + } +} + +namespace Drivers::Net::Wifi::Sdio { + bool HostInit(uint64_t, uint32_t) { return true; } + bool CardInit() { return true; } + bool Read8(uint32_t, uint32_t, uint8_t& v) { v = 0; return true; } + bool Write8(uint32_t, uint32_t, uint8_t) { return true; } + bool EnableFunction(uint32_t, bool, uint64_t) { return true; } + bool EnableCardInterrupts(uint8_t) { return true; } + void Abort(uint32_t) {} + bool CardInterruptPending() { return !fw.ToHost.empty(); } + bool IsInitialized() { return true; } + + bool ReadBlock(uint32_t fn, uint32_t, bool, uint8_t* buffer, uint32_t len) { + if (fn != FN2 || (len & 3)) return false; + Timekeeping::g_ms++; + if (fw.Cur.empty()) { + if (fw.ToHost.empty()) { memset(buffer, 0, len); return true; } + fw.Cur = fw.ToHost.front(); + fw.ToHost.pop_front(); + fw.CurOff = 0; + } + for (uint32_t i = 0; i < len; i++, fw.CurOff++) + buffer[i] = fw.CurOff < fw.Cur.size() ? fw.Cur[fw.CurOff] : 0; + if (fw.CurOff >= ((fw.Cur.size() + 3) & ~(size_t)3)) fw.Cur.clear(); + return true; + } + + bool WriteBlock(uint32_t fn, uint32_t, bool, const uint8_t* buffer, uint32_t len) { + if (fn != FN2 || (len & 3)) return false; + if (len > FN2_BLOCK && len % FN2_BLOCK) fw.SeqError = true; // padded to whole blocks + Timekeeping::g_ms++; + FwReceive(buffer, len); + return true; + } +} + +namespace Drivers::Platform::RpiFirmware { + bool GetBoardMacAddress(uint8_t mac[6]) { memcpy(mac, BOARD_MAC, 6); return true; } + bool SetGpioOutput(uint32_t, bool) { return true; } +} + +// ============================================================================= +// An independent WPA2-PSK authenticator +// ============================================================================= + +namespace Ap { + using namespace Kt::Crypto; + static const char* SSID = "SecureNet"; + static const char* PASS = "supersecret123"; + static uint8_t pmk[32], ptk[48], anonce[32], snonce[32], gtk[16]; + static uint64_t replay = 0; + static Bytes lastMsg2, lastMsg4, staRsn; + static bool msg2MicOk = false, msg4MicOk = false; + + static void Prf(const uint8_t* key, const char* label, const Bytes& data, uint8_t* out, size_t n) { + uint8_t counter = 0; + size_t done = 0; + while (done < n) { + Bytes m((const uint8_t*)label, (const uint8_t*)label + strlen(label) + 1); + append(m, data.data(), data.size()); + m.push_back(counter++); + uint8_t h[20]; + HmacSha1(key, 32, m.data(), m.size(), h); + size_t take = n - done < 20 ? n - done : 20; + memcpy(out + done, h, take); + done += take; + } + } + + static Bytes KeyFrame(uint16_t info, const Bytes& keyData, bool mic) { + Bytes k(99, 0); + k[0] = 2; k[1] = 3; + uint16_t bodyLen = (uint16_t)(95 + keyData.size()); + k[2] = (uint8_t)(bodyLen >> 8); k[3] = (uint8_t)bodyLen; + k[4] = 2; + k[5] = (uint8_t)(info >> 8); k[6] = (uint8_t)info; + k[8] = 16; + for (int i = 0; i < 8; i++) k[9 + i] = (uint8_t)(replay >> (56 - 8 * i)); + memcpy(&k[17], anonce, 32); + k[97] = (uint8_t)(keyData.size() >> 8); k[98] = (uint8_t)keyData.size(); + append(k, keyData.data(), keyData.size()); + if (mic) { + uint8_t h[20]; + HmacSha1(ptk, 16, k.data(), k.size(), h); + memcpy(&k[81], h, 16); + } + return k; + } + + static bool MicOk(Bytes frame) { + if (frame.size() < 99) return false; + uint8_t mic[16]; + memcpy(mic, &frame[81], 16); + memset(&frame[81], 0, 16); + uint8_t h[20]; + HmacSha1(ptk, 16, frame.data(), frame.size(), h); + return memcmp(h, mic, 16) == 0; + } + + static void Start(const char* pass) { + Pbkdf2Sha1(pass, strlen(pass), (const uint8_t*)SSID, strlen(SSID), 4096, pmk, 32); + for (int i = 0; i < 32; i++) anonce[i] = (uint8_t)(0xA0 + i); + for (int i = 0; i < 16; i++) gtk[i] = (uint8_t)(0x30 + i); + replay = 1; + lastMsg2.clear(); lastMsg4.clear(); staRsn.clear(); + msg2MicOk = msg4MicOk = false; + QueueEthernet(AP_WPA, 0x888E, KeyFrame(0x008A, {}, false)); // msg 1 + } + + static void OnEapol(const Bytes& f) { + if (f.size() < 99 || f[1] != 3) return; + uint16_t info = be16(&f[5]); + if (!(info & 0x0100)) return; + if (lastMsg2.empty()) { + lastMsg2 = f; + memcpy(snonce, &f[17], 32); + Bytes data; + const uint8_t* a = memcmp(AP_WPA, WLAN_MAC, 6) < 0 ? AP_WPA : WLAN_MAC; + const uint8_t* b = a == AP_WPA ? WLAN_MAC : AP_WPA; + append(data, a, 6); append(data, b, 6); + const uint8_t* n1 = memcmp(anonce, snonce, 32) < 0 ? anonce : snonce; + const uint8_t* n2 = n1 == anonce ? snonce : anonce; + append(data, n1, 32); append(data, n2, 32); + Prf(pmk, "Pairwise key expansion", data, ptk, 48); + msg2MicOk = MicOk(f); + uint16_t kdl = be16(&f[97]); + staRsn.assign(f.begin() + 99, f.begin() + 99 + kdl); + if (!msg2MicOk) { + // Wrong passphrase: the AP gives up and deauthenticates. + QueueEvent(6, 0, 15, 0, AP_WPA); + return; + } + // Message 3: our RSN IE and the GTK KDE, key-wrapped under the KEK. + Bytes plain = { 0x30, (uint8_t)RSN_CCMP.size() }; + append(plain, RSN_CCMP.data(), RSN_CCMP.size()); + Bytes kde = { 0xdd, 22, 0x00, 0x0f, 0xac, 0x01, 0x01, 0x00 }; + append(kde, gtk, 16); + append(plain, kde.data(), kde.size()); + plain.push_back(0xdd); + while (plain.size() % 8) plain.push_back(0); + Bytes wrapped(plain.size() + 8); + AesKeyWrap(ptk + 16, 16, plain.data(), plain.size(), wrapped.data()); + replay = 2; + QueueEthernet(AP_WPA, 0x888E, KeyFrame(0x13CA, wrapped, true)); + } else if (lastMsg4.empty()) { + lastMsg4 = f; + msg4MicOk = MicOk(f); + } + } +} + +// ============================================================================= +// Cases +// ============================================================================= + +static void Pump(int rounds = 20) { + for (int i = 0; i < rounds; i++) { + BrcmfService(); + Timekeeping::g_ms += 5; + } +} + +static const Ioctl* LastSet(const char* name) { + for (auto it = fw.Ioctls.rbegin(); it != fw.Ioctls.rend(); ++it) + if (it->Set && it->Name == name) return &*it; + return nullptr; +} + +static uint32_t SetInt(const char* name) { + const Ioctl* io = LastSet(name); + return io && io->Data.size() >= 4 ? le32(io->Data.data()) : 0xDEADBEEF; +} + +static const Ioctl* LastCmd(uint32_t cmd) { + for (auto it = fw.Ioctls.rbegin(); it != fw.Ioctls.rend(); ++it) + if (it->Cmd == cmd) return &*it; + return nullptr; +} + +static constexpr int CONN_IDLE = 0, CONN_ASSOCIATING = 4, CONN_HANDSHAKING = 6, + CONN_CONNECTED = 7, CONN_FAILED = 8; + +static void CaseInit() { + printf("== bring-up and preinit ==\n"); + check(BrcmfProbe(0xFE300000), "the Arasan controller is claimed"); + check(BrcmfCompleteInit(), "preinit completes against the firmware"); + check(!fw.SeqError, "every frame carries the next sequence number and a valid header"); + check(BrcmfGetState() == BrcmfState::Running, "the radio is running"); + check(memcmp(g_brcmf.Mac, WLAN_MAC, 6) == 0, "the NVRAM placeholder MAC becomes the board address + 1"); + const Ioctl* mac = LastSet("cur_etheraddr"); + check(mac && mac->Data.size() == 6 && memcmp(mac->Data.data(), WLAN_MAC, 6) == 0, + "and is programmed into the firmware"); + check(strcmp(g_brcmf.FwVersion, "7.45.265") == 0, "the firmware version is read from \"ver\""); + + std::vector clm; + for (auto& io : fw.Ioctls) if (io.Set && io.Name == "clmload") clm.push_back(&io); + check(clm.size() == 3, "a 3000-byte CLM blob goes down in three chunks"); + if (clm.size() == 3) { + check(le16(clm[0]->Data.data()) == 0x1002 && le16(clm[1]->Data.data()) == 0x1000 && + le16(clm[2]->Data.data()) == 0x1004, "flagged begin / middle / end, handler version 1"); + check(le16(clm[0]->Data.data() + 2) == 2, "of type CLM"); + check(le32(clm[0]->Data.data() + 4) == 1400 && le32(clm[2]->Data.data() + 4) == 200, + "with 1400-byte chunks and the remainder last"); + check(clm[1]->Data[12] == (uint8_t)1400 && clm[2]->Data[12 + 199] == (uint8_t)2999, + "carrying the blob's bytes in order"); + } + + const Ioctl* ev = LastSet("event_msgs"); + bool evOk = ev && ev->Data.size() == 16; + if (evOk) { + for (uint32_t e : { 0u, 5u, 6u, 12u, 16u, 69u }) + evOk = evOk && (ev->Data[e / 8] & (1u << (e % 8))); + } + check(evOk, "events for join, link, deauth/disassoc and escan are enabled"); + check(SetInt("roam_off") == 1, "firmware roaming is off"); + const Ioctl* up = LastCmd(2); + check(up && up->Set, "WLC_UP is sent"); + const Ioctl* pm = LastCmd(86); + check(pm && le32(pm->Data.data()) == 0, "power save is off"); + check(g_brcmf.ChannelCount == 2 && g_brcmf.Band24 && g_brcmf.Band5, + "the valid channel list gives the channel count and bands"); + + uint32_t v = 0; + check(!BrcmfIovarGetInt("no_such_iovar", v, true), "an iovar the firmware rejects reports failure"); + check(BrcmfGetState() == BrcmfState::Running, "without counting against the firmware's health"); +} + +static void CaseScan() { + printf("== escan ==\n"); + check(BrcmfStartScan(), "a scan starts"); + const Ioctl* es = LastSet("escan"); + check(es && es->Data.size() == 72, "escan carries the 72-byte v1 parameter block"); + if (es && es->Data.size() == 72) { + const uint8_t* p = es->Data.data(); + check(le32(p) == 1 && le16(p + 4) == 1, "version 1, action start"); + bool bcast = true; + for (int i = 0; i < 6; i++) bcast = bcast && p[44 + i] == 0xFF; + check(bcast && p[50] == 2 && p[51] == 0, "broadcast BSSID, any BSS type, active"); + check(le32(p + 52) == 0xFFFFFFFF && le32(p + 68) == 0, "default dwells, every channel"); + } + Pump(); + check(!BrcmfScanActive(), "the completion event ends the scan"); + check(g_seen.size() == 2, "both BSSs reach the scan table"); + if (g_seen.size() == 2) { + check(memcmp(g_seen[0].Bssid.data(), AP_OPEN, 6) == 0 && g_seen[0].Channel == 6 && + g_seen[0].Rssi == -48 && g_seen[0].Beacon == 100, "BSSID, channel, RSSI, beacon interval"); + check(g_seen[1].Channel == 36 && (g_seen[1].Caps & 0x10), "the 5 GHz network, privacy set"); + check(g_seen[1].Ies.size() == Ies("SecureNet", 36, &RSN_CCMP).size() && g_seen[1].Ies[0] == 0, + "with its information elements intact"); + } +} + +static void CaseOpenJoin() { + printf("== open network ==\n"); + check(BrcmfConnectStart(AP_OPEN, 6, "OpenNet", nullptr, nullptr, 0), "the join is accepted"); + check(SetInt("wpa_auth") == 0 && SetInt("wsec") == 0 && SetInt("auth") == 0, + "no WPA, no encryption, open system authentication"); + const Ioctl* j = LastSet("join"); + check(j && j->Data.size() == 72, "join carries brcmf_ext_join_params_le"); + if (j && j->Data.size() == 72) { + const uint8_t* p = j->Data.data(); + check(le32(p) == 7 && memcmp(p + 4, "OpenNet", 7) == 0, "the SSID"); + check(memcmp(p + 56, AP_OPEN, 6) == 0 && le32(p + 64) == 1 && le16(p + 68) == 0x1006, + "the BSSID and the chanspec escan reported"); + } + check(BrcmfConnectState() == CONN_ASSOCIATING, "associating until the firmware says otherwise"); + Pump(); + check(BrcmfConnectState() == CONN_CONNECTED && BrcmfLinkUp(), "E_SET_SSID + E_LINK bring the link up"); + + Bytes eth; + append(eth, AP_OPEN, 6); append(eth, WLAN_MAC, 6); putbe16(eth, 0x0800); + for (int i = 0; i < 100; i++) eth.push_back((uint8_t)i); + size_t before = fw.DataTx.size(); + check(BrcmfSendEthernet(eth.data(), (uint32_t)eth.size()), "an Ethernet frame is accepted"); + Pump(2); + check(fw.DataTx.size() == before + 1 && fw.DataTx.back().first == eth, + "and reaches the firmware unchanged behind a BDC header"); + + Bytes big = eth; + big.resize(1514, 0x5a); + check(BrcmfSendEthernet(big.data(), (uint32_t)big.size()), "a full-size frame is accepted"); + Pump(2); + check(fw.DataTx.back().first == big && !fw.SeqError, "and goes out padded to whole blocks"); + + g_delivered.clear(); + QueueEthernet(AP_OPEN, 0x0800, Bytes(60, 0x11)); + Pump(2); + check(g_delivered.size() == 1 && g_delivered[0].size() == 74 && be16(&g_delivered[0][12]) == 0x0800, + "a received data frame is delivered to the stack"); + + QueueEvent(6, 0, 3, 0, AP_OPEN); // DEAUTH_IND + Pump(); + check(BrcmfConnectState() == CONN_IDLE && !BrcmfLinkUp(), "a deauthentication takes the link down"); + check(!BrcmfSendEthernet(eth.data(), (uint32_t)eth.size()), "and nothing is sent while it is down"); +} + +static const Ioctl* FindKey(uint32_t index) { + for (auto it = fw.Ioctls.rbegin(); it != fw.Ioctls.rend(); ++it) + if (it->Set && it->Name == "wsec_key" && it->Data.size() == 164 && le32(it->Data.data()) == index) + return &*it; + return nullptr; +} + +static void CaseWpaJoin() { + printf("== WPA2-PSK ==\n"); + fw.OnEapol = Ap::OnEapol; + size_t ioctlsBefore = fw.Ioctls.size(); + check(BrcmfConnectStart(AP_WPA, 36, "SecureNet", Ap::PASS, RSN_CCMP.data(), (uint8_t)RSN_CCMP.size()), + "the join is accepted"); + check(SetInt("wpa_auth") == 0x80 && SetInt("wsec") == 4 && SetInt("auth") == 0, + "WPA2-PSK, AES, open system authentication"); + const Ioctl* ie = LastSet("wpaie"); + Bytes want = { 0x30, (uint8_t)RSN_CCMP.size() }; + append(want, RSN_CCMP.data(), RSN_CCMP.size()); + check(ie && ie->Data == want, "the supplicant's RSN element goes into the association request"); + const Ioctl* j = LastSet("join"); + check(j && le16(j->Data.data() + 68) == 0xd024, "the 5 GHz chanspec from the scan"); + + Pump(); + check(BrcmfConnectState() == CONN_HANDSHAKING && !BrcmfLinkUp(), + "association waits for the handshake before the link is usable"); + + Ap::Start(Ap::PASS); + Pump(40); + check(!Ap::lastMsg2.empty() && Ap::msg2MicOk, "message 2 carries a MIC the AP verifies"); + check(Ap::staRsn == want, "and the same RSN element"); + check(!Ap::lastMsg4.empty() && Ap::msg4MicOk, "message 4 follows message 3, MIC verified"); + check(BrcmfConnectState() == CONN_CONNECTED && BrcmfLinkUp(), "the link is up once keyed"); + + const Ioctl* ptk = FindKey(0); + const Ioctl* gtk = FindKey(1); + check(ptk && memcmp(ptk->Data.data() + 8, Ap::ptk + 32, 16) == 0 && le32(ptk->Data.data() + 4) == 16, + "the pairwise key is the TK the AP derived"); + if (ptk) { + const uint8_t* k = ptk->Data.data(); + check(le32(k + 112) == 4 && le32(k + 116) == 0 && memcmp(k + 156, AP_WPA, 6) == 0, + "AES-CCM, bound to the AP's address"); + } + check(gtk && memcmp(gtk->Data.data() + 8, Ap::gtk, 16) == 0, "the group key is the AP's GTK"); + if (gtk) { + const uint8_t* k = gtk->Data.data(); + bool noEa = true; + for (int i = 0; i < 6; i++) noEa = noEa && k[156 + i] == 0; + check(le32(k + 116) == 2 && noEa && le32(k + 132) == 1, "primary, broadcast, receive IV set"); + } + uint64_t msg4Order = 0; + for (auto& d : fw.DataTx) + if (d.first.size() > 14 && be16(&d.first[12]) == 0x888E) msg4Order = d.second; + check(ptk && msg4Order != 0 && msg4Order < ptk->Order, + "message 4 reaches the radio before the pairwise key is installed"); + (void)ioctlsBefore; + + QueueEvent(16, 0, 0, 0, AP_WPA); // link down + Pump(); + check(BrcmfConnectState() == CONN_IDLE, "losing the link returns to idle"); +} + +static void CaseWrongPassphrase() { + printf("== wrong passphrase ==\n"); + check(BrcmfConnectStart(AP_WPA, 36, "SecureNet", "not-the-password", RSN_CCMP.data(), + (uint8_t)RSN_CCMP.size()), "the join is accepted"); + Pump(); + Ap::Start(Ap::PASS); + Pump(40); + check(!Ap::lastMsg2.empty() && !Ap::msg2MicOk, "the AP rejects message 2's MIC"); + check(BrcmfConnectState() == CONN_FAILED, "the deauthentication fails the join"); + check(BrcmfJoinFailedOnAuth(), "and it is reported as an authentication failure"); + BrcmfConnectAbort(); + const Ioctl* d = LastCmd(52); + check(d && d->Set && memcmp(d->Data.data() + 4, AP_WPA, 6) == 0, "abort disassociates from the AP"); + check(BrcmfConnectState() == CONN_IDLE, "and leaves the connection idle"); +} + +static void CaseRefusals() { + printf("== refusals ==\n"); + check(!BrcmfConnectStart(AP_WPA, 36, "SecureNet", Ap::PASS, RSN_GCMP.data(), (uint8_t)RSN_GCMP.size()), + "a GCMP network is refused before anything is sent"); + check(BrcmfConnectRefusedForSecurity(), "as a security refusal"); + check(!BrcmfConnectStart(AP_WPA, 36, "SecureNet", nullptr, RSN_CCMP.data(), (uint8_t)RSN_CCMP.size()), + "an encrypted network without a passphrase is refused"); +} + +static void CaseJoinTimeout() { + printf("== join timeout ==\n"); + fw.AutoJoin = false; + check(BrcmfConnectStart(AP_OPEN, 6, "OpenNet", nullptr, nullptr, 0), "the join is accepted"); + Timekeeping::g_ms += 13000; + Pump(2); + check(BrcmfConnectState() == CONN_FAILED, "no answer from the firmware fails the join in bounded time"); + BrcmfConnectAbort(); + + check(BrcmfConnectStart(AP_OPEN, 6, "OpenNet", nullptr, nullptr, 0), "another join is accepted"); + QueueEvent(0, 3, 0, 0, AP_OPEN); // SET_SSID: no networks + Pump(); + check(BrcmfConnectState() == CONN_FAILED, "an E_SET_SSID failure fails it at once"); + BrcmfConnectAbort(); + fw.AutoJoin = true; +} + +static void CaseDeadFirmware() { + printf("== firmware stops answering ==\n"); + fw.Mute = true; + uint32_t v = 0; + for (int i = 0; i < 3; i++) BrcmfIovarGetInt("ver", v, true); + check(BrcmfGetState() == BrcmfState::Error, "three unanswered commands mark the radio failed"); + check(!BrcmfStartScan(), "and nothing more is attempted"); + fw.Mute = false; +} + +int main() { + CaseInit(); + CaseScan(); + CaseOpenJoin(); + CaseWpaJoin(); + CaseWrongPassphrase(); + CaseRefusals(); + CaseJoinTimeout(); + CaseDeadFirmware(); + if (g_fails) { + printf("\n%d Broadcom case(s) FAILED\n", g_fails); + return 1; + } + printf("\nAll Broadcom protocol and connection cases passed.\n"); + return 0; +} diff --git a/tests/wifi/mlme_harness.cpp b/tests/wifi/mlme_harness.cpp index bbcac40..dc099a2 100644 --- a/tests/wifi/mlme_harness.cpp +++ b/tests/wifi/mlme_harness.cpp @@ -135,6 +135,16 @@ namespace Drivers::Net::Wifi { void WifiRxEthernet(const uint8_t* frame, uint32_t len) { puthex("ETH", frame, len); } + + // Wifi.cpp routes the supplicant's hooks to the running backend. + bool WpaTxEapol(const uint8_t* body, uint32_t len) { return IwxWpaTxEapol(body, len); } + bool WpaInstallPtk(const uint8_t* tk, uint32_t tkLen, uint8_t cipher) { + return IwxWpaInstallPtk(tk, tkLen, cipher); + } + bool WpaInstallGtk(const uint8_t* gtk, uint32_t gtkLen, uint8_t keyIdx, + uint8_t cipher, const uint8_t* rsc) { + return IwxWpaInstallGtk(gtk, gtkLen, keyIdx, cipher, rsc); + } } // ============================================================================= diff --git a/tests/wifi/run.sh b/tests/wifi/run.sh index 8fb77fa..10c6df9 100755 --- a/tests/wifi/run.sh +++ b/tests/wifi/run.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash # -# Host-side tests for the Wi-Fi crypto and the WPA supplicant. +# Host-side tests for the Wi-Fi crypto, the WPA supplicant, the Intel MLME and +# the Broadcom FullMAC protocol layer. # # These compile the real kernel sources (Libraries/Crypto.cpp and # Drivers/Net/Wifi/Wpa.cpp) for the host against the small shim in shim/, so @@ -44,5 +45,15 @@ $CXX $CXXFLAGS -o "$out/mlme" \ python3 "$here/ap_mlme.py" "$out/mlme" +echo +echo "== Broadcom FullMAC protocol and join against a simulated firmware ==" +$CXX $CXXFLAGS -o "$out/brcmf" \ + "$here/brcmf_harness.cpp" \ + "$src/Drivers/Net/Wifi/BrcmfProto.cpp" \ + "$src/Drivers/Net/Wifi/BrcmfConnect.cpp" \ + "$src/Drivers/Net/Wifi/Wpa.cpp" "$src/Libraries/Crypto.cpp" + +"$out/brcmf" 2>/dev/null + echo echo "All Wi-Fi host tests passed." diff --git a/tests/wifi/shim/CppLib/Spinlock.hpp b/tests/wifi/shim/CppLib/Spinlock.hpp index df60a37..4a236f9 100644 --- a/tests/wifi/shim/CppLib/Spinlock.hpp +++ b/tests/wifi/shim/CppLib/Spinlock.hpp @@ -14,6 +14,7 @@ namespace kcp { std::atomic_flag f{ATOMIC_FLAG_INIT}; public: void Acquire() { while (f.test_and_set(std::memory_order_acquire)) {} } + bool TryAcquire() { return !f.test_and_set(std::memory_order_acquire); } void Release() { f.clear(std::memory_order_release); } }; } diff --git a/tests/wifi/shim/Memory/Heap.hpp b/tests/wifi/shim/Memory/Heap.hpp new file mode 100644 index 0000000..bcbe4ca --- /dev/null +++ b/tests/wifi/shim/Memory/Heap.hpp @@ -0,0 +1,10 @@ +#pragma once +#include +namespace Memory { + struct HostHeap { + void* Request(size_t n) { return malloc(n); } + void Free(void* p) { free(p); } + }; + inline HostHeap g_hostHeap; + inline HostHeap* g_heap = &g_hostHeap; +} diff --git a/tests/wifi/shim/Terminal/Terminal.hpp b/tests/wifi/shim/Terminal/Terminal.hpp index a510697..f974614 100644 --- a/tests/wifi/shim/Terminal/Terminal.hpp +++ b/tests/wifi/shim/Terminal/Terminal.hpp @@ -1,6 +1,7 @@ #pragma once #include #include +#include namespace Kt { enum KernelLogLevel { INFO, OK, WARNING, ERROR }; class KernelLogStream { @@ -10,5 +11,6 @@ namespace Kt { KernelLogStream& operator<<(const char* s) { fprintf(stderr, "%s", s); return *this; } KernelLogStream& operator<<(uint64_t v) { fprintf(stderr, "%llu", (unsigned long long)v); return *this; } KernelLogStream& operator<<(int v) { fprintf(stderr, "%d", v); return *this; } + KernelLogStream& operator<<(base::Manip) { return *this; } }; } diff --git a/tests/wifi/shim/Timekeeping/Timer.hpp b/tests/wifi/shim/Timekeeping/Timer.hpp index 2f8c66e..6d4237a 100644 --- a/tests/wifi/shim/Timekeeping/Timer.hpp +++ b/tests/wifi/shim/Timekeeping/Timer.hpp @@ -1,3 +1,7 @@ #pragma once #include -namespace Timekeeping { uint64_t GetMilliseconds(); } +namespace Timekeeping { + uint64_t GetMilliseconds(); + void BusyWaitMs(uint64_t ms); + void BusyWaitUs(uint64_t us); +}

      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