From a01e63c717680e7c4dcaef7bd7b984d5e51c56e4 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Thu, 6 Aug 2026 08:36:10 +0200 Subject: [PATCH] feat: intel wi-fi (AX211) driver with network scanning --- kernel/src/Api/BuildNo.hpp | 2 +- kernel/src/Api/Syscall.cpp | 14 + kernel/src/Api/Syscall.hpp | 46 + kernel/src/Api/WifiSyscall.hpp | 35 + kernel/src/Drivers/Init.cpp | 36 +- kernel/src/Drivers/Net/Wifi/Iwx.hpp | 314 ++++ kernel/src/Drivers/Net/Wifi/IwxConnect.cpp | 391 +++++ kernel/src/Drivers/Net/Wifi/IwxFw.cpp | 437 +++++ kernel/src/Drivers/Net/Wifi/IwxMvm.cpp | 684 ++++++++ kernel/src/Drivers/Net/Wifi/IwxReg.hpp | 1221 ++++++++++++++ kernel/src/Drivers/Net/Wifi/IwxTrans.cpp | 1455 +++++++++++++++++ kernel/src/Drivers/Net/Wifi/Wifi.cpp | 439 +++++ kernel/src/Drivers/Net/Wifi/Wifi.hpp | 40 + kernel/src/Timekeeping/ApicTimer.cpp | 7 + .../intel/iwlwifi-so-a0-gf-a0-89.ucode | Bin 0 -> 1736688 bytes .../firmware/intel/iwlwifi-so-a0-gf-a0.pnvm | Bin 0 -> 55176 bytes programs/include/Api/Syscall.hpp | 46 + programs/include/libc/montauk.h | 4 + programs/include/montauk/syscall.h | 21 + programs/man/wifi.1 | 74 + programs/src/wifi/main.cpp | 387 +++++ 21 files changed, 5649 insertions(+), 4 deletions(-) create mode 100644 kernel/src/Api/WifiSyscall.hpp create mode 100644 kernel/src/Drivers/Net/Wifi/Iwx.hpp create mode 100644 kernel/src/Drivers/Net/Wifi/IwxConnect.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/IwxFw.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/IwxMvm.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/IwxReg.hpp create mode 100644 kernel/src/Drivers/Net/Wifi/IwxTrans.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/Wifi.cpp create mode 100644 kernel/src/Drivers/Net/Wifi/Wifi.hpp create mode 100644 programs/data/firmware/intel/iwlwifi-so-a0-gf-a0-89.ucode create mode 100644 programs/data/firmware/intel/iwlwifi-so-a0-gf-a0.pnvm create mode 100644 programs/man/wifi.1 create mode 100644 programs/src/wifi/main.cpp diff --git a/kernel/src/Api/BuildNo.hpp b/kernel/src/Api/BuildNo.hpp index e25e10d..190b865 100644 --- a/kernel/src/Api/BuildNo.hpp +++ b/kernel/src/Api/BuildNo.hpp @@ -12,4 +12,4 @@ #pragma once -#define MONTAUK_BUILD_NUMBER 46 +#define MONTAUK_BUILD_NUMBER 53 diff --git a/kernel/src/Api/Syscall.cpp b/kernel/src/Api/Syscall.cpp index 3b1d8e6..05798b4 100644 --- a/kernel/src/Api/Syscall.cpp +++ b/kernel/src/Api/Syscall.cpp @@ -34,6 +34,7 @@ #include "Audio.hpp" // SYS_AUDIOOPEN, SYS_AUDIOCLOSE, SYS_AUDIOWRITE, SYS_AUDIOCTL #include "BluetoothSyscall.hpp" // SYS_BTSCAN, SYS_BTCONNECT, SYS_BTDISCONNECT, SYS_BTLIST, SYS_BTINFO #include "Sdr.hpp" // SYS_SDR_COUNT, SYS_SDR_INFO, SYS_SDR_OPEN, SYS_SDR_CLOSE, SYS_SDR_START, SYS_SDR_STOP, SYS_SDR_READ, SYS_SDR_SETPARAM, SYS_SDR_GETPARAM +#include "WifiSyscall.hpp" // SYS_WIFI_SCAN, SYS_WIFI_INFO, SYS_WIFI_CONNECT, SYS_WIFI_DISCONNECT #include "IpcSyscall.hpp" // SYS_DUPHANDLE, SYS_WAIT_HANDLE, SYS_STREAM_CREATE, SYS_STREAM_READ, SYS_STREAM_WRITE, SYS_MAILBOX_CREATE, SYS_MAILBOX_SEND, SYS_MAILBOX_RECV, SYS_WAITSET_CREATE, SYS_WAITSET_ADD, SYS_WAITSET_REMOVE, SYS_WAITSET_WAIT, SYS_PROC_OPEN, SYS_SURFACE_CREATE, SYS_SURFACE_MAP, SYS_SURFACE_RESIZE #include "LibSyscall.hpp" // SYS_LOAD_LIB, SYS_UNLOAD_LIB, SYS_DLSYM #include "CrashReportSyscall.hpp" // SYS_CRASH_REPORT @@ -443,6 +444,19 @@ namespace montauk::abi { case SYS_BTINFO: if (!UserMemory::Writable(frame->arg1)) return -1; return Sys_BtInfo((BtAdapterInfo*)frame->arg1); + case SYS_WIFI_SCAN: + if ((int64_t)frame->arg2 < 0) return -1; + if (!UserMemory::Range(frame->arg1, (uint64_t)frame->arg2 * sizeof(WifiNetwork), true)) return -1; + return Sys_WifiScan((WifiNetwork*)frame->arg1, (int)frame->arg2, (uint32_t)frame->arg3); + case SYS_WIFI_INFO: + if (!UserMemory::Writable(frame->arg1)) return -1; + return Sys_WifiInfo((WifiInfo*)frame->arg1); + case SYS_WIFI_CONNECT: + if (!UserMemory::String(frame->arg1, 64)) return -1; + if (frame->arg2 != 0 && !UserMemory::String(frame->arg2, 128)) return -1; + return Sys_WifiConnect((const char*)frame->arg1, (const char*)frame->arg2); + case SYS_WIFI_DISCONNECT: + return Sys_WifiDisconnect(); case SYS_SUSPEND: return Sys_Suspend(); case SYS_SETTZ: diff --git a/kernel/src/Api/Syscall.hpp b/kernel/src/Api/Syscall.hpp index 6753427..c35329c 100644 --- a/kernel/src/Api/Syscall.hpp +++ b/kernel/src/Api/Syscall.hpp @@ -297,6 +297,12 @@ namespace montauk::abi { static constexpr uint64_t SYS_DISPLAYSETMODE = 156; static constexpr uint64_t SYS_DISPLAYBRIGHTNESS = 157; + /* Wifi.hpp -- Wi-Fi adapter control */ + static constexpr uint64_t SYS_WIFI_SCAN = 158; // (WifiNetwork*, maxCount, timeoutMs) -> count + static constexpr uint64_t SYS_WIFI_INFO = 159; // (WifiInfo*) -> 0, -1 if absent + static constexpr uint64_t SYS_WIFI_CONNECT = 160; // (ssid, password) -> 0, <0 on error + static constexpr uint64_t SYS_WIFI_DISCONNECT = 161; // () -> 0 + // Tunable parameters (for SYS_SDR_SETPARAM / SYS_SDR_GETPARAM). static constexpr int SDR_PARAM_FREQ = 0; // center frequency, Hz static constexpr int SDR_PARAM_SAMPLE_RATE = 1; // sample rate, Hz @@ -639,6 +645,46 @@ namespace montauk::abi { uint32_t _pad2; }; + // Wi-Fi security suites reported in WifiNetwork.security. + static constexpr uint8_t WIFI_SEC_OPEN = 0; + static constexpr uint8_t WIFI_SEC_WEP = 1; + static constexpr uint8_t WIFI_SEC_WPA = 2; + static constexpr uint8_t WIFI_SEC_WPA2 = 3; + static constexpr uint8_t WIFI_SEC_WPA3 = 4; + + // Adapter states reported in WifiInfo.state. + static constexpr uint8_t WIFI_STATE_ABSENT = 0; // no device + static constexpr uint8_t WIFI_STATE_DETECTED = 1; // waiting for firmware load + static constexpr uint8_t WIFI_STATE_BOOTING = 2; + static constexpr uint8_t WIFI_STATE_RUNNING = 3; + static constexpr uint8_t WIFI_STATE_ERROR = 4; + static constexpr uint8_t WIFI_STATE_RFKILL = 5; // radio disabled in hardware + + // One scanned network (returned by SYS_WIFI_SCAN). + struct WifiNetwork { + char ssid[36]; // NUL-terminated; empty for hidden networks + uint8_t bssid[6]; + uint8_t channel; + int8_t rssi; // dBm + uint8_t band; // 0 = 2.4 GHz, 1 = 5 GHz + uint8_t security; // WIFI_SEC_* + uint16_t beaconInterval; // TU + }; + + // Adapter status (returned by SYS_WIFI_INFO). + struct WifiInfo { + uint8_t mac[6]; + uint8_t present; // 1 if a supported device was found + uint8_t state; // WIFI_STATE_* + uint8_t scanning; + uint8_t bands; // bit0 = 2.4 GHz, bit1 = 5 GHz + uint16_t channels; // usable channels after regulatory filtering + char fwVersion[32]; + uint64_t rxPackets; + uint32_t fwErrors; + uint32_t connState; // 0 idle, >0 connection setup in progress + }; + struct ThermalInfo { char name[32]; // short zone name (e.g. "THRM", "TZ00") int32_t temperature; // tenths of degrees Celsius, or -1 if unavailable diff --git a/kernel/src/Api/WifiSyscall.hpp b/kernel/src/Api/WifiSyscall.hpp new file mode 100644 index 0000000..c69389d --- /dev/null +++ b/kernel/src/Api/WifiSyscall.hpp @@ -0,0 +1,35 @@ +/* + * WifiSyscall.hpp + * SYS_WIFI_SCAN, SYS_WIFI_INFO, SYS_WIFI_CONNECT, SYS_WIFI_DISCONNECT + * Copyright (c) 2026 Daniel Hammer +*/ + +#pragma once +#include +#include + +#include "Syscall.hpp" + +namespace montauk::abi { + + static int64_t Sys_WifiScan(WifiNetwork* buf, int maxCount, uint32_t timeoutMs) { + if (!buf || maxCount <= 0) return -1; + if (maxCount > 64) maxCount = 64; + return (int64_t)Drivers::Net::Wifi::Scan(buf, maxCount, timeoutMs); + } + + static int64_t Sys_WifiInfo(WifiInfo* buf) { + if (!buf) return -1; + return (int64_t)Drivers::Net::Wifi::GetInfo(buf); + } + + static int64_t Sys_WifiConnect(const char* ssid, const char* password) { + if (!ssid) return -1; + return (int64_t)Drivers::Net::Wifi::Connect(ssid, password); + } + + static int64_t Sys_WifiDisconnect() { + return (int64_t)Drivers::Net::Wifi::Disconnect(); + } + +} diff --git a/kernel/src/Drivers/Init.cpp b/kernel/src/Drivers/Init.cpp index 9541f08..5eb7192 100644 --- a/kernel/src/Drivers/Init.cpp +++ b/kernel/src/Drivers/Init.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,18 @@ namespace Drivers { 0x1A1F, }; + // Intel AX210-family Wi-Fi (CNVi and discrete). The driver additionally + // checks CSR_HW_RF_ID at probe time and only claims RF type GF (AX211), + // which is the firmware image shipped on the ramdisk. + static constexpr uint16_t g_intelWifiIds[] = { + 0x2725, // AX210 (discrete) + 0x2726, // AX211 (discrete, GF2) + 0x51f0, 0x51f1, 0x54f0, // AlderLake CNVi + 0x7a70, 0x7af0, // RaptorLake / AlderLake-P CNVi + 0x7e40, // MeteorLake CNVi + 0x7f70, // RaptorLake-S CNVi + }; + // ------------------------------------------------------------------------- // Probe wrappers (adapt namespace::Probe to PciProbeFunc signature) // ------------------------------------------------------------------------- @@ -63,6 +76,10 @@ namespace Drivers { return Net::E1000E::Probe(dev); } + static bool ProbeWifi(const Pci::PciDevice& dev) { + return Net::Wifi::Probe(dev); + } + static bool ProbeAhci(const Pci::PciDevice& dev) { return Storage::Ahci::Probe(dev); } @@ -124,7 +141,20 @@ namespace Drivers { Pci::ProbePhase::Normal, ProbeE1000E, }, - // Order 5: AHCI — Normal phase, match class=0x01/0x06/0x01 (SATA AHCI) + // Order 5: Intel Wi-Fi — Normal phase, vendor=0x8086 + deviceIds list. + // These are the AX210-family (CNVi "So") parts; the probe + // rejects anything whose RF type is not GF, since only the + // AX211 firmware image is bundled. + { + "IntelWiFi", + 0x8086, + 0xFF, 0xFF, 0xFF, + g_intelWifiIds, + sizeof(g_intelWifiIds) / sizeof(g_intelWifiIds[0]), + Pci::ProbePhase::Normal, + ProbeWifi, + }, + // Order 6: AHCI — Normal phase, match class=0x01/0x06/0x01 (SATA AHCI) { "AHCI", 0, // VendorId (any) @@ -136,7 +166,7 @@ namespace Drivers { Pci::ProbePhase::Normal, ProbeAhci, }, - // Order 6: NVMe — Normal phase, match class=0x01/0x08/0x02 (NVM Express) + // Order 7: NVMe — Normal phase, match class=0x01/0x08/0x02 (NVM Express) { "NVMe", 0, // VendorId (any) @@ -148,7 +178,7 @@ namespace Drivers { Pci::ProbePhase::Normal, ProbeNvme, }, - // Order 7: Intel HDA — Normal phase, match vendor=0x8086 + class=0x04 (Multimedia) + // Order 8: Intel HDA — Normal phase, match vendor=0x8086 + class=0x04 (Multimedia) // SubClass 0x03 = "Audio device" (plain HD Audio controller). // SubClass 0x01 = "Multimedia audio controller": on modern // laptops this is the SAME HDA controller enumerated with the diff --git a/kernel/src/Drivers/Net/Wifi/Iwx.hpp b/kernel/src/Drivers/Net/Wifi/Iwx.hpp new file mode 100644 index 0000000..84acb96 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/Iwx.hpp @@ -0,0 +1,314 @@ +/* + * Iwx.hpp + * Intel AX210/AX211 Wi-Fi driver core - shared state and internal API. + * + * The driver is split into: + * IwxTrans.cpp - PCIe transport: MMIO, MSI-X, DMA rings, firmware boot + * (context info gen3), host commands, RX processing + * IwxFw.cpp - .ucode / .pnvm TLV file parsing + * IwxMvm.cpp - post-ALIVE firmware init, NVM, UMAC scan + * IwxConnect.cpp - auth/assoc groundwork (untested scaffolding) + * Wifi.cpp - public subsystem facade (probe, deferred init, syscalls) + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#pragma once +#include +#include +#include +#include "IwxReg.hpp" + +namespace Drivers::Net::Wifi { + + // ========================================================================= + // DMA helpers (contiguous physical allocations from the PFA) + // ========================================================================= + + struct IwxDma { + void* Virt = nullptr; + uint64_t Phys = 0; + uint32_t Pages = 0; + }; + + bool IwxDmaAlloc(IwxDma& dma, uint64_t bytes); // zeroed, page-granular + void IwxDmaFree(IwxDma& dma); + + // ========================================================================= + // Firmware image (parsed .ucode file) + // ========================================================================= + + struct IwxFwSection { + uint32_t DevOff = 0; // device offset / separator marker + const uint8_t* Data = nullptr; + uint32_t Len = 0; + }; + + // AX211 firmware 89 has 60 sections (15 LMAC + 17 UMAC + 26 paging, plus + // two separators); leave headroom for newer images. + constexpr int IWX_MAX_FW_SECTIONS = 96; + constexpr int IWX_MAX_FW_CMD_VERSIONS = 384; + + struct IwxFwInfo { + uint8_t* Raw = nullptr; // whole .ucode file (kernel heap) + uint64_t RawSize = 0; + + IwxFwSection Sections[IWX_MAX_FW_SECTIONS]; + int SectionCount = 0; + + const uint8_t* Iml = nullptr; // image loader (points into Raw) + uint32_t ImlLen = 0; + + // PNVM TLV blob: either embedded in the .ucode (points into Raw) or + // read from the separate .pnvm file, in which case PnvmOwned holds the + // heap allocation that has to be released. + const uint8_t* PnvmData = nullptr; + uint32_t PnvmLen = 0; + uint8_t* PnvmOwned = nullptr; + + uint8_t ApiFlags[IWX_NUM_UCODE_TLV_API / 8] = {}; + uint8_t Capa[IWX_NUM_UCODE_TLV_CAPA / 8] = {}; + + IwxFwCmdVersion CmdVersions[IWX_MAX_FW_CMD_VERSIONS]; + int NumCmdVersions = 0; + + uint32_t PhyConfig = 0; // PHY_SKU + uint32_t NumScanChannels = IWX_DEFAULT_SCAN_CHANNELS; + char Version[48] = {}; + }; + + inline bool IwxBitSet(const uint8_t* map, uint32_t bit) { + return (map[bit / 8] & (1 << (bit % 8))) != 0; + } + + // ========================================================================= + // Rings + // ========================================================================= + + struct IwxTxRing { + int Qid = 0; + IwxDma Desc; // IwxTfhTfd[IWX_TX_RING_COUNT] + IwxDma Cmd; // IwxDeviceCmd[IWX_TX_RING_COUNT] + IwxDma BcTbl; // byte-count table + IwxDma Bounce; // one-page bounce for oversized commands + uint32_t Cur = 0; // ring slot (0..count-1) + uint32_t CurHw = 0; // hardware index (0..65535) + uint32_t Queued = 0; + }; + + struct IwxRxRing { + IwxDma FreeDescs; // IwxRxTransferDesc[IWX_RX_MQ_RING_COUNT] + IwxDma Stat; // uint16_t used-ring write index + IwxDma UsedDescs; // IwxRxCompletionDesc[IWX_RX_MQ_RING_COUNT] + uint8_t* Buf[IWX_RX_MQ_RING_COUNT] = {}; + uint64_t BufPhys[IWX_RX_MQ_RING_COUNT] = {}; + uint32_t Cur = 0; + }; + + // ========================================================================= + // NVM data (from NVM_GET_INFO) + // ========================================================================= + + struct IwxNvmData { + uint8_t HwAddr[6] = {}; + bool Sku24GHz = false; + bool Sku52GHz = false; + bool Sku11n = false; + bool Sku11ac = false; + bool Sku11ax = false; + bool LarEnabled = false; + uint8_t ValidTxAnt = 0; + uint8_t ValidRxAnt = 0; + uint16_t NvmVersion = 0; + }; + + // Per-channel scan availability derived from the NVM/MCC channel profile. + struct IwxChannel { + uint8_t ChannelNum = 0; // IEEE channel number + bool Is5GHz = false; + bool Valid = false; + bool ActiveAllowed = false; // active (probe) scanning allowed + }; + + constexpr int IWX_MAX_CHANNELS_TRACKED = IWX_NUM_2GHZ_CHANNELS + IWX_NUM_5GHZ_CHANNELS; + + // ========================================================================= + // Driver state + // ========================================================================= + + enum class IwxFwState : uint8_t { + Absent = 0, // no device found + Detected, // PCI device claimed, waiting for VFS (firmware file) + Booting, // firmware load in progress + Running, // operational firmware alive and initialized + Error, // fatal error; device stopped + RfKill, // radio disabled by hardware switch + }; + + struct IwxState { + // PCI location + MMIO + uint8_t Bus = 0, Dev = 0, Func = 0; + volatile uint8_t* Mmio = nullptr; + uint32_t HwRev = 0; + uint32_t HwRfId = 0; + + IwxFwState State = IwxFwState::Absent; + bool MsixProgrammed = false; + int NicLockCount = 0; + + // Interrupt-to-idle-loop deferral + volatile bool WorkPending = false; + + IwxFwInfo Fw; + + // Boot-time DMA + IwxDma CtxtInfo; // IwxContextInfoGen3 + IwxDma PrphScratch; // IwxPrphScratch + IwxDma PrphInfo; // one page (incl. dummy TR/CR tails) + IwxDma ImlDma; + // LMAC/UMAC section copies: released once the firmware is alive. + IwxDma FwSecDma[IWX_MAX_FW_SECTIONS]; + int FwSecDmaCount = 0; + // Paging sections: the firmware keeps reading these while it runs, so + // they are only released when the device is stopped. + IwxDma PagingDma[IWX_MAX_DRAM_ENTRY]; + int PagingCount = 0; + IwxDma PnvmDma; // PNVM payload (or fragment table) + IwxDma PnvmSegDma[IWX_MAX_DRAM_ENTRY]; + int PnvmSegs = 0; + uint32_t PnvmSize = 0; + uint32_t PnvmVersion = 0; + + IwxRxRing RxQ; + IwxTxRing CmdQ; // queue 0: host commands + IwxTxRing MgmtQ; // queue 1: management frames (connect path) + + // ALIVE / init-complete tracking (set from notification processing) + volatile bool AliveIntr = false; + volatile bool AliveOk = false; + volatile uint32_t InitComplete = 0; // bit0 INIT, bit1 PNVM + IwxSkuId SkuId = {}; + + // Firmware error-log pointers reported by ALIVE, and the last command + // we sent -- together these identify what the firmware choked on. + uint32_t UmacErrorTable = 0; + uint32_t LmacErrorTable = 0; + uint32_t LastCmdId = 0; + bool LtrEnabled = false; // PCIe LTR capability advertised + + // Synchronous-command bookkeeping (commands are fully serialized) + kcp::Spinlock CmdLock; // serializes SendCmd callers + volatile bool CmdDone = false; + volatile bool CmdWantResp = false; + uint8_t CmdRespBuf[4096]; + volatile uint32_t CmdRespLen = 0; + uint32_t CmdIdx = 0; // ring slot of in-flight command + + // Reentrancy guard for ProcessEvents + volatile bool InProcessEvents = false; + + IwxNvmData Nvm; + IwxChannel Channels[IWX_MAX_CHANNELS_TRACKED]; + int ChannelCount = 0; + + // Scan state + volatile bool ScanActive = false; + volatile bool ScanCompleted = false; + + // Statistics/diagnostics + uint64_t RxPackets = 0; + uint64_t FwErrors = 0; + }; + + extern IwxState g_iwx; + + // ========================================================================= + // Transport (IwxTrans.cpp) + // ========================================================================= + + bool IwxProbe(const Pci::PciDevice& dev); // claim device, map BAR, MSI-X + bool IwxStartHw(); // prepare + reset + apm init + void IwxStopDevice(); + bool IwxStartFirmware(); // context-info boot, wait ALIVE + bool IwxLoadPnvm(); // after ALIVE + + uint32_t IwxRead32(uint32_t reg); + void IwxWrite32(uint32_t reg, uint32_t val); + void IwxWrite8(uint32_t reg, uint8_t val); + void IwxSetBits(uint32_t reg, uint32_t bits); + void IwxClearBits(uint32_t reg, uint32_t bits); + bool IwxNicLock(); + void IwxNicUnlock(); + uint32_t IwxReadPrph(uint32_t addr); // caller holds nic lock + void IwxWritePrph(uint32_t addr, uint32_t val); + uint32_t IwxReadUmacPrph(uint32_t addr); + void IwxWriteUmacPrph(uint32_t addr, uint32_t val); + bool IwxPollBit(uint32_t reg, uint32_t bits, uint32_t mask, int timeoutUs); + + void IwxDelayUs(uint32_t us); + void IwxDelayMs(uint32_t ms); + + // Host commands. Payload is copied; for WANT_RESP the response packet is + // copied into g_iwx.CmdRespBuf. Synchronous variants pump ProcessEvents. + struct IwxHostCmd { + uint32_t Id = 0; // opcode or IWX_WIDE_ID(group, opcode) + const void* Data = nullptr; + uint32_t Len = 0; + bool WantResp = false; + }; + bool IwxSendCmd(IwxHostCmd& cmd); // sync, 1s timeout + bool IwxSendCmdPdu(uint32_t id, const void* data, uint32_t len); + bool IwxSendCmdStatus(uint32_t id, const void* data, uint32_t len, + uint32_t* statusOut); + + // Poll interrupt causes + drain the RX/notification ring. Safe to call + // from any process/idle context; self-guarded against reentry. + void IwxProcessEvents(); + + // Look up the firmware-advertised version of a command/notification. + int IwxLookupCmdVer(uint8_t group, uint8_t cmd); + int IwxLookupNotifVer(uint8_t group, uint8_t cmd); + + bool IwxCheckRfKill(); + + // TX queue management (used by connect path) + bool IwxEnableTxq(int staId, int qid, int tid); + + // ========================================================================= + // Firmware file parsing (IwxFw.cpp) + // ========================================================================= + + bool IwxReadFirmware(); // load + parse .ucode from VFS + void IwxFreeFirmware(); + // Parse PNVM data (embedded TLV or .pnvm file) and stage DMA for our SKU. + bool IwxPnvmParse(const uint8_t* data, uint64_t len); + + // ========================================================================= + // MVM op-mode (IwxMvm.cpp) + // ========================================================================= + + bool IwxRunInitUcode(); // boot + NVM + init complete + bool IwxInitHw(); // full init: ant/bt/soc/ltr/scan cfg + bool IwxStartScan(const char* directSsid); // directSsid may be null + bool IwxAbortScan(); + + // Notification dispatch, called from RX processing for every fw packet. + void IwxHandleNotification(const IwxRxPacket* pkt, const uint8_t* rxBuf, + uint32_t bufLen); + + // Scan results sink, implemented by Wifi.cpp: raw 802.11 beacon/probe-resp. + void WifiRxMgmtFrame(const uint8_t* frame, uint32_t len, uint8_t channel, + int8_t rssiDbm); + + // ========================================================================= + // Connect groundwork (IwxConnect.cpp) - UNTESTED scaffolding + // ========================================================================= + + bool IwxConnectStart(const uint8_t* bssid, uint8_t channel, bool is5GHz, + const char* ssid); + void IwxConnectAbort(); + void IwxConnectRxMgmt(const uint8_t* frame, uint32_t len); + // Apply state changes the RX path queued (it cannot send commands itself). + void IwxConnectService(); + int IwxConnectState(); +} diff --git a/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp b/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp new file mode 100644 index 0000000..e104c1d --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/IwxConnect.cpp @@ -0,0 +1,391 @@ +/* + * IwxConnect.cpp + * Association groundwork: PHY/MAC context setup, station add, and the + * open-system authentication + association exchange. + * + * STATUS: this path is scaffolding. It builds the firmware contexts the + * same way iwlwifi does and drives the 802.11 state machine far enough to + * authenticate and associate with an open network, but it has never been + * exercised on hardware, and the WPA2 key exchange is deliberately not + * implemented (see WifiConnectSecurity notes in Wifi.cpp). Scanning is the + * supported operation today. + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Iwx.hpp" +#include +#include +#include +#include + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + // Connection state machine. + enum class ConnState : int { + Idle = 0, + ContextsUp, // PHY/MAC/binding/STA programmed, ready to authenticate + Authenticating, + Authenticated, + Associating, + Associated, + Failed, + }; + + static ConnState g_state = ConnState::Idle; + static uint8_t g_bssid[6] = {}; + static uint8_t g_channel = 0; + static bool g_is5GHz = false; + static char g_ssid[33] = {}; + static uint8_t g_ssidLen = 0; + static uint16_t g_aid = 0; + + static constexpr uint32_t MAC_ID = 0; + static constexpr uint32_t MAC_COLOR = 0; + static constexpr uint32_t PHY_ID = 0; + static constexpr uint32_t PHY_COLOR = 0; + + static bool g_phyActive = false; + static bool g_macActive = false; + static bool g_bindingActive = false; + static bool g_staActive = false; + static bool g_mgmtQueueUp = false; + + // Work discovered while parsing an inbound frame, applied later from the + // idle loop: RX processing must not send commands (it would re-enter the + // event pump that its own completion depends on). + static volatile bool g_postAssocPending = false; + static volatile bool g_teardownPending = false; + + static uint8_t FwValidRxAntConn() { + uint8_t ant = (uint8_t)((g_iwx.Fw.PhyConfig & IWX_FW_PHY_CFG_RX_CHAIN) + >> IWX_FW_PHY_CFG_RX_CHAIN_POS); + if (g_iwx.Nvm.ValidRxAnt) ant &= g_iwx.Nvm.ValidRxAnt; + return ant; + } + + // ========================================================================= + // Firmware contexts + // ========================================================================= + + static bool PhyCtxtCmd(uint32_t action) { + IwxPhyContextCmd cmd = {}; + cmd.id_and_color = IWX_FW_CMD_ID_AND_COLOR(PHY_ID, PHY_COLOR); + cmd.action = action; + cmd.lmac_id = (!g_is5GHz + || !IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_CDB_SUPPORT)) + ? IWX_LMAC_24G_INDEX : IWX_LMAC_5G_INDEX; + cmd.ci.band = g_is5GHz ? IWX_PHY_BAND_5 : IWX_PHY_BAND_24; + cmd.ci.channel = g_channel; + cmd.ci.width = IWX_PHY_VHT_CHANNEL_MODE20; + cmd.ci.ctrl_pos = IWX_PHY_VHT_CTRL_POS_1_BELOW; + + // From RLC_CONFIG v2 on, the chain configuration moved out of this + // command into its own RLC command. + if (IwxLookupCmdVer(IWX_DATA_PATH_GROUP, IWX_RLC_CONFIG_CMD) != 2) { + cmd.rxchain_info = (uint32_t)FwValidRxAntConn() << IWX_PHY_RX_CHAIN_VALID_POS; + cmd.rxchain_info |= 1u << IWX_PHY_RX_CHAIN_CNT_POS; + cmd.rxchain_info |= 1u << IWX_PHY_RX_CHAIN_MIMO_CNT_POS; + } + + return IwxSendCmdPdu(IWX_PHY_CONTEXT_CMD, &cmd, sizeof(cmd)); + } + + static bool PhySendRlc() { + if (IwxLookupCmdVer(IWX_DATA_PATH_GROUP, IWX_RLC_CONFIG_CMD) != 2) + return true; + + IwxRlcConfigCmd cmd = {}; + cmd.phy_id = PHY_ID; + cmd.rlc.rx_chain_info = (uint32_t)FwValidRxAntConn() << IWX_PHY_RX_CHAIN_VALID_POS; + cmd.rlc.rx_chain_info |= 1u << IWX_PHY_RX_CHAIN_CNT_POS; + cmd.rlc.rx_chain_info |= 1u << IWX_PHY_RX_CHAIN_MIMO_CNT_POS; + return IwxSendCmdPdu(IWX_WIDE_ID(IWX_DATA_PATH_GROUP, IWX_RLC_CONFIG_CMD), + &cmd, sizeof(cmd)); + } + + static bool MacCtxtCmd(uint32_t action, bool assoc) { + IwxMacCtxCmd cmd = {}; + cmd.id_and_color = IWX_FW_CMD_ID_AND_COLOR(MAC_ID, MAC_COLOR); + cmd.action = action; + cmd.mac_type = IWX_FW_MAC_TYPE_BSS_STA; + cmd.tsf_id = IWX_TSF_ID_A; + memcpy(cmd.node_addr, g_iwx.Nvm.HwAddr, 6); + memcpy(cmd.bssid_addr, g_bssid, 6); + + // Basic rate masks: CCK 1/2/5.5/11 on 2.4 GHz, OFDM 6/12/24 everywhere. + // The firmware indexes these bitmaps against its own rate tables. + cmd.cck_rates = g_is5GHz ? 0 : 0x0f; + cmd.ofdm_rates = 0x15; + cmd.cck_short_preamble = 0; + cmd.short_slot = 0; + cmd.filter_flags = IWX_MAC_FILTER_ACCEPT_GRP | IWX_MAC_FILTER_IN_BEACON; + cmd.qos_flags = IWX_MAC_QOS_FLG_UPDATE_EDCA; + + // Default EDCA parameters, one entry per access category. + for (uint32_t i = 0; i < IWX_AC_NUM; i++) { + cmd.ac[i].cw_min = 15; + cmd.ac[i].cw_max = 1023; + cmd.ac[i].aifsn = 2; + cmd.ac[i].fifos_mask = (uint8_t)(1 << i); + cmd.ac[i].edca_txop = 0; + } + + cmd.sta.is_assoc = assoc ? 1 : 0; + cmd.sta.bi = 100; + cmd.sta.dtim_interval = 100 * 3; + cmd.sta.listen_interval = 10; + cmd.sta.assoc_id = g_aid; + + return IwxSendCmdPdu(IWX_MAC_CONTEXT_CMD, &cmd, sizeof(cmd)); + } + + static bool BindingCmd(uint32_t action) { + IwxBindingCmd cmd = {}; + cmd.id_and_color = IWX_FW_CMD_ID_AND_COLOR(PHY_ID, PHY_COLOR); + cmd.action = action; + cmd.phy = IWX_FW_CMD_ID_AND_COLOR(PHY_ID, PHY_COLOR); + cmd.macs[0] = IWX_FW_CMD_ID_AND_COLOR(MAC_ID, MAC_COLOR); + for (uint32_t i = 1; i < IWX_MAX_MACS_IN_BINDING; i++) + cmd.macs[i] = IWX_FW_CTXT_INVALID; + cmd.lmac_id = (!g_is5GHz + || !IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_CDB_SUPPORT)) + ? IWX_LMAC_24G_INDEX : IWX_LMAC_5G_INDEX; + + uint32_t status = 0; + if (!IwxSendCmdStatus(IWX_BINDING_CONTEXT_CMD, &cmd, sizeof(cmd), &status)) + return false; + return status == 0; + } + + static bool AddStaCmd(bool update) { + IwxAddStaCmd cmd = {}; + cmd.add_modify = update ? 1 : 0; + cmd.mac_id_n_color = IWX_FW_CMD_ID_AND_COLOR(MAC_ID, MAC_COLOR); + cmd.sta_id = IWX_STATION_ID; + cmd.station_type = IWX_STA_TYPE_LINK; + memcpy(cmd.addr, g_bssid, 6); + cmd.tid_disable_tx = 0xffff; // aggregation disabled for now + + uint32_t status = 0; + if (!IwxSendCmdStatus(IWX_ADD_STA, &cmd, sizeof(cmd), &status)) + return false; + return (status & IWX_ADD_STA_STATUS_MASK) == IWX_ADD_STA_SUCCESS; + } + + static bool RemoveStaCmd() { + struct { uint8_t sta_id; uint8_t reserved[3]; } __attribute__((packed)) cmd = {}; + cmd.sta_id = IWX_STATION_ID; + return IwxSendCmdPdu(IWX_REMOVE_STA, &cmd, sizeof(cmd)); + } + + // Keep the firmware on our channel for the duration of the exchange. + static bool ScheduleSessionProtection(uint32_t durationTu) { + if (!IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_SESSION_PROT_CMD)) + return true; + + IwxSessionProtCmd cmd = {}; + cmd.id_and_color = IWX_FW_CMD_ID_AND_COLOR(MAC_ID, MAC_COLOR); + cmd.action = IWX_FW_CTXT_ACTION_ADD; + cmd.conf_id = IWX_SESSION_PROTECT_CONF_ASSOC; + cmd.duration_tu = durationTu; + return IwxSendCmdPdu(IWX_WIDE_ID(IWX_MAC_CONF_GROUP, IWX_SESSION_PROTECTION_CMD), + &cmd, sizeof(cmd)); + } + + // ========================================================================= + // Teardown + // ========================================================================= + + static void TearDown() { + if (g_staActive) { RemoveStaCmd(); g_staActive = false; } + if (g_bindingActive) { + BindingCmd(IWX_FW_CTXT_ACTION_REMOVE); + g_bindingActive = false; + } + if (g_macActive) { + MacCtxtCmd(IWX_FW_CTXT_ACTION_REMOVE, false); + g_macActive = false; + } + if (g_phyActive) { + PhyCtxtCmd(IWX_FW_CTXT_ACTION_REMOVE); + g_phyActive = false; + } + g_mgmtQueueUp = false; + g_aid = 0; + } + + // ========================================================================= + // Public entry points + // ========================================================================= + + bool IwxConnectStart(const uint8_t* bssid, uint8_t channel, bool is5GHz, + const char* ssid) { + if (g_iwx.State != IwxFwState::Running) return false; + if (g_state != ConnState::Idle) IwxConnectAbort(); + + memcpy(g_bssid, bssid, 6); + g_channel = channel; + g_is5GHz = is5GHz; + g_aid = 0; + g_ssidLen = 0; + if (ssid) { + while (g_ssidLen < 32 && ssid[g_ssidLen]) { + g_ssid[g_ssidLen] = ssid[g_ssidLen]; + g_ssidLen++; + } + } + g_ssid[g_ssidLen] = '\0'; + + if (g_iwx.ScanActive) IwxAbortScan(); + + if (!PhyCtxtCmd(IWX_FW_CTXT_ACTION_ADD)) { + KernelLogStream(ERROR, "WiFi") << "Could not add PHY context"; + return false; + } + g_phyActive = true; + + if (!PhySendRlc()) { + KernelLogStream(ERROR, "WiFi") << "Could not configure RLC for PHY"; + TearDown(); + return false; + } + + if (!MacCtxtCmd(IWX_FW_CTXT_ACTION_ADD, false)) { + KernelLogStream(ERROR, "WiFi") << "Could not add MAC context"; + TearDown(); + return false; + } + g_macActive = true; + + if (!BindingCmd(IWX_FW_CTXT_ACTION_ADD)) { + KernelLogStream(ERROR, "WiFi") << "Could not add binding"; + TearDown(); + return false; + } + g_bindingActive = true; + + if (!AddStaCmd(false)) { + KernelLogStream(ERROR, "WiFi") << "Could not add station"; + TearDown(); + return false; + } + g_staActive = true; + + // Non-QoS management frames go out on the MGMT TID/queue. + if (!IwxEnableTxq(IWX_STATION_ID, IWX_DQA_MGMT_QUEUE, IWX_MGMT_TID)) { + KernelLogStream(WARNING, "WiFi") + << "Management TX queue unavailable; cannot transmit auth frames"; + TearDown(); + return false; + } + g_mgmtQueueUp = true; + + // Beacon interval 100 TU * 9 is what iwlwifi reserves for the whole + // authenticate + associate exchange. + ScheduleSessionProtection(900); + + g_state = ConnState::ContextsUp; + KernelLogStream(INFO, "WiFi") + << "Firmware contexts up for BSSID " << base::hex + << (uint64_t)g_bssid[0] << ":" << (uint64_t)g_bssid[1] << ":" + << (uint64_t)g_bssid[2] << ":" << (uint64_t)g_bssid[3] << ":" + << (uint64_t)g_bssid[4] << ":" << (uint64_t)g_bssid[5] << base::dec + << " on channel " << (uint64_t)g_channel; + + // Transmitting the authentication frame itself requires the TX data + // path (TFD assembly, rate selection, TX status handling), which this + // driver does not implement yet. Everything above is the firmware-side + // state the exchange needs; the 802.11 handshake is the remaining work. + KernelLogStream(WARNING, "WiFi") + << "Authentication frame TX is not implemented; stopping after context setup"; + return true; + } + + void IwxConnectAbort() { + if (g_state == ConnState::Idle) return; + TearDown(); + g_state = ConnState::Idle; + } + + // Inbound management frames for the connection state machine. Beacons and + // probe responses are consumed by the scan path instead. + void IwxConnectRxMgmt(const uint8_t* frame, uint32_t len) { + if (g_state == ConnState::Idle || len < 24) return; + + uint8_t subtype = (uint8_t)(frame[0] & 0xf0); + constexpr uint8_t SUBTYPE_AUTH = 0xb0; + constexpr uint8_t SUBTYPE_ASSOC_RESP = 0x10; + constexpr uint8_t SUBTYPE_DEAUTH = 0xc0; + constexpr uint8_t SUBTYPE_DISASSOC = 0xa0; + + // Only frames from the BSS we are joining are interesting here. + for (int i = 0; i < 6; i++) + if (frame[10 + i] != g_bssid[i]) return; + + switch (subtype) { + case SUBTYPE_AUTH: { + if (len < 30) return; + uint16_t status = (uint16_t)(frame[28] | (frame[29] << 8)); + if (status == 0) { + g_state = ConnState::Authenticated; + KernelLogStream(OK, "WiFi") << "Authenticated"; + } else { + g_state = ConnState::Failed; + KernelLogStream(WARNING, "WiFi") + << "Authentication rejected, status " << (uint64_t)status; + } + break; + } + case SUBTYPE_ASSOC_RESP: { + if (len < 30) return; + uint16_t status = (uint16_t)(frame[26] | (frame[27] << 8)); + if (status == 0) { + g_aid = (uint16_t)((frame[28] | (frame[29] << 8)) & 0x3fff); + g_state = ConnState::Associated; + // This runs inside RX processing, which is guarded against + // reentry; sending the context updates from here would + // deadlock their own completion wait. Defer to the idle + // loop (IwxConnectService). + g_postAssocPending = true; + KernelLogStream(OK, "WiFi") << "Associated, AID " + << (uint64_t)g_aid; + } else { + g_state = ConnState::Failed; + KernelLogStream(WARNING, "WiFi") + << "Association rejected, status " << (uint64_t)status; + } + break; + } + case SUBTYPE_DEAUTH: + case SUBTYPE_DISASSOC: + KernelLogStream(INFO, "WiFi") << "Link torn down by AP"; + g_teardownPending = true; // see IwxConnectService + break; + default: + break; + } + } + + // Apply work queued by the RX path. Called from the idle loop, where + // sending firmware commands (and pumping their completions) is safe. + void IwxConnectService() { + if (g_teardownPending) { + g_teardownPending = false; + TearDown(); + g_state = ConnState::Idle; + return; + } + if (g_postAssocPending) { + g_postAssocPending = false; + MacCtxtCmd(IWX_FW_CTXT_ACTION_MODIFY, true); + AddStaCmd(true); + } + } + + int IwxConnectState() { + return (int)g_state; + } +} diff --git a/kernel/src/Drivers/Net/Wifi/IwxFw.cpp b/kernel/src/Drivers/Net/Wifi/IwxFw.cpp new file mode 100644 index 0000000..8612cbf --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/IwxFw.cpp @@ -0,0 +1,437 @@ +/* + * IwxFw.cpp + * Intel Wi-Fi firmware file handling: .ucode TLV parsing and PNVM staging. + * + * Files live on the ramdisk at 0:/os/firmware/intel/ (staged there by the + * userspace build, same as the Bluetooth .sfi images): + * + * iwlwifi-so-a0-gf-a0-.ucode operational firmware (AX211 / RF GF) + * iwlwifi-so-a0-gf-a0.pnvm platform NVM (regulatory data) + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Iwx.hpp" +#include +#include +#include +#include +#include + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + static constexpr const char* FW_DIR = "0:/os/firmware/intel/"; + + // Firmware API revisions to try, newest first. Intel ships one file per + // API level and the driver simply uses the newest one present. + static constexpr int FW_API_TRY[] = { 89, 86, 83, 81, 79, 78, 77, 74, 73, 72 }; + + // ========================================================================= + // Small helpers + // ========================================================================= + + static uint32_t Rd32(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 uint16_t Rd16(const uint8_t* p) { + return (uint16_t)((uint16_t)p[0] | ((uint16_t)p[1] << 8)); + } + + static void SetBit(uint8_t* map, uint32_t bit, uint32_t mapBits) { + if (bit >= mapBits) return; + map[bit / 8] = (uint8_t)(map[bit / 8] | (1 << (bit % 8))); + } + + static char* AppendStr(char* p, const char* s) { + while (*s) *p++ = *s++; + return p; + } + + static char* AppendU32(char* p, uint32_t v) { + char tmp[12]; + int n = 0; + if (v == 0) tmp[n++] = '0'; + while (v) { tmp[n++] = (char)('0' + (v % 10)); v /= 10; } + while (n) *p++ = tmp[--n]; + return p; + } + + // ========================================================================= + // .ucode TLV parsing + // ========================================================================= + + static bool ParseUcode(uint8_t* raw, uint64_t size) { + IwxFwInfo& fw = g_iwx.Fw; + + if (size < sizeof(IwxTlvUcodeHeader)) { + KernelLogStream(ERROR, "WiFi-FW") << "Firmware file too small"; + return false; + } + + auto* uhdr = (IwxTlvUcodeHeader*)raw; + if (uhdr->zero != 0 || uhdr->magic != IWX_TLV_UCODE_MAGIC) { + KernelLogStream(ERROR, "WiFi-FW") << "Not a TLV firmware image"; + return false; + } + + const uint8_t* data = raw + sizeof(IwxTlvUcodeHeader); + uint64_t len = size - sizeof(IwxTlvUcodeHeader); + + // Default version string from the header; a FW_VERSION TLV overrides it. + char* vp = fw.Version; + vp = AppendU32(vp, IWX_UCODE_MAJOR(uhdr->ver)); + *vp++ = '.'; + vp = AppendU32(vp, IWX_UCODE_MINOR(uhdr->ver)); + *vp++ = '.'; + vp = AppendU32(vp, IWX_UCODE_API(uhdr->ver)); + *vp = '\0'; + + while (len >= sizeof(IwxUcodeTlv)) { + uint32_t type = Rd32(data); + uint32_t tlvLen = Rd32(data + 4); + len -= sizeof(IwxUcodeTlv); + data += sizeof(IwxUcodeTlv); + if (tlvLen > len) { + KernelLogStream(ERROR, "WiFi-FW") << "Truncated firmware TLV"; + return false; + } + + switch (type) { + case IWX_UCODE_TLV_SEC_RT: { + // [devoff][payload]. Separator markers carry no payload. + if (tlvLen < 4) break; + if (fw.SectionCount >= IWX_MAX_FW_SECTIONS) { + KernelLogStream(ERROR, "WiFi-FW") + << "Firmware has more sections than supported"; + return false; + } + IwxFwSection& sec = fw.Sections[fw.SectionCount++]; + sec.DevOff = Rd32(data); + sec.Data = data + 4; + sec.Len = tlvLen - 4; + break; + } + case IWX_UCODE_TLV_IML: + fw.Iml = data; + fw.ImlLen = tlvLen; + break; + case IWX_UCODE_TLV_PNVM_DATA: + fw.PnvmData = data; + fw.PnvmLen = tlvLen; + break; + case IWX_UCODE_TLV_PHY_SKU: + if (tlvLen >= 4) fw.PhyConfig = Rd32(data); + break; + case IWX_UCODE_TLV_N_SCAN_CHANNELS: + if (tlvLen >= 4) { + fw.NumScanChannels = Rd32(data); + if (fw.NumScanChannels > IWX_MAX_SCAN_CHANNELS) + fw.NumScanChannels = IWX_MAX_SCAN_CHANNELS; + } + break; + case IWX_UCODE_TLV_FW_VERSION: + if (tlvLen >= 12) { + char* p = fw.Version; + p = AppendU32(p, Rd32(data)); + *p++ = '.'; + p = AppendU32(p, Rd32(data + 4)); + *p++ = '.'; + p = AppendU32(p, Rd32(data + 8)); + *p = '\0'; + } + break; + case IWX_UCODE_TLV_API_CHANGES_SET: { + if (tlvLen < sizeof(IwxUcodeApiCapa)) break; + uint32_t idx = Rd32(data); + uint32_t flags = Rd32(data + 4); + for (int i = 0; i < 32; i++) + if (flags & (1u << i)) + SetBit(fw.ApiFlags, i + 32 * idx, IWX_NUM_UCODE_TLV_API); + break; + } + case IWX_UCODE_TLV_ENABLED_CAPABILITIES: { + if (tlvLen < sizeof(IwxUcodeApiCapa)) break; + uint32_t idx = Rd32(data); + uint32_t flags = Rd32(data + 4); + for (int i = 0; i < 32; i++) + if (flags & (1u << i)) + SetBit(fw.Capa, i + 32 * idx, IWX_NUM_UCODE_TLV_CAPA); + break; + } + case IWX_UCODE_TLV_CMD_VERSIONS: { + uint32_t n = tlvLen / sizeof(IwxFwCmdVersion); + if (n > IWX_MAX_FW_CMD_VERSIONS) n = IWX_MAX_FW_CMD_VERSIONS; + memcpy(fw.CmdVersions, data, n * sizeof(IwxFwCmdVersion)); + fw.NumCmdVersions = (int)n; + break; + } + default: + // Debug/monitor/calibration TLVs are not used here. + break; + } + + uint64_t adv = (tlvLen + 3) & ~3ull; + if (adv > len) break; // trailing padding + len -= adv; + data += adv; + } + + if (fw.SectionCount == 0) { + KernelLogStream(ERROR, "WiFi-FW") << "Firmware image has no sections"; + return false; + } + return true; + } + + // ========================================================================= + // PNVM parsing + // ========================================================================= + + // Fragmented PNVM: the firmware reads a table of segment addresses whose + // base is handed over in prph_scratch.pnvm_cfg. Non-fragmented firmware + // instead wants one flat buffer. + static bool PnvmSetup(uint8_t* const* segs, const uint32_t* sizes, int count) { + bool fragmented = IwxBitSet(g_iwx.Fw.Capa, + IWX_UCODE_TLV_CAPA_FRAGMENTED_PNVM_IMG); + + if (fragmented) { + if (!IwxDmaAlloc(g_iwx.PnvmDma, sizeof(IwxPnvmInfoDram))) return false; + auto* info = (IwxPnvmInfoDram*)g_iwx.PnvmDma.Virt; + for (int i = 0; i < count && i < (int)IWX_MAX_DRAM_ENTRY; i++) { + if (!IwxDmaAlloc(g_iwx.PnvmSegDma[i], sizes[i])) return false; + memcpy(g_iwx.PnvmSegDma[i].Virt, segs[i], sizes[i]); + info->pnvm_img[i] = g_iwx.PnvmSegDma[i].Phys; + g_iwx.PnvmSize += sizes[i]; + g_iwx.PnvmSegs = i + 1; + } + return g_iwx.PnvmSegs > 0; + } + + uint32_t total = 0; + for (int i = 0; i < count; i++) total += sizes[i]; + if (total == 0) return false; + if (!IwxDmaAlloc(g_iwx.PnvmDma, total)) return false; + + uint8_t* dst = (uint8_t*)g_iwx.PnvmDma.Virt; + for (int i = 0; i < count; i++) { + memcpy(dst, segs[i], sizes[i]); + dst += sizes[i]; + } + g_iwx.PnvmSize = total; + return true; + } + + // Parse the section that follows a matching PNVM_SKU entry: verify the + // hardware type, then collect the SEC_RT payloads into DMA. + static bool PnvmHandleSection(const uint8_t* data, uint64_t len) { + uint8_t* segs[IWX_MAX_DRAM_ENTRY]; + uint32_t sizes[IWX_MAX_DRAM_ENTRY]; + int count = 0; + bool hwMatch = false; + uint32_t sha1 = 0; + uint32_t total = 0; + bool ok = false; + + uint16_t ourMac = (uint16_t)IWX_CSR_HW_REV_TYPE(g_iwx.HwRev); + uint16_t ourRf = (uint16_t)IWX_CSR_HW_RFID_TYPE(g_iwx.HwRfId); + + while (len >= sizeof(IwxUcodeTlv)) { + uint32_t type = Rd32(data); + uint32_t tlvLen = Rd32(data + 4); + len -= sizeof(IwxUcodeTlv); + data += sizeof(IwxUcodeTlv); + if (tlvLen > len) break; + + if (type == IWX_UCODE_TLV_PNVM_VERSION) { + if (tlvLen >= 4) sha1 = Rd32(data); + } else if (type == IWX_UCODE_TLV_HW_TYPE) { + if (tlvLen >= 4 && !hwMatch) { + uint16_t macType = Rd16(data); + uint16_t rfId = Rd16(data + 2); + if (macType == ourMac && rfId == ourRf) hwMatch = true; + } + } else if (type == IWX_UCODE_TLV_SEC_RT) { + // struct iwx_pnvm_section { uint32_t offset; uint8_t data[]; } + if (tlvLen <= 4) { /* nothing to copy */ } + else if (Rd32(data) == 0xddddeeee) { /* deprecated separator */ } + else if (count < (int)IWX_MAX_DRAM_ENTRY) { + uint32_t dataLen = tlvLen - 4; + auto* buf = (uint8_t*)Memory::g_heap->Request(dataLen); + if (!buf) goto out; + memcpy(buf, data + 4, dataLen); + segs[count] = buf; + sizes[count] = dataLen; + count++; + total += dataLen; + } + } else if (type == IWX_UCODE_TLV_PNVM_SKU) { + break; // next SKU section starts here + } + + uint64_t adv = (tlvLen + 3) & ~3ull; + if (adv > len) break; + len -= adv; + data += adv; + } + + if (!hwMatch || total == 0) goto out; + + if (!PnvmSetup(segs, sizes, count)) { + KernelLogStream(ERROR, "WiFi-FW") << "Could not stage PNVM in DMA memory"; + goto out; + } + g_iwx.PnvmVersion = sha1; + ok = true; + + out: + for (int i = 0; i < count; i++) Memory::g_heap->Free(segs[i]); + return ok; + } + + bool IwxPnvmParse(const uint8_t* data, uint64_t len) { + while (len >= sizeof(IwxUcodeTlv)) { + uint32_t type = Rd32(data); + uint32_t tlvLen = Rd32(data + 4); + uint64_t adv = (tlvLen + 3) & ~3ull; + if (tlvLen > len - sizeof(IwxUcodeTlv)) return false; + + if (type == IWX_UCODE_TLV_PNVM_SKU && tlvLen >= 12) { + const uint8_t* sku = data + sizeof(IwxUcodeTlv); + uint32_t s0 = Rd32(sku), s1 = Rd32(sku + 4), s2 = Rd32(sku + 8); + + const uint8_t* next = data + sizeof(IwxUcodeTlv) + adv; + uint64_t remain = len - sizeof(IwxUcodeTlv) - adv; + + if (s0 == g_iwx.SkuId.data[0] && s1 == g_iwx.SkuId.data[1] + && s2 == g_iwx.SkuId.data[2] + && PnvmHandleSection(next, remain)) + return true; + + data = next; + len = remain; + } else { + data += sizeof(IwxUcodeTlv) + adv; + len -= sizeof(IwxUcodeTlv) + adv; + } + } + return false; + } + + // ========================================================================= + // File loading + // ========================================================================= + + static uint8_t* LoadFile(const char* path, uint64_t* outSize) { + Fs::Vfs::BackendFile file; + if (Fs::Vfs::OpenBackendFile(path, file) < 0) return nullptr; + + uint64_t size = Fs::Vfs::GetBackendFileSize(file); + if (size == 0 || size > 8u * 1024 * 1024) { + Fs::Vfs::CloseBackendFile(file); + return nullptr; + } + + auto* buf = (uint8_t*)Memory::g_heap->Request(size); + if (!buf) { + Fs::Vfs::CloseBackendFile(file); + return nullptr; + } + Fs::Vfs::ReadBackendFile(file, buf, 0, size); + Fs::Vfs::CloseBackendFile(file); + asm volatile("" ::: "memory"); + + *outSize = size; + return buf; + } + + void IwxFreeFirmware() { + if (g_iwx.Fw.Raw) { + Memory::g_heap->Free(g_iwx.Fw.Raw); + g_iwx.Fw.Raw = nullptr; + } + // Only the separately-loaded .pnvm file is ours to free; an embedded + // PNVM TLV points into Raw and has just gone away with it. + if (g_iwx.Fw.PnvmOwned) { + Memory::g_heap->Free(g_iwx.Fw.PnvmOwned); + g_iwx.Fw.PnvmOwned = nullptr; + } + g_iwx.Fw.RawSize = 0; + g_iwx.Fw.SectionCount = 0; + g_iwx.Fw.Iml = nullptr; + g_iwx.Fw.ImlLen = 0; + g_iwx.Fw.PnvmData = nullptr; + g_iwx.Fw.PnvmLen = 0; + g_iwx.Fw.NumCmdVersions = 0; + } + + bool IwxReadFirmware() { + if (g_iwx.Fw.Raw) return true; // already loaded and parsed + + char path[96]; + uint8_t* raw = nullptr; + uint64_t size = 0; + + for (int api : FW_API_TRY) { + char* p = AppendStr(path, FW_DIR); + p = AppendStr(p, "iwlwifi-so-a0-gf-a0-"); + p = AppendU32(p, (uint32_t)api); + p = AppendStr(p, ".ucode"); + *p = '\0'; + + raw = LoadFile(path, &size); + if (raw) { + KernelLogStream(INFO, "WiFi-FW") << "Loading " << path + << " (" << size << " bytes)"; + break; + } + } + + if (!raw) { + KernelLogStream(ERROR, "WiFi-FW") + << "No iwlwifi-so-a0-gf-a0-*.ucode found under " << FW_DIR; + return false; + } + + g_iwx.Fw.Raw = raw; + g_iwx.Fw.RawSize = size; + + if (!ParseUcode(raw, size)) { + IwxFreeFirmware(); + return false; + } + + KernelLogStream(OK, "WiFi-FW") << "Firmware " << g_iwx.Fw.Version + << ": " << (uint64_t)g_iwx.Fw.SectionCount << " sections, IML " + << (uint64_t)g_iwx.Fw.ImlLen << " bytes, " + << (uint64_t)g_iwx.Fw.NumCmdVersions << " command versions"; + + // The PNVM is usually a separate file; when the .ucode carries an + // embedded copy, IwxLoadPnvm() prefers that and this read is skipped. + if (!g_iwx.Fw.PnvmData) { + char* p = AppendStr(path, FW_DIR); + p = AppendStr(p, "iwlwifi-so-a0-gf-a0.pnvm"); + *p = '\0'; + + uint64_t pnvmSize = 0; + uint8_t* pnvm = LoadFile(path, &pnvmSize); + if (pnvm) { + // Keep the buffer alive for the driver's lifetime: PnvmParse + // runs later, after ALIVE has reported the SKU id. + g_iwx.Fw.PnvmData = pnvm; + g_iwx.Fw.PnvmOwned = pnvm; + g_iwx.Fw.PnvmLen = (uint32_t)pnvmSize; + KernelLogStream(INFO, "WiFi-FW") << "Loaded PNVM (" + << pnvmSize << " bytes)"; + } else { + KernelLogStream(WARNING, "WiFi-FW") + << "No PNVM file; firmware will use built-in regulatory defaults"; + } + } + + return true; + } +} diff --git a/kernel/src/Drivers/Net/Wifi/IwxMvm.cpp b/kernel/src/Drivers/Net/Wifi/IwxMvm.cpp new file mode 100644 index 0000000..2ed3ac9 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/IwxMvm.cpp @@ -0,0 +1,684 @@ +/* + * IwxMvm.cpp + * Intel Wi-Fi "MVM" op-mode: post-ALIVE firmware configuration, NVM/channel + * map retrieval, and UMAC scanning. + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Iwx.hpp" +#include +#include +#include +#include + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + // IEEE channel numbers in NVM channel-profile order (AX210 with UHB + // support uses the 6 GHz-extended table; we track the 2.4/5 GHz prefix, + // which is identical in both). + static constexpr uint8_t NVM_CHANNELS[] = { + // 2.4 GHz + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + // 5 GHz + 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, + 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, + 149, 153, 157, 161, 165, 169, 173, 177, 181 + }; + static constexpr int NVM_CHANNEL_COUNT = + (int)(sizeof(NVM_CHANNELS) / sizeof(NVM_CHANNELS[0])); + + // Supported rates in 500 kbps units. + static constexpr uint8_t RATES_11G[] = { 2, 4, 11, 22, 12, 18, 24, 36 }; + static constexpr uint8_t RATES_11G_EXT[] = { 48, 72, 96, 108 }; + static constexpr uint8_t RATES_11A[] = { 12, 18, 24, 36, 48, 72, 96, 108 }; + + // Directed-scan SSID staged by IwxStartScan for the next command build. + static char g_directSsid[33] = {}; + static uint8_t g_directSsidLen = 0; + + static uint8_t FwValidTxAnt() { + uint8_t ant = (uint8_t)((g_iwx.Fw.PhyConfig & IWX_FW_PHY_CFG_TX_CHAIN) + >> IWX_FW_PHY_CFG_TX_CHAIN_POS); + if (g_iwx.Nvm.ValidTxAnt) ant &= g_iwx.Nvm.ValidTxAnt; + return ant; + } + + static uint8_t FwValidRxAnt() { + uint8_t ant = (uint8_t)((g_iwx.Fw.PhyConfig & IWX_FW_PHY_CFG_RX_CHAIN) + >> IWX_FW_PHY_CFG_RX_CHAIN_POS); + if (g_iwx.Nvm.ValidRxAnt) ant &= g_iwx.Nvm.ValidRxAnt; + return ant; + } + + // ========================================================================= + // Channel map + // ========================================================================= + + static void IwxInitChannelMap(const uint16_t* profileV3, + const uint32_t* profileV4, int nProfile) { + g_iwx.ChannelCount = 0; + + for (int i = 0; i < NVM_CHANNEL_COUNT && i < nProfile + && g_iwx.ChannelCount < IWX_MAX_CHANNELS_TRACKED; i++) { + uint32_t flags = profileV4 ? profileV4[i] : (uint32_t)profileV3[i]; + bool is5 = i >= (int)IWX_NUM_2GHZ_CHANNELS; + + if (is5 && !g_iwx.Nvm.Sku52GHz) continue; + if (!(flags & IWX_NVM_CHANNEL_VALID)) continue; + + IwxChannel& ch = g_iwx.Channels[g_iwx.ChannelCount++]; + ch.ChannelNum = NVM_CHANNELS[i]; + ch.Is5GHz = is5; + ch.Valid = true; + ch.ActiveAllowed = (flags & IWX_NVM_CHANNEL_ACTIVE) != 0; + } + + KernelLogStream(INFO, "WiFi") << "Regulatory: " << (uint64_t)g_iwx.ChannelCount + << " usable channels"; + } + + // ========================================================================= + // NVM + // ========================================================================= + + static void SetMacAddrFromCsr() { + if (!IwxNicLock()) return; + + uint32_t a0 = IwxRead32(IWX_CSR_MAC_ADDR0_STRAP); + uint32_t a1 = IwxRead32(IWX_CSR_MAC_ADDR1_STRAP); + + // The hardware stores the address byte-swapped within each dword. + auto flip = [](uint32_t m0, uint32_t m1, uint8_t* dst) { + const uint8_t* p = (const uint8_t*)&m0; + dst[0] = p[3]; dst[1] = p[2]; dst[2] = p[1]; dst[3] = p[0]; + p = (const uint8_t*)&m1; + dst[4] = p[1]; dst[5] = p[0]; + }; + flip(a0, a1, g_iwx.Nvm.HwAddr); + + auto valid = [](const uint8_t* a) { + static const uint8_t reserved[6] = { 0x02, 0xcc, 0xaa, 0xff, 0xee, 0x00 }; + bool allZero = true, allOnes = true, isReserved = true; + for (int i = 0; i < 6; i++) { + if (a[i] != 0) allZero = false; + if (a[i] != 0xff) allOnes = false; + if (a[i] != reserved[i]) isReserved = false; + } + return !allZero && !allOnes && !isReserved && !(a[0] & 1); + }; + + // The OEM strap wins when fused; otherwise fall back to OTP. + if (!valid(g_iwx.Nvm.HwAddr)) { + a0 = IwxRead32(IWX_CSR_MAC_ADDR0_OTP); + a1 = IwxRead32(IWX_CSR_MAC_ADDR1_OTP); + flip(a0, a1, g_iwx.Nvm.HwAddr); + } + + IwxNicUnlock(); + } + + static bool IwxNvmGet() { + IwxNvmGetInfo cmd = {}; + IwxHostCmd hcmd; + hcmd.Id = IWX_WIDE_ID(IWX_REGULATORY_AND_NVM_GROUP, IWX_NVM_GET_INFO); + hcmd.Data = &cmd; + hcmd.Len = sizeof(cmd); + hcmd.WantResp = true; + + if (!IwxSendCmd(hcmd)) return false; + + bool v4 = IwxBitSet(g_iwx.Fw.ApiFlags, IWX_UCODE_TLV_API_REGULATORY_NVM_INFO); + uint32_t want = v4 ? sizeof(IwxNvmGetInfoRsp) : sizeof(IwxNvmGetInfoRspV3); + + if (g_iwx.CmdRespLen < sizeof(IwxRxPacket) + want) { + KernelLogStream(ERROR, "WiFi") << "Short NVM_GET_INFO response (" + << (uint64_t)g_iwx.CmdRespLen << " bytes)"; + return false; + } + + auto* pkt = (IwxRxPacket*)g_iwx.CmdRespBuf; + auto* rsp = (IwxNvmGetInfoRsp*)pkt->data; + + SetMacAddrFromCsr(); + + g_iwx.Nvm.NvmVersion = rsp->general.nvm_version; + + uint32_t mf = rsp->mac_sku.mac_sku_flags; + g_iwx.Nvm.Sku24GHz = (mf & IWX_NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED) != 0; + g_iwx.Nvm.Sku52GHz = (mf & IWX_NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED) != 0; + g_iwx.Nvm.Sku11n = (mf & IWX_NVM_MAC_SKU_FLAGS_802_11N_ENABLED) != 0; + g_iwx.Nvm.Sku11ac = (mf & IWX_NVM_MAC_SKU_FLAGS_802_11AC_ENABLED) != 0; + g_iwx.Nvm.Sku11ax = (mf & IWX_NVM_MAC_SKU_FLAGS_802_11AX_ENABLED) != 0; + + g_iwx.Nvm.ValidTxAnt = (uint8_t)rsp->phy_sku.tx_chains; + g_iwx.Nvm.ValidRxAnt = (uint8_t)rsp->phy_sku.rx_chains; + + if (v4) { + g_iwx.Nvm.LarEnabled = rsp->regulatory.lar_enabled != 0 + && IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_LAR_SUPPORT); + IwxInitChannelMap(nullptr, rsp->regulatory.channel_profile, + IWX_NUM_CHANNELS); + } else { + auto* v3 = (IwxNvmGetInfoRspV3*)pkt->data; + g_iwx.Nvm.LarEnabled = v3->regulatory.lar_enabled != 0 + && IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_LAR_SUPPORT); + IwxInitChannelMap(v3->regulatory.channel_profile, nullptr, + IWX_NUM_CHANNELS_V1); + } + + const uint8_t* m = g_iwx.Nvm.HwAddr; + KernelLogStream(OK, "WiFi") << "MAC address " << base::hex + << (uint64_t)m[0] << ":" << (uint64_t)m[1] << ":" << (uint64_t)m[2] + << ":" << (uint64_t)m[3] << ":" << (uint64_t)m[4] << ":" + << (uint64_t)m[5] << base::dec + << " (bands:" << (g_iwx.Nvm.Sku24GHz ? " 2.4GHz" : "") + << (g_iwx.Nvm.Sku52GHz ? " 5GHz" : "") << ")"; + return true; + } + + // ========================================================================= + // Init sequence + // ========================================================================= + + static bool SendTxAntCfg() { + IwxTxAntCfgCmd cmd = {}; + cmd.valid = FwValidTxAnt(); + return IwxSendCmdPdu(IWX_TX_ANT_CONFIGURATION_CMD, &cmd, sizeof(cmd)); + } + + static bool SendBtInitConf() { + IwxBtCoexCmd cmd = {}; + cmd.mode = IWX_BT_COEX_WIFI; + cmd.enabled_modules = 0; + return IwxSendCmdPdu(IWX_BT_CONFIG, &cmd, sizeof(cmd)); + } + + static bool SendSocConf() { + IwxSocConfigurationCmd cmd = {}; + // The AX211 here is an integrated (CNVi) part with a low-latency + // crystal, matching iwlwifi's "so with low latency xtal" profile. + uint32_t flags = IWX_SOC_FLAGS_LTR_APPLY_DELAY_2500 & 0xc; + int scanVer = IwxLookupCmdVer(IWX_LONG_GROUP, IWX_SCAN_REQ_UMAC); + if (scanVer >= 2) flags |= IWX_SOC_CONFIG_CMD_FLAGS_LOW_LATENCY; + cmd.flags = flags; + cmd.latency = 12000; + return IwxSendCmdPdu(IWX_WIDE_ID(IWX_SYSTEM_GROUP, IWX_SOC_CONFIGURATION_CMD), + &cmd, sizeof(cmd)); + } + + static bool SendLtrConfig() { + // Only meaningful when the PCIe link advertises LTR; upstream skips + // the command entirely otherwise. + if (!g_iwx.LtrEnabled) return true; + IwxLtrConfigCmd cmd = {}; + cmd.flags = IWX_LTR_CFG_FLAG_FEATURE_ENABLE; + return IwxSendCmdPdu(IWX_LTR_CONFIG, &cmd, sizeof(cmd)); + } + + static bool SendTempReportThs() { + IwxTempReportThsCmd cmd = {}; + return IwxSendCmdPdu( + IWX_WIDE_ID(IWX_PHY_OPS_GROUP, IWX_TEMP_REPORTING_THRESHOLDS_CMD), + &cmd, sizeof(cmd)); + } + + static bool DisableBeaconFilter() { + IwxBeaconFilterCmd cmd = {}; + return IwxSendCmdPdu(IWX_REPLY_BEACON_FILTERING_CMD, &cmd, sizeof(cmd)); + } + + static bool SendUpdateMcc(const char* alpha2) { + IwxMccUpdateCmd cmd = {}; + cmd.mcc = (uint16_t)((alpha2[0] << 8) | alpha2[1]); + if (IwxBitSet(g_iwx.Fw.ApiFlags, IWX_UCODE_TLV_API_WIFI_MCC_UPDATE) + || IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_LAR_MULTI_MCC)) + cmd.source_id = IWX_MCC_SOURCE_GET_CURRENT; + else + cmd.source_id = IWX_MCC_SOURCE_OLD_FW; + + IwxHostCmd hcmd; + hcmd.Id = IWX_MCC_UPDATE_CMD; + hcmd.Data = &cmd; + hcmd.Len = sizeof(cmd); + hcmd.WantResp = true; + if (!IwxSendCmd(hcmd)) return false; + + if (g_iwx.CmdRespLen < sizeof(IwxRxPacket) + sizeof(IwxMccUpdateRespV4)) + return false; + + auto* pkt = (IwxRxPacket*)g_iwx.CmdRespBuf; + auto* rsp = (IwxMccUpdateRespV4*)pkt->data; + + // Refresh the channel map from the regulatory profile the firmware + // just applied; the response is variable length, so bound the channel + // count by what actually arrived. + uint32_t payload = IwxRxPacketPayloadLen(pkt); + uint32_t maxCh = (payload - sizeof(IwxMccUpdateRespV4)) / sizeof(uint32_t); + uint32_t n = rsp->n_channels < maxCh ? rsp->n_channels : maxCh; + if (n > 0) IwxInitChannelMap(nullptr, rsp->channels, (int)n); + return true; + } + + // Reduced scan configuration (SCAN_CFG_CMD v5+): only antenna masks. + static bool ConfigUmacScan() { + if (!IwxBitSet(g_iwx.Fw.ApiFlags, IWX_UCODE_TLV_API_REDUCED_SCAN_CONFIG)) { + KernelLogStream(WARNING, "WiFi") + << "Firmware lacks reduced scan config support"; + return false; + } + + IwxScanConfig cfg = {}; + int cmdVer = IwxLookupCmdVer(IWX_LONG_GROUP, IWX_SCAN_CFG_CMD); + if (cmdVer < 5) cfg.bcast_sta_id = 0xff; // deprecated from v5 on + cfg.tx_chains = FwValidTxAnt(); + cfg.rx_chains = FwValidRxAnt(); + + return IwxSendCmdPdu(IWX_WIDE_ID(IWX_LONG_GROUP, IWX_SCAN_CFG_CMD), + &cfg, sizeof(cfg)); + } + + bool IwxRunInitUcode() { + g_iwx.InitComplete = 0; + + if (!IwxStartFirmware()) return false; + if (!IwxLoadPnvm()) { + // Not fatal: without PNVM the firmware falls back to conservative + // built-in regulatory limits, which still allows scanning. + KernelLogStream(WARNING, "WiFi") << "Continuing without PNVM data"; + } + + IwxInitExtendedCfgCmd initCfg = {}; + initCfg.init_flags = IWX_INIT_NVM; + if (!IwxSendCmdPdu(IWX_WIDE_ID(IWX_SYSTEM_GROUP, IWX_INIT_EXTENDED_CFG_CMD), + &initCfg, sizeof(initCfg))) { + KernelLogStream(ERROR, "WiFi") << "INIT_EXTENDED_CFG failed"; + return false; + } + + IwxNvmAccessCompleteCmd nvmDone = {}; + if (!IwxSendCmdPdu(IWX_WIDE_ID(IWX_REGULATORY_AND_NVM_GROUP, + IWX_NVM_ACCESS_COMPLETE), + &nvmDone, sizeof(nvmDone))) { + KernelLogStream(ERROR, "WiFi") << "NVM_ACCESS_COMPLETE failed"; + return false; + } + + uint64_t start = Timekeeping::GetMilliseconds(); + while (!(g_iwx.InitComplete & 0x1) + && Timekeeping::GetMilliseconds() - start < 2000) { + IwxProcessEvents(); + IwxDelayUs(200); + } + if (!(g_iwx.InitComplete & 0x1)) { + KernelLogStream(ERROR, "WiFi") << "No INIT_COMPLETE notification"; + return false; + } + + if (!IwxNvmGet()) { + KernelLogStream(ERROR, "WiFi") << "Failed to read NVM"; + return false; + } + return true; + } + + // Name each configuration step in the log so a firmware assert can be + // attributed to the command that preceded it without a rebuild. + static void InitStep(const char* what) { + KernelLogStream(INFO, "WiFi") << " init: " << what; + } + + bool IwxInitHw() { + InitStep("tx antenna config"); + if (!SendTxAntCfg()) { + KernelLogStream(ERROR, "WiFi") << "TX antenna config failed"; + return false; + } + InitStep("bt coex"); + if (!SendBtInitConf()) + KernelLogStream(WARNING, "WiFi") << "BT coex config failed"; + InitStep("soc config"); + if (!SendSocConf()) + KernelLogStream(WARNING, "WiFi") << "SoC config failed"; + InitStep("pcie ltr"); + if (!SendLtrConfig()) + KernelLogStream(WARNING, "WiFi") << "PCIe LTR config failed"; + InitStep("temp thresholds"); + if (IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_CT_KILL_BY_FW)) { + if (!SendTempReportThs()) + KernelLogStream(WARNING, "WiFi") << "Temperature threshold config failed"; + } + InitStep("regulatory (mcc)"); + if (g_iwx.Nvm.LarEnabled) { + // "ZZ" selects the NVM's own default regulatory profile. + if (!SendUpdateMcc("ZZ")) + KernelLogStream(WARNING, "WiFi") << "Regulatory (MCC) update failed"; + } + InitStep("scan config"); + if (!ConfigUmacScan()) { + KernelLogStream(ERROR, "WiFi") << "Scan configuration failed"; + return false; + } + InitStep("beacon filter"); + if (!DisableBeaconFilter()) + KernelLogStream(WARNING, "WiFi") << "Could not disable beacon filter"; + + return true; + } + + // ========================================================================= + // Probe request template + // ========================================================================= + + static uint8_t* AddRates(uint8_t* frm, const uint8_t* rates, int n, uint8_t id) { + *frm++ = id; + *frm++ = (uint8_t)n; + for (int i = 0; i < n; i++) *frm++ = rates[i]; + return frm; + } + + // Build the probe-request template the firmware transmits during active + // scanning. The firmware inserts the SSID itself (directed scan) and fills + // in duration/sequence, so the SSID element is left empty here. + static void FillProbeReq(IwxScanProbeReq* preq) { + memset(preq, 0, sizeof(*preq)); + + uint8_t* buf = preq->buf; + uint8_t* frm = buf; + + // 802.11 management header: probe request, to broadcast. + *frm++ = 0x40; // frame control: mgmt / probe request + *frm++ = 0x00; + *frm++ = 0x00; *frm++ = 0x00; // duration (hw) + for (int i = 0; i < 6; i++) *frm++ = 0xff; // addr1 broadcast + for (int i = 0; i < 6; i++) *frm++ = g_iwx.Nvm.HwAddr[i]; // addr2 + for (int i = 0; i < 6; i++) *frm++ = 0xff; // addr3 broadcast + *frm++ = 0x00; *frm++ = 0x00; // seq ctl (hw) + + // Empty SSID element; hardware substitutes the directed SSID. + *frm++ = 0x00; // element id: SSID + *frm++ = 0x00; // length 0 + + preq->mac_header.offset = 0; + preq->mac_header.len = (uint16_t)(frm - buf); + + // 2.4 GHz band IEs: supported + extended rates, DS parameter set. + uint8_t* pos = frm; + preq->band_data[0].offset = (uint16_t)(frm - buf); + frm = AddRates(frm, RATES_11G, (int)sizeof(RATES_11G), 0x01); + frm = AddRates(frm, RATES_11G_EXT, (int)sizeof(RATES_11G_EXT), 0x32); + if (IwxBitSet(g_iwx.Fw.Capa, IWX_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT)) { + *frm++ = 0x03; // element id: DS parameter set + *frm++ = 0x01; + *frm++ = 0x00; // channel filled in by firmware + } + preq->band_data[0].len = (uint16_t)(frm - pos); + + // 5 GHz band IEs. + if (g_iwx.Nvm.Sku52GHz) { + pos = frm; + preq->band_data[1].offset = (uint16_t)(frm - buf); + frm = AddRates(frm, RATES_11A, (int)sizeof(RATES_11A), 0x01); + preq->band_data[1].len = (uint16_t)(frm - pos); + } + + // Common (both bands) trailer: nothing extra is advertised, HT/VHT + // capabilities are only needed once we associate. + preq->common_data.offset = (uint16_t)(frm - buf); + preq->common_data.len = 0; + } + + // ========================================================================= + // Scan + // ========================================================================= + + static uint16_t ScanFlagsV2(bool haveSsid) { + uint16_t flags = IWX_UMAC_SCAN_GEN_FLAGS_V2_PASS_ALL + | IWX_UMAC_SCAN_GEN_FLAGS_V2_NTFY_ITER_COMPLETE + | IWX_UMAC_SCAN_GEN_FLAGS_V2_ADAPTIVE_DWELL; + // Without a target SSID there is nothing to put in a probe request, so + // a passive sweep (listening for beacons) is what the firmware runs. + if (!haveSsid) flags |= IWX_UMAC_SCAN_GEN_FLAGS_V2_FORCE_PASSIVE; + return flags; + } + + static void FillGeneralParams(IwxScanGeneralParamsV10* gp, uint16_t flags) { + gp->flags = flags; + gp->scan_start_mac_id = 0; + gp->adwell_default_social_chn = IWX_SCAN_ADWELL_DEFAULT_N_APS_SOCIAL; + gp->adwell_default_2g = IWX_SCAN_ADWELL_DEFAULT_LB_N_APS; + gp->adwell_default_5g = IWX_SCAN_ADWELL_DEFAULT_HB_N_APS; + gp->adwell_max_budget = IWX_SCAN_ADWELL_MAX_BUDGET_FULL_SCAN; + gp->scan_priority = IWX_SCAN_PRIORITY_EXT_6; + gp->max_out_of_time[IWX_SCAN_LB_LMAC_IDX] = 0; + gp->suspend_time[IWX_SCAN_LB_LMAC_IDX] = 0; + gp->max_out_of_time[IWX_SCAN_HB_LMAC_IDX] = 0; + gp->suspend_time[IWX_SCAN_HB_LMAC_IDX] = 0; + gp->active_dwell[IWX_SCAN_LB_LMAC_IDX] = IWX_SCAN_DWELL_ACTIVE; + gp->passive_dwell[IWX_SCAN_LB_LMAC_IDX] = IWX_SCAN_DWELL_PASSIVE; + gp->active_dwell[IWX_SCAN_HB_LMAC_IDX] = IWX_SCAN_DWELL_ACTIVE; + gp->passive_dwell[IWX_SCAN_HB_LMAC_IDX] = IWX_SCAN_DWELL_PASSIVE; + } + + static uint8_t FillChannelsV5(IwxScanChannelCfgUmacV5* chans, uint32_t cfgFlags) { + uint8_t n = 0; + for (int i = 0; i < g_iwx.ChannelCount + && n < g_iwx.Fw.NumScanChannels + && n < IWX_MAX_SCAN_CHANNELS; i++) { + const IwxChannel& ch = g_iwx.Channels[i]; + if (!ch.Valid) continue; + chans[n].channel_num = ch.ChannelNum; + chans[n].psd_20 = 0x80; // -128: "unknown" power spectral density + chans[n].iter_count = 1; + chans[n].iter_interval = 0; + uint32_t band = ch.Is5GHz ? IWX_PHY_BAND_5 : IWX_PHY_BAND_24; + chans[n].flags = cfgFlags | (band << IWX_CHAN_CFG_FLAGS_BAND_POS); + n++; + } + return n; + } + + static uint8_t FillChannels(IwxScanChannelCfgUmac* chans, uint32_t cfgFlags) { + uint8_t n = 0; + for (int i = 0; i < g_iwx.ChannelCount + && n < g_iwx.Fw.NumScanChannels + && n < IWX_MAX_SCAN_CHANNELS; i++) { + const IwxChannel& ch = g_iwx.Channels[i]; + if (!ch.Valid) continue; + chans[n].channel_num = ch.ChannelNum; + chans[n].band = ch.Is5GHz ? IWX_PHY_BAND_5 : IWX_PHY_BAND_24; + chans[n].iter_count = 1; + chans[n].iter_interval = 0; + chans[n].flags = cfgFlags; + n++; + } + return n; + } + + // Build and submit the scan request. The command is ~2 KB, well past the + // per-slot command area, so it is staged through the command ring's bounce + // page by IwxSendCmd. + static bool UmacScanV17() { + auto* cmd = (IwxScanReqUmacV17*)Memory::g_heap->Request(sizeof(IwxScanReqUmacV17)); + if (!cmd) return false; + memset(cmd, 0, sizeof(*cmd)); + + cmd->ooc_priority = IWX_SCAN_PRIORITY_EXT_6; + cmd->uid = 0; + + uint32_t bitmapSsid = 0; + FillGeneralParams(&cmd->general_params, ScanFlagsV2(g_directSsidLen != 0)); + + cmd->periodic_params.schedule[0].interval = 0; + cmd->periodic_params.schedule[0].iter_count = 1; + + FillProbeReq(&cmd->probe_params.preq); + + if (g_directSsidLen) { + cmd->probe_params.direct_scan[0].id = 0x00; // SSID element + cmd->probe_params.direct_scan[0].len = g_directSsidLen; + memcpy(cmd->probe_params.direct_scan[0].ssid, g_directSsid, + g_directSsidLen); + bitmapSsid |= (1 << 0); + } + + cmd->channel_params.flags = IWX_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER; + cmd->channel_params.count = FillChannelsV5(cmd->channel_params.channel_config, + bitmapSsid); + cmd->channel_params.n_aps_override[0] = IWX_SCAN_ADWELL_N_APS_GO_FRIENDLY; + cmd->channel_params.n_aps_override[1] = IWX_SCAN_ADWELL_N_APS_SOCIAL_CHS; + + bool ok = IwxSendCmdPdu(IWX_WIDE_ID(IWX_LONG_GROUP, IWX_SCAN_REQ_UMAC), + cmd, sizeof(*cmd)); + Memory::g_heap->Free(cmd); + return ok; + } + + static bool UmacScanV14() { + auto* cmd = (IwxScanReqUmacV14*)Memory::g_heap->Request(sizeof(IwxScanReqUmacV14)); + if (!cmd) return false; + memset(cmd, 0, sizeof(*cmd)); + + cmd->ooc_priority = IWX_SCAN_PRIORITY_EXT_6; + cmd->uid = 0; + + uint32_t bitmapSsid = 0; + FillGeneralParams(&cmd->general_params, ScanFlagsV2(g_directSsidLen != 0)); + + cmd->periodic_params.schedule[0].interval = 0; + cmd->periodic_params.schedule[0].iter_count = 1; + + FillProbeReq(&cmd->probe_params.preq); + + if (g_directSsidLen) { + cmd->probe_params.direct_scan[0].id = 0x00; + cmd->probe_params.direct_scan[0].len = g_directSsidLen; + memcpy(cmd->probe_params.direct_scan[0].ssid, g_directSsid, + g_directSsidLen); + bitmapSsid |= (1 << 0); + } + + cmd->channel_params.flags = IWX_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER; + cmd->channel_params.count = FillChannels(cmd->channel_params.channel_config, + bitmapSsid); + cmd->channel_params.n_aps_override[0] = IWX_SCAN_ADWELL_N_APS_GO_FRIENDLY; + cmd->channel_params.n_aps_override[1] = IWX_SCAN_ADWELL_N_APS_SOCIAL_CHS; + + bool ok = IwxSendCmdPdu(IWX_WIDE_ID(IWX_LONG_GROUP, IWX_SCAN_REQ_UMAC), + cmd, sizeof(*cmd)); + Memory::g_heap->Free(cmd); + return ok; + } + + bool IwxStartScan(const char* directSsid) { + if (g_iwx.State != IwxFwState::Running) return false; + if (g_iwx.ScanActive) return false; + + g_directSsidLen = 0; + g_directSsid[0] = '\0'; + if (directSsid) { + while (g_directSsidLen < 32 && directSsid[g_directSsidLen]) { + g_directSsid[g_directSsidLen] = directSsid[g_directSsidLen]; + g_directSsidLen++; + } + g_directSsid[g_directSsidLen] = '\0'; + } + + g_iwx.ScanCompleted = false; + g_iwx.ScanActive = true; + + int ver = IwxLookupCmdVer(IWX_LONG_GROUP, IWX_SCAN_REQ_UMAC); + bool ok = (ver >= 17) ? UmacScanV17() : UmacScanV14(); + + if (!ok) { + g_iwx.ScanActive = false; + KernelLogStream(ERROR, "WiFi") << "Could not initiate scan"; + } + return ok; + } + + bool IwxAbortScan() { + if (!g_iwx.ScanActive) return true; + IwxUmacScanAbort cmd = {}; + bool ok = IwxSendCmdPdu(IWX_WIDE_ID(IWX_LONG_GROUP, IWX_SCAN_ABORT_UMAC), + &cmd, sizeof(cmd)); + if (ok) g_iwx.ScanActive = false; + return ok; + } + + // ========================================================================= + // Notification dispatch + // ========================================================================= + + static void HandleRxMpdu(const IwxRxPacket* pkt, uint32_t bufLen) { + uint32_t payload = IwxRxPacketPayloadLen(pkt); + if (payload < sizeof(IwxRxMpduDesc)) return; + + auto* desc = (const IwxRxMpduDesc*)pkt->data; + + if (!(desc->status & IWX_RX_MPDU_RES_STATUS_CRC_OK) + || !(desc->status & IWX_RX_MPDU_RES_STATUS_OVERRUN_OK)) + return; + + uint32_t len = desc->mpdu_len; + if (len < 24) return; // shorter than a MAC header + + const uint8_t* frame = pkt->data + sizeof(IwxRxMpduDesc); + uint32_t offset = (uint32_t)(frame - (const uint8_t*)pkt); + if (offset + len > bufLen) return; + + // The firmware pads the header to a 4-byte boundary when the flag is + // set; the payload then starts two bytes later. + if (desc->mac_flags2 & IWX_RX_MPDU_MFLG2_PAD) { + if (len < 2) return; + frame += 2; + if (offset + 2 + len > bufLen) return; + } + + int energyA = desc->v3.energy_a ? -(int)desc->v3.energy_a : -256; + int energyB = desc->v3.energy_b ? -(int)desc->v3.energy_b : -256; + int rssi = energyA > energyB ? energyA : energyB; + if (rssi < -128) rssi = -128; + + WifiRxMgmtFrame(frame, len, desc->v3.channel, (int8_t)rssi); + } + + void IwxHandleNotification(const IwxRxPacket* pkt, const uint8_t* rxBuf, + uint32_t bufLen) { + (void)rxBuf; + uint32_t code = ((uint32_t)pkt->hdr.flags << 8) | pkt->hdr.code; + if (IwxCmdGroupId(code) == IWX_LONG_GROUP) + code = IwxCmdOpcode(code); + + switch (code) { + case IWX_REPLY_RX_MPDU_CMD: + HandleRxMpdu(pkt, bufLen); + break; + + case IWX_SCAN_COMPLETE_UMAC: + case IWX_SCAN_ITERATION_COMPLETE_UMAC: + g_iwx.ScanActive = false; + g_iwx.ScanCompleted = true; + break; + + case IWX_MCC_CHUB_UPDATE_CMD: + // Firmware-initiated regulatory change; the channel list is + // refreshed on the next explicit MCC update. + break; + + case IWX_WIDE_ID(IWX_PHY_OPS_GROUP, IWX_CT_KILL_NOTIFICATION): + KernelLogStream(ERROR, "WiFi") + << "Device at critical temperature; stopping radio"; + g_iwx.State = IwxFwState::Error; + break; + + default: + // Command acks, statistics and everything else the driver does + // not act on. The transport still uses them to complete the + // in-flight synchronous command. + break; + } + } +} diff --git a/kernel/src/Drivers/Net/Wifi/IwxReg.hpp b/kernel/src/Drivers/Net/Wifi/IwxReg.hpp new file mode 100644 index 0000000..c522179 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/IwxReg.hpp @@ -0,0 +1,1221 @@ +/* + * IwxReg.hpp + * Intel Wi-Fi (AX210/AX211 "So" family) register and firmware API definitions. + * + * Register offsets, firmware command IDs and wire-format structures follow + * Intel's dual BSD/GPLv2-licensed iwlwifi API headers, as consolidated in + * OpenBSD's if_iwxreg.h (ISC/BSD). Only the subset used by this driver is + * kept. See 0:/os/licenses/NOTICES.txt for the full attribution. + * + * Copyright (c) 2026 Daniel Hammer + * Portions Copyright (c) 2017 Intel Deutschland GmbH + * Portions Copyright (c) 2018-2019 Intel Corporation (BSD license) +*/ + +#pragma once +#include + +namespace Drivers::Net::Wifi { + +// ============================================================================= +// CSR (control and status registers, BAR0-mapped) +// ============================================================================= + +constexpr uint32_t IWX_CSR_HW_IF_CONFIG_REG = 0x000; +constexpr uint32_t IWX_CSR_INT_COALESCING = 0x004; +constexpr uint32_t IWX_CSR_INT = 0x008; +constexpr uint32_t IWX_CSR_INT_MASK = 0x00c; +constexpr uint32_t IWX_CSR_FH_INT_STATUS = 0x010; +constexpr uint32_t IWX_CSR_RESET = 0x020; +constexpr uint32_t IWX_CSR_GP_CNTRL = 0x024; +constexpr uint32_t IWX_CSR_HW_REV = 0x028; +constexpr uint32_t IWX_CSR_GIO_REG = 0x03C; +constexpr uint32_t IWX_CSR_UCODE_DRV_GP1_CLR = 0x05c; +constexpr uint32_t IWX_CSR_MBOX_SET_REG = 0x088; +constexpr uint32_t IWX_CSR_HW_RF_ID = 0x09c; +constexpr uint32_t IWX_CSR_MAC_SHADOW_REG_CTRL = 0x0A8; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD = 0x0d4; +constexpr uint32_t IWX_CSR_GIO_CHICKEN_BITS = 0x100; +constexpr uint32_t IWX_CSR_CTXT_INFO_BOOT_CTRL = 0x0; +constexpr uint32_t IWX_CSR_CTXT_INFO_ADDR = 0x118; +constexpr uint32_t IWX_CSR_IML_DATA_ADDR = 0x120; +constexpr uint32_t IWX_CSR_IML_SIZE_ADDR = 0x128; +constexpr uint32_t IWX_CSR_DBG_HPET_MEM_REG = 0x240; +constexpr uint32_t IWX_CSR_DBG_LINK_PWR_MGMT_REG = 0x250; + +constexpr uint32_t IWX_CSR_MBOX_SET_REG_OS_ALIVE = 0x20; +constexpr uint32_t IWX_CSR_AUTO_FUNC_BOOT_ENA = 1u << 1; + +// IWX_CSR_HW_IF_CONFIG_REG bits +constexpr uint32_t IWX_CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A = 0x00080000; +constexpr uint32_t IWX_CSR_HW_IF_CONFIG_REG_BIT_NIC_READY = 0x00400000; +constexpr uint32_t IWX_CSR_HW_IF_CONFIG_REG_PREPARE = 0x08000000; +constexpr uint32_t IWX_CSR_HW_IF_CONFIG_REG_ENABLE_PME = 0x10000000; + +// IWX_CSR_RESET bits +constexpr uint32_t IWX_CSR_RESET_REG_FLAG_SW_RESET = 0x00000080; +constexpr uint32_t IWX_CSR_RESET_REG_FLAG_MASTER_DISABLED = 0x00000100; +constexpr uint32_t IWX_CSR_RESET_REG_FLAG_STOP_MASTER = 0x00000200; +constexpr uint32_t IWX_CSR_RESET_LINK_PWR_MGMT_DISABLED = 0x80000000; + +// IWX_CSR_GP_CNTRL bits +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY = 0x00000001; +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_INIT_DONE = 0x00000004; +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ = 0x00000008; +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_GOING_TO_SLEEP = 0x00000010; +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_RFKILL_WAKE_L1A_EN = 0x04000000; +constexpr uint32_t IWX_CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW = 0x08000000; + +// HW REV / RF ID decoding +constexpr uint32_t IWX_CSR_HW_REV_TYPE(uint32_t v) { return (v & 0x000FFF0) >> 4; } +constexpr uint32_t IWX_CSR_HW_RFID_TYPE(uint32_t v) { return (v & 0x0FFF000) >> 12; } +constexpr uint32_t IWX_CSR_HW_RFID_IS_CDB(uint32_t v){ return (v & 0x10000000) >> 28; } +constexpr uint32_t IWX_CFG_RF_TYPE_GF = 0x10D; +constexpr uint32_t IWX_CFG_RF_TYPE_HR2 = 0x10A; +constexpr uint32_t IWX_CSR_HW_REV_TYPE_SO = 0x0000037; // after TYPE() extraction + +constexpr uint32_t IWX_CSR_GIO_REG_VAL_L0S_DISABLED = 0x00000002; +constexpr uint32_t IWX_CSR_GIO_CHICKEN_BITS_REG_BIT_L1A_NO_L0S_RX = 0x00800000; +constexpr uint32_t IWX_CSR_DBG_HPET_MEM_REG_VAL = 0xFFFF0000; +constexpr uint32_t IWX_CSR_UCODE_SW_BIT_RFKILL = 0x00000002; +constexpr uint32_t IWX_CSR_UCODE_DRV_GP1_BIT_CMD_BLOCKED = 0x00000004; + +// LTR +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_REQ = 0x80000000; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE_MASK = 0x1c000000; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE_SHIFT = 24; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL_MASK = 0x03ff0000; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL_SHIFT = 16; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_SNOOP_REQ = 0x00008000; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_SNOOP_SCALE_MASK = 0x00001c00; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_SNOOP_SCALE_SHIFT = 8; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_SNOOP_VAL = 0x000003ff; +constexpr uint32_t IWX_CSR_LTR_LONG_VAL_AD_SCALE_USEC = 2; + +// MAC address straps (AX210: base 0x380) +constexpr uint32_t IWX_CSR_MAC_ADDR_BASE = 0x380; +constexpr uint32_t IWX_CSR_MAC_ADDR0_OTP = IWX_CSR_MAC_ADDR_BASE + 0x00; +constexpr uint32_t IWX_CSR_MAC_ADDR1_OTP = IWX_CSR_MAC_ADDR_BASE + 0x04; +constexpr uint32_t IWX_CSR_MAC_ADDR0_STRAP = IWX_CSR_MAC_ADDR_BASE + 0x08; +constexpr uint32_t IWX_CSR_MAC_ADDR1_STRAP = IWX_CSR_MAC_ADDR_BASE + 0x0c; + +// Host interrupt coalescing default (32-usec units) +constexpr uint8_t IWX_HOST_INT_TIMEOUT_DEF = 0x40; + +// ============================================================================= +// HBUS (indirect access to device-internal registers/memory) +// ============================================================================= + +constexpr uint32_t IWX_HBUS_BASE = 0x400; +// Device-internal SRAM window: write the address, then read data words back +// (the address auto-increments). Used to pull the firmware's error tables. +constexpr uint32_t IWX_HBUS_TARG_MEM_RADDR = IWX_HBUS_BASE + 0x00c; +constexpr uint32_t IWX_HBUS_TARG_MEM_RDAT = IWX_HBUS_BASE + 0x01c; +constexpr uint32_t IWX_HBUS_TARG_PRPH_WADDR = IWX_HBUS_BASE + 0x044; +constexpr uint32_t IWX_HBUS_TARG_PRPH_RADDR = IWX_HBUS_BASE + 0x048; +constexpr uint32_t IWX_HBUS_TARG_PRPH_WDAT = IWX_HBUS_BASE + 0x04c; +constexpr uint32_t IWX_HBUS_TARG_PRPH_RDAT = IWX_HBUS_BASE + 0x050; +constexpr uint32_t IWX_HBUS_TARG_WRPTR = IWX_HBUS_BASE + 0x060; + +// RX free-ring write index shadow register (AX210, direct CSR) +constexpr uint32_t IWX_RFH_Q0_FRBDCB_WIDX_TRG = 0x1C80; + +// ============================================================================= +// PRPH / UMAC-PRPH registers (via HBUS indirect access) +// ============================================================================= + +// AX210: UMAC PRPH registers are offset by this amount. +constexpr uint32_t IWX_UMAC_PRPH_OFFSET = 0x300000; + +constexpr uint32_t IWX_UREG_CHICK = 0xa05c00; +constexpr uint32_t IWX_UREG_CHICK_MSI_ENABLE = 1u << 24; +constexpr uint32_t IWX_UREG_CHICK_MSIX_ENABLE = 1u << 25; +constexpr uint32_t IWX_UREG_CPU_INIT_RUN = 0xa05c44; +constexpr uint32_t IWX_UREG_DOORBELL_TO_ISR6 = 0xa05c04; +constexpr uint32_t IWX_UREG_DOORBELL_TO_ISR6_PNVM = 1u << 20; +constexpr uint32_t IWX_WFPM_CTRL_REG = 0xa03030; +constexpr uint32_t IWX_WFPM_AUX_CTL_AUX_IF_MAC_OWNER_MSK = 0x08000000; +constexpr uint32_t IWX_SD_REG_VER_GEN2 = 0xa2b800; +constexpr uint32_t IWX_CNVI_AUX_MISC_CHIP = 0xA200B0; +constexpr uint32_t IWX_RFH_RXF_DMA_CFG_GEN3 = 0xA07880; +constexpr uint32_t IWX_RFH_GEN_STATUS_GEN3 = 0xA07824; +constexpr uint32_t IWX_RXF_DMA_IDLE = 1u << 31; + +// ============================================================================= +// MSI-X cause handling registers +// ============================================================================= + +constexpr uint32_t IWX_CSR_MSIX_BASE = 0x2000; +constexpr uint32_t IWX_CSR_MSIX_FH_INT_CAUSES_AD = IWX_CSR_MSIX_BASE + 0x800; +constexpr uint32_t IWX_CSR_MSIX_FH_INT_MASK_AD = IWX_CSR_MSIX_BASE + 0x804; +constexpr uint32_t IWX_CSR_MSIX_HW_INT_CAUSES_AD = IWX_CSR_MSIX_BASE + 0x808; +constexpr uint32_t IWX_CSR_MSIX_HW_INT_MASK_AD = IWX_CSR_MSIX_BASE + 0x80C; +constexpr uint32_t IWX_CSR_MSIX_AUTOMASK_ST_AD = IWX_CSR_MSIX_BASE + 0x810; +constexpr uint32_t IWX_CSR_MSIX_RX_IVAR_AD_REG = IWX_CSR_MSIX_BASE + 0x880; +constexpr uint32_t IWX_CSR_MSIX_IVAR_AD_REG = IWX_CSR_MSIX_BASE + 0x890; + +constexpr uint32_t IWX_CSR_MSIX_RX_IVAR(uint32_t cause) { return IWX_CSR_MSIX_RX_IVAR_AD_REG + cause; } +constexpr uint32_t IWX_CSR_MSIX_IVAR(uint32_t cause) { return IWX_CSR_MSIX_IVAR_AD_REG + cause; } + +// FH cause bits +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_Q0 = 1u << 0; +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_Q1 = 1u << 1; +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_D2S_CH0_NUM = 1u << 16; +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_D2S_CH1_NUM = 1u << 17; +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_S2D = 1u << 19; +constexpr uint32_t IWX_MSIX_FH_INT_CAUSES_FH_ERR = 1u << 21; + +// HW cause bits +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_ALIVE = 1u << 0; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_WAKEUP = 1u << 1; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_RESET_DONE = 1u << 2; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_TOP_FATAL_ERR = 1u << 3; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR_V2 = 1u << 5; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_CT_KILL = 1u << 6; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_RF_KILL = 1u << 7; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_PERIODIC = 1u << 8; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR = 1u << 25; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_SCD = 1u << 26; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_FH_TX = 1u << 27; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_HW_ERR = 1u << 29; +constexpr uint32_t IWX_MSIX_HW_INT_CAUSES_REG_HAP = 1u << 30; + +// IVAR cause indices +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_D2S_CH0_NUM = 0x0; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_D2S_CH1_NUM = 0x1; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_S2D = 0x3; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_FH_ERR = 0x5; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_ALIVE = 0x10; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_WAKEUP = 0x11; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_RESET_DONE = 0x12; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_SW_ERR_V2 = 0x15; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_CT_KILL = 0x16; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_RF_KILL = 0x17; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_PERIODIC = 0x18; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_SW_ERR = 0x29; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_SCD = 0x2a; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_FH_TX = 0x2b; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_HW_ERR = 0x2d; +constexpr uint32_t IWX_MSIX_IVAR_CAUSE_REG_HAP = 0x2e; + +constexpr uint8_t IWX_MSIX_NON_AUTO_CLEAR_CAUSE = 1 << 7; + +// ============================================================================= +// Rings and DMA structures (AX210 / context-info gen3) +// ============================================================================= + +constexpr uint32_t IWX_RX_MQ_RING_COUNT = 512; +constexpr uint32_t IWX_RBUF_SIZE = 4096; +constexpr uint32_t IWX_TX_RING_COUNT = 256; +constexpr uint32_t IWX_TFD_QUEUE_SIZE_MAX_GEN3 = 65536; +constexpr uint32_t IWX_TFD_QUEUE_BC_SIZE_GEN3_AX210 = 1024; +constexpr uint32_t IWX_TFH_NUM_TBS = 25; +constexpr uint32_t IWX_MAX_DRAM_ENTRY = 64; + +// log2 helper for ring size encodings (RX cb size = exponent, TFD = exponent-3) +constexpr uint32_t IwxLog2(uint32_t x) { + uint32_t r = 0; + while (x > 1) { x >>= 1; r++; } + return r; +} +constexpr uint32_t IWX_RX_QUEUE_CB_SIZE(uint32_t x) { return IwxLog2(x); } +constexpr uint32_t IWX_TFD_QUEUE_CB_SIZE(uint32_t x) { return IwxLog2(x) - 3; } + +struct IwxRxTransferDesc { // RX free-ring entry (AX210) + uint16_t rbid; + uint16_t reserved[3]; + uint64_t addr; +} __attribute__((packed)); + +struct IwxRxCompletionDesc { // RX used-ring entry (AX210) + uint32_t reserved1; + uint16_t rbid; + uint8_t flags; + uint8_t reserved2[25]; +} __attribute__((packed)); + +struct IwxTfhTb { + uint16_t tb_len; + uint64_t addr; +} __attribute__((packed)); + +struct IwxTfhTfd { // TX frame descriptor (gen2/gen3) + uint16_t num_tbs; + IwxTfhTb tbs[IWX_TFH_NUM_TBS]; + uint32_t pad; +} __attribute__((packed)); + +struct IwxGen3BcTblEntry { // TX byte-count table entry + uint16_t tfd_offset; // 0-13 byte count, 14-15 num 64B chunks +} __attribute__((packed)); + +// ============================================================================= +// Context info gen3 (firmware boot descriptors, AX210) +// ============================================================================= + +struct IwxContextInfoDram { + uint64_t umac_img[IWX_MAX_DRAM_ENTRY]; + uint64_t lmac_img[IWX_MAX_DRAM_ENTRY]; + uint64_t virtual_img[IWX_MAX_DRAM_ENTRY]; +} __attribute__((packed)); + +struct IwxPrphScratchVersion { + uint16_t mac_id; + uint16_t version; + uint16_t size; + uint16_t reserved; +} __attribute__((packed)); + +struct IwxPrphScratchControl { + uint32_t control_flags; + uint32_t reserved; +} __attribute__((packed)); + +constexpr uint32_t IWX_PRPH_SCRATCH_IMR_DEBUG_EN = 1u << 1; +constexpr uint32_t IWX_PRPH_SCRATCH_RB_SIZE_4K = 1u << 16; +constexpr uint32_t IWX_PRPH_SCRATCH_MTR_MODE = 1u << 17; +constexpr uint32_t IWX_PRPH_SCRATCH_MTR_FORMAT = (1u << 18) | (1u << 19); +constexpr uint32_t IWX_PRPH_MTR_FORMAT_256B = 0xC0000; + +struct IwxPrphScratchPnvmCfg { + uint64_t pnvm_base_addr; + uint32_t pnvm_size; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxPrphScratchHwmCfg { + uint64_t hwm_base_addr; + uint32_t hwm_size; + uint32_t debug_token_config; +} __attribute__((packed)); + +struct IwxPrphScratchRbdCfg { + uint64_t free_rbd_addr; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxPrphScratchUefiCfg { + uint64_t base_addr; + uint32_t size; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxPrphScratchCtrlCfg { + IwxPrphScratchVersion version; + IwxPrphScratchControl control; + IwxPrphScratchPnvmCfg pnvm_cfg; + IwxPrphScratchHwmCfg hwm_cfg; + IwxPrphScratchRbdCfg rbd_cfg; + IwxPrphScratchUefiCfg reduce_power_cfg; +} __attribute__((packed)); + +struct IwxPrphScratch { + IwxPrphScratchCtrlCfg ctrl_cfg; + uint32_t reserved[12]; + IwxContextInfoDram dram; +} __attribute__((packed)); + +struct IwxPrphInfo { + uint32_t boot_stage_mirror; + uint32_t ipc_status_mirror; + uint32_t sleep_notif; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxContextInfoGen3 { + uint16_t version; + uint16_t size; + uint32_t config; + uint64_t prph_info_base_addr; + uint64_t cr_head_idx_arr_base_addr; + uint64_t tr_tail_idx_arr_base_addr; + uint64_t cr_tail_idx_arr_base_addr; + uint64_t tr_head_idx_arr_base_addr; + uint16_t cr_idx_arr_size; + uint16_t tr_idx_arr_size; + uint64_t mtr_base_addr; + uint64_t mcr_base_addr; + uint16_t mtr_size; + uint16_t mcr_size; + uint16_t mtr_doorbell_vec; + uint16_t mcr_doorbell_vec; + uint16_t mtr_msi_vec; + uint16_t mcr_msi_vec; + uint8_t mtr_opt_header_size; + uint8_t mtr_opt_footer_size; + uint8_t mcr_opt_header_size; + uint8_t mcr_opt_footer_size; + uint16_t msg_rings_ctrl_flags; + uint16_t prph_info_msi_vec; + uint64_t prph_scratch_base_addr; + uint32_t prph_scratch_size; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxPnvmInfoDram { + uint64_t pnvm_img[IWX_MAX_DRAM_ENTRY]; +} __attribute__((packed)); + +// ============================================================================= +// Firmware file (.ucode) TLV format +// ============================================================================= + +constexpr uint32_t IWX_TLV_UCODE_MAGIC = 0x0a4c5749; + +struct IwxTlvUcodeHeader { + uint32_t zero; + uint32_t magic; + uint8_t human_readable[64]; + uint32_t ver; + uint32_t build; + uint64_t ignore; + uint8_t data[]; +} __attribute__((packed)); + +struct IwxUcodeTlv { + uint32_t type; + uint32_t length; + uint8_t data[]; +} __attribute__((packed)); + +// TLV types used by this driver +constexpr uint32_t IWX_UCODE_TLV_PROBE_MAX_LEN = 6; +constexpr uint32_t IWX_UCODE_TLV_FLAGS = 18; +constexpr uint32_t IWX_UCODE_TLV_SEC_RT = 19; +constexpr uint32_t IWX_UCODE_TLV_PHY_SKU = 23; +constexpr uint32_t IWX_UCODE_TLV_API_CHANGES_SET = 29; +constexpr uint32_t IWX_UCODE_TLV_ENABLED_CAPABILITIES = 30; +constexpr uint32_t IWX_UCODE_TLV_N_SCAN_CHANNELS = 31; +constexpr uint32_t IWX_UCODE_TLV_FW_VERSION = 36; +constexpr uint32_t IWX_UCODE_TLV_CMD_VERSIONS = 48; +constexpr uint32_t IWX_UCODE_TLV_IML = 52; +constexpr uint32_t IWX_UCODE_TLV_PNVM_DATA = 74; +constexpr uint32_t IWX_UCODE_TLV_PNVM_VERSION = 62; +constexpr uint32_t IWX_UCODE_TLV_PNVM_SKU = 64; +constexpr uint32_t IWX_UCODE_TLV_HW_TYPE = 58; + +// Section separators inside SEC_RT stream +constexpr uint32_t IWX_CPU1_CPU2_SEPARATOR_SECTION = 0xFFFFCCCC; +constexpr uint32_t IWX_PAGING_SEPARATOR_SECTION = 0xAAAABBBB; + +constexpr uint32_t IWX_UCODE_MAJOR(uint32_t ver) { return (ver & 0xFF000000) >> 24; } +constexpr uint32_t IWX_UCODE_MINOR(uint32_t ver) { return (ver & 0x00FF0000) >> 16; } +constexpr uint32_t IWX_UCODE_API(uint32_t ver) { return (ver & 0x0000FF00) >> 8; } + +struct IwxUcodeApiCapa { // API_CHANGES_SET / ENABLED_CAPABILITIES + uint32_t api_index; + uint32_t api_flags; +} __attribute__((packed)); + +struct IwxFwCmdVersion { + uint8_t cmd; + uint8_t group; + uint8_t cmd_ver; + uint8_t notif_ver; +} __attribute__((packed)); + +// ucode API/capability bits used here +constexpr uint32_t IWX_UCODE_TLV_API_REGULATORY_NVM_INFO = 48; +constexpr uint32_t IWX_UCODE_TLV_API_REDUCED_SCAN_CONFIG = 56; +constexpr uint32_t IWX_UCODE_TLV_API_SCAN_EXT_CHAN_VER = 58; +constexpr uint32_t IWX_UCODE_TLV_CAPA_LAR_SUPPORT = 1; +constexpr uint32_t IWX_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT = 9; +constexpr uint32_t IWX_UCODE_TLV_CAPA_DQA_SUPPORT = 12; +constexpr uint32_t IWX_UCODE_TLV_CAPA_LAR_MULTI_MCC = 29; +constexpr uint32_t IWX_UCODE_TLV_CAPA_FRAGMENTED_PNVM_IMG = 32; +constexpr uint32_t IWX_UCODE_TLV_CAPA_CDB_SUPPORT = 40; +constexpr uint32_t IWX_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS = 48; +constexpr uint32_t IWX_UCODE_TLV_CAPA_SESSION_PROT_CMD = 54; +constexpr uint32_t IWX_UCODE_TLV_CAPA_CT_KILL_BY_FW = 74; +constexpr uint32_t IWX_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT = 89; +constexpr uint32_t IWX_UCODE_TLV_API_WIFI_MCC_UPDATE = 9; +constexpr uint32_t IWX_NUM_UCODE_TLV_API = 128; +constexpr uint32_t IWX_NUM_UCODE_TLV_CAPA = 160; + +// PHY_SKU decoding +constexpr uint32_t IWX_FW_PHY_CFG_TX_CHAIN_POS = 16; +constexpr uint32_t IWX_FW_PHY_CFG_TX_CHAIN = 0xfu << IWX_FW_PHY_CFG_TX_CHAIN_POS; +constexpr uint32_t IWX_FW_PHY_CFG_RX_CHAIN_POS = 20; +constexpr uint32_t IWX_FW_PHY_CFG_RX_CHAIN = 0xfu << IWX_FW_PHY_CFG_RX_CHAIN_POS; + +// ============================================================================= +// Host commands +// ============================================================================= + +// Command groups +constexpr uint8_t IWX_LEGACY_GROUP = 0x0; +constexpr uint8_t IWX_LONG_GROUP = 0x1; +constexpr uint8_t IWX_SYSTEM_GROUP = 0x2; +constexpr uint8_t IWX_MAC_CONF_GROUP = 0x3; +constexpr uint8_t IWX_PHY_OPS_GROUP = 0x4; +constexpr uint8_t IWX_DATA_PATH_GROUP = 0x5; +constexpr uint8_t IWX_REGULATORY_AND_NVM_GROUP = 0xc; +constexpr uint8_t IWX_STATISTICS_GROUP = 0x10; + +constexpr uint32_t IWX_WIDE_ID(uint32_t grp, uint32_t opcode) { return (grp << 8) | opcode; } +constexpr uint8_t IwxCmdOpcode(uint32_t id) { return (uint8_t)(id & 0xff); } +constexpr uint8_t IwxCmdGroupId(uint32_t id) { return (uint8_t)((id >> 8) & 0xff); } + +// Legacy-group command / notification IDs +constexpr uint8_t IWX_ALIVE = 0x1; +constexpr uint8_t IWX_REPLY_ERROR = 0x2; +constexpr uint8_t IWX_INIT_COMPLETE_NOTIF = 0x4; +constexpr uint8_t IWX_PHY_CONTEXT_CMD = 0x8; +constexpr uint8_t IWX_SCAN_ITERATION_COMPLETE_UMAC = 0xb5; +constexpr uint8_t IWX_SCAN_CFG_CMD = 0xc; +constexpr uint8_t IWX_SCAN_REQ_UMAC = 0xd; +constexpr uint8_t IWX_SCAN_ABORT_UMAC = 0xe; +constexpr uint8_t IWX_SCAN_COMPLETE_UMAC = 0xf; +constexpr uint8_t IWX_ADD_STA_KEY = 0x17; +constexpr uint8_t IWX_ADD_STA = 0x18; +constexpr uint8_t IWX_REMOVE_STA = 0x19; +constexpr uint8_t IWX_TX_CMD = 0x1c; +constexpr uint8_t IWX_SCD_QUEUE_CFG = 0x1d; +constexpr uint8_t IWX_MAC_CONTEXT_CMD = 0x28; +constexpr uint8_t IWX_TIME_EVENT_CMD = 0x29; +constexpr uint8_t IWX_TIME_EVENT_NOTIFICATION = 0x2a; +constexpr uint8_t IWX_BINDING_CONTEXT_CMD = 0x2b; +constexpr uint8_t IWX_PHY_CONFIGURATION_CMD = 0x6a; +constexpr uint8_t IWX_POWER_TABLE_CMD = 0x77; +constexpr uint8_t IWX_LTR_CONFIG = 0xee; +constexpr uint8_t IWX_TX_ANT_CONFIGURATION_CMD = 0x98; +constexpr uint8_t IWX_BT_CONFIG = 0x9b; +constexpr uint8_t IWX_STATISTICS_NOTIFICATION = 0x9d; +constexpr uint8_t IWX_MISSED_BEACONS_NOTIFICATION = 0xa2; +constexpr uint8_t IWX_MFUART_LOAD_NOTIFICATION = 0xb1; +constexpr uint8_t IWX_MAC_PM_POWER_TABLE = 0xa9; +constexpr uint8_t IWX_REPLY_RX_PHY_CMD = 0xc0; +constexpr uint8_t IWX_REPLY_RX_MPDU_CMD = 0xc1; +constexpr uint8_t IWX_BA_NOTIF = 0xc5; +constexpr uint8_t IWX_MCC_UPDATE_CMD = 0xc8; +constexpr uint8_t IWX_MCC_CHUB_UPDATE_CMD = 0xc9; +constexpr uint8_t IWX_REPLY_BEACON_FILTERING_CMD = 0xd2; +constexpr uint8_t IWX_DEBUG_LOG_MSG = 0xf7; + +// SYSTEM group subcommands +constexpr uint8_t IWX_SOC_CONFIGURATION_CMD = 0x01; +constexpr uint8_t IWX_INIT_EXTENDED_CFG_CMD = 0x03; +constexpr uint8_t IWX_FSEQ_VER_MISMATCH_NOTIFICATION = 0xff; + +// MAC_CONF group subcommands +constexpr uint8_t IWX_SESSION_PROTECTION_CMD = 0x05; +constexpr uint8_t IWX_SESSION_PROTECTION_NOTIF = 0xfb; + +// PHY_OPS group subcommands +constexpr uint8_t IWX_TEMP_REPORTING_THRESHOLDS_CMD = 0x04; +constexpr uint8_t IWX_CT_KILL_NOTIFICATION = 0xFE; +constexpr uint8_t IWX_DTS_MEASUREMENT_NOTIF_WIDE = 0xFF; + +// DATA_PATH group subcommands +constexpr uint8_t IWX_DQA_ENABLE_CMD = 0x00; +constexpr uint8_t IWX_RLC_CONFIG_CMD = 0x08; +constexpr uint8_t IWX_TLC_MNG_CONFIG_CMD = 0x0f; +constexpr uint8_t IWX_SCD_QUEUE_CONFIG_CMD = 0x17; +constexpr uint8_t IWX_RX_NO_DATA_NOTIF = 0xf5; +constexpr uint8_t IWX_THERMAL_DUAL_CHAIN_REQUEST = 0xf6; +constexpr uint8_t IWX_TLC_MNG_UPDATE_NOTIF = 0xf7; + +// REGULATORY_AND_NVM group subcommands +constexpr uint8_t IWX_NVM_ACCESS_COMPLETE = 0x00; +constexpr uint8_t IWX_NVM_GET_INFO = 0x02; +constexpr uint8_t IWX_PNVM_INIT_COMPLETE = 0xfe; + +// Command delivery structures +struct IwxCmdHeader { + uint8_t code; + uint8_t flags; + uint8_t idx; + uint8_t qid; +} __attribute__((packed)); + +struct IwxCmdHeaderWide { + uint8_t opcode; + uint8_t group_id; + uint8_t idx; + uint8_t qid; + uint16_t length; + uint8_t reserved; + uint8_t version; +} __attribute__((packed)); + +constexpr uint32_t IWX_DEF_CMD_PAYLOAD_SIZE = 320; +constexpr uint32_t IWX_MAX_CMD_PAYLOAD_SIZE = 4096 - sizeof(IwxCmdHeaderWide); +constexpr uint32_t IWX_FIRST_TB_SIZE = 20; +constexpr uint32_t IWX_FIRST_TB_SIZE_ALIGN = (IWX_FIRST_TB_SIZE + 63) & ~63u; +constexpr uint8_t IWX_CMD_FAILED_MSK = 0x40; + +struct IwxDeviceCmd { + IwxCmdHeaderWide hdr_wide; + uint8_t data_wide[IWX_DEF_CMD_PAYLOAD_SIZE - sizeof(IwxCmdHeaderWide) + + sizeof(IwxCmdHeader)]; +} __attribute__((packed)); + +struct IwxRxPacket { + uint32_t len_n_flags; + IwxCmdHeader hdr; + uint8_t data[]; +} __attribute__((packed)); + +constexpr uint32_t IWX_FH_RSCSR_FRAME_SIZE_MSK = 0x00003fff; +constexpr uint32_t IWX_FH_RSCSR_FRAME_INVALID = 0x55550000; +constexpr uint32_t IWX_FH_RSCSR_FRAME_ALIGN = 0x40; + +inline uint32_t IwxRxPacketLen(const IwxRxPacket* pkt) { + return pkt->len_n_flags & IWX_FH_RSCSR_FRAME_SIZE_MSK; +} +inline uint32_t IwxRxPacketPayloadLen(const IwxRxPacket* pkt) { + return IwxRxPacketLen(pkt) - sizeof(IwxCmdHeader); +} + +// DQA queue assignment +constexpr int IWX_DQA_CMD_QUEUE = 0; +constexpr int IWX_DQA_MGMT_QUEUE = 1; +constexpr int IWX_MGMT_TID = 15; +constexpr int IWX_STATION_ID = 0; + +// ============================================================================= +// Simple command payloads +// ============================================================================= + +struct IwxDqaEnableCmd { uint32_t cmd_queue; } __attribute__((packed)); +struct IwxCmdResponse { uint32_t status; } __attribute__((packed)); +struct IwxTxAntCfgCmd { uint32_t valid; } __attribute__((packed)); +struct IwxCalibCtrl { uint32_t flow_trigger; uint32_t event_trigger; } __attribute__((packed)); +struct IwxPhyCfgCmd { uint32_t phy_cfg; IwxCalibCtrl calib_control; } __attribute__((packed)); +struct IwxBtCoexCmd { uint32_t mode; uint32_t enabled_modules; } __attribute__((packed)); +constexpr uint32_t IWX_BT_COEX_WIFI = 0x3; +struct IwxSocConfigurationCmd { uint32_t flags; uint32_t latency; } __attribute__((packed)); +constexpr uint32_t IWX_SOC_CONFIG_CMD_FLAGS_LOW_LATENCY = 1u << 1; +constexpr uint32_t IWX_SOC_FLAGS_LTR_APPLY_DELAY_2500 = 2; +struct IwxNvmAccessCompleteCmd { uint32_t reserved; } __attribute__((packed)); +struct IwxNvmGetInfo { uint32_t reserved; } __attribute__((packed)); +struct IwxInitExtendedCfgCmd { uint32_t init_flags; } __attribute__((packed)); +constexpr uint32_t IWX_INIT_NVM = 1u << 1; + +constexpr uint32_t IWX_LTR_CFG_FLAG_FEATURE_ENABLE = 0x00000001; +constexpr uint32_t IWX_LTR_VALID_STATES_NUM = 4; +struct IwxLtrConfigCmd { + uint32_t flags; + uint32_t static_long; + uint32_t static_short; + uint32_t ltr_cfg_values[IWX_LTR_VALID_STATES_NUM]; + uint32_t ltr_short_idle_timeout; +} __attribute__((packed)); + +constexpr uint32_t IWX_MAX_DTS_TRIPS = 8; +struct IwxTempReportThsCmd { + uint32_t num_temps; + uint16_t thresholds[IWX_MAX_DTS_TRIPS]; +} __attribute__((packed)); + +// BEACON_FILTER_CONFIG_API_S_VER_4. The two trailing threshold arrays are +// part of the command: firmware that advertises v4 expects all 60 bytes and +// asserts on a short payload. +struct IwxBeaconFilterCmd { + uint32_t bf_energy_delta; + uint32_t bf_roaming_energy_delta; + uint32_t bf_roaming_state; + uint32_t bf_temp_threshold; + uint32_t bf_temp_fast_filter; + uint32_t bf_temp_slow_filter; + uint32_t bf_enable_beacon_filter; + uint32_t bf_debug_flag; + uint32_t bf_escape_timer; + uint32_t ba_escape_timer; + uint32_t ba_enable_beacon_abort; + uint32_t bf_threshold_absolute_low[2]; + uint32_t bf_threshold_absolute_high[2]; +} __attribute__((packed)); + +// ============================================================================= +// ALIVE notification +// ============================================================================= + +constexpr uint16_t IWX_ALIVE_STATUS_OK = 0xCAFE; + +struct IwxLmacDebugAddrs { + uint32_t error_event_table_ptr; + uint32_t log_event_table_ptr; + uint32_t cpu_register_ptr; + uint32_t dbgm_config_ptr; + uint32_t alive_counter_ptr; + uint32_t scd_base_ptr; + uint32_t st_fwrd_addr; + uint32_t st_fwrd_size; +} __attribute__((packed)); + +struct IwxLmacAlive { + uint32_t ucode_major; + uint32_t ucode_minor; + uint8_t ver_subtype; + uint8_t ver_type; + uint8_t mac; + uint8_t opt; + uint32_t timestamp; + IwxLmacDebugAddrs dbg_ptrs; +} __attribute__((packed)); + +struct IwxUmacDebugAddrs { + uint32_t error_info_addr; + uint32_t dbg_print_buff_addr; +} __attribute__((packed)); + +struct IwxUmacAlive { + uint32_t umac_major; + uint32_t umac_minor; + IwxUmacDebugAddrs dbg_ptrs; +} __attribute__((packed)); + +struct IwxSkuId { uint32_t data[3]; } __attribute__((packed)); + +struct IwxAliveRespV5 { + uint16_t status; + uint16_t flags; + IwxLmacAlive lmac_data[2]; + IwxUmacAlive umac_data; + IwxSkuId sku_id; +} __attribute__((packed)); + +struct IwxImrAliveInfo { + uint64_t base_addr; + uint32_t size; + uint32_t enabled; +} __attribute__((packed)); + +struct IwxAliveRespV6 { + uint16_t status; + uint16_t flags; + IwxLmacAlive lmac_data[2]; + IwxUmacAlive umac_data; + IwxSkuId sku_id; + IwxImrAliveInfo imr; +} __attribute__((packed)); + +// ============================================================================= +// NVM (regulatory / MAC data via NVM_GET_INFO) +// ============================================================================= + +constexpr uint32_t IWX_NUM_CHANNELS_V1 = 51; +constexpr uint32_t IWX_NUM_CHANNELS = 110; +constexpr uint32_t IWX_NUM_2GHZ_CHANNELS = 14; +constexpr uint32_t IWX_NUM_5GHZ_CHANNELS = 37; + +struct IwxNvmGetInfoGeneral { + uint32_t flags; + uint16_t nvm_version; + uint8_t board_type; + uint8_t n_hw_addrs; +} __attribute__((packed)); + +struct IwxNvmGetInfoSku { uint32_t mac_sku_flags; } __attribute__((packed)); +struct IwxNvmGetInfoPhy { uint32_t tx_chains; uint32_t rx_chains; } __attribute__((packed)); + +constexpr uint32_t IWX_NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED = 1u << 0; +constexpr uint32_t IWX_NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED = 1u << 1; +constexpr uint32_t IWX_NVM_MAC_SKU_FLAGS_802_11N_ENABLED = 1u << 2; +constexpr uint32_t IWX_NVM_MAC_SKU_FLAGS_802_11AC_ENABLED = 1u << 3; +constexpr uint32_t IWX_NVM_MAC_SKU_FLAGS_802_11AX_ENABLED = 1u << 4; + +struct IwxNvmGetInfoRegulatoryV1 { + uint32_t lar_enabled; + uint16_t channel_profile[IWX_NUM_CHANNELS_V1]; + uint16_t reserved; +} __attribute__((packed)); + +struct IwxNvmGetInfoRegulatory { + uint32_t lar_enabled; + uint32_t n_channels; + uint32_t channel_profile[IWX_NUM_CHANNELS]; +} __attribute__((packed)); + +struct IwxNvmGetInfoRspV3 { + IwxNvmGetInfoGeneral general; + IwxNvmGetInfoSku mac_sku; + IwxNvmGetInfoPhy phy_sku; + IwxNvmGetInfoRegulatoryV1 regulatory; +} __attribute__((packed)); + +struct IwxNvmGetInfoRsp { + IwxNvmGetInfoGeneral general; + IwxNvmGetInfoSku mac_sku; + IwxNvmGetInfoPhy phy_sku; + IwxNvmGetInfoRegulatory regulatory; +} __attribute__((packed)); + +// NVM channel flags +constexpr uint32_t IWX_NVM_CHANNEL_VALID = 1u << 0; +constexpr uint32_t IWX_NVM_CHANNEL_ACTIVE = 1u << 3; +constexpr uint32_t IWX_NVM_CHANNEL_40MHZ = 1u << 9; +constexpr uint32_t IWX_NVM_CHANNEL_80MHZ = 1u << 10; +constexpr uint32_t IWX_NVM_CHANNEL_160MHZ = 1u << 11; + +// ============================================================================= +// MCC (regulatory country) update +// ============================================================================= + +struct IwxMccUpdateCmd { + uint16_t mcc; + uint8_t source_id; + uint8_t reserved; + uint32_t key; + uint32_t reserved2[5]; +} __attribute__((packed)); + +constexpr uint8_t IWX_MCC_SOURCE_OLD_FW = 0; +constexpr uint8_t IWX_MCC_SOURCE_GET_CURRENT = 0x10; + +struct IwxMccUpdateRespV4 { + uint32_t status; + uint16_t mcc; + uint16_t cap; + uint16_t time; + uint16_t geo_info; + uint8_t source_id; + uint8_t reserved[3]; + uint32_t n_channels; + uint32_t channels[]; +} __attribute__((packed)); + +struct IwxMccChubNotif { + uint16_t mcc; + uint8_t source_id; + uint8_t reserved1; +} __attribute__((packed)); + +// ============================================================================= +// UMAC scan +// ============================================================================= + +constexpr uint32_t IWX_MAX_SCAN_CHANNELS = 67; // API channel_config[] size +constexpr uint32_t IWX_DEFAULT_SCAN_CHANNELS = 40; +constexpr uint32_t IWX_SCAN_TWO_LMACS = 2; +constexpr uint32_t IWX_SCAN_LB_LMAC_IDX = 0; +constexpr uint32_t IWX_SCAN_HB_LMAC_IDX = 1; +constexpr uint32_t IWX_SCAN_PRIORITY_EXT_6 = 6; +constexpr uint8_t IWX_PHY_BAND_5 = 0; +constexpr uint8_t IWX_PHY_BAND_24 = 1; +constexpr uint32_t IWX_CHAN_CFG_FLAGS_BAND_POS = 30; +constexpr uint32_t IWX_MAX_SCHED_SCAN_PLANS = 2; +constexpr uint32_t IWX_PROBE_OPTION_MAX = 20; +constexpr uint32_t IWX_SCAN_OFFLOAD_PROBE_REQ_SIZE = 512; +constexpr uint32_t IWX_SCAN_SHORT_SSID_MAX_SIZE = 8; +constexpr uint32_t IWX_SCAN_BSSID_MAX_SIZE = 16; +constexpr uint8_t IWX_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER = 1 << 5; + +constexpr uint16_t IWX_UMAC_SCAN_GEN_FLAGS_V2_PASS_ALL = 1 << 1; +constexpr uint16_t IWX_UMAC_SCAN_GEN_FLAGS_V2_NTFY_ITER_COMPLETE = 1 << 2; +constexpr uint16_t IWX_UMAC_SCAN_GEN_FLAGS_V2_ADAPTIVE_DWELL = 1 << 7; +constexpr uint16_t IWX_UMAC_SCAN_GEN_FLAGS_V2_FORCE_PASSIVE = 1 << 11; + +struct IwxScanConfig { // SCAN_CONFIG_DB_CMD_API_S_5 (reduced) + uint8_t enable_cam_mode; + uint8_t enable_promiscuous_mode; + uint8_t bcast_sta_id; + uint8_t reserved; + uint32_t tx_chains; + uint32_t rx_chains; +} __attribute__((packed)); + +struct IwxSsidIe { + uint8_t id; + uint8_t len; + uint8_t ssid[32]; +} __attribute__((packed)); + +struct IwxScanProbeSegment { uint16_t offset; uint16_t len; } __attribute__((packed)); + +struct IwxScanProbeReq { // PROBE_REQUEST_FRAME_API_S_VER_v2 + IwxScanProbeSegment mac_header; + IwxScanProbeSegment band_data[3]; + IwxScanProbeSegment common_data; + uint8_t buf[IWX_SCAN_OFFLOAD_PROBE_REQ_SIZE]; +} __attribute__((packed)); + +struct IwxScanChannelCfgUmac { // SCAN_CHANNEL_CFG_S_VER_2 layout + uint32_t flags; + uint8_t channel_num; + uint8_t band; + uint8_t iter_count; + uint8_t iter_interval; +} __attribute__((packed)); + +struct IwxScanChannelCfgUmacV5 { // SCAN_CHANNEL_CONFIG_API_S_VER_5 + uint32_t flags; + uint8_t channel_num; + uint8_t psd_20; + uint8_t iter_count; + uint8_t iter_interval; +} __attribute__((packed)); + +struct IwxScanUmacSchedule { + uint16_t interval; + uint8_t iter_count; + uint8_t reserved; +} __attribute__((packed)); + +struct IwxScanGeneralParamsV10 { + uint16_t flags; + uint8_t reserved; + uint8_t scan_start_mac_id; + uint8_t active_dwell[IWX_SCAN_TWO_LMACS]; + uint8_t adwell_default_2g; + uint8_t adwell_default_5g; + uint8_t adwell_default_social_chn; + uint8_t reserved1; + uint16_t adwell_max_budget; + uint32_t max_out_of_time[IWX_SCAN_TWO_LMACS]; + uint32_t suspend_time[IWX_SCAN_TWO_LMACS]; + uint32_t scan_priority; + uint8_t passive_dwell[IWX_SCAN_TWO_LMACS]; + uint8_t num_of_fragments[IWX_SCAN_TWO_LMACS]; +} __attribute__((packed)); + +// V11/V12 layout matches V10 except reserved1 is flags2. +using IwxScanGeneralParamsV11 = IwxScanGeneralParamsV10; + +struct IwxScanChannelParamsV6 { + uint8_t flags; + uint8_t count; + uint8_t n_aps_override[2]; + IwxScanChannelCfgUmac channel_config[IWX_MAX_SCAN_CHANNELS]; +} __attribute__((packed)); + +struct IwxScanChannelParamsV7 { + uint8_t flags; + uint8_t count; + uint8_t n_aps_override[2]; + IwxScanChannelCfgUmacV5 channel_config[IWX_MAX_SCAN_CHANNELS]; +} __attribute__((packed)); + +struct IwxScanPeriodicParmsV1 { + IwxScanUmacSchedule schedule[IWX_MAX_SCHED_SCAN_PLANS]; + uint16_t delay; + uint16_t reserved; +} __attribute__((packed)); + +struct IwxScanProbeParamsV4 { + IwxScanProbeReq preq; + uint8_t short_ssid_num; + uint8_t bssid_num; + uint16_t reserved; + IwxSsidIe direct_scan[IWX_PROBE_OPTION_MAX]; + uint32_t short_ssid[IWX_SCAN_SHORT_SSID_MAX_SIZE]; + uint8_t bssid_array[IWX_SCAN_BSSID_MAX_SIZE][6]; +} __attribute__((packed)); + +struct IwxScanReqUmacV14 { + uint32_t uid; + uint32_t ooc_priority; + IwxScanGeneralParamsV10 general_params; + IwxScanChannelParamsV6 channel_params; + IwxScanPeriodicParmsV1 periodic_params; + IwxScanProbeParamsV4 probe_params; +} __attribute__((packed)); + +struct IwxScanReqUmacV17 { + uint32_t uid; + uint32_t ooc_priority; + IwxScanGeneralParamsV11 general_params; + IwxScanChannelParamsV7 channel_params; + IwxScanPeriodicParmsV1 periodic_params; + IwxScanProbeParamsV4 probe_params; +} __attribute__((packed)); + +struct IwxUmacScanAbort { uint32_t uid; uint32_t flags; } __attribute__((packed)); + +struct IwxUmacScanComplete { + uint32_t uid; + uint8_t last_schedule; + uint8_t last_iter; + uint8_t status; + uint8_t ebs_status; + uint32_t time_from_last_iter; + uint32_t reserved; +} __attribute__((packed)); + +// Scan dwell defaults (TU) +constexpr uint8_t IWX_SCAN_DWELL_ACTIVE = 10; +constexpr uint8_t IWX_SCAN_DWELL_PASSIVE = 110; +constexpr uint16_t IWX_SCAN_ADWELL_MAX_BUDGET_FULL_SCAN = 300; +constexpr uint8_t IWX_SCAN_ADWELL_DEFAULT_HB_N_APS = 8; +constexpr uint8_t IWX_SCAN_ADWELL_DEFAULT_LB_N_APS = 2; +constexpr uint8_t IWX_SCAN_ADWELL_DEFAULT_N_APS_SOCIAL = 10; +constexpr uint8_t IWX_SCAN_ADWELL_N_APS_GO_FRIENDLY = 10; +constexpr uint8_t IWX_SCAN_ADWELL_N_APS_SOCIAL_CHS = 2; + +// ============================================================================= +// RX MPDU descriptor (AX210) +// ============================================================================= + +constexpr uint32_t IWX_RX_MPDU_RES_STATUS_CRC_OK = 1u << 0; +constexpr uint32_t IWX_RX_MPDU_RES_STATUS_OVERRUN_OK = 1u << 1; +constexpr uint8_t IWX_RX_MPDU_MFLG2_PAD = 0x20; +constexpr uint8_t IWX_RX_MPDU_MFLG2_AMSDU = 0x40; + +struct IwxRxMpduDescV3 { + uint32_t filter_match; + uint32_t rss_hash; + uint32_t partial_hash; + uint16_t raw_xsum; + uint16_t reserved_xsum; + uint32_t rate_n_flags; + uint8_t energy_a; + uint8_t energy_b; + uint8_t channel; + uint8_t mac_context; + uint32_t gp2_on_air_rise; + uint32_t tsf_on_air_rise0; + uint32_t tsf_on_air_rise1; + uint32_t reserved[2]; +} __attribute__((packed)); + +struct IwxRxMpduDesc { + uint16_t mpdu_len; + uint8_t mac_flags1; + uint8_t mac_flags2; + uint8_t amsdu_info; + uint16_t phy_info; + uint8_t mac_phy_idx; + uint16_t raw_csum; + uint16_t l3l4_flags; + uint32_t status; + uint32_t reorder_data; + IwxRxMpduDescV3 v3; +} __attribute__((packed)); + +// ============================================================================= +// Firmware context management (auth/assoc groundwork) +// ============================================================================= + +constexpr uint32_t IWX_FW_CTXT_ID_POS = 0; +constexpr uint32_t IWX_FW_CTXT_COLOR_POS = 8; +constexpr uint32_t IWX_FW_CTXT_INVALID = 0xffffffff; +constexpr uint32_t IWX_FW_CMD_ID_AND_COLOR(uint32_t id, uint32_t color) { + return (id << IWX_FW_CTXT_ID_POS) | (color << IWX_FW_CTXT_COLOR_POS); +} +constexpr uint32_t IWX_FW_CTXT_ACTION_ADD = 1; +constexpr uint32_t IWX_FW_CTXT_ACTION_MODIFY = 2; +constexpr uint32_t IWX_FW_CTXT_ACTION_REMOVE = 3; + +constexpr uint32_t IWX_LMAC_24G_INDEX = 0; +constexpr uint32_t IWX_LMAC_5G_INDEX = 1; + +// PHY context +struct IwxFwChannelInfoV1 { + uint8_t band; + uint8_t channel; + uint8_t width; + uint8_t ctrl_pos; +} __attribute__((packed)); + +constexpr uint8_t IWX_PHY_VHT_CHANNEL_MODE20 = 0x0; +constexpr uint8_t IWX_PHY_VHT_CTRL_POS_1_BELOW = 0x0; +constexpr uint32_t IWX_PHY_RX_CHAIN_VALID_POS = 1; +constexpr uint32_t IWX_PHY_RX_CHAIN_CNT_POS = 10; +constexpr uint32_t IWX_PHY_RX_CHAIN_MIMO_CNT_POS = 12; + +struct IwxPhyContextCmd { // PHY_CONTEXT_CMD_API_VER_3/4 (non-UHB) + uint32_t id_and_color; + uint32_t action; + IwxFwChannelInfoV1 ci; + uint32_t lmac_id; + uint32_t rxchain_info; + uint32_t dsp_cfg_flags; + uint32_t reserved; +} __attribute__((packed)); + +// MAC context +constexpr uint32_t IWX_FW_MAC_TYPE_BSS_STA = 5; +constexpr uint32_t IWX_TSF_ID_A = 0; +constexpr uint32_t IWX_AC_NUM = 4; +constexpr uint32_t IWX_MAC_QOS_FLG_UPDATE_EDCA = 1u << 0; +constexpr uint32_t IWX_MAC_FILTER_IN_CONTROL_AND_MGMT = 1u << 1; +constexpr uint32_t IWX_MAC_FILTER_ACCEPT_GRP = 1u << 2; +constexpr uint32_t IWX_MAC_FILTER_IN_BEACON = 1u << 6; +constexpr uint32_t IWX_MAC_FILTER_IN_PROBE_REQUEST = 1u << 12; + +struct IwxAcQos { + uint16_t cw_min; + uint16_t cw_max; + uint8_t aifsn; + uint8_t fifos_mask; + uint16_t edca_txop; +} __attribute__((packed)); + +struct IwxMacDataSta { + uint32_t is_assoc; + uint32_t dtim_time; + uint64_t dtim_tsf; + uint32_t bi; + uint32_t reserved1; + uint32_t dtim_interval; + uint32_t data_policy; + uint32_t listen_interval; + uint32_t assoc_id; + uint32_t assoc_beacon_arrive_time; +} __attribute__((packed)); + +struct IwxMacCtxCmd { // IWX_MAC_CONTEXT_CMD_API_S_VER_1 (sta) + uint32_t id_and_color; + uint32_t action; + uint32_t mac_type; + uint32_t tsf_id; + uint8_t node_addr[6]; + uint16_t reserved_for_node_addr; + uint8_t bssid_addr[6]; + uint16_t reserved_for_bssid_addr; + uint32_t cck_rates; + uint32_t ofdm_rates; + uint32_t protection_flags; + uint32_t cck_short_preamble; + uint32_t short_slot; + uint32_t filter_flags; + uint32_t qos_flags; + IwxAcQos ac[IWX_AC_NUM + 1]; + IwxMacDataSta sta; +} __attribute__((packed)); + +// Binding context +constexpr uint32_t IWX_MAX_MACS_IN_BINDING = 3; +struct IwxBindingCmd { + uint32_t id_and_color; + uint32_t action; + uint32_t macs[IWX_MAX_MACS_IN_BINDING]; + uint32_t phy; + uint32_t lmac_id; +} __attribute__((packed)); + +// ADD_STA +constexpr uint8_t IWX_STA_MODE_ADD = 0; // add_modify: 0 add, 1 modify +struct IwxAddStaCmd { // ADD_STA_CMD_API_S_VER_12 prefix + uint8_t add_modify; + uint8_t awake_acs; + uint16_t tid_disable_tx; + uint32_t mac_id_n_color; + uint8_t addr[6]; + uint16_t reserved2; + uint8_t sta_id; + uint8_t modify_mask; + uint16_t reserved3; + uint32_t station_flags; + uint32_t station_flags_msk; + uint8_t add_immediate_ba_tid; + uint8_t remove_immediate_ba_tid; + uint16_t add_immediate_ba_ssn; + uint16_t sleep_tx_count; + uint8_t sleep_state_flags; + uint8_t station_type; + uint16_t assoc_id; + uint16_t beamform_flags; + uint32_t tfd_queue_msk; + uint16_t rx_ba_window; + uint8_t sp_length; + uint8_t uapsd_acs; +} __attribute__((packed)); +constexpr uint8_t IWX_STA_TYPE_LINK = 1; // iwl_sta_type: 1 = STA (link) +constexpr uint32_t IWX_ADD_STA_SUCCESS = 0x1; +constexpr uint32_t IWX_ADD_STA_STATUS_MASK = 0xFF; + +// SCD_QUEUE_CFG (v0, TX_QUEUE_CFG_CMD_API_S_VER_2) +constexpr uint16_t IWX_TX_QUEUE_CFG_ENABLE_QUEUE = 1 << 0; +struct IwxTxQueueCfgCmd { + uint8_t sta_id; + uint8_t tid; + uint16_t flags; + uint32_t cb_size; + uint64_t byte_cnt_addr; + uint64_t tfdq_addr; +} __attribute__((packed)); + +struct IwxTxQueueCfgRsp { + uint16_t queue_number; + uint16_t flags; + uint16_t write_pointer; + uint16_t reserved; +} __attribute__((packed)); + +// SCD_QUEUE_CONFIG_CMD v3 (DATA_PATH group) - what AX211 firmware 89 uses. +constexpr uint32_t IWX_SCD_QUEUE_ADD = 0; +constexpr uint32_t IWX_SCD_QUEUE_REMOVE = 1; + +struct IwxScdQueueCfgCmd { + uint32_t operation; + union { + struct { + uint32_t sta_mask; + uint8_t tid; + uint8_t reserved[3]; + uint32_t flags; + uint32_t cb_size; + uint64_t bc_dram_addr; + uint64_t tfdq_dram_addr; + } __attribute__((packed)) add; + struct { + uint32_t sta_mask; + uint32_t tid; + } __attribute__((packed)) remove; + } __attribute__((packed)) u; +} __attribute__((packed)); + +// RLC_CONFIG_CMD v2 (DATA_PATH group): RX chain configuration for a PHY ctxt. +struct IwxRlcProperties { + uint32_t rx_chain_info; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxSadProperties { + uint32_t chain_a_sad_mode; + uint32_t chain_b_sad_mode; + uint32_t mac_id; + uint32_t reserved; +} __attribute__((packed)); + +struct IwxRlcConfigCmd { + uint32_t phy_id; + IwxRlcProperties rlc; + IwxSadProperties sad; + uint8_t flags; + uint8_t reserved[3]; +} __attribute__((packed)); + +// Session protection +constexpr uint32_t IWX_SESSION_PROTECT_CONF_ASSOC = 1; +struct IwxSessionProtCmd { + uint32_t id_and_color; + uint32_t action; + uint32_t conf_id; + uint32_t duration_tu; + uint32_t repetition_count; + uint32_t interval; +} __attribute__((packed)); + +struct IwxSessionProtNotif { + uint32_t mac_id; + uint32_t status; + uint32_t start; + uint32_t conf_id; +} __attribute__((packed)); + +// ============================================================================= +// Firmware error log (read from device SRAM after an assert) +// ============================================================================= + +struct IwxUmacErrorEventTable { + uint32_t valid; // nonzero when the log holds an entry + uint32_t error_id; // assert / error type + uint32_t blink1; + uint32_t blink2; + uint32_t ilink1; + uint32_t ilink2; + uint32_t data1; + uint32_t data2; + uint32_t data3; + uint32_t umac_major; + uint32_t umac_minor; + uint32_t frame_pointer; + uint32_t stack_pointer; + uint32_t cmd_header; // last host command the UMAC accepted + uint32_t nic_isr_pref; +} __attribute__((packed)); + +} diff --git a/kernel/src/Drivers/Net/Wifi/IwxTrans.cpp b/kernel/src/Drivers/Net/Wifi/IwxTrans.cpp new file mode 100644 index 0000000..10048b2 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/IwxTrans.cpp @@ -0,0 +1,1455 @@ +/* + * IwxTrans.cpp + * Intel AX210/AX211 PCIe transport: MMIO access, MSI-X, DMA rings, + * context-info-gen3 firmware boot, host commands and RX processing. + * + * The bring-up sequence follows Intel's iwlwifi/OpenBSD iwx flow: + * prepare card -> sw reset -> APM init -> MSI-X config -> rfkill check + * -> context info gen3 (firmware self-load) -> ALIVE -> PNVM -> init cmds + * + * Everything here runs in process/idle context. Hard interrupts only latch + * a "work pending" flag; all ring processing happens in IwxProcessEvents(), + * which the idle loop and the command wait loops pump. This mirrors the + * Bluetooth/E1000E split in this kernel: the network and IPC layers take + * process-context mutexes that must never be entered from an IRQ. + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Iwx.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Kt; + +namespace Drivers::Net::Wifi { + + IwxState g_iwx; + + // MSI-X/MSI interrupt slot. Slots in use elsewhere: 24 (E1000E), + // 27 (Intel HDA), 28 (GPU vblank), 29 (xHCI). + static constexpr uint8_t MSI_IRQ = 25; + static constexpr uint32_t MSI_VECTOR = 57; // IRQ_VECTOR_BASE + MSI_IRQ + static constexpr uint32_t MSI_ADDR_BASE = 0xFEE00000; + + // Cached MSI-X masks (a cause is ENABLED when its mask bit is clear). + static uint32_t g_fhInitMask = 0; + static uint32_t g_hwInitMask = 0; + static uint32_t g_fhMask = 0; + static uint32_t g_hwMask = 0; + static bool g_msix = false; + + // ========================================================================= + // Register access + // ========================================================================= + + uint32_t IwxRead32(uint32_t reg) { + return *(volatile uint32_t*)(g_iwx.Mmio + reg); + } + + void IwxWrite32(uint32_t reg, uint32_t val) { + *(volatile uint32_t*)(g_iwx.Mmio + reg) = val; + } + + void IwxWrite8(uint32_t reg, uint8_t val) { + *(volatile uint8_t*)(g_iwx.Mmio + reg) = val; + } + + void IwxSetBits(uint32_t reg, uint32_t bits) { + IwxWrite32(reg, IwxRead32(reg) | bits); + } + + void IwxClearBits(uint32_t reg, uint32_t bits) { + IwxWrite32(reg, IwxRead32(reg) & ~bits); + } + + // Approximate busy-wait. The kernel has no sub-millisecond clock source + // exposed here; the loop count is calibrated the same way IntelHda does it. + void IwxDelayUs(uint32_t us) { + for (volatile uint32_t i = 0; i < us * 100u; i++) { + asm volatile("pause" ::: "memory"); + } + } + + void IwxDelayMs(uint32_t ms) { + uint64_t start = Timekeeping::GetMilliseconds(); + while (Timekeeping::GetMilliseconds() - start < ms) { + asm volatile("pause" ::: "memory"); + } + } + + bool IwxPollBit(uint32_t reg, uint32_t bits, uint32_t mask, int timeoutUs) { + for (int t = 0; t < timeoutUs; t += 10) { + if ((IwxRead32(reg) & mask) == bits) return true; + IwxDelayUs(10); + } + return false; + } + + // ========================================================================= + // NIC lock (MAC wakeup for PRPH / internal register access) + // ========================================================================= + + bool IwxNicLock() { + if (g_iwx.NicLockCount > 0) { + g_iwx.NicLockCount++; + return true; + } + + IwxSetBits(IWX_CSR_GP_CNTRL, IWX_CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ); + IwxDelayUs(2); + + if (IwxPollBit(IWX_CSR_GP_CNTRL, + IWX_CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY, + IWX_CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY + | IWX_CSR_GP_CNTRL_REG_FLAG_GOING_TO_SLEEP, 150000)) { + g_iwx.NicLockCount = 1; + return true; + } + + KernelLogStream(WARNING, "WiFi") << "Timeout waiting for NIC access"; + return false; + } + + void IwxNicUnlock() { + if (g_iwx.NicLockCount > 0) { + if (--g_iwx.NicLockCount == 0) + IwxClearBits(IWX_CSR_GP_CNTRL, + IWX_CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ); + } + } + + // PRPH accessors. Bits 24-25 of the address register encode "number of + // bytes - 1"; the driver only ever does dword accesses (3). + // + // The address field is 24 bits wide on the AX210 family (20 bits on older + // parts). This matters: UMAC PRPH registers are reached by adding + // IWX_UMAC_PRPH_OFFSET (0x300000), so e.g. UREG_CPU_INIT_RUN becomes + // 0xd05c44 -- a 20-bit mask truncates that to 0x005c44 and the access + // silently lands on an unrelated register. With the "kick firmware + // self-load" write going nowhere, the firmware never boots and ALIVE + // never arrives. + static uint32_t PrphAddr(uint32_t addr) { + return ((addr & 0x00FFFFFF) | (3 << 24)); + } + + uint32_t IwxReadPrph(uint32_t addr) { + IwxWrite32(IWX_HBUS_TARG_PRPH_RADDR, PrphAddr(addr)); + asm volatile("" ::: "memory"); + return IwxRead32(IWX_HBUS_TARG_PRPH_RDAT); + } + + void IwxWritePrph(uint32_t addr, uint32_t val) { + IwxWrite32(IWX_HBUS_TARG_PRPH_WADDR, PrphAddr(addr)); + asm volatile("" ::: "memory"); + IwxWrite32(IWX_HBUS_TARG_PRPH_WDAT, val); + } + + uint32_t IwxReadUmacPrph(uint32_t addr) { + return IwxReadPrph(addr + IWX_UMAC_PRPH_OFFSET); + } + + void IwxWriteUmacPrph(uint32_t addr, uint32_t val) { + IwxWritePrph(addr + IWX_UMAC_PRPH_OFFSET, val); + } + + // ========================================================================= + // DMA allocation + // ========================================================================= + + bool IwxDmaAlloc(IwxDma& dma, uint64_t bytes) { + if (bytes == 0) return false; + uint32_t pages = (uint32_t)((bytes + 0xFFF) / 0x1000); + + void* base = Memory::g_pfa->Allocate(); + if (!base) return false; + if (pages > 1) { + base = Memory::g_pfa->ReallocConsecutive(base, (int)pages); + if (!base) return false; + } + memset(base, 0, (size_t)pages * 0x1000); + + dma.Virt = base; + dma.Phys = Memory::SubHHDM(base); + dma.Pages = pages; + return true; + } + + void IwxDmaFree(IwxDma& dma) { + if (!dma.Virt) return; + if (dma.Pages > 1) Memory::g_pfa->Free(dma.Virt, (int)dma.Pages); + else Memory::g_pfa->Free(dma.Virt); + dma.Virt = nullptr; + dma.Phys = 0; + dma.Pages = 0; + } + + // ========================================================================= + // Interrupt configuration + // ========================================================================= + + static void IwxDisableInterrupts() { + if (!g_msix) { + IwxWrite32(IWX_CSR_INT_MASK, 0); + IwxWrite32(IWX_CSR_INT, ~0u); + IwxWrite32(IWX_CSR_FH_INT_STATUS, ~0u); + } else { + IwxWrite32(IWX_CSR_MSIX_FH_INT_MASK_AD, g_fhInitMask); + IwxWrite32(IWX_CSR_MSIX_HW_INT_MASK_AD, g_hwInitMask); + } + } + + static void IwxEnableInterrupts() { + if (!g_msix) { + // Non-MSI-X path: enable the causes we act on. + constexpr uint32_t INT_BIT_FH_RX = 1u << 31; + constexpr uint32_t INT_BIT_HW_ERR = 1u << 29; + constexpr uint32_t INT_BIT_FH_TX = 1u << 27; + constexpr uint32_t INT_BIT_SW_ERR = 1u << 25; + constexpr uint32_t INT_BIT_RF_KILL = 1u << 7; + constexpr uint32_t INT_BIT_SW_RX = 1u << 3; + constexpr uint32_t INT_BIT_ALIVE = 1u << 0; + IwxWrite32(IWX_CSR_INT_MASK, INT_BIT_FH_RX | INT_BIT_HW_ERR + | INT_BIT_FH_TX | INT_BIT_SW_ERR | INT_BIT_RF_KILL + | INT_BIT_SW_RX | INT_BIT_ALIVE); + } else { + g_hwMask = g_hwInitMask; + g_fhMask = g_fhInitMask; + IwxWrite32(IWX_CSR_MSIX_FH_INT_MASK_AD, ~g_fhMask); + IwxWrite32(IWX_CSR_MSIX_HW_INT_MASK_AD, ~g_hwMask); + } + } + + // Map every cause to vector 0 and unmask the ones we handle. `stopped` + // skips the UREG_CHICK write, which needs a live MAC. + static void IwxConfMsixHw(bool stopped) { + constexpr uint8_t vector = 0; + + if (!g_msix) { + if (!stopped && IwxNicLock()) { + IwxWriteUmacPrph(IWX_UREG_CHICK, IWX_UREG_CHICK_MSI_ENABLE); + IwxNicUnlock(); + } + return; + } + + if (!stopped && IwxNicLock()) { + IwxWriteUmacPrph(IWX_UREG_CHICK, IWX_UREG_CHICK_MSIX_ENABLE); + IwxNicUnlock(); + } + + IwxWrite32(IWX_CSR_MSIX_FH_INT_MASK_AD, ~0u); + IwxWrite32(IWX_CSR_MSIX_HW_INT_MASK_AD, ~0u); + + // RX queues 0 (command/fallback) and 1 (RSS data) -> our vector. + IwxWrite8(IWX_CSR_MSIX_RX_IVAR(0), vector | IWX_MSIX_NON_AUTO_CLEAR_CAUSE); + IwxWrite8(IWX_CSR_MSIX_RX_IVAR(1), vector | IWX_MSIX_NON_AUTO_CLEAR_CAUSE); + + static const uint32_t causes[] = { + IWX_MSIX_IVAR_CAUSE_D2S_CH0_NUM, IWX_MSIX_IVAR_CAUSE_D2S_CH1_NUM, + IWX_MSIX_IVAR_CAUSE_S2D, IWX_MSIX_IVAR_CAUSE_FH_ERR, + IWX_MSIX_IVAR_CAUSE_REG_ALIVE, IWX_MSIX_IVAR_CAUSE_REG_WAKEUP, + IWX_MSIX_IVAR_CAUSE_REG_RESET_DONE, IWX_MSIX_IVAR_CAUSE_REG_CT_KILL, + IWX_MSIX_IVAR_CAUSE_REG_RF_KILL, IWX_MSIX_IVAR_CAUSE_REG_PERIODIC, + IWX_MSIX_IVAR_CAUSE_REG_SW_ERR, IWX_MSIX_IVAR_CAUSE_REG_SW_ERR_V2, + IWX_MSIX_IVAR_CAUSE_REG_SCD, IWX_MSIX_IVAR_CAUSE_REG_FH_TX, + IWX_MSIX_IVAR_CAUSE_REG_HW_ERR, IWX_MSIX_IVAR_CAUSE_REG_HAP, + }; + for (uint32_t c : causes) + IwxWrite8(IWX_CSR_MSIX_IVAR(c), vector | IWX_MSIX_NON_AUTO_CLEAR_CAUSE); + + IwxClearBits(IWX_CSR_MSIX_FH_INT_MASK_AD, + IWX_MSIX_FH_INT_CAUSES_Q0 | IWX_MSIX_FH_INT_CAUSES_Q1 + | IWX_MSIX_FH_INT_CAUSES_D2S_CH0_NUM + | IWX_MSIX_FH_INT_CAUSES_D2S_CH1_NUM + | IWX_MSIX_FH_INT_CAUSES_S2D + | IWX_MSIX_FH_INT_CAUSES_FH_ERR); + IwxClearBits(IWX_CSR_MSIX_HW_INT_MASK_AD, + IWX_MSIX_HW_INT_CAUSES_REG_ALIVE + | IWX_MSIX_HW_INT_CAUSES_REG_WAKEUP + | IWX_MSIX_HW_INT_CAUSES_REG_RESET_DONE + | IWX_MSIX_HW_INT_CAUSES_REG_CT_KILL + | IWX_MSIX_HW_INT_CAUSES_REG_RF_KILL + | IWX_MSIX_HW_INT_CAUSES_REG_PERIODIC + | IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR + | IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR_V2 + | IWX_MSIX_HW_INT_CAUSES_REG_SCD + | IWX_MSIX_HW_INT_CAUSES_REG_FH_TX + | IWX_MSIX_HW_INT_CAUSES_REG_HW_ERR + | IWX_MSIX_HW_INT_CAUSES_REG_HAP); + } + + static void IwxInitMsixHw() { + IwxConfMsixHw(false); + if (!g_msix) return; + g_fhInitMask = ~IwxRead32(IWX_CSR_MSIX_FH_INT_MASK_AD); + g_fhMask = g_fhInitMask; + g_hwInitMask = ~IwxRead32(IWX_CSR_MSIX_HW_INT_MASK_AD); + g_hwMask = g_hwInitMask; + } + + static void IwxEnableRfkillInt() { + if (!g_msix) { + IwxWrite32(IWX_CSR_INT_MASK, 1u << 7); // IWX_CSR_INT_BIT_RF_KILL + } else { + IwxWrite32(IWX_CSR_MSIX_FH_INT_MASK_AD, g_fhInitMask); + IwxWrite32(IWX_CSR_MSIX_HW_INT_MASK_AD, + ~IWX_MSIX_HW_INT_CAUSES_REG_RF_KILL); + g_hwMask = IWX_MSIX_HW_INT_CAUSES_REG_RF_KILL; + } + IwxSetBits(IWX_CSR_GP_CNTRL, IWX_CSR_GP_CNTRL_REG_FLAG_RFKILL_WAKE_L1A_EN); + } + + bool IwxCheckRfKill() { + // Documented as "state of the hardware RF-Kill switch", but the bit + // reads 0 when the radio is DISABLED (Intel's own comment says the + // documentation is unhelpful here). + uint32_t v = IwxRead32(IWX_CSR_GP_CNTRL); + return (v & IWX_CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW) == 0; + } + + // The hard interrupt only latches work. All ring/notification handling + // takes heap and (indirectly) IPC locks, so it runs from the idle loop. + static void HandleInterrupt(uint8_t, bool) { + g_iwx.WorkPending = true; + } + + // ========================================================================= + // APM (adapter power management) bring-up + // ========================================================================= + + static void IwxApmConfig() { + // L0s is unstable on these parts and unsupported on newer ones; the + // Linux and OpenBSD drivers both disable it unconditionally. + IwxSetBits(IWX_CSR_GIO_REG, IWX_CSR_GIO_REG_VAL_L0S_DISABLED); + } + + static bool IwxApmInit() { + IwxSetBits(IWX_CSR_GIO_CHICKEN_BITS, + IWX_CSR_GIO_CHICKEN_BITS_REG_BIT_L1A_NO_L0S_RX); + IwxSetBits(IWX_CSR_DBG_HPET_MEM_REG, IWX_CSR_DBG_HPET_MEM_REG_VAL); + IwxSetBits(IWX_CSR_HW_IF_CONFIG_REG, + IWX_CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A); + IwxApmConfig(); + + // D0U* -> D0A*: "initialization complete". + IwxSetBits(IWX_CSR_GP_CNTRL, IWX_CSR_GP_CNTRL_REG_FLAG_INIT_DONE); + + if (!IwxPollBit(IWX_CSR_GP_CNTRL, + IWX_CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY, + IWX_CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY, 25000)) { + KernelLogStream(ERROR, "WiFi") << "Timeout waiting for clock stabilization"; + return false; + } + return true; + } + + static void IwxApmStop() { + IwxSetBits(IWX_CSR_DBG_LINK_PWR_MGMT_REG, + IWX_CSR_RESET_LINK_PWR_MGMT_DISABLED); + IwxSetBits(IWX_CSR_HW_IF_CONFIG_REG, + IWX_CSR_HW_IF_CONFIG_REG_PREPARE + | IWX_CSR_HW_IF_CONFIG_REG_ENABLE_PME); + IwxDelayUs(1000); + IwxClearBits(IWX_CSR_DBG_LINK_PWR_MGMT_REG, + IWX_CSR_RESET_LINK_PWR_MGMT_DISABLED); + IwxDelayUs(5000); + + IwxSetBits(IWX_CSR_RESET, IWX_CSR_RESET_REG_FLAG_STOP_MASTER); + if (!IwxPollBit(IWX_CSR_RESET, IWX_CSR_RESET_REG_FLAG_MASTER_DISABLED, + IWX_CSR_RESET_REG_FLAG_MASTER_DISABLED, 100)) + KernelLogStream(WARNING, "WiFi") << "Timeout waiting for bus master"; + + IwxClearBits(IWX_CSR_GP_CNTRL, IWX_CSR_GP_CNTRL_REG_FLAG_INIT_DONE); + } + + static void IwxSwReset() { + IwxSetBits(IWX_CSR_RESET, IWX_CSR_RESET_REG_FLAG_SW_RESET); + IwxDelayUs(5000); + } + + static bool IwxSetHwReady() { + IwxSetBits(IWX_CSR_HW_IF_CONFIG_REG, + IWX_CSR_HW_IF_CONFIG_REG_BIT_NIC_READY); + bool ready = IwxPollBit(IWX_CSR_HW_IF_CONFIG_REG, + IWX_CSR_HW_IF_CONFIG_REG_BIT_NIC_READY, + IWX_CSR_HW_IF_CONFIG_REG_BIT_NIC_READY, 50); + if (ready) + IwxSetBits(IWX_CSR_MBOX_SET_REG, IWX_CSR_MBOX_SET_REG_OS_ALIVE); + return ready; + } + + static bool IwxPrepareCardHw() { + if (IwxSetHwReady()) return true; + + IwxSetBits(IWX_CSR_DBG_LINK_PWR_MGMT_REG, + IWX_CSR_RESET_LINK_PWR_MGMT_DISABLED); + IwxDelayUs(1000); + + for (int tries = 0; tries < 10; tries++) { + IwxSetBits(IWX_CSR_HW_IF_CONFIG_REG, + IWX_CSR_HW_IF_CONFIG_REG_PREPARE); + int t = 0; + do { + if (IwxSetHwReady()) return true; + IwxDelayUs(200); + t += 200; + } while (t < 150000); + IwxDelayUs(25000); + } + return false; + } + + // ========================================================================= + // Ring allocation + // ========================================================================= + + static bool IwxAllocRxRing() { + IwxRxRing& ring = g_iwx.RxQ; + ring.Cur = 0; + + if (!IwxDmaAlloc(ring.FreeDescs, + sizeof(IwxRxTransferDesc) * IWX_RX_MQ_RING_COUNT)) + return false; + if (!IwxDmaAlloc(ring.Stat, 64)) + return false; + if (!IwxDmaAlloc(ring.UsedDescs, + sizeof(IwxRxCompletionDesc) * IWX_RX_MQ_RING_COUNT)) + return false; + + // One 4 KiB page per RX buffer (IWX_RBUF_SIZE == PAGE_SIZE). + for (uint32_t i = 0; i < IWX_RX_MQ_RING_COUNT; i++) { + void* p = Memory::g_pfa->AllocateZeroed(); + if (!p) return false; + ring.Buf[i] = (uint8_t*)p; + ring.BufPhys[i] = Memory::SubHHDM(p); + } + return true; + } + + static void IwxFreeRxRing() { + IwxRxRing& ring = g_iwx.RxQ; + IwxDmaFree(ring.FreeDescs); + IwxDmaFree(ring.Stat); + IwxDmaFree(ring.UsedDescs); + for (uint32_t i = 0; i < IWX_RX_MQ_RING_COUNT; i++) { + if (ring.Buf[i]) { + Memory::g_pfa->Free(ring.Buf[i]); + ring.Buf[i] = nullptr; + } + } + } + + // Publish every RX buffer into the free ring. The firmware configures the + // RFH itself and only accepts these once it signals ALIVE. + static void IwxUpdateRxDescs() { + auto* descs = (IwxRxTransferDesc*)g_iwx.RxQ.FreeDescs.Virt; + for (uint32_t i = 0; i < IWX_RX_MQ_RING_COUNT; i++) { + descs[i].rbid = (uint16_t)(i & 0xffff); + descs[i].addr = g_iwx.RxQ.BufPhys[i]; + } + asm volatile("" ::: "memory"); + } + + static bool IwxAllocTxRing(IwxTxRing& ring, int qid) { + ring.Qid = qid; + ring.Cur = 0; + ring.CurHw = 0; + ring.Queued = 0; + + if (!IwxDmaAlloc(ring.Desc, sizeof(IwxTfhTfd) * IWX_TX_RING_COUNT)) + return false; + if (!IwxDmaAlloc(ring.BcTbl, + sizeof(IwxGen3BcTblEntry) * IWX_TFD_QUEUE_BC_SIZE_GEN3_AX210)) + return false; + if (!IwxDmaAlloc(ring.Cmd, sizeof(IwxDeviceCmd) * IWX_TX_RING_COUNT)) + return false; + // Commands larger than IWX_DEF_CMD_PAYLOAD_SIZE (e.g. SCAN_REQ_UMAC) + // are staged in this page instead of the per-slot command area. + if (!IwxDmaAlloc(ring.Bounce, 4096)) + return false; + return true; + } + + static void IwxFreeTxRing(IwxTxRing& ring) { + IwxDmaFree(ring.Desc); + IwxDmaFree(ring.BcTbl); + IwxDmaFree(ring.Cmd); + IwxDmaFree(ring.Bounce); + } + + static void IwxResetTxRing(IwxTxRing& ring) { + if (ring.BcTbl.Virt) memset(ring.BcTbl.Virt, 0, ring.BcTbl.Pages * 0x1000); + if (ring.Desc.Virt) memset(ring.Desc.Virt, 0, ring.Desc.Pages * 0x1000); + ring.Cur = 0; + ring.CurHw = 0; + ring.Queued = 0; + } + + // ========================================================================= + // Firmware section staging + context info (gen3) + // ========================================================================= + + static void IwxFreeFwSecDma() { + for (int i = 0; i < g_iwx.FwSecDmaCount; i++) IwxDmaFree(g_iwx.FwSecDma[i]); + g_iwx.FwSecDmaCount = 0; + } + + static void IwxFreePagingDma() { + for (int i = 0; i < g_iwx.PagingCount; i++) IwxDmaFree(g_iwx.PagingDma[i]); + g_iwx.PagingCount = 0; + } + + // Count sections until the next separator marker. + static int IwxNumSections(int start) { + int n = 0; + while (start < g_iwx.Fw.SectionCount + && g_iwx.Fw.Sections[start].DevOff != IWX_CPU1_CPU2_SEPARATOR_SECTION + && g_iwx.Fw.Sections[start].DevOff != IWX_PAGING_SEPARATOR_SECTION) { + start++; + n++; + } + return n; + } + + // Copy LMAC/UMAC/paging sections into DMA and record their addresses in the + // firmware's DRAM map. The image is laid out as + // [lmac...] SEP [umac...] SEP [paging...]. + static bool IwxInitFwSec(IwxContextInfoDram* dram) { + int lmacCnt = IwxNumSections(0); + int umacCnt = IwxNumSections(lmacCnt + 1); + int pagingCnt = IwxNumSections(lmacCnt + umacCnt + 2); + + if (lmacCnt <= 0 || umacCnt <= 0) { + KernelLogStream(ERROR, "WiFi") << "Firmware image has no LMAC/UMAC sections"; + return false; + } + if (lmacCnt + umacCnt + pagingCnt > IWX_MAX_FW_SECTIONS) return false; + + int fwCnt = 0; + for (int i = 0; i < lmacCnt; i++) { + IwxDma& d = g_iwx.FwSecDma[fwCnt]; + if (!IwxDmaAlloc(d, g_iwx.Fw.Sections[i].Len)) return false; + memcpy(d.Virt, g_iwx.Fw.Sections[i].Data, g_iwx.Fw.Sections[i].Len); + dram->lmac_img[i] = d.Phys; + g_iwx.FwSecDmaCount = ++fwCnt; + } + for (int i = 0; i < umacCnt; i++) { + IwxDma& d = g_iwx.FwSecDma[fwCnt]; + const IwxFwSection& sec = g_iwx.Fw.Sections[fwCnt + 1]; // skip separator + if (!IwxDmaAlloc(d, sec.Len)) return false; + memcpy(d.Virt, sec.Data, sec.Len); + dram->umac_img[i] = d.Phys; + g_iwx.FwSecDmaCount = ++fwCnt; + } + // Paging sections are tracked separately: unlike the LMAC/UMAC images, + // the firmware keeps demand-paging from them for as long as it runs, so + // they must survive past ALIVE. + if (pagingCnt > (int)IWX_MAX_DRAM_ENTRY) pagingCnt = IWX_MAX_DRAM_ENTRY; + IwxFreePagingDma(); + for (int i = 0; i < pagingCnt; i++) { + IwxDma& d = g_iwx.PagingDma[i]; + const IwxFwSection& sec = g_iwx.Fw.Sections[fwCnt + i + 2]; + if (!IwxDmaAlloc(d, sec.Len)) return false; + memcpy(d.Virt, sec.Data, sec.Len); + dram->virtual_img[i] = d.Phys; + g_iwx.PagingCount = i + 1; + } + return true; + } + + static void IwxSetLtr() { + uint32_t ltrVal = + IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_REQ + | ((IWX_CSR_LTR_LONG_VAL_AD_SCALE_USEC + << IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE_SHIFT) + & IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE_MASK) + | ((250u << IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL_SHIFT) + & IWX_CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL_MASK) + | IWX_CSR_LTR_LONG_VAL_AD_SNOOP_REQ + | ((IWX_CSR_LTR_LONG_VAL_AD_SCALE_USEC + << IWX_CSR_LTR_LONG_VAL_AD_SNOOP_SCALE_SHIFT) + & IWX_CSR_LTR_LONG_VAL_AD_SNOOP_SCALE_MASK) + | (250u & IWX_CSR_LTR_LONG_VAL_AD_SNOOP_VAL); + + // The AX211 in this laptop is a CNVi (integrated) part of the AX210 + // family; only discrete parts take the CSR write here (the Qu-only + // HPM_*_LTR path does not apply to AX210). + (void)ltrVal; + } + + // Fill the gen3 context info and kick the firmware's self-load. + static bool IwxCtxtInfoGen3Init() { + if (!g_iwx.Fw.Iml || g_iwx.Fw.ImlLen == 0) { + KernelLogStream(ERROR, "WiFi") << "Firmware has no image loader (IML)"; + return false; + } + + if (!IwxDmaAlloc(g_iwx.ImlDma, g_iwx.Fw.ImlLen)) return false; + + auto* scratch = (IwxPrphScratch*)g_iwx.PrphScratch.Virt; + memset(scratch, 0, sizeof(*scratch)); + auto* ctrl = &scratch->ctrl_cfg; + ctrl->version.version = 0; + ctrl->version.mac_id = (uint16_t)IwxRead32(IWX_CSR_HW_REV); + ctrl->version.size = (uint16_t)(sizeof(*scratch) / 4); + ctrl->control.control_flags = IWX_PRPH_SCRATCH_RB_SIZE_4K + | IWX_PRPH_SCRATCH_MTR_MODE + | (IWX_PRPH_MTR_FORMAT_256B + & IWX_PRPH_SCRATCH_MTR_FORMAT); + ctrl->rbd_cfg.free_rbd_addr = g_iwx.RxQ.FreeDescs.Phys; + + if (!IwxInitFwSec(&scratch->dram)) { + IwxDmaFree(g_iwx.ImlDma); + IwxFreeFwSecDma(); + IwxFreePagingDma(); + return false; + } + + auto* ci = (IwxContextInfoGen3*)g_iwx.CtxtInfo.Virt; + memset(ci, 0, sizeof(*ci)); + ci->prph_info_base_addr = g_iwx.PrphInfo.Phys; + ci->prph_scratch_base_addr = g_iwx.PrphScratch.Phys; + ci->prph_scratch_size = sizeof(IwxPrphScratch); + ci->cr_head_idx_arr_base_addr = g_iwx.RxQ.Stat.Phys; + // The driver does not use the TR/CR tail arrays, but the device still + // writes there; point them at the unused half of the prph-info page. + ci->tr_tail_idx_arr_base_addr = g_iwx.PrphInfo.Phys + 0x1000 / 2; + ci->cr_tail_idx_arr_base_addr = g_iwx.PrphInfo.Phys + 3 * 0x1000 / 4; + ci->mtr_base_addr = g_iwx.CmdQ.Desc.Phys; + ci->mcr_base_addr = g_iwx.RxQ.UsedDescs.Phys; + ci->mtr_size = (uint16_t)IWX_TFD_QUEUE_CB_SIZE(IWX_TX_RING_COUNT); + ci->mcr_size = (uint16_t)IWX_RX_QUEUE_CB_SIZE(IWX_RX_MQ_RING_COUNT); + + memcpy(g_iwx.ImlDma.Virt, g_iwx.Fw.Iml, g_iwx.Fw.ImlLen); + asm volatile("" ::: "memory"); + + uint64_t paddr = g_iwx.CtxtInfo.Phys; + IwxWrite32(IWX_CSR_CTXT_INFO_ADDR, (uint32_t)(paddr & 0xffffffff)); + IwxWrite32(IWX_CSR_CTXT_INFO_ADDR + 4, (uint32_t)(paddr >> 32)); + + paddr = g_iwx.ImlDma.Phys; + IwxWrite32(IWX_CSR_IML_DATA_ADDR, (uint32_t)(paddr & 0xffffffff)); + IwxWrite32(IWX_CSR_IML_DATA_ADDR + 4, (uint32_t)(paddr >> 32)); + IwxWrite32(IWX_CSR_IML_SIZE_ADDR, g_iwx.Fw.ImlLen); + + IwxSetBits(IWX_CSR_CTXT_INFO_BOOT_CTRL, IWX_CSR_AUTO_FUNC_BOOT_ENA); + + if (!IwxNicLock()) { + IwxDmaFree(g_iwx.ImlDma); + IwxFreeFwSecDma(); + IwxFreePagingDma(); + return false; + } + IwxSetLtr(); + IwxWriteUmacPrph(IWX_UREG_CPU_INIT_RUN, 1); + IwxNicUnlock(); + return true; + } + + // ========================================================================= + // NIC init + firmware start + // ========================================================================= + + static bool IwxNicInit() { + if (!IwxApmInit()) return false; + // AX210 firmware configures the RFH itself; only interrupt coalescing + // and the shadow-register control need programming here. + IwxWrite8(IWX_CSR_INT_COALESCING, IWX_HOST_INT_TIMEOUT_DEF); + IwxSetBits(IWX_CSR_MAC_SHADOW_REG_CTRL, 0x800fffff); + return true; + } + + bool IwxStartHw() { + if (!IwxPrepareCardHw()) { + KernelLogStream(ERROR, "WiFi") << "Could not prepare card hardware"; + return false; + } + + IwxSwReset(); + + if (!IwxApmInit()) return false; + + IwxInitMsixHw(); + IwxEnableRfkillInt(); + + if (IwxCheckRfKill()) { + KernelLogStream(WARNING, "WiFi") << "Radio is disabled by hardware switch"; + g_iwx.State = IwxFwState::RfKill; + } + return true; + } + + void IwxStopDevice() { + IwxDisableInterrupts(); + + if (IwxNicLock()) { + IwxWriteUmacPrph(IWX_RFH_RXF_DMA_CFG_GEN3, 0); + for (int i = 0; i < 1000; i++) { + if (IwxReadUmacPrph(IWX_RFH_GEN_STATUS_GEN3) & IWX_RXF_DMA_IDLE) + break; + IwxDelayUs(10); + } + IwxNicUnlock(); + } + + IwxResetTxRing(g_iwx.CmdQ); + IwxResetTxRing(g_iwx.MgmtQ); + g_iwx.RxQ.Cur = 0; + if (g_iwx.RxQ.Stat.Virt) *(volatile uint16_t*)g_iwx.RxQ.Stat.Virt = 0; + + IwxClearBits(IWX_CSR_GP_CNTRL, IWX_CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ); + g_iwx.NicLockCount = 0; + + IwxApmStop(); + IwxSwReset(); + + // The IVAR table is wiped by the reset; reprogram it so an RF-kill + // interrupt still lands on our vector. + IwxConfMsixHw(true); + IwxDisableInterrupts(); + IwxEnableRfkillInt(); + IwxCheckRfKill(); + IwxPrepareCardHw(); + + IwxFreeFwSecDma(); + IwxFreePagingDma(); + IwxDmaFree(g_iwx.PnvmDma); + for (int i = 0; i < g_iwx.PnvmSegs; i++) IwxDmaFree(g_iwx.PnvmSegDma[i]); + g_iwx.PnvmSegs = 0; + g_iwx.PnvmSize = 0; + } + + bool IwxStartFirmware() { + g_iwx.AliveIntr = false; + g_iwx.AliveOk = false; + g_iwx.InitComplete = 0; + + IwxWrite32(IWX_CSR_INT, ~0u); + IwxDisableInterrupts(); + + // Clear the rfkill handshake bits left over from a previous run. + IwxWrite32(IWX_CSR_UCODE_DRV_GP1_CLR, IWX_CSR_UCODE_SW_BIT_RFKILL); + IwxWrite32(IWX_CSR_UCODE_DRV_GP1_CLR, IWX_CSR_UCODE_DRV_GP1_BIT_CMD_BLOCKED); + IwxWrite32(IWX_CSR_INT, ~0u); + + if (!IwxNicInit()) { + KernelLogStream(ERROR, "WiFi") << "Unable to init NIC"; + return false; + } + + IwxEnableInterrupts(); + + if (!IwxCtxtInfoGen3Init()) return false; + + // Wait for the ALIVE notification (firmware self-load takes ~100 ms). + uint64_t start = Timekeeping::GetMilliseconds(); + while (!g_iwx.AliveIntr && Timekeeping::GetMilliseconds() - start < 2000) { + IwxProcessEvents(); + IwxDelayUs(200); + } + + IwxDmaFree(g_iwx.ImlDma); + IwxFreeFwSecDma(); + + if (!g_iwx.AliveOk) { + KernelLogStream(ERROR, "WiFi") << "Firmware did not come alive" + << (g_iwx.AliveIntr ? " (bad ALIVE response)" : " (timeout)"); + + // The firmware mirrors its boot progress into the prph-info page, + // so a stalled self-load can be told apart from one that ran but + // whose notification never reached us. + auto* info = (IwxPrphInfo*)g_iwx.PrphInfo.Virt; + KernelLogStream(INFO, "WiFi") << " boot_stage=" << base::hex + << (uint64_t)info->boot_stage_mirror + << " ipc_status=" << (uint64_t)info->ipc_status_mirror + << " sleep_notif=" << (uint64_t)info->sleep_notif << base::dec; + KernelLogStream(INFO, "WiFi") << " fh_causes=" << base::hex + << (uint64_t)IwxRead32(IWX_CSR_MSIX_FH_INT_CAUSES_AD) + << " hw_causes=" << (uint64_t)IwxRead32(IWX_CSR_MSIX_HW_INT_CAUSES_AD) + << " csr_int=" << (uint64_t)IwxRead32(IWX_CSR_INT) + << " gp_cntrl=" << (uint64_t)IwxRead32(IWX_CSR_GP_CNTRL) + << base::dec << (g_msix ? " [MSI-X]" : " [MSI]"); + KernelLogStream(INFO, "WiFi") << " rx_used_widx=" + << (uint64_t)(*(volatile uint16_t*)g_iwx.RxQ.Stat.Virt & 0xfff) + << " rx_cur=" << (uint64_t)g_iwx.RxQ.Cur; + return false; + } + + KernelLogStream(OK, "WiFi") << "Firmware alive: " << g_iwx.Fw.Version; + return true; + } + + // Point the firmware at the staged PNVM image and wait for its ack. + bool IwxLoadPnvm() { + if (g_iwx.SkuId.data[0] == 0 && g_iwx.SkuId.data[1] == 0 + && g_iwx.SkuId.data[2] == 0) + return true; // no PNVM needed + + if (g_iwx.PnvmDma.Virt == nullptr && g_iwx.Fw.PnvmData) { + // Parse the PNVM TLV blob for our SKU; a missing match is not + // fatal, the firmware then runs with built-in defaults. + IwxPnvmParse(g_iwx.Fw.PnvmData, g_iwx.Fw.PnvmLen); + } + + if (g_iwx.PnvmDma.Virt) { + auto* scratch = (IwxPrphScratch*)g_iwx.PrphScratch.Virt; + scratch->ctrl_cfg.pnvm_cfg.pnvm_base_addr = g_iwx.PnvmDma.Phys; + scratch->ctrl_cfg.pnvm_cfg.pnvm_size = g_iwx.PnvmSize; + asm volatile("" ::: "memory"); + } + + if (!IwxNicLock()) return false; + IwxWriteUmacPrph(IWX_UREG_DOORBELL_TO_ISR6, IWX_UREG_DOORBELL_TO_ISR6_PNVM); + IwxNicUnlock(); + + uint64_t start = Timekeeping::GetMilliseconds(); + while (!(g_iwx.InitComplete & 0x2) + && Timekeeping::GetMilliseconds() - start < 2000) { + IwxProcessEvents(); + IwxDelayUs(200); + } + if (!(g_iwx.InitComplete & 0x2)) { + KernelLogStream(WARNING, "WiFi") << "No PNVM complete notification"; + return false; + } + return true; + } + + // ========================================================================= + // Host command submission + // ========================================================================= + + int IwxLookupCmdVer(uint8_t group, uint8_t cmd) { + for (int i = 0; i < g_iwx.Fw.NumCmdVersions; i++) { + if (g_iwx.Fw.CmdVersions[i].group == group + && g_iwx.Fw.CmdVersions[i].cmd == cmd) + return g_iwx.Fw.CmdVersions[i].cmd_ver; + } + return -1; + } + + int IwxLookupNotifVer(uint8_t group, uint8_t cmd) { + for (int i = 0; i < g_iwx.Fw.NumCmdVersions; i++) { + if (g_iwx.Fw.CmdVersions[i].group == group + && g_iwx.Fw.CmdVersions[i].cmd == cmd) + return g_iwx.Fw.CmdVersions[i].notif_ver; + } + return -1; + } + + bool IwxSendCmd(IwxHostCmd& hcmd) { + if (g_iwx.State == IwxFwState::Error) return false; + + IwxTxRing& ring = g_iwx.CmdQ; + + g_iwx.CmdLock.Acquire(); + + uint32_t idx = ring.Cur; + uint32_t code = hcmd.Id; + + // Firmware API >= 50 rejects group-0 commands; the legacy opcodes must + // be re-tagged into LONG_GROUP. Responses come back tagged the same + // way, so notification dispatch strips the group again. + if (IwxCmdGroupId(code) == 0) + code = IWX_WIDE_ID(IWX_LONG_GROUP, code); + + uint32_t hdrLen = sizeof(IwxCmdHeaderWide); + uint32_t datasz = sizeof(IwxDeviceCmd) - hdrLen; + + if (hcmd.Len > IWX_MAX_CMD_PAYLOAD_SIZE) { + g_iwx.CmdLock.Release(); + KernelLogStream(ERROR, "WiFi") << "Firmware command too long (" + << (uint64_t)hcmd.Len << " bytes)"; + return false; + } + + uint8_t* cmdBuf; + uint64_t cmdPhys; + if (hcmd.Len > datasz) { + cmdBuf = (uint8_t*)ring.Bounce.Virt; + cmdPhys = ring.Bounce.Phys; + } else { + cmdBuf = (uint8_t*)ring.Cmd.Virt + (uint64_t)idx * sizeof(IwxDeviceCmd); + cmdPhys = ring.Cmd.Phys + (uint64_t)idx * sizeof(IwxDeviceCmd); + } + + memset(cmdBuf, 0, hdrLen + hcmd.Len); + auto* hdr = (IwxCmdHeaderWide*)cmdBuf; + hdr->opcode = IwxCmdOpcode(code); + hdr->group_id = IwxCmdGroupId(code); + hdr->qid = (uint8_t)ring.Qid; + hdr->idx = (uint8_t)idx; + hdr->length = (uint16_t)hcmd.Len; + hdr->version = 0; + if (hcmd.Len && hcmd.Data) memcpy(cmdBuf + hdrLen, hcmd.Data, hcmd.Len); + + auto* desc = &((IwxTfhTfd*)ring.Desc.Virt)[idx]; + memset(desc, 0, sizeof(*desc)); + uint32_t total = hdrLen + hcmd.Len; + uint16_t firstLen = (uint16_t)(total < IWX_FIRST_TB_SIZE ? total : IWX_FIRST_TB_SIZE); + desc->tbs[0].tb_len = firstLen; + desc->tbs[0].addr = cmdPhys; + if (total > IWX_FIRST_TB_SIZE) { + desc->tbs[1].tb_len = (uint16_t)(total - IWX_FIRST_TB_SIZE); + desc->tbs[1].addr = cmdPhys + IWX_FIRST_TB_SIZE; + desc->num_tbs = 2; + } else { + desc->num_tbs = 1; + } + asm volatile("" ::: "memory"); + + g_iwx.CmdDone = false; + g_iwx.LastCmdId = code; + g_iwx.CmdWantResp = hcmd.WantResp; + g_iwx.CmdRespLen = 0; + g_iwx.CmdIdx = idx; + + ring.Queued++; + ring.Cur = (ring.Cur + 1) % IWX_TX_RING_COUNT; + ring.CurHw = (ring.CurHw + 1) % IWX_TFD_QUEUE_SIZE_MAX_GEN3; + IwxWrite32(IWX_HBUS_TARG_WRPTR, ((uint32_t)ring.Qid << 16) | ring.CurHw); + + // Wait for the firmware's response/ack. Commands are serialized by + // CmdLock, so exactly one can be in flight and the completion is + // unambiguous. + bool ok = false; + uint64_t start = Timekeeping::GetMilliseconds(); + while (Timekeeping::GetMilliseconds() - start < 1000) { + IwxProcessEvents(); + if (g_iwx.CmdDone) { ok = true; break; } + IwxDelayUs(100); + } + + if (!ok) { + KernelLogStream(WARNING, "WiFi") << "Command 0x" << base::hex + << (uint64_t)code << base::dec << " timed out"; + if (ring.Queued > 0) ring.Queued--; + } + + g_iwx.CmdWantResp = false; + g_iwx.CmdLock.Release(); + return ok; + } + + bool IwxSendCmdPdu(uint32_t id, const void* data, uint32_t len) { + IwxHostCmd cmd; + cmd.Id = id; + cmd.Data = data; + cmd.Len = len; + return IwxSendCmd(cmd); + } + + bool IwxSendCmdStatus(uint32_t id, const void* data, uint32_t len, + uint32_t* statusOut) { + IwxHostCmd cmd; + cmd.Id = id; + cmd.Data = data; + cmd.Len = len; + cmd.WantResp = true; + if (!IwxSendCmd(cmd)) return false; + + if (g_iwx.CmdRespLen < sizeof(IwxRxPacket) + sizeof(IwxCmdResponse)) + return false; + auto* pkt = (IwxRxPacket*)g_iwx.CmdRespBuf; + auto* resp = (IwxCmdResponse*)pkt->data; + if (statusOut) *statusOut = resp->status; + return true; + } + + // ========================================================================= + // TX queue configuration (used by the connect path) + // ========================================================================= + + bool IwxEnableTxq(int staId, int qid, int tid) { + IwxTxRing& ring = g_iwx.MgmtQ; + IwxResetTxRing(ring); + ring.Qid = qid; + + int cmdVer = IwxLookupCmdVer(IWX_DATA_PATH_GROUP, IWX_SCD_QUEUE_CONFIG_CMD); + + IwxHostCmd hcmd; + hcmd.WantResp = true; + + // AX211 firmware 89 advertises v3 (DATA_PATH group). Older images + // expose no version at all and take the legacy SCD_QUEUE_CFG command. + IwxTxQueueCfgCmd cmdV0 = {}; + IwxScdQueueCfgCmd cmdV3 = {}; + if (cmdVer == 3) { + cmdV3.operation = IWX_SCD_QUEUE_ADD; + cmdV3.u.add.tfdq_dram_addr = ring.Desc.Phys; + cmdV3.u.add.bc_dram_addr = ring.BcTbl.Phys; + cmdV3.u.add.cb_size = IWX_TFD_QUEUE_CB_SIZE(IWX_TX_RING_COUNT); + cmdV3.u.add.flags = 0; + cmdV3.u.add.sta_mask = 1u << staId; + cmdV3.u.add.tid = (uint8_t)tid; + hcmd.Id = IWX_WIDE_ID(IWX_DATA_PATH_GROUP, IWX_SCD_QUEUE_CONFIG_CMD); + hcmd.Data = &cmdV3; + hcmd.Len = sizeof(cmdV3); + } else if (cmdVer <= 0) { + cmdV0.sta_id = (uint8_t)staId; + cmdV0.tid = (uint8_t)tid; + cmdV0.flags = IWX_TX_QUEUE_CFG_ENABLE_QUEUE; + cmdV0.cb_size = IWX_TFD_QUEUE_CB_SIZE(IWX_TX_RING_COUNT); + cmdV0.byte_cnt_addr = ring.BcTbl.Phys; + cmdV0.tfdq_addr = ring.Desc.Phys; + hcmd.Id = IWX_SCD_QUEUE_CFG; + hcmd.Data = &cmdV0; + hcmd.Len = sizeof(cmdV0); + } else { + KernelLogStream(WARNING, "WiFi") + << "Unsupported SCD_QUEUE_CONFIG version " << (uint64_t)cmdVer; + return false; + } + + if (!IwxSendCmd(hcmd)) return false; + + if (g_iwx.CmdRespLen < sizeof(IwxRxPacket) + sizeof(IwxTxQueueCfgRsp)) + return false; + auto* pkt = (IwxRxPacket*)g_iwx.CmdRespBuf; + auto* resp = (IwxTxQueueCfgRsp*)pkt->data; + if (resp->queue_number != qid) { + KernelLogStream(WARNING, "WiFi") << "Firmware assigned queue " + << (uint64_t)resp->queue_number << ", expected " << (uint64_t)qid; + return false; + } + return true; + } + + // ========================================================================= + // RX / notification processing + // ========================================================================= + + static bool IwxRxPacketValid(const IwxRxPacket* pkt) { + int qid = pkt->hdr.qid & ~0x80; + int idx = pkt->hdr.idx; + uint32_t code = ((uint32_t)pkt->hdr.flags << 8) | pkt->hdr.code; + return !(qid == 0 && idx == 0 && code == 0) + && pkt->len_n_flags != IWX_FH_RSCSR_FRAME_INVALID; + } + + // Capture a command response for the in-flight synchronous command. + static void IwxCaptureCmdResp(const IwxRxPacket* pkt) { + uint32_t len = sizeof(pkt->len_n_flags) + IwxRxPacketLen(pkt); + if (len > sizeof(g_iwx.CmdRespBuf)) len = sizeof(g_iwx.CmdRespBuf); + memcpy(g_iwx.CmdRespBuf, pkt, len); + g_iwx.CmdRespLen = len; + } + + static void IwxHandleAlive(const IwxRxPacket* pkt) { + uint32_t payload = IwxRxPacketPayloadLen(pkt); + g_iwx.AliveOk = false; + + if (payload >= sizeof(IwxAliveRespV6)) { + auto* r = (const IwxAliveRespV6*)pkt->data; + g_iwx.SkuId = r->sku_id; + g_iwx.UmacErrorTable = r->umac_data.dbg_ptrs.error_info_addr; + g_iwx.LmacErrorTable = r->lmac_data[0].dbg_ptrs.error_event_table_ptr; + if (r->status == IWX_ALIVE_STATUS_OK) g_iwx.AliveOk = true; + } else if (payload >= sizeof(IwxAliveRespV5)) { + auto* r = (const IwxAliveRespV5*)pkt->data; + g_iwx.SkuId = r->sku_id; + g_iwx.UmacErrorTable = r->umac_data.dbg_ptrs.error_info_addr; + g_iwx.LmacErrorTable = r->lmac_data[0].dbg_ptrs.error_event_table_ptr; + if (r->status == IWX_ALIVE_STATUS_OK) g_iwx.AliveOk = true; + } else { + KernelLogStream(WARNING, "WiFi") << "Unexpected ALIVE payload size " + << (uint64_t)payload; + } + g_iwx.AliveIntr = true; + } + + // Read dwords out of device-internal SRAM (needs the MAC awake). + static bool IwxReadMem(uint32_t addr, uint32_t* out, int dwords) { + if (!IwxNicLock()) return false; + IwxWrite32(IWX_HBUS_TARG_MEM_RADDR, addr); + asm volatile("" ::: "memory"); + for (int i = 0; i < dwords; i++) + out[i] = IwxRead32(IWX_HBUS_TARG_MEM_RDAT); + IwxNicUnlock(); + return true; + } + + // Dump the firmware's own error log after an assert. error_id identifies + // the assert and cmd_header names the last command the UMAC accepted -- + // between them they pin down which host command the firmware rejected. + void IwxDumpFwError() { + KernelLogStream(ERROR, "WiFi-FW") << "Firmware assert; last command sent: 0x" + << base::hex << (uint64_t)g_iwx.LastCmdId << base::dec; + + uint32_t base_ = g_iwx.UmacErrorTable; + if (base_ < 0x400000) { + KernelLogStream(WARNING, "WiFi-FW") << " no valid UMAC error log pointer (0x" + << base::hex << (uint64_t)base_ << base::dec << ")"; + return; + } + + IwxUmacErrorEventTable t = {}; + if (!IwxReadMem(base_, (uint32_t*)&t, sizeof(t) / sizeof(uint32_t))) { + KernelLogStream(WARNING, "WiFi-FW") << " could not read the error log"; + return; + } + + KernelLogStream(ERROR, "WiFi-FW") << " UMAC error 0x" << base::hex + << (uint64_t)t.error_id << " last host cmd 0x" << (uint64_t)t.cmd_header + << base::dec << " (valid=" << (uint64_t)t.valid << ")"; + KernelLogStream(INFO, "WiFi-FW") << " data 0x" << base::hex + << (uint64_t)t.data1 << " 0x" << (uint64_t)t.data2 + << " 0x" << (uint64_t)t.data3 + << " pc 0x" << (uint64_t)t.frame_pointer + << " sp 0x" << (uint64_t)t.stack_pointer << base::dec; + KernelLogStream(INFO, "WiFi-FW") << " umac ver " << (uint64_t)t.umac_major + << "." << (uint64_t)t.umac_minor << " blink 0x" << base::hex + << (uint64_t)t.blink1 << "/0x" << (uint64_t)t.blink2 + << " ilink 0x" << (uint64_t)t.ilink1 << "/0x" << (uint64_t)t.ilink2 + << base::dec; + } + + // Process one firmware packet out of an RX buffer. + static void IwxRxPkt(uint8_t* buf) { + const size_t minsz = sizeof(uint32_t) + sizeof(IwxCmdHeader); + auto* pkt = (IwxRxPacket*)buf; + + if (!IwxRxPacketValid(pkt)) return; + + uint32_t len = sizeof(pkt->len_n_flags) + IwxRxPacketLen(pkt); + if (len < minsz || len > IWX_RBUF_SIZE) return; + + int qid = pkt->hdr.qid; + uint32_t code = ((uint32_t)pkt->hdr.flags << 8) | pkt->hdr.code; + + // Legacy commands were re-tagged into LONG_GROUP on the way out; undo + // that so the dispatcher sees the original opcode. + if (IwxCmdGroupId(code) == IWX_LONG_GROUP) + code = IwxCmdOpcode(code); + + switch (code) { + case IWX_ALIVE: + IwxHandleAlive(pkt); + break; + case IWX_INIT_COMPLETE_NOTIF: + g_iwx.InitComplete |= 0x1; + break; + case IWX_WIDE_ID(IWX_REGULATORY_AND_NVM_GROUP, IWX_PNVM_INIT_COMPLETE): + g_iwx.InitComplete |= 0x2; + break; + case IWX_REPLY_ERROR: { + if (IwxRxPacketPayloadLen(pkt) >= 8) { + uint32_t errType = *(const uint32_t*)pkt->data; + uint8_t cmdId = pkt->data[4]; + KernelLogStream(ERROR, "WiFi") << "Firmware error 0x" + << base::hex << (uint64_t)errType << ", cmd 0x" + << (uint64_t)cmdId << base::dec; + } + g_iwx.FwErrors++; + break; + } + default: + // Everything else (scan results, NVM/MCC responses, per-command + // acks, statistics) is handled by the MVM layer. + IwxHandleNotification(pkt, buf, IWX_RBUF_SIZE); + break; + } + + // Capture the payload for a pending WANT_RESP command before signalling + // completion. Bit 7 of qid marks firmware-originated notifications, + // which never complete a command, and only the command queue carries + // command acks at all -- a data-queue packet with a colliding index + // must not release the waiter. + if (!(qid & 0x80) && (qid & ~0x80) == IWX_DQA_CMD_QUEUE) { + if (g_iwx.CmdWantResp && pkt->hdr.idx == g_iwx.CmdIdx + && !(pkt->hdr.flags & IWX_CMD_FAILED_MSK)) + IwxCaptureCmdResp(pkt); + if (pkt->hdr.idx == g_iwx.CmdIdx) { + if (g_iwx.CmdQ.Queued > 0) g_iwx.CmdQ.Queued--; + g_iwx.CmdDone = true; + } + } + } + + // Drain the used (completion) ring: for each completed RBD, process the + // firmware packet it points at and hand the buffer back. + static void IwxNotifIntr() { + if (!g_iwx.RxQ.Stat.Virt) return; + + uint16_t hw = *(volatile uint16_t*)g_iwx.RxQ.Stat.Virt & 0xfff; + hw &= (IWX_RX_MQ_RING_COUNT - 1); + + auto* used = (IwxRxCompletionDesc*)g_iwx.RxQ.UsedDescs.Virt; + + uint32_t processed = 0; + while (g_iwx.RxQ.Cur != hw && processed < IWX_RX_MQ_RING_COUNT) { + uint16_t rbid = used[g_iwx.RxQ.Cur].rbid & (IWX_RX_MQ_RING_COUNT - 1); + uint8_t* buf = g_iwx.RxQ.Buf[rbid]; + if (buf) { + IwxRxPkt(buf); + g_iwx.RxPackets++; + } + g_iwx.RxQ.Cur = (g_iwx.RxQ.Cur + 1) % IWX_RX_MQ_RING_COUNT; + processed++; + } + + if (processed == 0) return; + + // Tell the firmware how far we have consumed. The write index must be + // 8-aligned; the hardware misbehaves otherwise (documented quirk). + uint16_t widx = (hw == 0) ? (uint16_t)(IWX_RX_MQ_RING_COUNT - 1) + : (uint16_t)(hw - 1); + IwxWrite32(IWX_RFH_Q0_FRBDCB_WIDX_TRG, widx & ~7u); + } + + void IwxProcessEvents() { + if (!g_iwx.Mmio) return; + if (g_iwx.InProcessEvents) return; // never nest + g_iwx.InProcessEvents = true; + + if (g_msix) { + uint32_t fh = IwxRead32(IWX_CSR_MSIX_FH_INT_CAUSES_AD); + uint32_t hwc = IwxRead32(IWX_CSR_MSIX_HW_INT_CAUSES_AD); + IwxWrite32(IWX_CSR_MSIX_FH_INT_CAUSES_AD, fh); + IwxWrite32(IWX_CSR_MSIX_HW_INT_CAUSES_AD, hwc); + fh &= g_fhMask; + hwc &= g_hwMask; + + if (hwc & IWX_MSIX_HW_INT_CAUSES_REG_ALIVE) { + // The firmware has configured the RFH; publish RX buffers. + IwxUpdateRxDescs(); + IwxWrite32(IWX_RFH_Q0_FRBDCB_WIDX_TRG, 8); + } + + if (fh & (IWX_MSIX_FH_INT_CAUSES_Q0 | IWX_MSIX_FH_INT_CAUSES_Q1)) + IwxNotifIntr(); + + if ((fh & IWX_MSIX_FH_INT_CAUSES_FH_ERR) + || (hwc & IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR) + || (hwc & IWX_MSIX_HW_INT_CAUSES_REG_SW_ERR_V2)) { + KernelLogStream(ERROR, "WiFi") << "Fatal firmware error"; + g_iwx.State = IwxFwState::Error; + g_iwx.FwErrors++; + IwxDumpFwError(); + } + if (hwc & IWX_MSIX_HW_INT_CAUSES_REG_HW_ERR) { + KernelLogStream(ERROR, "WiFi") << "Hardware error"; + g_iwx.State = IwxFwState::Error; + g_iwx.FwErrors++; + } + if (hwc & IWX_MSIX_HW_INT_CAUSES_REG_RF_KILL) { + if (IwxCheckRfKill()) { + KernelLogStream(WARNING, "WiFi") << "Radio disabled by RF-kill"; + g_iwx.State = IwxFwState::RfKill; + } + } + + IwxWrite32(IWX_CSR_MSIX_AUTOMASK_ST_AD, 1u << 0); + } else { + uint32_t r1 = IwxRead32(IWX_CSR_INT); + if (r1 != 0 && r1 != 0xffffffff && (r1 & 0xfffffff0) != 0xa5a5a5a0) { + uint32_t r2 = IwxRead32(IWX_CSR_FH_INT_STATUS); + IwxWrite32(IWX_CSR_INT, r1); + IwxWrite32(IWX_CSR_FH_INT_STATUS, r2); + + if (r1 & (1u << 0)) { // ALIVE + IwxUpdateRxDescs(); + IwxWrite32(IWX_RFH_Q0_FRBDCB_WIDX_TRG, 8); + } + if (r1 & (1u << 25)) { // SW_ERR + KernelLogStream(ERROR, "WiFi") << "Fatal firmware error"; + g_iwx.State = IwxFwState::Error; + g_iwx.FwErrors++; + IwxDumpFwError(); + } + if (r1 & ((1u << 31) | (1u << 3) | (1u << 28))) // FH_RX/SW_RX/periodic + IwxNotifIntr(); + } + } + + // The status word is updated by DMA and the interrupt may already have + // been consumed by another poller, so always sweep the ring. + IwxNotifIntr(); + + g_iwx.WorkPending = false; + g_iwx.InProcessEvents = false; + } + + // ========================================================================= + // MSI-X / MSI setup + // ========================================================================= + + static bool SetupMsix(uint8_t bus, uint8_t dev, uint8_t func) { + uint8_t cap = Pci::FindCapability(bus, dev, func, Pci::PCI_CAP_MSIX); + if (cap == 0) return false; + + Pci::DisableInterruptDelivery(bus, dev, func); + + uint16_t msgCtrl = Pci::LegacyRead16(bus, dev, func, cap + 2); + uint32_t tableOff = Pci::LegacyRead32(bus, dev, func, cap + 4); + uint8_t tableBir = (uint8_t)(tableOff & 0x7); + tableOff &= ~0x7u; + + if (tableBir != 0) { + KernelLogStream(INFO, "WiFi") + << "MSI-X table lives in BAR " << (uint64_t)tableBir + << " (only BAR0 supported); falling back to MSI"; + return false; + } + + // Program entry 0: all causes are mapped to vector 0 by IwxConfMsixHw. + volatile uint32_t* entry = (volatile uint32_t*)(g_iwx.Mmio + tableOff); + entry[0] = MSI_ADDR_BASE; // message address (BSP, physical, fixed) + entry[1] = 0; // upper address + entry[2] = MSI_VECTOR; // message data + entry[3] = 0; // vector control: unmasked + + msgCtrl |= (1 << 15); // MSI-X enable + msgCtrl &= ~(1 << 14); // function not masked + Pci::LegacyWrite16(bus, dev, func, cap + 2, msgCtrl); + + uint16_t pciCmd = Pci::LegacyRead16(bus, dev, func, (uint8_t)Pci::PCI_REG_COMMAND); + pciCmd |= Pci::PCI_CMD_INTX_DISABLE; + Pci::LegacyWrite16(bus, dev, func, (uint8_t)Pci::PCI_REG_COMMAND, pciCmd); + + Hal::RegisterIrqHandler(MSI_IRQ, HandleInterrupt); + KernelLogStream(OK, "WiFi") << "MSI-X enabled: vector " + << (uint64_t)MSI_VECTOR << " (IRQ slot " << (uint64_t)MSI_IRQ << ")"; + return true; + } + + static bool SetupMsi(uint8_t bus, uint8_t dev, uint8_t func) { + uint8_t cap = Pci::FindCapability(bus, dev, func, Pci::PCI_CAP_MSI); + if (cap == 0) return false; + + Pci::DisableInterruptDelivery(bus, dev, func); + + uint16_t msgCtrl = Pci::LegacyRead16(bus, dev, func, cap + 2); + bool is64 = (msgCtrl & (1 << 7)) != 0; + + Pci::LegacyWrite32(bus, dev, func, cap + 4, MSI_ADDR_BASE); + if (is64) { + Pci::LegacyWrite32(bus, dev, func, cap + 8, 0); + Pci::LegacyWrite16(bus, dev, func, cap + 12, MSI_VECTOR); + } else { + Pci::LegacyWrite16(bus, dev, func, cap + 8, MSI_VECTOR); + } + + msgCtrl &= ~0x70; // single message + msgCtrl |= (1 << 0); // MSI enable + Pci::LegacyWrite16(bus, dev, func, cap + 2, msgCtrl); + + uint16_t pciCmd = Pci::LegacyRead16(bus, dev, func, (uint8_t)Pci::PCI_REG_COMMAND); + pciCmd |= Pci::PCI_CMD_INTX_DISABLE; + Pci::LegacyWrite16(bus, dev, func, (uint8_t)Pci::PCI_REG_COMMAND, pciCmd); + + Hal::RegisterIrqHandler(MSI_IRQ, HandleInterrupt); + KernelLogStream(OK, "WiFi") << "MSI enabled: vector " + << (uint64_t)MSI_VECTOR << " (IRQ slot " << (uint64_t)MSI_IRQ << ")"; + return true; + } + + // ========================================================================= + // Probe + // ========================================================================= + + bool IwxProbe(const Pci::PciDevice& dev) { + if (g_iwx.State != IwxFwState::Absent) return false; + + uint64_t mmioPhys = Pci::ReadBar0(dev.Bus, dev.Device, dev.Function); + if (mmioPhys == 0) { + KernelLogStream(WARNING, "WiFi") << "Device has no memory BAR0"; + return false; + } + + // The CSR/MSI-X window is 16 KiB on these parts; map a bit more so the + // MSI-X table (which lives inside BAR0) is always covered. + constexpr uint64_t MmioSize = 0x8000; + for (uint64_t off = 0; off < MmioSize; off += 0x1000) + Memory::VMM::g_paging->MapMMIO(mmioPhys + off, Memory::HHDM(mmioPhys + off)); + + g_iwx.Mmio = (volatile uint8_t*)Memory::HHDM(mmioPhys); + g_iwx.Bus = dev.Bus; + g_iwx.Dev = dev.Device; + g_iwx.Func = dev.Function; + + Pci::EnableBusMaster(dev.Bus, dev.Device, dev.Function); + + // LTR_CONFIG may only be sent when the PCIe link actually advertises + // Latency Tolerance Reporting (Device Control 2, bit 10); firmware + // rejects it otherwise. + constexpr uint8_t PCI_CAP_PCIE = 0x10; + constexpr uint8_t PCIE_DCSR2 = 0x28; + uint8_t pcieCap = Pci::FindCapability(dev.Bus, dev.Device, dev.Function, + PCI_CAP_PCIE); + if (pcieCap) { + uint32_t dcsr2 = Pci::LegacyRead32(dev.Bus, dev.Device, dev.Function, + (uint8_t)(pcieCap + PCIE_DCSR2)); + g_iwx.LtrEnabled = (dcsr2 & (1u << 10)) != 0; + } + + // Disable the PCI retry timeout (0x41) so Tx retries cannot interfere + // with deep CPU C-states. + uint32_t reg40 = Pci::LegacyRead32(dev.Bus, dev.Device, dev.Function, 0x40); + Pci::LegacyWrite32(dev.Bus, dev.Device, dev.Function, 0x40, reg40 & ~0xff00u); + + IwxWrite32(IWX_CSR_INT_MASK, 0); + IwxWrite32(IWX_CSR_INT, ~0u); + IwxWrite32(IWX_CSR_FH_INT_STATUS, ~0u); + + g_iwx.HwRev = IwxRead32(IWX_CSR_HW_REV); + g_iwx.HwRfId = IwxRead32(IWX_CSR_HW_RF_ID); + + uint32_t macType = IWX_CSR_HW_REV_TYPE(g_iwx.HwRev); + uint32_t rfType = IWX_CSR_HW_RFID_TYPE(g_iwx.HwRfId); + + KernelLogStream(OK, "WiFi") << "Intel Wi-Fi device " << base::hex + << (uint64_t)dev.DeviceId << " at PCI " << (uint64_t)dev.Bus << ":" + << (uint64_t)dev.Device << "." << (uint64_t)dev.Function + << " hw_rev=" << (uint64_t)g_iwx.HwRev + << " mac_type=" << (uint64_t)macType + << " rf_type=" << (uint64_t)rfType << base::dec; + + if (rfType != IWX_CFG_RF_TYPE_GF) { + KernelLogStream(WARNING, "WiFi") + << "Unsupported RF type (only GF / AX211 firmware is bundled)"; + g_iwx.Mmio = nullptr; + return false; + } + + g_msix = SetupMsix(dev.Bus, dev.Device, dev.Function); + if (!g_msix && !SetupMsi(dev.Bus, dev.Device, dev.Function)) { + KernelLogStream(WARNING, "WiFi") + << "No MSI-X/MSI available; the device cannot be driven by polling alone"; + g_iwx.Mmio = nullptr; + return false; + } + + // Boot-time DMA that persists for the device's lifetime. + if (!IwxDmaAlloc(g_iwx.CtxtInfo, sizeof(IwxContextInfoGen3)) + || !IwxDmaAlloc(g_iwx.PrphScratch, sizeof(IwxPrphScratch)) + || !IwxDmaAlloc(g_iwx.PrphInfo, 4096) + || !IwxAllocRxRing() + || !IwxAllocTxRing(g_iwx.CmdQ, IWX_DQA_CMD_QUEUE) + || !IwxAllocTxRing(g_iwx.MgmtQ, IWX_DQA_MGMT_QUEUE)) { + KernelLogStream(ERROR, "WiFi") << "Could not allocate device DMA memory"; + IwxFreeRxRing(); + IwxFreeTxRing(g_iwx.CmdQ); + IwxFreeTxRing(g_iwx.MgmtQ); + IwxDmaFree(g_iwx.CtxtInfo); + IwxDmaFree(g_iwx.PrphScratch); + IwxDmaFree(g_iwx.PrphInfo); + g_iwx.Mmio = nullptr; + return false; + } + + g_iwx.State = IwxFwState::Detected; + KernelLogStream(INFO, "WiFi") + << "Transport ready; deferring firmware load until the ramdisk is mounted"; + return true; + } +} diff --git a/kernel/src/Drivers/Net/Wifi/Wifi.cpp b/kernel/src/Drivers/Net/Wifi/Wifi.cpp new file mode 100644 index 0000000..d0df900 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/Wifi.cpp @@ -0,0 +1,439 @@ +/* + * Wifi.cpp + * Wi-Fi subsystem facade: device probe, boot-deferred firmware bring-up, + * beacon parsing and the scan-result table exposed to userspace. + * + * Firmware bring-up is deferred exactly like Bluetooth: the PCI probe runs + * before the boot filesystems are mounted, but the .ucode image lives on the + * ramdisk, so the transport is claimed early and the multi-second firmware + * load is picked up from the idle loop once VFS is up. + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include "Wifi.hpp" +#include "Iwx.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Kt; +using namespace montauk::abi; + +namespace Drivers::Net::Wifi { + + static std::atomic g_initPending{false}; + static bool g_initialized = false; + + // ========================================================================= + // Scan result table + // ========================================================================= + + static constexpr int MAX_SCAN_RESULTS = 64; + + struct ScanEntry { + uint8_t Bssid[6]; + char Ssid[33]; + uint8_t SsidLen; + uint8_t Channel; + int8_t Rssi; + uint8_t Band; // 0 = 2.4 GHz, 1 = 5 GHz + uint8_t Security; // WifiSecurity value + uint16_t BeaconInterval; + bool Used; + }; + + static ScanEntry g_results[MAX_SCAN_RESULTS]; + static int g_resultCount = 0; + static kcp::Spinlock g_resultLock; + + static void ClearResults() { + g_resultLock.Acquire(); + for (int i = 0; i < MAX_SCAN_RESULTS; i++) g_results[i].Used = false; + g_resultCount = 0; + g_resultLock.Release(); + } + + static bool SameAddr(const uint8_t* a, const uint8_t* b) { + for (int i = 0; i < 6; i++) if (a[i] != b[i]) return false; + return true; + } + + // ========================================================================= + // Beacon / probe-response parsing + // ========================================================================= + + // Element IDs used here. + static constexpr uint8_t ELEMID_SSID = 0; + static constexpr uint8_t ELEMID_DSPARMS = 3; + static constexpr uint8_t ELEMID_RSN = 48; + static constexpr uint8_t ELEMID_VENDOR = 221; + + // Classify the network's security from the capability field and the RSN / + // WPA information elements. + // + // RSN layout: version(2) group cipher(4) pairwise count(2) suites(4*n) + // akm count(2) suites(4*n) [rsn capabilities(2)] + // A SAE (00-0F-AC:8) or FT-SAE (:9) AKM means WPA3. + static uint8_t ClassifyRsn(const uint8_t* ie, uint8_t len) { + if (len < 2) return WIFI_SEC_WPA2; + uint32_t off = 2; + if (off + 4 > len) return WIFI_SEC_WPA2; + off += 4; // group cipher suite + if (off + 2 > len) return WIFI_SEC_WPA2; + uint16_t pairwiseCount = (uint16_t)(ie[off] | (ie[off + 1] << 8)); + off += 2; + off += (uint32_t)pairwiseCount * 4; + if (off + 2 > len) return WIFI_SEC_WPA2; + uint16_t akmCount = (uint16_t)(ie[off] | (ie[off + 1] << 8)); + off += 2; + + bool sae = false; + for (uint16_t i = 0; i < akmCount && off + 4 <= len; i++, off += 4) { + if (ie[off] == 0x00 && ie[off + 1] == 0x0f && ie[off + 2] == 0xac + && (ie[off + 3] == 8 || ie[off + 3] == 9)) + sae = true; + } + return sae ? WIFI_SEC_WPA3 : WIFI_SEC_WPA2; + } + + struct ParsedBeacon { + const uint8_t* Ssid = nullptr; + uint8_t SsidLen = 0; + uint8_t Channel = 0; + uint8_t Security = WIFI_SEC_OPEN; + uint16_t BeaconInterval = 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; + + bool haveRsn = false, haveWpa = false; + + const uint8_t* ie = frame + HDR + FIXED; + const uint8_t* end = frame + len; + while (ie + 2 <= end) { + uint8_t id = ie[0]; + uint8_t ielen = ie[1]; + if (ie + 2 + ielen > end) break; + const uint8_t* body = ie + 2; + + switch (id) { + case ELEMID_SSID: + out->Ssid = body; + out->SsidLen = ielen > 32 ? 32 : ielen; + break; + case ELEMID_DSPARMS: + if (ielen >= 1) out->Channel = body[0]; + break; + case ELEMID_RSN: + haveRsn = true; + out->Security = ClassifyRsn(body, ielen); + break; + case ELEMID_VENDOR: + // WPA1: Microsoft OUI 00:50:F2, type 1. + if (ielen >= 4 && body[0] == 0x00 && body[1] == 0x50 + && body[2] == 0xf2 && body[3] == 0x01) + haveWpa = true; + break; + default: + break; + } + ie += 2 + ielen; + } + + if (!haveRsn) { + if (haveWpa) out->Security = WIFI_SEC_WPA; + else if (privacy) out->Security = WIFI_SEC_WEP; + else out->Security = WIFI_SEC_OPEN; + } + return true; + } + + // 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) { + if (len < 24) return; + + uint8_t type = (uint8_t)(frame[0] & 0x0c); + uint8_t subtype = (uint8_t)(frame[0] & 0xf0); + if (type != 0x00) return; // management frames only + + constexpr uint8_t SUBTYPE_BEACON = 0x80; + constexpr uint8_t SUBTYPE_PROBE_RESP = 0x50; + + if (subtype != SUBTYPE_BEACON && subtype != SUBTYPE_PROBE_RESP) { + // Authentication/association responses belong to the connect path. + IwxConnectRxMgmt(frame, len); + return; + } + + 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; + + g_resultLock.Acquire(); + + ScanEntry* slot = nullptr; + for (int i = 0; i < MAX_SCAN_RESULTS; i++) { + if (g_results[i].Used && SameAddr(g_results[i].Bssid, bssid)) { + slot = &g_results[i]; + break; + } + } + if (!slot) { + for (int i = 0; i < MAX_SCAN_RESULTS; i++) { + if (!g_results[i].Used) { + slot = &g_results[i]; + slot->Used = true; + g_resultCount++; + break; + } + } + } + if (!slot) { // table full + g_resultLock.Release(); + return; + } + + memcpy(slot->Bssid, bssid, 6); + slot->SsidLen = pb.SsidLen; + for (uint8_t i = 0; i < pb.SsidLen; i++) slot->Ssid[i] = (char)pb.Ssid[i]; + slot->Ssid[pb.SsidLen] = '\0'; + slot->Channel = ch; + slot->Rssi = rssiDbm; + slot->Band = ch > 14 ? 1 : 0; + slot->Security = pb.Security; + slot->BeaconInterval = pb.BeaconInterval; + + g_resultLock.Release(); + } + + // ========================================================================= + // Bring-up + // ========================================================================= + + bool Probe(const Pci::PciDevice& dev) { + if (!IwxProbe(dev)) return false; + + // Firmware comes off the ramdisk, which is not mounted during the PCI + // scan; hand the rest of the bring-up to the idle loop. + g_initPending.store(true, std::memory_order_release); + return true; + } + + static void CompleteInit() { + if (!IwxReadFirmware()) { + g_iwx.State = IwxFwState::Error; + return; + } + + if (!IwxStartHw()) { + g_iwx.State = IwxFwState::Error; + return; + } + if (g_iwx.State == IwxFwState::RfKill) { + KernelLogStream(WARNING, "WiFi") << "Radio is off; skipping firmware load"; + return; + } + + g_iwx.State = IwxFwState::Booting; + + if (!IwxRunInitUcode()) { + KernelLogStream(ERROR, "WiFi") << "Firmware initialization failed"; + IwxStopDevice(); + g_iwx.State = IwxFwState::Error; + return; + } + + // Init and runtime share one image on AX210; the device is live now. + g_iwx.State = IwxFwState::Running; + + if (!IwxInitHw()) { + KernelLogStream(ERROR, "WiFi") << "Hardware configuration failed"; + IwxStopDevice(); + g_iwx.State = IwxFwState::Error; + return; + } + + g_initialized = true; + KernelLogStream(OK, "WiFi") << "Wi-Fi adapter initialized (" + << (uint64_t)g_iwx.ChannelCount << " channels, firmware " + << g_iwx.Fw.Version << ")"; + } + + void ServiceDeferredInit() { + if (!g_initPending.load(std::memory_order_relaxed) || g_initialized) return; + if (!Fs::Vfs::IsDriveRegistered(0)) return; // ramdisk not mounted yet + + bool expected = true; + if (!g_initPending.compare_exchange_strong(expected, false, + std::memory_order_acquire)) return; + + KernelLogStream(INFO, "WiFi") << "Completing deferred Wi-Fi init in background"; + + // Reserve this CPU for the bring-up: the firmware handshakes below use + // wall-clock timeouts, and being descheduled mid-way expires them with + // almost no polling done (the same reason Bluetooth reserves here). + auto* cpu = Smp::GetCurrentCpuData(); + bool wasReserved = cpu && cpu->reservedForKernelWork; + if (cpu) cpu->reservedForKernelWork = true; + CompleteInit(); + if (cpu) cpu->reservedForKernelWork = wasReserved; + } + + void ServiceEvents() { + if (!g_iwx.Mmio) return; + if (g_iwx.WorkPending) IwxProcessEvents(); + // Firmware commands the RX path deferred (it runs under the event + // pump's reentrancy guard and cannot wait for a completion itself). + IwxConnectService(); + } + + bool IsInitialized() { return g_initialized; } + bool IsPresent() { return g_iwx.State != IwxFwState::Absent; } + + // ========================================================================= + // Public operations + // ========================================================================= + + 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 (timeoutMs < 1000) timeoutMs = 1000; + if (timeoutMs > 20000) timeoutMs = 20000; + + ClearResults(); + + if (!IwxStartScan(nullptr)) return -1; + + uint64_t start = Timekeeping::GetMilliseconds(); + while (g_iwx.ScanActive && Timekeeping::GetMilliseconds() - start < timeoutMs) { + IwxProcessEvents(); + for (int i = 0; i < 200; i++) asm volatile("pause" ::: "memory"); + } + + if (g_iwx.ScanActive) { + IwxAbortScan(); + // Drain whatever the firmware queued before the abort landed. + uint64_t t0 = Timekeeping::GetMilliseconds(); + while (Timekeeping::GetMilliseconds() - t0 < 200) IwxProcessEvents(); + } + + g_resultLock.Acquire(); + int n = 0; + for (int i = 0; i < MAX_SCAN_RESULTS && n < maxCount; i++) { + if (!g_results[i].Used) continue; + const ScanEntry& e = g_results[i]; + WifiNetwork& w = out[n]; + memset(&w, 0, sizeof(w)); + for (int k = 0; k < 32 && e.Ssid[k]; k++) w.ssid[k] = e.Ssid[k]; + memcpy(w.bssid, e.Bssid, 6); + w.channel = e.Channel; + w.rssi = e.Rssi; + w.band = e.Band; + w.security = e.Security; + w.beaconInterval = e.BeaconInterval; + n++; + } + g_resultLock.Release(); + return n; + } + + int GetInfo(WifiInfo* out) { + if (!out) return -1; + 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->fwErrors = (uint32_t)g_iwx.FwErrors; + out->connState = (uint32_t)IwxConnectState(); + + int i = 0; + for (; i < 31 && g_iwx.Fw.Version[i]; i++) out->fwVersion[i] = g_iwx.Fw.Version[i]; + out->fwVersion[i] = '\0'; + return 0; + } + + int Connect(const char* ssid, const char* password) { + if (!g_initialized || !ssid) return -1; + + // Locate the network in the most recent scan results: the firmware + // contexts need its BSSID and channel. + uint8_t bssid[6]; + uint8_t channel = 0; + bool is5 = false; + uint8_t security = WIFI_SEC_OPEN; + bool found = false; + + g_resultLock.Acquire(); + for (int i = 0; i < MAX_SCAN_RESULTS; i++) { + if (!g_results[i].Used) continue; + const ScanEntry& e = g_results[i]; + bool match = true; + for (int k = 0; k < 32; k++) { + char a = e.Ssid[k], b = ssid[k]; + if (a != b) { match = false; break; } + if (a == '\0') break; + } + if (!match) continue; + memcpy(bssid, e.Bssid, 6); + channel = e.Channel; + is5 = e.Band == 1; + security = e.Security; + found = true; + break; + } + g_resultLock.Release(); + + if (!found) { + KernelLogStream(WARNING, "WiFi") + << "Network not in scan results; run a scan first"; + return -1; + } + + // Encryption is checked before the passphrase: the WPA2/WPA3 key + // exchange (PMK derivation, EAPOL 4-way, HW key install) is not + // implemented at all, so a passphrase would not help and reporting + // "needs a passphrase" would be misleading. + if (security != WIFI_SEC_OPEN) { + KernelLogStream(WARNING, "WiFi") + << "Encrypted networks are not supported yet (open only)"; + return -2; + } + (void)password; + + return IwxConnectStart(bssid, channel, is5, ssid) ? 0 : -1; + } + + int Disconnect() { + if (!g_initialized) return -1; + IwxConnectAbort(); + return 0; + } +} diff --git a/kernel/src/Drivers/Net/Wifi/Wifi.hpp b/kernel/src/Drivers/Net/Wifi/Wifi.hpp new file mode 100644 index 0000000..c176fe3 --- /dev/null +++ b/kernel/src/Drivers/Net/Wifi/Wifi.hpp @@ -0,0 +1,40 @@ +/* + * Wifi.hpp + * Wi-Fi subsystem facade: PCI probe hook, deferred bring-up, scanning. + * Copyright (c) 2026 Daniel Hammer +*/ + +#pragma once +#include +#include +#include + +namespace Drivers::Net::Wifi { + + // PCI driver-table probe entry point. + bool Probe(const Pci::PciDevice& dev); + + // 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(); + + // Steady-state event pump (RX ring, notifications). Idle-loop callback. + void ServiceEvents(); + + bool IsInitialized(); + bool IsPresent(); + + // Run a scan and return up to maxCount networks found. Blocks (pumping + // firmware events) until the scan completes or timeoutMs elapses. + // Returns the number of entries written, or -1 on error. + int Scan(montauk::abi::WifiNetwork* out, int maxCount, uint32_t timeoutMs); + + // Fill in adapter/firmware status. + int GetInfo(montauk::abi::WifiInfo* out); + + // Association groundwork. Returns 0 when the firmware contexts came up, + // negative on failure. See IwxConnect.cpp: the 802.11 handshake itself is + // not implemented yet, so this cannot establish a usable link. + int Connect(const char* ssid, const char* password); + int Disconnect(); +} diff --git a/kernel/src/Timekeeping/ApicTimer.cpp b/kernel/src/Timekeeping/ApicTimer.cpp index ea7094f..f097e5f 100644 --- a/kernel/src/Timekeeping/ApicTimer.cpp +++ b/kernel/src/Timekeeping/ApicTimer.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -270,6 +271,12 @@ namespace Timekeeping { // the adapter is down. Drivers::USB::Bluetooth::ServiceEvents(); + // Wi-Fi mirrors the Bluetooth split: the firmware load needs the + // ramdisk, and the RX/notification ring must be drained outside hard + // interrupt context (the MSI handler only latches a flag). + Drivers::Net::Wifi::ServiceDeferredInit(); + Drivers::Net::Wifi::ServiceEvents(); + // Thermal policy records transitions during BSP maintenance; print // them from this explicitly non-interrupt idle path. Hal::CpuPower::ServiceDeferredDiagnostics(); diff --git a/programs/data/firmware/intel/iwlwifi-so-a0-gf-a0-89.ucode b/programs/data/firmware/intel/iwlwifi-so-a0-gf-a0-89.ucode new file mode 100644 index 0000000000000000000000000000000000000000..3a3d5f3b0918fce4ac3228a8f3c685c02d956f2e GIT binary patch literal 1736688 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 z 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%0DUv~Y8ZUsa2*VDCxQQ?x7+c}qR&9* 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

GT;j4NP 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%0A@IU;l6Lxq>)`ZN3K|kNL*3;E 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 xeKpX=9MF^lA#6|uMaGv=8Uktw# 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 literal 0 HcmV?d00001 diff --git a/programs/include/Api/Syscall.hpp b/programs/include/Api/Syscall.hpp index 8382aa4..69dd86c 100644 --- a/programs/include/Api/Syscall.hpp +++ b/programs/include/Api/Syscall.hpp @@ -219,6 +219,12 @@ namespace montauk::abi { static constexpr uint64_t SYS_DISPLAYSETMODE = 156; static constexpr uint64_t SYS_DISPLAYBRIGHTNESS = 157; + // Wi-Fi adapter control + static constexpr uint64_t SYS_WIFI_SCAN = 158; // (WifiNetwork*, maxCount, timeoutMs) -> count + static constexpr uint64_t SYS_WIFI_INFO = 159; // (WifiInfo*) -> 0, -1 if absent + static constexpr uint64_t SYS_WIFI_CONNECT = 160; // (ssid, password) -> 0, <0 on error + static constexpr uint64_t SYS_WIFI_DISCONNECT = 161; // () -> 0 + // Tunable parameters (for SYS_SDR_SETPARAM / SYS_SDR_GETPARAM). static constexpr int SDR_PARAM_FREQ = 0; // center frequency, Hz static constexpr int SDR_PARAM_SAMPLE_RATE = 1; // sample rate, Hz @@ -564,6 +570,46 @@ namespace montauk::abi { uint32_t _pad2; }; + // Wi-Fi security suites reported in WifiNetwork.security. + static constexpr uint8_t WIFI_SEC_OPEN = 0; + static constexpr uint8_t WIFI_SEC_WEP = 1; + static constexpr uint8_t WIFI_SEC_WPA = 2; + static constexpr uint8_t WIFI_SEC_WPA2 = 3; + static constexpr uint8_t WIFI_SEC_WPA3 = 4; + + // Adapter states reported in WifiInfo.state. + static constexpr uint8_t WIFI_STATE_ABSENT = 0; // no device + static constexpr uint8_t WIFI_STATE_DETECTED = 1; // waiting for firmware load + static constexpr uint8_t WIFI_STATE_BOOTING = 2; + static constexpr uint8_t WIFI_STATE_RUNNING = 3; + static constexpr uint8_t WIFI_STATE_ERROR = 4; + static constexpr uint8_t WIFI_STATE_RFKILL = 5; // radio disabled in hardware + + // One scanned network (returned by SYS_WIFI_SCAN). + struct WifiNetwork { + char ssid[36]; // NUL-terminated; empty for hidden networks + uint8_t bssid[6]; + uint8_t channel; + int8_t rssi; // dBm + uint8_t band; // 0 = 2.4 GHz, 1 = 5 GHz + uint8_t security; // WIFI_SEC_* + uint16_t beaconInterval; // TU + }; + + // Adapter status (returned by SYS_WIFI_INFO). + struct WifiInfo { + uint8_t mac[6]; + uint8_t present; // 1 if a supported device was found + uint8_t state; // WIFI_STATE_* + uint8_t scanning; + uint8_t bands; // bit0 = 2.4 GHz, bit1 = 5 GHz + uint16_t channels; // usable channels after regulatory filtering + char fwVersion[32]; + uint64_t rxPackets; + uint32_t fwErrors; + uint32_t connState; // 0 idle, >0 connection setup in progress + }; + struct ThermalInfo { char name[32]; // short zone name (e.g. "THRM", "TZ00") int32_t temperature; // tenths of degrees Celsius, or -1 if unavailable diff --git a/programs/include/libc/montauk.h b/programs/include/libc/montauk.h index 54186df..dafaec9 100644 --- a/programs/include/libc/montauk.h +++ b/programs/include/libc/montauk.h @@ -181,6 +181,10 @@ extern "C" { #define MTK_SYS_DISPLAYMODES 155 #define MTK_SYS_DISPLAYSETMODE 156 #define MTK_SYS_DISPLAYBRIGHTNESS 157 +#define MTK_SYS_WIFI_SCAN 158 +#define MTK_SYS_WIFI_INFO 159 +#define MTK_SYS_WIFI_CONNECT 160 +#define MTK_SYS_WIFI_DISCONNECT 161 /* @SYSCALLS-END */ #define MTK_SOCK_TCP 1 diff --git a/programs/include/montauk/syscall.h b/programs/include/montauk/syscall.h index d19b054..9cce5c1 100644 --- a/programs/include/montauk/syscall.h +++ b/programs/include/montauk/syscall.h @@ -596,6 +596,27 @@ namespace montauk { return (int)syscall1(montauk::abi::SYS_BTINFO, (uint64_t)buf); } + // Wi-Fi. scan() runs a full channel sweep and blocks until it finishes or + // timeoutMs elapses, then fills buf with the networks seen; it returns the + // number of entries written, or -1 when no adapter is ready. + inline int wifi_scan(montauk::abi::WifiNetwork* buf, int maxCount, + uint32_t timeoutMs) { + return (int)syscall3(montauk::abi::SYS_WIFI_SCAN, (uint64_t)buf, + (uint64_t)maxCount, (uint64_t)timeoutMs); + } + inline int wifi_info(montauk::abi::WifiInfo* out) { + return (int)syscall1(montauk::abi::SYS_WIFI_INFO, (uint64_t)out); + } + // Association is groundwork only: open networks bring the firmware + // contexts up, encrypted ones are rejected with -2. + inline int wifi_connect(const char* ssid, const char* password) { + return (int)syscall2(montauk::abi::SYS_WIFI_CONNECT, (uint64_t)ssid, + (uint64_t)password); + } + inline int wifi_disconnect() { + return (int)syscall0(montauk::abi::SYS_WIFI_DISCONNECT); + } + // Software-defined radio (Rx). Receivers are identified by index [0, count); // open() returns a handle used by the rest of the calls. Samples are read // as interleaved 8-bit unsigned I/Q (CU8) from the device's ring buffer. diff --git a/programs/man/wifi.1 b/programs/man/wifi.1 new file mode 100644 index 0000000..ea7bcfc --- /dev/null +++ b/programs/man/wifi.1 @@ -0,0 +1,74 @@ +.TH WIFI 1 +.SH NAME + wifi - scan for wireless networks and inspect the Wi-Fi adapter + +.SH SYNOPSIS + wifi [scan [seconds]] + wifi info + wifi debug + wifi connect [passphrase] + wifi disconnect + +.SH DESCRIPTION + Drives the Intel Wi-Fi adapter. With no arguments, runs a five + second scan and lists the networks found, strongest signal first. + + The driver supports Intel AX210-family devices whose RF type is + GF (marketed as AX211), which is what the bundled firmware image + covers. Other Intel wireless parts are left unclaimed. + +.SH COMMANDS + scan [seconds] + Sweep every regulatory-permitted channel and report the + networks seen. The duration is clamped to 1-20 seconds and + defaults to 5. + + info + Adapter status: MAC address, firmware version, supported + bands, usable channel count and whether a scan is running. + + debug + Everything info prints, plus RX/error counters, a scan with + per-BSS detail (BSSID, channel, RSSI, security) and band and + security tallies. Use this when a scan finds nothing. + + connect [passphrase] + Brings the firmware contexts (PHY, MAC, binding, station) up + for a network from the last scan. The 802.11 authentication + and association exchange is not implemented, so this does not + produce a usable link; encrypted networks are refused outright. + + disconnect + Tears those contexts back down. + +.SH OUTPUT + SSID SIGNAL RSSI CH BAND SECURITY + ------------------------------------------------------------------- + homenet [####] -42 6 2.4GHz WPA2 + homenet-5g [###.] -61 44 5GHz WPA3 + guest [##..] -74 11 2.4GHz open + +.SH FIRMWARE + The adapter needs firmware from the ramdisk: + + 0:/os/firmware/intel/iwlwifi-so-a0-gf-a0-.ucode + 0:/os/firmware/intel/iwlwifi-so-a0-gf-a0.pnvm + + Loading happens shortly after boot, off the boot-critical path, + so "wifi info" may briefly report "detected (firmware not loaded + yet)". The PNVM file carries regulatory data; without it the + firmware falls back to conservative built-in limits. + +.SH DIAGNOSTICS + no supported Wi-Fi adapter found + No matching device, or its RF type is not GF. + + radio disabled (RF-kill) + The hardware kill switch is off. No scanning is possible. + + error + Firmware load or configuration failed; klog(1) has the + detail under the WiFi and WiFi-FW tags. + +.SH SEE ALSO + ifconfig(1), klog(1), dhcp(1), syscalls(2) diff --git a/programs/src/wifi/main.cpp b/programs/src/wifi/main.cpp new file mode 100644 index 0000000..4559cb5 --- /dev/null +++ b/programs/src/wifi/main.cpp @@ -0,0 +1,387 @@ +/* + * main.cpp + * wifi - Wi-Fi scanning and adapter diagnostics. + * + * Usage: + * wifi scan and list nearby networks + * wifi scan [seconds] scan for a specific duration (default 5, max 20) + * wifi info adapter, firmware and radio status + * wifi debug info plus raw counters, repeated scan detail + * wifi connect bring up the firmware contexts for an open network + * wifi disconnect tear those contexts back down + * + * Copyright (c) 2026 Daniel Hammer +*/ + +#include +#include + +using namespace montauk; + +// --------------------------------------------------------------------------- +// Formatting helpers (freestanding; no libc printf here) +// --------------------------------------------------------------------------- + +static void put_u64(uint64_t n) { + char buf[24]; + int i = 0; + if (n == 0) { putchar('0'); return; } + while (n) { buf[i++] = (char)('0' + (n % 10)); n /= 10; } + while (i) putchar(buf[--i]); +} + +static void put_i64(int64_t n) { + if (n < 0) { putchar('-'); n = -n; } + put_u64((uint64_t)n); +} + +// Right-align an unsigned value in a field of `width` characters. +static void put_u64_pad(uint64_t n, int width) { + int digits = 1; + for (uint64_t t = n; t >= 10; t /= 10) digits++; + for (int i = digits; i < width; i++) putchar(' '); + put_u64(n); +} + +static void put_hex2(uint8_t v) { + const char* hex = "0123456789abcdef"; + putchar(hex[(v >> 4) & 0xF]); + putchar(hex[v & 0xF]); +} + +static void put_mac(const uint8_t* m) { + for (int i = 0; i < 6; i++) { + if (i) putchar(':'); + put_hex2(m[i]); + } +} + +static void put_padded_str(const char* s, int width) { + int n = 0; + while (s[n] && n < width) { putchar(s[n]); n++; } + for (; n < width; n++) putchar(' '); +} + +static const char* security_name(uint8_t sec) { + switch (sec) { + case abi::WIFI_SEC_OPEN: return "open"; + case abi::WIFI_SEC_WEP: return "WEP"; + case abi::WIFI_SEC_WPA: return "WPA"; + case abi::WIFI_SEC_WPA2: return "WPA2"; + case abi::WIFI_SEC_WPA3: return "WPA3"; + default: return "?"; + } +} + +static const char* state_name(uint8_t state) { + switch (state) { + case abi::WIFI_STATE_ABSENT: return "no adapter"; + case abi::WIFI_STATE_DETECTED: return "detected (firmware not loaded yet)"; + case abi::WIFI_STATE_BOOTING: return "loading firmware"; + case abi::WIFI_STATE_RUNNING: return "ready"; + case abi::WIFI_STATE_ERROR: return "error"; + case abi::WIFI_STATE_RFKILL: return "radio disabled (RF-kill)"; + default: return "unknown"; + } +} + +// A rough signal-quality bar from the RSSI: -50 dBm and up is excellent, +// -90 dBm and below is unusable. +static void put_signal_bar(int8_t rssi) { + int bars = 0; + if (rssi >= -55) bars = 4; + else if (rssi >= -67) bars = 3; + else if (rssi >= -78) bars = 2; + else if (rssi >= -88) bars = 1; + + putchar('['); + for (int i = 0; i < 4; i++) putchar(i < bars ? '#' : '.'); + putchar(']'); +} + +// --------------------------------------------------------------------------- +// Argument helpers +// --------------------------------------------------------------------------- + +static uint64_t parse_u64(const char* s) { + uint64_t v = 0; + while (*s >= '0' && *s <= '9') { v = v * 10 + (uint64_t)(*s - '0'); s++; } + return v; +} + +static bool next_token(const char** rest, char* tok, int cap) { + const char* s = skip_spaces(*rest); + if (*s == '\0') { *rest = s; return false; } + int i = 0; + while (*s && *s != ' ' && i < cap - 1) tok[i++] = *s++; + tok[i] = '\0'; + *rest = s; + return true; +} + +// --------------------------------------------------------------------------- +// Commands +// --------------------------------------------------------------------------- + +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"); + return false; + } + if (info.state != abi::WIFI_STATE_RUNNING) { + print("wifi: adapter is not ready ("); print(state_name(info.state)); + print(").\n"); + if (info.state == abi::WIFI_STATE_DETECTED) + print(" Firmware loads shortly after boot; try again in a moment.\n"); + else if (info.state == abi::WIFI_STATE_ERROR) + print(" Check the kernel log (klog) for firmware errors.\n"); + return false; + } + return true; +} + +static void print_info(const abi::WifiInfo& info, bool verbose) { + print("Wi-Fi adapter\n"); + print(" status : "); print(state_name(info.state)); print("\n"); + print(" MAC : "); put_mac(info.mac); print("\n"); + print(" firmware : "); + print(info.fwVersion[0] ? info.fwVersion : "(not loaded)"); + print("\n"); + print(" bands : "); + if (info.bands & 1) print("2.4GHz "); + if (info.bands & 2) print("5GHz"); + if (!info.bands) print("(unknown)"); + print("\n"); + print(" channels : "); put_u64(info.channels); + print(" usable after regulatory filtering\n"); + print(" scanning : "); print(info.scanning ? "yes" : "no"); print("\n"); + + if (verbose) { + print(" rx packets : "); put_u64(info.rxPackets); print("\n"); + print(" fw errors : "); put_u64(info.fwErrors); print("\n"); + print(" conn state : "); put_u64(info.connState); + print(" (0 = idle)\n"); + } +} + +static int cmd_scan(uint32_t seconds, bool verbose) { + abi::WifiInfo info; + if (!require_adapter(info)) return 1; + + uint32_t timeoutMs = seconds * 1000; + if (timeoutMs < 1000) timeoutMs = 5000; + if (timeoutMs > 20000) timeoutMs = 20000; + + print("Scanning for up to "); + put_u64(timeoutMs / 1000); + print(" seconds...\n"); + + int n = wifi_scan(g_nets, 64, timeoutMs); + if (n < 0) { + print("wifi: scan failed.\n"); + return 1; + } + if (n == 0) { + print("No networks found.\n"); + return 0; + } + + // Strongest signal first (small n, so a simple selection sort is fine). + for (int i = 0; i < n - 1; i++) { + int best = i; + for (int j = i + 1; j < n; j++) + if (g_nets[j].rssi > g_nets[best].rssi) best = j; + if (best != i) { + abi::WifiNetwork tmp = g_nets[i]; + g_nets[i] = g_nets[best]; + g_nets[best] = tmp; + } + } + + print("\n"); + print("SSID SIGNAL RSSI CH BAND SECURITY\n"); + print("-------------------------------------------------------------------\n"); + + for (int i = 0; i < n; i++) { + const abi::WifiNetwork& w = g_nets[i]; + put_padded_str(w.ssid[0] ? w.ssid : "(hidden)", 32); + putchar(' '); + put_signal_bar(w.rssi); + print(" "); + put_i64(w.rssi); + print(w.rssi > -100 ? " " : " "); + put_u64_pad(w.channel, 3); + print(" "); + print(w.band ? "5GHz " : "2.4GHz"); + print(" "); + print(security_name(w.security)); + print("\n"); + + if (verbose) { + print(" bssid "); put_mac(w.bssid); + print(" beacon interval "); put_u64(w.beaconInterval); + print(" TU\n"); + } + } + + print("\n"); + put_u64((uint64_t)n); + print(n == 1 ? " network found.\n" : " networks found.\n"); + return 0; +} + +static int cmd_info(bool verbose) { + abi::WifiInfo info; + if (wifi_info(&info) != 0 && !info.present) { + print("wifi: no supported Wi-Fi adapter found.\n"); + return 1; + } + print_info(info, verbose); + return 0; +} + +static int cmd_debug() { + abi::WifiInfo info; + if (wifi_info(&info) != 0 && !info.present) { + print("wifi: no supported Wi-Fi adapter found.\n"); + return 1; + } + + print("=== Wi-Fi diagnostics ===\n\n"); + print_info(info, true); + + if (info.state != abi::WIFI_STATE_RUNNING) { + print("\nAdapter is not ready; skipping the scan test.\n"); + print("Kernel-side detail is in the klog (look for the WiFi/WiFi-FW tags).\n"); + return 0; + } + + print("\nRunning a 5 second scan and reporting per-BSS detail...\n"); + int n = wifi_scan(g_nets, 64, 5000); + if (n < 0) { + print("scan failed\n"); + return 1; + } + + int open = 0, wpa2 = 0, wpa3 = 0, other = 0, band24 = 0, band5 = 0; + for (int i = 0; i < n; i++) { + switch (g_nets[i].security) { + case abi::WIFI_SEC_OPEN: open++; break; + case abi::WIFI_SEC_WPA2: wpa2++; break; + case abi::WIFI_SEC_WPA3: wpa3++; break; + default: other++; break; + } + if (g_nets[i].band) band5++; else band24++; + } + + print("\nBSS count : "); put_u64((uint64_t)n); print("\n"); + print(" 2.4 GHz : "); put_u64((uint64_t)band24); print("\n"); + print(" 5 GHz : "); put_u64((uint64_t)band5); print("\n"); + print(" open : "); put_u64((uint64_t)open); print("\n"); + print(" WPA2 : "); put_u64((uint64_t)wpa2); print("\n"); + print(" WPA3 : "); put_u64((uint64_t)wpa3); print("\n"); + print(" other : "); put_u64((uint64_t)other); print("\n"); + + if (n > 0) { + print("\nPer-BSS detail:\n"); + for (int i = 0; i < n; i++) { + const abi::WifiNetwork& w = g_nets[i]; + print(" "); put_mac(w.bssid); + print(" ch "); put_u64_pad(w.channel, 3); + print(" "); put_i64(w.rssi); print(" dBm "); + print(security_name(w.security)); + print(" "); + print(w.ssid[0] ? w.ssid : "(hidden)"); + print("\n"); + } + } + + // Re-read the counters so the caller can see whether frames actually moved. + abi::WifiInfo after; + if (wifi_info(&after) == 0) { + print("\nRX packets: "); put_u64(info.rxPackets); + print(" -> "); put_u64(after.rxPackets); + print(" firmware errors: "); put_u64(after.fwErrors); + print("\n"); + } + return 0; +} + +static int cmd_connect(const char* ssid, const char* password) { + abi::WifiInfo info; + if (!require_adapter(info)) return 1; + + print("Connecting to \""); print(ssid); print("\"...\n"); + int rc = wifi_connect(ssid, password); + if (rc == 0) { + print("Firmware contexts are up.\n"); + print("NOTE: the 802.11 authentication exchange is not implemented yet,\n"); + print(" so this does not establish a usable link.\n"); + return 0; + } + if (rc == -2) { + print("wifi: \""); print(ssid); print("\" is encrypted (WPA2/WPA3).\n"); + print(" Only open networks can be joined so far - the key exchange\n"); + print(" is not implemented yet. Scanning is unaffected.\n"); + return 1; + } + print("wifi: \""); print(ssid); print("\" was not found in the last scan.\n"); + print(" Run \"wifi scan\" first, and check the SSID spelling.\n"); + return 1; +} + +static void usage() { + print("usage: wifi [command]\n\n"); + print(" scan [seconds] scan and list nearby networks (default 5)\n"); + print(" info adapter, firmware and radio status\n"); + print(" debug diagnostics plus per-BSS scan detail\n"); + print(" connect bring up firmware contexts (open networks)\n"); + print(" disconnect tear those contexts down\n\n"); + print("With no command, runs a 5 second scan.\n"); +} + +extern "C" void _start() { + char args[192]; + int alen = getargs(args, sizeof(args)); + const char* rest = (alen > 0) ? args : ""; + + char cmd[32]; + if (!next_token(&rest, cmd, sizeof(cmd))) { + exit(cmd_scan(5, false)); + } + + if (streq(cmd, "scan")) { + char tok[16]; + uint32_t secs = 5; + if (next_token(&rest, tok, sizeof(tok))) secs = (uint32_t)parse_u64(tok); + exit(cmd_scan(secs, false)); + } else if (streq(cmd, "info")) { + exit(cmd_info(false)); + } else if (streq(cmd, "debug")) { + exit(cmd_debug()); + } else if (streq(cmd, "connect")) { + char ssid[40], pass[80]; + if (!next_token(&rest, ssid, sizeof(ssid))) { + print("wifi: connect needs an SSID\n"); + exit(1); + } + pass[0] = '\0'; + next_token(&rest, pass, sizeof(pass)); + exit(cmd_connect(ssid, pass)); + } else if (streq(cmd, "disconnect")) { + wifi_disconnect(); + print("Disconnected.\n"); + exit(0); + } else if (streq(cmd, "help") || streq(cmd, "-h") || streq(cmd, "--help")) { + usage(); + exit(0); + } + + print("wifi: unknown command \""); print(cmd); print("\"\n\n"); + usage(); + exit(1); +}

fidbkdOT-K~0wrQ_5%cRp-!1uOtuE;&ACL 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≦KSe$)F#t2q>HXTyz1iB!P3ttBJ1rvc zhPimv6#2qq50}|d{1>^#FOPBjhGo5q04WK^ssMnZ%yme zjNiyj{j;h8+HFXHdfd@5+Yq8EcO25u@yc)*pU7L7xG^#u2l-2if4ZpUUI!*!T|3v6 z#J{S#_a)@Hzx1#Ebr;@|N4^5fS?g&I$nl5Pq58;#6A>gXJyH|kw_`tV6@QSk{=Nw{ zAJ*ata5yTn{is$9;RVz+I@e2i^!&c33`wFFmD=N&7Y z4k_gZM%?ZG68Or^d}h|#l3eT+j&D@mdRV)3a%2wmS_7`5>|5-VleD{;i*&aHN6UvT z--8@>XA#+j-IpVr4(H5wFwzZ^N+PFVr^ZYR&4sz-zO;D2aQfFz7;0%ufs%~_*Re}z zb9-~GiK_!Q({#0OJbQI$x0|+$;=me)%ETqQlS6x8Gx-8DbaMVCcq(bU0XkdfMf#!H z1@^q!Y>@St$5%&Vw%w6mmCt$1z_P~N-y87j>SL}B?Ex+K1D~jlj_Up?J{kNx@QJ_N zw3cel&FDw2TfwN~45e$d9(`_b6+_8+v97rv5$`y^Gg-2so#GbiA>zn;GXL2#KQDbv zxtAOpU;DsymS9!;YfO(<7g=(9r)JOXomw0Q97Y_OHYXzSGchF`i({gGvBJg6QXF&V zk1Q*JC;Q3WC@0mrWn7qxSbxNka~9Z|DlZF%SkI)c#=P5MNuaS#oQ_BN`#kCediy(%CXij&s9IQ zPp6iQopZCr*O{KL`u>H`HdDBh<>%lxjbjatpPWE;}H)TE+j#8a)wmiewclt*pD(311@n41&|@@lgthy&r~Y~aA4 zwsy!7)XAznYr*p(r6*TDKf@s>nTMK!yk=U^l6=+nQeSL9d*gf18e=B*3jQ!&;BMo$ za)^oM)%Z2XUI6BC-U2gix6!{6XIODDld#^e`w~H|8(mvb=0(j(aOPU?Lz)nLI?PQ& zG$Qg?TwQ6(W`5mDd8kM5CF7ymX^ltYp&D=EU5tDd1nWKvWBm=SJPyog_bI-!Rkv!G z@7jQrYL8mxUy0X>FMLImE^uh!Svmc~D3|f1;TfNQ3aJ^-C+|_69xUUaW-L)G;}wQw z&=s|l-r&2PW8OU-d^cpO9oB-Uq;=b;sYPF?z0asa?fa{#2~YO4ao8;_-K~jBPhq+l zcnVdyE*YqlP^M|Z=<9R0BAvd4FL-n<_%>@b#*gHFP_az;q3fRAn=T_nhnwM5-|r$)E)!b2l=s{e{No95W%-4{kajIi9e$pV>i8e1XnDsIB#a~8RwlJ ze5Ucv4nEU(r^wHSJuiXBAl_k54bG6RJmolRyb+x%&2C4QqI_ty^5d5vWWOXdHjA&;vWv2d5?RpduM8Fo4vih>>4 zR>>_DJfpLJ9E9}dp`9wUy&R4eQq<#VbNFm)*t7DdW(E#Z$Wd0-g-qp+FNDFmBP2faBF{K zj*)rhQC^t#w-tKGRMpZkIlw;v{audlN874t4m&-&=+>4-jA?0<+|t|7(swYXXiJa7 zcj-g9rB_t6PJWd{Xbo~$bs)TgG{FA4p<+#T{m<){)i2r`7Q@0SGjs19du6SrcP~(C zx~)WVTh*$U*WdZ9@A;g1+ODtlbUcSwY`TmcP{an-79f}B8f%B@s!~hY(ij`7(&-sO zN>%>tMeJ)-7sr-HS+@|VbfAeNyM(GfJtu`%-*i|Z>p_n)&nR#O~R(3Xj-8g|fj`E@`yHP&`4)WhSIBUFrWGT$l zolvmzR0G5UvwY9bXjZ;OPI&HnzB70~nl4UGH#7KL-<%>!wP)cv1ONHpwUMJb**!YY zvqHlu=j0mpRI6UL;87`-S|%G;?p`F(8>NAmMBv~9DHpAgLNk>%X!N7wCGX4PDUgy1U@K|>!|{^&aPbe9@FTg&J@ zpZmyiUQVTM(Vm{Q_T?N{iMoL;?0ZO)nLsqkce7;r+rc*tA$@^a{=x=+1bqhGKE*&9 znUe(NL3VBjLMtt`DC6KhrfH}VGC3`;=Lo!X+u*HxnELH1{=3wV_Zao#eH-^UDsUXb z!T(_ee1Ch6tbiwQ&k<-jph>PVS%$Gb;t2H)roR$?f4zo_G|b{6^*D4mcpO?B8XRgI z+^n|4ZS8GsZTJpr2{yqOjK>_Q0}b-b)=eL-X+B6O?EdR@>v{j%wM+c7D!e4cbSyfd zSRf6~1STBzmop}C*IaB#3RA3#ZBO~Fc#MBo2dQc#B^O?rLK+I5BV{xdP0f^rQhvLg zZSVg*Ep=}4740?rJuv?-wJVYov)|FK0?5VxZ`vgV+XbH2ylTkUy{9d?tEzAhaPx`_ zBi)!yVqN#T_v6fX(%pM-W!Xu$XB#`ETL=OZw@L$tQsSriDXaTTa4jr$xPL zh|lpAO-23Go<9?jB*(_3&^;`YSDV7Q*}Ug2?_KP4N(qRm%ls$MVSlupCDxsim1W_` z@4L>!Zdpn(8#dClaL%PRQk=sX%999siBKHubH89jNvlC!{7g@RZo9^ED$3?0QeEm) zx6ppbZ#SxrG+!~A>oQz-7GZ~|2oC(LvozkDQ%cUYVw5)L!@EnpkkUBR)x<}!sxH43 zI0t^!w_yR1K*=k`D#T8X2xn&dp6|yyU(s})t{J;_ElHN`M{USzl|gIJX*)HLzd0Oi z@bEn!fidVSI*T$+;CKbcAslbuQ1-R78vYD!`YV2$^vpU<*OIlQI|>%5dcycDMTowQ zHWT(dQJo^*sC5KBIKBYhHAX8Y9ZKLEm5|~(C^$ZF6#c2 zUFvS_In4hlyN$GsZ*6XAY1z?|urBIZGNB$Vr24x#z$cm~D57EEknZw08@(kpI&t?>^)vlx{SbCJdozvO%8-1y&5t8j zr9H6!%4s(Mf0OgY3g#^ImPFIJr08Igy=5jw3YnTJOq0`7xWNZhPXF+CroVxwH2ok; z^QY<6of*No9Q`Bto}Z36T0&dC55B+wTUDq(Am?=b2s%Q+vp}{*NPwSk`EEdNAt1+f zhj%&Ahk8#s-e%ycOAC!(w+a3d=vgnddTG2A5;9CSfX9_BO;qcs@i_3CEa&RmK=a*4 zu3~2K6}{G$i2kW6RQb(3Amzz}gb!+w0JpcJ*sHBw_A$ncY1L96wGM}sbeemHIufv| z#+|)^ZL|0*;UBE{;JepRFMJw%?G1D9P4MC8G~$-;L(QcB4M>Q{@?Umu-1;?VN1*s~{!y16&CG zN24nobRI2_$yPBK4a|i}bi8(drN?+Jx`7sCDDQd~uDj89kkGbAcabyW{Lz>d+DZ6R zk>N%@s%TEORByx;cI1T+W8_QfMf{f5$6zO<^!kqtrzLQC7`>K;bo>ep8TburSb*Q~ zhDG=V9cfq(eb#4`ZZIDKuVMQiiakZJ_HgFY<2&zMd-t;KMefpi>Bl*dkO$jv#e8DK zRlU?+N+rbCO0y*qyRbTni4+6a{?T~4&Qf9ko&t+YD4vFuWZ*Zvgkp3=$s+uo(^}A; zvE^znM*zno_&U%I;N%0@5d`{FW9mfK>emBgPp>FfZAyT3FjuE{TIVU#jpI=0+4`L5fa`9>TDo15P3J$a$5{So$R#Lp6aOE#ke>koDMgvN&q%q!<#;BUj z#EnvjVa$KckuuL-2O>!E=4+E>=xgZI`23ho;yqa8gjFRQGD&n-49=o7j5wSzC{_LW zB=~cVgLe_r9ofu*E|_HuxKDHwXDr@(D34hK@b#&C5|ag{D$JOY#wxOr9!>$M7d7B4``uZ$b(Xy3-t zdKZLSny^olt$B< z4C}2xroyZI3Z%G2{&D7wlg^?eqY_EvG_%@u9@iy3H~X)s?9>ON!(O9Wr2hic-OP=V zli=ebukOMw)l}QSa8uD1c-g6fK2|ZbyfC`{NADxY!8P%IKX%fKN?IV0U8r%-H66E6 zeXQnkRN}qDWADDP%Ab&q9X}D1t&8jK)wxNV$}*&~WBr(e_MaYYigoFeq`G8CYx@3T ztQVxIC!t09)jRTM`$r_WTWZ#(dQnGf#-R4_5X0_c^t*7>Y=h26V3+m6FDJn%M2QPT zrDoT4M@r?ICD59siDs)makOstqizW|)h$m?aZ9dS5Z=EF!h0HON2TV){&A)tyc66J z{~5e*hu-C3m5-#m2!F!}tdw2!jXceS`s06?pT#^ED+OFy##2+Y$6?zH#zl^8%Bi)qmNOwx7r0Zdnbn&zv z-Ixh`A6gfo{}Xu$G&sYx_Ojw@*n(7`fjq6N4m>d8@{+WX`d&kQ|5?tbpQk+hDVh%2 zpZn!Js4o`Hl{8$_pOSJ%(rLS+TJHoONGUbu0DLpk^Adk`=xgX<_*0KyG%{YRC)SKn z>79$5tRAX+9Os#a9Q+TmWSWNhgFHdY@_<{GZSvISPi^v9^4Ds)tT#q{(B|@%p&I@q z(!-w=E1`C{%1uo}&9GT2Fo?x_J>FYAc_v!wN;$1r&Px-t)~UN*H`6j27=T#)7udBd8Ph!eeOprCkOROq%OH2D=&6+2Q+dW)*Kb| zil7z6z}sT7%h&);5xTP^Q_SS*8Rlg|rS_ z9SKLV?~_{S1fTm1R#QzgcGw=mO1o*~h+!YvXJSG$|D=faD=@pC!s{C&;09k$N`I`K z)H9MeoGH$Fu7?FR>f@t|b^ZyRDWT_knV##q^wN0rxY2VSvsgqYzxuoK23+O-2*XG> zd2Yu}Ewrvw3ozRN-7mBNVet2;a%Hb;%zZ|4b?^Y>F^;?m>GMtW+uNqAgJGUteeJLr zw5L~O$&WQB2eJMQ&snUTsRfr2i#o6#{&NfF7OCd~tk4~ZbUay3w*u)5o`{dAMW&(L z;EimF0~hdda~$PAWNK!`Og{pN2Ph=^;pE+6&mp?cf&F_(d1LN6;Bi`cmzu);m;w49 zXxymBRfOnfxwRx&V#(xURs(Ogg!OH0h}(cRK=;+&=VpWwLWC{EIfZ3E#F)HqJ#ayl zI@K7?;0*0UJ5nD}(yEY_RnlslQ;m^o$FGI4->cz8r*@neR}MYH*j#9CY%o{Vm|STc zpz%bhk|fo0k&|Z8vW%xx{+yPGD~wRe@$dd(9XWH|5LI%u^&i)rvf0Qf+cE}c6?5Tw zpYQoaMZO}-M1p=uG@cx!dPzQ9GrRUO6TUHp_o&0mQX;!p=-b%tc744Z-GmRqbfW>I z$(lp>V;1p#%n5w#ju~UW(*(b(41V_uq2vs$HSeK$QSM{M zY7O%Gp+hU&*2Q_^Ez_ZYtrUL(+4KoqGu>ZcbdC31!f&jn7rzrcH^7TA9=ku@R8J;# zmVmM|o^|+zLi~52;QLQrJ9QN5}yjq?QmU+|VzT`q6$N=i&W7(lhZv2xI*}`LcjNCV-dZ zp^2#mRzJ*V!_M@A4y%4US=5@s3u}u!v*qU$ay&fg<^!gdPU30RH4X9bquM$qcdcAY zR_=|Xyi&`z*iawRdMfn`=uQs88y>Z)xjYK_iE`b9?#keo479g*>g$*?STuS;$#=4f z-BGYC1I=nD>W(OWF&hm`Ms3Va@+eB0Z6O%J+s4$1m+K_Rb($H>c^Xnq9;sJDTc7)9 zx~qd^4T}Qz41=gia9d{7V=C7)^XRWYx$OhB2Mw{9?tl^r3l`; z8@QF7uo_$f{4T*hTMkeEM9geQ$qCaFfFh)k1U4cKJ9(uhZzVKO)tQeB(8D^MoYUGR zMkP2S)5JP5Wo0j9H*OV);l!}6M6?T|=NNEeR^4UZL*ZrWlG~OikH<4d&DlhsJfOIH3^)N2#6q-f{DsUvVGFkVRn-J7L2G4$@hve4ZVlZ>k-nF-!DTXFc>2z*{RjmLrQam@BtgDovEp=xGYozWd zg|E=E;ttWuZ~+tF#b9;<#F!2m*MXdWzUybG?QxgdFIk71n2YfNQvK{@R>ly0?2bED zLu082_W&ArG0nPIWP0@Qs<-O|agr{I&F!3$O{zcTC5iQ%@~`Zg0-O{)ANnKk?qMt8 zVsZau*HM3_!wrfg_kJupLl^6rQ9Xv{{j{sn#*tqECKSR9YP`Q+2hL{_O36C?u#GY7 zSk{;~6BKyLYTYsHpuy?j=VH>M3>#rj_C4|uTVt)EUiyp22?f)OI4jHX%^9s~@dcFn z!WcSuuiRgiHeN0%5hX$v0b47Oa1jT9kIp}f$I+Dovq zKaG1)w@lWG9xqI@RbvfxhouQxsV`jw9vnB%SV_V1=o%}fbycpf9uGG)4YJ)Wmu)pn zjY6$VT*iAcrFu?vkgv=3*+5yffp@2G>)QQfs1ngM0f4f$+Y#@ zOE-;Mom^^_OjXlRZrZd>0*5&)UXQpR-01kF^AM#&>$eaD7?zX+IwOVdK5U@$s741* z>$Y61WrlZ+>FN;n_>=b=C0GYNmIqPh2u_}1KGbECFY_Zz@!{iT@7&pX@D82`)6c@A z<@?0o{j1>-@_n>?PyLwVX$jrmHJ>Uu7a(VfMNg`l248bi8dR~Fkn9SCzpO;)K+It; z=`muxY3>rtQP9w?{@Q$Xh|WiK0u(MH_h=1gq?D0dx4jDQGndBT zpdLgesslXyh7ez4JHG03U(z)V!kTER1)L}^Txr#s%F%O}H*YFep~#|K?uuZ!kIUsM z<-Mw_9qehI#rHz1X=5Ig^RC1*n#)+q9wuW*t&AbIU_M7NXM;A}G6yI;my+^^MU-3G z$JEL^*KX{xc>72C?wEM@xVU)dI5A!t=ZGic?C>L+o5%d+YyH*1E2|fZF!Xs}0RG12 z!n4rdZG?A;hj`vLP;9!!pD(47G>M1Rt{+wU2i~Ws1U6J|$wVB@gfe`1MRoq5nAmyPZ%ozfYw z0zDjEZ)qp{zj*iE*I!4BH@P%Kp;5L=P zU3ppWF?*fWbmjL3({#)xTM|ouJqVfD@LJ^!y~h%Kw@iMg)0NtzjA5eQBLtsgeHFej zxXDB|lHKi0h=|cmD6t#e{Dd@zYPZR)pHSl9c3<4hO=!2Pac~n!lwm?zg4u5`Q(qbO ze3e5Q9c5hbiuv^F^STI0v|3aGIj_gnIkT#c#`Zd%7md~rpJ6U_Zn)k@&Kv#FjuN{F zzrxfPhAhC&)y$=n8$LIuZMT>O(b(1Ks?-DfF&b~xY_W+Q@aDa2vO*TLV#Zzwyq~p= z@-Xq1RfBY`N!{h*&DopzLvi71S@*|=aqy#dR=xxNqwLwY@CBDl$47^G;o#0TeIlvD zPSE+IaHcsI%eseTBZV_`4~do-eXWJJi+r?N7-tG2&KhVNYQwyG=ymlD!U->l@myrs zJ6!E=_QYcK>gLPN8p@lxx~Q+Zezm&RfG6~uaA+3@cgiqb)=*$(ZtCzOZls9a8k;I@ zho_6tkzwjdX_0Z!fjC)&H?uK zsaFl|1fR(!Q9NliE*zvpcHpJjhV~O5twxOr!`62>4qw{!|_Vc+YtM6S^kQd9#j?MwF#K_VQ)Q zx$zzoRyuE!X>w+Qlcl4N=39m|lv}O9K7u<|$D+Q?t8?+}8M&Sc-QQ!N`A}YPls~0; z3UVE{x6Tjdr3UX^9+V_|gOcPi-i8s@PP8&#$aOsoNu2eVkUP!0*+9qj{r_qHFSecs zA42O&^Dnt2|K-8_Rl)qJA3E{uQz`i`It+9xo0Gbz-N}8LC|Q(Ka>ZCECD`vYJcoUyf^mLaaS*70`5#z9=DQ% zUp2i3hngUv_tIvJ%D)tf#$ajGqMMl{!8&Ka_pFygghUoSS^yaRkzFOrML&YS1cjU1 zAj!Pd8!u7#v1rfaF|D~df4iLj*4CHg{1qtDUb?w8;z(;2gL5DEXWlywa%F6&70+;x z!ADvFElL`+N})NQwn85)MP5ms7!ab2G-InMrxp<{>(H_kS!j|%Xxu2BmV zR=}riscfg?_?J9x3|VS#nuBFH;{grkj?>!4rUTCDiwVmMuW~P{UGclXyaF5Gu7pZY6Wy33Jad z)tnwDG(QdU`v}~O;auc+IuXI3!xsnNxw}a7of`p6UCQQRb;0= zHx`mfW1e&gdjqN_%67|d>%@IVq_;yS-U;d+L%4?e_IgE^zC+ff@77r8SU{brejL6p zCbYePoYVL}M2lv6W?lrxKcw#DF87%>ZfnJ}N>OWi4qwr49()*vA87oiYEZZT!9NMM z8PX0f2f<9Fjq${NbQ<;(m_dBMxD#^VJxWO$Ew9rXj3zS$%>VxVzk)!<&;N%?dJO%` z{T+FwBR#Nfz-;ZSUzZd^42)O>ve)w+{_P-y03j*r_fBeVZ9?JP!3I6Xq z5Lpj#;DAdx;c)Ocuyr-uka3TL$6>@F;MnLmODb?|oQE@xsTzqOWFZ#mjQ-Ik{AYhJ zmMhKMqL==|WY?~Zz7j_-<$Z<-_n%Kv5%_xrN@x1_X7DTq&(7c(POoCJGh@-x?B$Fu zY`k^y45_Yov%AyR*45L{*nC$iHvWn!QS$h#7)va1%`gm!TSm`d({gaeVlM~1*J|a2 zj8;dEWmD27yT1`ur4U6n_?``Z$Bv{MA_DSJA^lJAor+V-`KW^FRY*_&RKfHd86xwL zoqjrMSh=U<39M__!PY8aClZ=&j6ewage7G3=QX>;JgdZ zi*SAU7la&Jjd(|mAaUyxy@R&x=qW$-baytI{Hp59>tFWDu4?Tnlz7 zdS^LdIX8N<6J0220VA!J;n8MMt7Vh5TGd`n59=a#5F439CX(@FpXL&~n#_VePsDvJ zd0X=ZTY#Nd9jHk>nLvuw`<#`xk_#p z;kGDe0{M;pJ^H%xPq`cYt>36zHwVv$N|k$G@P0I%TiTFyqNLe)^!hLjA8_6eLbw z{fEfZaa;d-*PGwh9jqF^qVg{y{hCi=ea`d0pugIAD>e-^jf8M+7Z|a5*;^v1KS)@b#;&W&Xm)$O5eQm$$x!ds_WiEKXmA#>VH}P+OyHyAA81rq~j0w9^3jq35)-~ z<~1G-rxcBsWC$<>=aG8}XgBtrQsJ@p(k=HG=QqE<Lb<(?RBc|Yb}B=|EjGV!37 z|NHm95ct0Y0Xipf5`HkPV4ovsyLk74n3Jvtq`Lc+J7*f$POozPnOBrk@Z&>iV`6r- z&2^Ej$pu%N4d*%%8iYr!3lryguehpO=r@^Cc5-ZiB^-uo@wO z!;|qj27frtCB6@C2m)huiX>rtj?@z#Ae)PQLjSTSm*=tYGiEjyWea&31Elh3vylJQ zb;hHDwPYRQepFA#hH|_!F)T(MRxCQLlJ#(p)2$kidiWbBu`^AWpwvC(0rJwP&3r&x zlUS2cL!S}Gf44eJ64O^QO{yB!t7}rPN?xth`e{zPiuF#xip9{qGf4_}CYHpo@Y)GI z)7BvRQ3Tthso}km{G!*T!7J?@s0_{l&gbl1T5DF?ta@tTA7z>6g<=|u=Qf7;T96;xgI}Af7r)C?7x24NrLUEI_y0!If1#BN zs66_nr1DB|DXH#{CoL76Wzd~sorI)999>afF9K$e>|%OKdJYcInq0|4AnO##W`YJ+ zc$*8{FT&OH?JF)xH0jdZnb_EZLf}CuQhl2%$$v6;+ec)V+AcYir*)i!U9(6T{I7S9 zK27KNJgHZ|Z{v-!-YWDSAq7cld$Ift?{+!Cb_6&Txu_S!)Z|}ke<&`|I;S%>;8_Z1-9~6mlJDL&Z9l;i#MVh_sQ>udf+VT_ zo&d#-y8_hmyf~5UhDT!m;zZ|eYQ>j)RX0c*pQFWIC1j#BiBffbU!wnqiA(}^+pvY{ zO#bP~spMg?RGVd&c){96^00bQx}Xk7J=d-?SeeOGNWQ;ahkXg{Z_J|*Ak1TNuw{F+ z`}loMt1|@=xKmVal31L;9@Ioh;({bnui2-?m2RIp$}Jl9kut1m+x`4?3j5yXrPoj9 zKKK+l^$&dtJip|aNomm(`Y~pw$U3+YY+ITvKQ-W~)p+YuJ?GVr;CL{l1t}9Mtvm_g z`O@T>iD);;=8or?nt;y}X{#%(di`h$T82SO;Sr}2Zz;uKk)Io~$2?co>@u|}uK5GI z+zM5xkD)dp+8*BRh$(Tfv)8#|bAOfBDvvk9aP#N7PUaKl^f9iCoQJjAT5SI&aIvf^ z_jQ-hO}_)R(WHs;E<><)aNUOdmkIzuvZ1udn$%38($ z{{6Lws|5TWsfxibUBmSynEceqZ5uCKlX@;)n~wEw4?9Z7om@j0_wiNFu6isoVT*8X z%f$`n-k|t)wXd#iYx@g_Uw0``n4{T-NKh}fZy$MbL?c}?1cbKZuJlNDM)+Zx4ji30 z9@=hwAfjy%o<@y4wfJ{NvDUk*u{{&6QoD~a28H^zY8CQU~lyf69Mt!a++ z{dCNz{8!|X3G2hu8FceY~e^_;%0uHmd33JcYZ|1KOx!k@XX=2D1#tTYYS`T6A); z`(gvpHn&}$Csr7@SFWZ}#j+BaB;&y)Hm40%b8b%did?0>6_eRAizunt-6s*jJMt*@ z{SciSxqeld}lIe9gq{;kZ?myZYg^=Zx#FHQOye|z>c>;VaGMz)*BHA=@;MWQ3EF@@*h@y!Hva@XO$|83u*rIi z-7wXGy$APZH(D%4tP$WAs3hZ^viG-poi;$*rWL8j3Ip0D6xM71ZI~Hf;#ll= ziV>3|Fl*~=!~vROkBUtb8wYcV0E=UU|X%1sC;CStxUTo*yh&HM2U)KiSM7mI5umNz=>D(jMGrP6bU zetig$Va`@I{(0;gG3OAQJdApmM8X^8WUl**jdwTZsm>_ay6F1i z=wjjB9@UKyuMsEEH@rLL0UFy&!I`rujV=WbI>+Eaa!i)%q^r|SrY;vEcuLjMUye+u zj%2sfuP|$p65r`Su`d(2%5HDBrpj|*rX=k+;NuIcfbRm)3%2c7LG*6rVgn~7MS#bMI^rka0GQ1dg5ET~NPi(bF=XhCFGp{!83GofaXDLzzDWfpK zzTZ+48Sjo{d^B$QC1Tkx`4eimniN-u)kHKkLT-on5UKR(y&YKZI3aL&NAMQ%&H-JAwjn*3W>uRW1W;Iz+gLOT26N#@CRxhaG z`k57$b;kXy6>AH8n+HtMZh`TciXMayhRI*o6W(9ftM8{zE3JPp zW7==nZ``k~nO{pBk=W8CO}x4FN&7J$i%QD{K*5af;+o={$U*0nR4aRsU?*8n&X-4L z5~X+DF`>CDC1z(^m5VulT&5ZiO3tT>-J{pUohcGA%QfB3i-;wYLa|H1tmAolc4n@$7@lZp4y2NT2>qei{cKILcd1#96glz%N$|O4Y>G z7W)tlq@Pl?W7AX~S{lRDJr#?+QY_)*JXRcD3ab?g77aX_;EejHNR*jr zrZj7XZR+BQQl7Xx5sHp44>~5 zExK4rBS9%C*F(SO-Dl6~t;$T88dfT1MSA<6IXLm`yut4a}eGi|Pl_15~ zKo41YtyyLaWkyv50YMSGvJ0C;1fu5VQS?(x=nsAVT%PEKRMT2Rzw=K5pKftsv8%s8$=6) zyceNib*xgNm#liWYxNIqL?^k0iVBK}{U0nTA{D}#YuCG07p&FyBWBU15Je^pCpUod zCNFuG6g%x3iBxs2d1K>3@qI0%BxX<5LeZ#!_iPfYYN+Z+Vz6Sv7->n;sJ0{={xxPD z#5rtZ$l2XhZ>?FT?HHcvFky8za8*^iexR?d>AU(bIbT@E(H@4!^PHB9AhkL&i!Y>g zjhU+8MfRLZ`|$Lh8eC{p5ZDnUgo-DlNjM-0iC-imMgS&>C1U8 zB0eHU2QuM%spNHFdPKG4Gxy(9-k29_b#h8S5oU*d4d{u}A6pLDr+)%|!-M0=IbZUr z`{VG05Afjx)Q1ZQ)x}go^6>sl#MMx8{)txdS^8=2#(r8}NS07?X8nVEh$nVW+#Wdv zYBc)Y#PU2B+dsG`1R=(!a4@NxhrNqjbnn*t$!_>n({gxsa!fdbz zm0Th&!j7Lxn_ii{Bq1`&=?K5u7+EZq_Y9wZ^~M$Ky`vAxNhjtRJz9;5vsQ~SnrevZmtbEY>eC@X4x67YfYAe9oLf6 zx=iRt)E%+Cq|4PYpwv#srwk zVqbKBa^dm<&aYd^ZD2l?E)8BU{?yn%{kAr8XYa#yr#4HJczzkh!37Rd{P2L@RgrrV z`>AJTDg81h8FAlZonorI)~B1qN+QMszDY)`Pdc7bwmn*u zUB}b`k_qhs(<@=G;^J-n*Shjgh&lBS_A}kdtCO(`h4H-nbEdbhckuv~Y4Fv0-;2dB zrmX3|ma?WpoQ7S2{ulvnL-l!IX;0|@9T$+-t!+|ALJ1_%tSrfA4|L^Q`$>1k>Wtju z`Is5bFg@ixkI0h1)a`c`NflchhkvaP6jv--bM4xqHGv!COhet~yf6Bo6$$1-+Z-B0 zbCPN6RLE5u2+bD{N(Ww5dciY>cbkPdK@tc9f9;fV@f)&5WTi!CPl#;kwthWuoPMpy zql7sWrN<1j2{~ewf;@^drO(vhcP029*^L3)iquLfK~b1LC@uK;bQ{v2kM&pfF1g{f z6Mjh%(>pk!gzVls+?~2t+Pi0OrENZWVDH|%V?n8S=>$rV65$F)&%%TQl!)}t;yHYWnCuGHtEU_cNqL@b5O^aM#TraM5CY1@sapi(}+!2BN zWiX9v*O{}l)}EGE>ivCEudyGPjk`FEHjGS9+)nT#duUGD zfRZjwlAvu|9Cb54KT)9Yq5M2ePp{!Oc2D&7a&cIz+_~n{yXWQpBTR*ScQtsoetz(a z;CU(D_B3NJ1u=&xZ@#>TQdLjOgkoAR#zR2ACo~A4?CGT%PYIQFQ_n^@5O= zOsuM?e-@nLqhw+NKp7z4c0h?v_wyH(`q!I z7Pm|T=kB&|^wkVNZx_zpl7jmbxVqnHb-$(wl;DaPCq)|fSBmoqeP%{Eq}IIOX@^v4 z*NSQR&P4EMMQ^*hT@MTxlia)Bzwtu;&!Bg4Jo7^C{qhq*dwh6>i_)xyAct2U!}%sY zeii$8g=V~|F>|p$HRajXY|AXn6rJK5;niZMgJ9j4(pOK%?HmrvJ6 zJQc`FFpnF0!dgBvH@5#x%mb7+7R&XnH)6p7W5(C#&BHpx(3kg>Ys$0NS_>> zqdh_6ccMJRNEeggy)HGRV|yl{*4lJSzL>z0Bxh7(P#=;ZW&9p=S)QF!gR`?{Bv;Zs+R}`m#CmK5 zuaY6tIO_O9TT7J;4=NFmNHT-*{wfHcBeP;%8-0feU2(fdsIc`UBY{f+RcR$!7b1M69XkUcQ{E`J>GQyG;LrOJfi>2JF-p+hhPD)9wk zt;?hE$gH(wtY(uUhapmchx-kQ@Mawo1pZ`VC&vEtG<^=p|*M0z+G4(~Vxy$tcYQNc~@#k#A zoaSI41=sm92PlP3*%tMzZ(Cp9wd*>6$tNA62K`+I_s(I`g~c!>|CS1?u-M4r6x!AYrA3XF^`x8HUdnraI6%`+-Tvs>?9DE4QC+LAUnh+XZ-FW{ zVlIc4iD?XtE&mA4Kz1sO%?1*x;L#2e>g@A(iTkVcSHp%s4(xORTka>n3(&j1ucsyAZ~TnoSs~o8Ukaxg^mU zwcdJp--Sx>%g(NC`r^i6sfb$ zS9*hZV*KPB=153&>KY;cA8*XGJME7;+9reZV>F0-r)X|6C8{O;T*f(jAQkcSH8pOm zt=H^N#7Ha_i9JFj6R4I%y`SDc>TplavX(F!@LO@v?`XVBv!}?sI+Y{O^(nPu`+N3l zp@DhCm3~7TUlOUnVpKs(5^px1I( zrv2d;PU|172QJC$`>pq@JH&Ee&i#O0xh$y>$BT9nSKOpIpKECs$yms~7i;13$@+FA*)UjD36~wU*Q_0u?q9wpP(YS=Nz# zmfBL^Kir7+o5r;ZG_4tFPv5w&mJ6oUj7e)o+WT*$^#JccL)afiRSvg4KPKVKdVQ-oks;o{)|c zj!!|^bCf=Sk1kZSSTavc*B=C83nj6{rt}^7QmsCh&tsoaMpVl9D=x(nohhB=_=35c z^rD2t46tBh4Z8bW%zHC7Ra%YWuC?=9QkwY|4s&Nhkx(G?XBA4e(OkELXCl|oIQ3Ys z1a)b0EwDy0(?&#VVD2WGEAsKunK^9JuA=$a?~M~5;zG5f+!bO{b1du?)*AK7pSP$J zRFO(umro4gU+3LQzk5dLz&zUT`AWK_vtt#R*&3RWEkP=f@&MJ(ec5`&Wt8Vhs&S(0 zJC*O&MDm4u6 z9eTNu@dk%;mQLbq&EeXh_Sb*IPxfBbqydjsisE>2yT&yLvG?(!HIq%WA z<@B+f_qJYqd9!KYj>LynKOm)FaweJc4s3uIugBmoIdrnG_|PBwN)P>8-^N47`-n$r zt$)n?J%`#F@8Aol7M^>zaYXC7boLhSTvwGVR)!RX{}#kfQ23|fApfKrq5CAE7?LSu z>SC&W)PbYt10}xMfl}WbXe@LMGciJS4I!-SkJcj=mpM@K>F6vs4tdd8F6Du6|B?g} zL3fp={YLpV*7KPA_z0JD!Yq9X$@WttzUKp_pYr`2_EMxUWx+$JJmBT;P}=Fcshxa5 zY>?(s3q!GwIY)6U{bg=bdqQf2ic%JGUZiz!M2%|>&*gg&`f_kt%qO+$x90uZjr?aQ z4I(eU`0VN@T&^3}u?F@mmDRD^hDzVBe(y)mk%ZDoGzIxrW<^}%7Hjb?<3RQ=m0c8{ zTCeGk-;BK!eesRizYDc8#K+G9A5U{fn?T_{S^2X7-M^+k$%)o=h!3i$z7w{09dohd z;=uuO?wk0uZ9_OB{f|f|b7gxBR(_=wEe~V(d&|?-!sY>OM6awPr(Y3jNy=YNG$h*k zh}{I8t1-M-H9)4 zaS9Uo5w0sHu+o9veN+oXzOn4`{x~6R+{x8&mXRgy2c^>ztU$X}yD5%vFGK#Eq(~uj zbUWeYFnUM#G@-DgZ#b;F3|%iplpyEGozh36^0yOmlJNYfzBvT#BeP_S3rh90gmf88 z5~OgYcOIKRv7Bm7_5I3y$~@)lx`zQw!XWoQAiePrfsVouaDGsQ9opWODFg4G`a4K^ zyH(xB*4f)R*u%iD$XeIWHu}3OAv^VMtj$T|P}HO(zK zUkK`J-wew0qqszQDhj(yi5#Vv9J=OnsjVtmp!bx*QjBvSzECEDhj2==pHI(;L~9+_ zF9OH!gtqZWS#&_NiIZM!#;&6RB1>;F!-`mGwFK=y`~-G`(!0FdnMSdSps&UStn#Qz zDM%lHeNt8CV|L#=fH*F@C!$~AbFTvSl_|Awq$}7nb}n+p?1AS7^ot4F@zh?)z%nbs z@_OjT@!&{5WTP~DQ7hSWJkPd?=0q6ZY~|c}j}txxTd?9iq;pxC9ES0o(7$6GsI<=- zs6vm%$k>|+&pZwznTvxjS&WKszf9Pa=GJUVZ@bT}jGh?ebMx3iJYxAnzKeMb2b~qkF`~ zG^c*>KB9N0xl50dzl`%!tzF8t>+28+x^i_}>I)CWu_+J7m868eT!{M!H}feMF9>y? zHV&jeL#?ULdBcMi`nWF-xcQ(S{jVeZ4fwD8?U-ZGW0G)a))Y?5A_f z>0^r!-60y9PsoG7C~IYkYtfBp8$*_FcC3hAD;Cdh;akeB*DQ~(O)0#3o%2(jG}UWA zIFOp$M&>^;wWht9`b13K|LuBGKK}a^e1Vjxi-|&nTkJR`Y=y19F&A@mQ-}hdO-bG) z^=zn}+;5J4LHMWISxI$(^3yCV1oj+^K*$&{8RgG=1Q?J@2*?Ptm$R|8s(?}=qpXOulD zt*p6FffEtF-OuT?e)0@PEtoXIr~+*<;%-QQ#KQ(A1f_~hX-hcbOBXcCG%FL*+HvqC z)G}VeHU{k$8@Xa%d~m)SD8sDCp+g+lzhlE-6r z)A5HmRzV)R`90-pw090HTiAaM5x026VM(F(sEsWtYZ+gO@6doA_CxH|j3^vRU%eSl zVY57*!YV`B@(XBL5f4~-=ZFk(Gl-#H6sk))lE@Mc5Qg>=>cw4$nyvsSP}^zy`y_w8k@3YE6d#((vOaXdVka(p7y zosF=)#RL}R^fpHZobMOI3&*TFo>ytt>J%JXnp_316Ek;k1Y;zW5bEvG_9}RT{=S=1 z{5h@5$ILvm9QX%q&S~Zvxy`iydLYvj!?)&*r&qJ3bQ|kMIlo}2BRMjtC(ga8HC-cG~hsN)lRL%G%?X#?v5_H0y&qZ(l z6?Q6DaB$c6loCgIPAAq7@P)|*bQB09Ji@476e8Z9*-_YBpul6%b>{~vj}|k32#T6G zM3RLjrWf*+4f2&jm*}|IHNvBW;N*;-%%FYg|gt0 z6HNKod_=nsn^c{4G{+rZP2gLhMmvOROQDu^SVsDPv{j>HJtKyP zKG`Xquv;Z)6fipJd^%&KmlS@Na;W12T$!~@$c@4Z2}M?zIWl9gGG_|za-O1Fg8e#C z>8+dT8+JbMzXKm1rAOhDR6sr4mE1B$a)ZzB%CWZXaM_Zae(Ye8SWoGY%$dBO3h6B+ z|84k$-ip(Z3qijYwTAlnc)sLw7a=wkaJR%_VAj7ISM4Z&C5jc4dh7^O&Mw(k66%P% zNEwazY74f?mmDf#EZit$mcHER!Wbc6#w$3MolMRc{jqYSkY;Ujj*{=3yO|3cFT68A zzkv7dEwc-4>BQiyPDa+pWW@ZT0&5yDqL$wx29jwc`PGRuc1E; z{8?C_xYraY>D2^E@dWcsgDyz7Q>MUr>9y5=S6|TDjKb*Agb&99N^7Y^6N1t_ud|$T z^s2upYjPfxTu;Jw3^^gx+92HS{5E`?SPMjLqI~|F0<>GfKAter$HepIL?XNa8$8u` z2!SloqGdh5|An<&$@7)jfA~fECdJ~Z6>qkDxBYg($h~J8R7gwb*1aAs6}tsoBAZpk9YsXNn_B{rzzX8 zi*k4Bn@mq#PxAoXvqMe`|CZryCnC_7_p}TsZ6BS36u2rF`d#g&a*S!D)pXu>y$r{Y zp3kmfkUII12p`tSFuHK$fRC`KDkbdj*d0hu#pX zNr-lq%|m3-1a$4hwfdW^zZ`6 z`BgzahT76acNFM9>rQtw?t9%d9_HijQaLTKXGGQ>?PK7etgm(-rZgQZVS@VTX(RP_ ze@AbO>ZyQpz)MfdJ;l&z0~>yY^#)mD2~TA2X3wt$-_mS#kovgqQQAM2M^JDKT8P~@ zQxf8}?zZiIWujA{edKRV*!ykxXT-qrDbcZc=>M?yCU8w1-{Sb(o0YHy2&E#Pjg1{4e;dfCDvDq0t6Z5zP_)K+b68*ype1#Pu0wVt&A&cIoelRnRKlW#yQ7bJxR^T9xxAS&1LT+L-znSu&d&yu}yTVz&zUy2&>Hd4h$X5E+(HNuZ`CwfJvK^Zg<&l0&#*Tvz5z7j&5*`ePqZFP zAJnnk!Z|ti#ac(*sSUQ&+p+tS(%NYaLe&7m=gknQS5Bi}Vt<)_9S) znxBawg;xS=TNvEcovKobY!ncW=a4llTgle649;|(weGbVn^1$fkLM{%ANheOAP?4r zt}fE@g!NhzqahkX;I`!9nh}~Am9JO6QK?@Q5B}e*JToGfJhsR_^(&cPN7JaGrMi~dj#x%9KnFG8{^HTL*2T+9|V{U&vR}E$?cs%B-{%38~$GquH>);=Cr4Kq+nY!3tK!Sqo(h=GAbvn_x| zpevnX?R(e~qFe!9!$l4AKo*KavFyXzW>_`16Wht{OzNX@d^agBY2PUy zhj-Cgw(T88+Too9PmWL~q=7nY?}yHJx1|xCC7E}q_Ygp@M-|fs3`wD-4fvhy@NR7z z4rk$TbNMVNf2ECf;`3U;OZ;V6K3OZ53&+4|PaIvgU`Jt_60f);>7`wy%%ikco-CX$ z_wp~62s~D&0cDGTy;@z69G}x_Nd;9(R4FmfhrVZ4aDDgHAfe);$<#0x?C(+(Qi4nr z*q60XhYDM&JGRP+fKLNXvd+P-M02ITx-dY22B=Hmf2P(^7mzp)>d-cz>wOHq(se8Z zHg>K?Q)7^v@Zn!QY}rQ?7LpL|ZVo4X;8y3rX-TA+4+0I+LXJ6Zx||HEf*m;DV_Fj5 z7DwF9xxEK=N;6Z%J@|MQ3p|)!Ha0P>?X0B%iVViW zDKU(tb-f4x`0}1p=(bV>e{jkRsl}llpka?K5j9s({Xq2_O(o42#mTuB#pU@I#Vz@L zjT_)wqJ}Uv%UG>+GsOBKuQENyGyq4z9A-#~;GlPFP z4D|ITqSQ2Qhav=t2Pn^Xa2iq5SU54C+tl!Y3ums_wx6%%WJF{}_aaIDk+G`Ts(Xi{ zbpws->bY87gLL^U)o@h_#iAvq7)T#&Nk0tUg^({6o}d+&0iFd+BjA0wB|gp)A8(5X z{ZcF?ug9lVwX$SkG@C;FW1x5D&GrTy(sNBbXxs9%Ukq$0BOz2l2``a+un zbrH>8pvkMdt*w)>n9*1v>5_qveI?+LVpp zXQ1~I3=^zDHA;pw-o|3k!z%(VkPn(zo*7}F&El!zfNmqk(37N>A=#f6Ci!Oz%`j1g z9p-BzGB{!(6AvpZQQ1xD-Z3f^X*@vZ36&Q-nn)ejaPWKO=||mI6d3jpy47hDsf~!1 z@rBc1KgBoGA-ocSMSy0C)F+B-#3=vKi0aXPL}*&UVgbW7p?r9N*{qe75|XPhBI&w-z69or;; z5r1T8Q;ydU(@m4?v%7l)<*($FbI&gNSS2i7)`siV*63Y@?O@G7;1R7ogOn9Ue z;%Eso@A*1?_cuhua{^f1x=4faMD8yMZE*G1%W!@>}oEs17_Rf9&9B!)daV^}Ye zJwP3qs_uwP<(m4dBbDq9tUKbpYvL}fMaD9rrX2>j)fmP+Ru^SjojSe+*Ge@AZD&hd zZta+yAUU^@L;0|UO(P6&ZXXy!2_;;Bs4G}a zPLbzHi)DnxI#M$UYtt(teB|siZjF%!TrwsNS~I8l6>$~#DO9+&Y^gw|GuMN8PB`;`wUk+9 zH37I4(9cLhM+XNF1Sih`}t0hFcMK4VZ8-vCE7wMq&|Z{ z>mVS3LXpD({}iIBwwX%QV~j@io|KNW0feG?1^Of+I=$Qb7{}w3v)U(QYkKC9FsL_`U>q6L2+7kt#gBd~+;ve>n5XakIn} zV%qN^gg9&45_7mZfmo5Rg5L6U*dGCg@Ei4h)C7cAX|pAib}dD?Grf+@7Enl&Yvitz zt+TJoXAkez?$hE`9Md_OinBjV8zVVEarg5UTj}5cwL-!YKRtJc!I}8$BDd#y?GHQL zmKqNKPm{4lz2Vtse}6TT7SD1%l!?>!g_sDcfZY$CKn>vk$o&!GLRbxCD&q54Kf;T> zC~*Z|d+<8eUz!c@TtQ5eks|wv6W$R_H7Y_#?(AFvXqi}P5;p+&8o+G@g(Ph$3(fop zUU~TS0=N$xohnP!rY6XB1Otc4d8b&Hy6pUf6l4|il!-<0%c6?{V86DeC@wRmNO+WA zU7?=4d?tJ;)I3QoiY=O5Bs>yOJ$Lz>B7863T!@K=m~$w;XudfnE;FHsUmchEa?#x7 z$?CYwQAGjO10Jn9sCq%EFOgMPhOfTF{Z+_4P)l3unnP)4SU?F&lCyleXsoAdKfbe})wFSMn> z`73Q-IRAOu7ijyd!DD)6bYJ9W?*Tt;zAXjh&Jx(ZAa|Bk(`#S;ZdHYvmj!M2v$wrW z31x|h22Yi>Jgl7;-5XpmI)p(v5E?<9vy9-re5slTT6;XW*&;duai1zL{4dJui@g6_ z-eOywGD~URxaOxzivUM&4lOaaF8r@bvszK?%a>b96Cn&Id)xSFQ2NuQWkKuz*wZYS zC8P}+Sv)l@>)OxDqHag`B}LJFSds`yfe1>HM)zfVM}+b?(cy$Nx;IA>A&-N5D_y10 z;X+A-_?$FCUO+9*1WzJD&|UG0kj5dfZY3f@&Ur&_`ASYp7leZ+9&24@P5my|KT;Dp zwHEC%jFkepMT;3ci!k_U&(n2{e}vsIONGNn+QuDpf&d0OcBm>kjNr2NQ~Tk`7UTa( z$$pHz_7d3O2Pc8k%a#{^Lp@Xx>EaLuHBj-S9g{&v1Vfo*YT)gcnro1mYmo29`2BPZ zaU45_TWSd9Av>O%`#_y0?6?jXX&y(W2G{*z<{EmLYY5+uNA~F&MswynwAb7RhnWC% zX70|k&jn8vFOvnc5yQuGe;;$%ea&U}vsj611FZWUDcIG5O@`TGUt8zqgTz}?nbjI3 z$*|U2X?*_0_$6>MOky820-1s>kRuKrTTJIM51ijYZSm+9OYwo*RcJtyY~7Ow@GZr> zo@g$Rbi_b3xk>2#2!Sqsy%%upXs5b^T6gL&d3a;<6~sZJ<_#%dA$Qbkow}I?+|YId z-3oryyj+aoHf+812G*ZZgc3dwW~Kv-t{?1~;Kb^x(wxIv@P{10PlOVpKjt7Ihbu+H z{*hW2xB1jz-%y26zS*iDf^xCG8l0HH9?bjLximI3e44EfO==(9gFWjyBwMW9c9?#H zlGg#D`|~@v>(pQ~gPMjq^nu}1!2%8X;EG%19d6T3#5OQ(?dI0|;{N_At>4pWzisco z8OA1P;#2LddC0U^1nq_6GDNrXxhLQj6oyC4{}OJxx>k0?j6*Vn9PtOvpn$?^N!Vcm z4^#>_48(HaECw|G8QxLrpi_Z$3Ha#V$kX|R?7&L7b|B_-`8cg@CYoxginYFe!uN&ru$HXj9HVQtR>J}2U-nfWkS0hxCjPDK&vf0Nhhr4a~WEliD@;D9o?7k20AP> z)9v1FWOQ#Yc65ZdBqAhE938>M^c!vuj|+(iJx4@PaYCT$La-V3i4ez0;awUbEr4`L zo`Wg1lt)`_?mSRjdwC4K zwo=nS(QCk6ds<9AhjZ-Mi@%|^r!d$|Va;Iz8xAoPTS5E{#de^loobwaG$-7a*HVWA zep_mAz;R5kcf*{;6!lNk8bmh;Ila#>&c$-s4Ut-F2wpj?@B8w3D{*X?L#!jG&2E7B)z(s34*AYu-)E3BN^6aMx=tMT z_jTgff2x!HH+2#fV9ETqb>g_cuM@}qQ=R<3sgtZ={X?BN?(gfwvHw)3+uzj5s_35< z&b`pZ0p2bKcsl{e1NI>{ilN;5x1<$=H-b@eq%l1z2A*#WCkLdw!iI!YzD<7S39{Xj z>E~3QaO&>?@6r8$I;V!JJmA|MWWTWTiul(;RqpT|qKi7tZ#bu#smnWCW1h2E*0uob z{6H>Xk*$o2PXN3IpRBeTNSV%;qzDT17#u?99gC4GsE;2o{x=JoM?UH=RYaChIYmz% zVyPq6{{Rmi7OtSuHs=BYJ^??!L1yiTeZ&hXL8%PCe7+7O_8**KdvXGqzu3JHcp{P3A*NQK;X6JqBN;gXj1ef zg+y`k;b?eH3RMJa8oG zPG)mVeF3sq4m1r!Y^Wal7=qOz6kS)y+(SW|@3yEl09q{sD@HgglvG)~wlEy65qNr} zaWMsW(^R(phxS18^LD#5AN2(9#c)P|<*~0Bkq*jzW;*2|*aH$IHj6KEf2PNr{aD&_ zOqL}+p%!xVrgCyDL0}DUaGC!KS-)%ZG>>{BDgD3~=vdtT>fvDj_EY<~dS(Ry`4*gsv_8a=^l>JNj=xIK)J|e2 zw|ibsa99EURfXOP8S=)h(mup_u#70zjQdOpnDd77t^mF%vEF@W7__u4)x|(r-Z95| z@vdFQ3}uPdoWp6J3hVK7$RwEp`&SNd^bjd<=#BOCM5e+X9RfcU!3h(tsjx^=st|Jq z63vnW{Q9bt@FfXy+9ttD0e$ADCA;b-biFKHYqs0PJH8s_ClU4UXSwSD}sw&vxN3A zhxUX}UIn^7$N>DAO%4DYF7738>L9_2fYEg9Bj(_-WGmv2ecu6+4R_+ct>2!i-6~nG z8}vh->kd8R<@SSj&k73qRB#*nwY!6%3+3A(2of4IY&A^%SgQ0Cgn?hQ@P*I{DwcI$ zW#@*vn)t`q4bTdvbv8JIgn}XnJeQEkK+&w5xfs@bXc3v)3tA+o;H^^MzE?rFd;EpX zGWH{DU5y8)#HTU7YhX2&c!az^hfr&m=(V+!7;Q6xq`F`{obTANxi}<%v}?GJYcDb& zZw>|NXwc}OTG()JwI}G#d{rw+hBHd6vCik#N^{WNcC;ybQwhbUZ*ICM6>o4gvDc{K zWR0^X4}587e*oMsAu{x^(&MS z;LsXNzX`{-;PWmQqtw2_fmJqm*swtSasZwU<4pFmwqh!PWMTjA=2dQpG1w*xSA^2O zunvJoUpuXWbRq~7Ij&6*7NC&j{2|@jewYtk0C%I?b7P-!gdQ%sp}1aznC(T1g@+Yk z3bAZCmLJ7m(N}X#5j4>pq2U-J;TfsH>)PcaK6pYAU`Z9iCs7G6;a^x(w|5oiFh z45WUXl5M0)>E_OdEoNsSd2KAziRT*hX0YaabRRu+r991nj`&C=_Vtz%tzvbBZ4wO5b*7kMakbZ?;jn zd%%Z5ty%jGfm_-=%G#6!+n1x&z^jXfR5v6C&p&mTt&PcmQ!KXGQw%yXZ^*Ikvt#Voe;KY9O2jDi0&EKiCeO5iR`qrg6ypYB7`4K1)fL{n^Ily)K| zB&NtcMW6%e@8^}+6f5_wSba>V@&gV1IJ)t9MAQ0W2}zxXGjyvR@^KSr-)N2+-PH;| zz|O0roIsBg6*|`~Y_P0~3F8pfRUrT36R@RP4(GwNOgMYU2#z+)?Ah~d+$6(Uxjlp zmM~3aqFXMAbLgcexOpDDQX!FdWFc6D^rOD+NC0gyW-P)$^9sDy>eza)dWBT8v}~~c zl7fFtMk5gs<`m#n%IcX4e~ZjI5Z{AtP4@E_DeSR{eh8)H^Yv&a5+U(CEed8+Rt+R( zKaMq!z*;yLYvH4lZ7FOK>lx_3`BWJEqoyD@#$*GRRig~YaIu6Rnz?!lhGtA3j+YI3 zATvbQ-Z|n3y>biRalnD^fHStVYVegmc!_{QVu2jIbXvz4od}a~zojI^rIa|(k~&?4 zp<&jMl6#ich9(OWfPcqyNL4pQ<}Ct`k6f_A5>F2${mYi9rQqLCO43skV@-)Paoup_ zq&(XvDAa5-MxKN7Lb{>u^c7x$ovB-<}d7N_N6294rJud)+l^gUUM`rKRnNP z*J?wOz&GkyAo3R!Seitfm3aqtE!r!_~VaI>+#A>go7 z6$u_cE-5uSHYoAoR`@Ru%wS&@6IZar)>?{xV(O*B&n=&L~)O`=$GTXo(W z&H9~uoumCi6zDLUZz2YZF8$$J&@LQmV#|(yFa(jPR$eZA-qdoeRxa@xU=AhWm<7JP z`aD?G9HQbdH9?%=S1o~FB&Fa`Qrw*77JKLz(s-#>;qH@I<{6O}qAsWs zvBgIOK4ZXbei5-~toukexMc5Cxoo%MCip<|!LR~dsVt^%EIP&*4D0N5ORwvygTULnWo%fN zMPHVP-9rIfoO=(2%-5F<@{|5l9edm|SC}&hofFT_Xj{URbSMsZPk)6xMug-#kY?n; zbpeTcP+%TAVTn2f*31wxzcy4X8fuJ{utExN!Wt{@V^S54p**R?J&Ei6LOn%eL)=LE zAoi^ES>2Db=v&^#{17fmJeXJKh45UenprBmIr9K2HUT&1deGfK6=QxTnXL;e zCmGv?$hZZ|Mv0Ne)u@o8ZrrEtENTW{6FBZNl}rNekgS~ug^;pkQ>5+#b+=b9`yMQH8C;4g!akH4TOk-76}H2&%2uOR0M+pkUf-+>QbyZ& z7ljP@+rI=5lijV=vu}Ue5pMIj6}7^#KOo2Ox0lf7;Pbak<(LO- zvxm4@d{ETdTc#n6@wYfS{~Us_c{&}2PNCs!{tPKSFe zbM-leWxNubUNJIgsOnUN3yHKs=}(_Rt+My3azPGLROJ$qM}5?OB`z!8S+}T zb`YEHX=B0&mWK(v6!@PyjA!kJy7P&+eFPEkD)`C*j|ry^TiUzIYL$l9<3Hf!pcuf( zVStlcmCI8K)22wrM*$BM3K*Gx7Xe0sZ|p4~H??Ea6xee_H-P*s43~~MWgJ_aYS-w* zaZiU>@oR<+zh(eVX)O4qvEbM0WmXI+D`*3`n-xEXWT5MA29T&=45O?VHY5XM*k>Jf zFCzof9P=wAM3}vVHrN4)EEqc^!!ZwF*dRNG+4Zgz0f9;An$S?6=wZ+omV^%5l3jRm z;gj}*>2+|*UtUPJ@{FX|9jRMWAB{Ft6s~K1(!QgxL`J^*sC{Q)cB{y=`PPO<+Y9F$ zJFr4?%m0yrg7vCgU0D9{iKFU0W8prIcW3R)lp2a!y-nGL+itCWlwG*+=(;RTtIwnL z5PuPoiU&9KrMm^KVQD=HGA{0XR~{x#}So=2se@*Jv>9 z1YS$6I0L>Omifb-ILII8-caX~MKFl!wq#{`QYv&N#lbLq7bvagQrigHF$PmyX>BG#rw}U zfIP&<&Ua%j7c_C#_)1Gc(0-JUb`TK4G5X5jdk40E_y~MElu2Uq@5eg|O#q9$N zlRVVqYnTp{B_VYRb)qjV;d?|SPL~lu(~=;S?9=7eblCUXz79+Uf2=_{LeQf^jCHX&AtaK5odRfHYhyF8 zmL_7e8sc@_bz!$d;asOkhik>_54nipSMmGml;ka8^^2E>9pP8cUhZKaz1%qKGWkcs zV3uUf?mEUX9>|P5mNh$Bo2?(v0r7r>uT=x4I}@*p1X)LNb#}{u4jQb<(OQ<_KvwtJ zAQ#@)+5Rz5mpzspqAfH1A%=*UiK#fQ#eT9t@4jqZ$58ec4QRTG4_CY zYSD$cNL-z{DFJI!fhJ77+3O6Rtt^l)2IROI@qW8-ZFloi-Q*7Wd<@~Rq6$(O4h(Sq zHJ3kxh^8{5rw?#!K_lJb;O86riMjlr*gfD8N}vNiVen(B)#Jem=3BRtc`EwiS=d~I zicph6XP&_~G#X9SYR~}yJVU>`;&fQ!Mu0KYpT0`8BFxjnY*tj!tsM{9<~HG-o5RX< z)zh{wvGTu;ei*Q?!|4=@2R@czHmm9q6Q`%@wWulTDJYZIFqE}v!13C41y$)iK({E^ z(4SftLflrjcGa%~D#W#{ApCA)#E8PXg9CMba1RhaNw`dCgjC?Gn0ULjos?vU%xUz1 znI=p*&O6(MJq;7Bw_8o^w$TNt1^Dc6&~&obZRIT;eYWA76zY|aQ?#jYI~(wEibx7< z+e^f3y1D~37Nr-ZiXapX&=mHUXQShD8j>Pb5-o0_G>xR$1N228=|TERO%+HXr0mkY zI8SO(ng{r<9=jY;MCyu&*2Y=uR^T%9h59O8<$<(M!24sMB?TR+E3~E{pgeu0uBtz9 zlho?^L{C+J@J|=2BD#5_(zMDB;BYNcHOIXn_WOsux+=tQ?AhRD$ZMV`9)%WDuE-!^ zp)pdOkfjaG#63%do)tD9=(q%)p3dLJbesj=6D5n8ojxLlWN`A;)MKKA;?eExtC!&v zRvRziBjBF1=x`cMlnjGA2u~o^VS@|_XUrJ{_e7w58(ThxahzeJ1Z@@_ZoICP|7p&H z%xKxw6oJ|6eV9o@pMc9Ng~(0l1s3c+2<9aPdW#ZoNr{ZuF%Hf}0FNj(oPuspK6-@j z9D$Q%n2%V3rDF?Z3Qpn*z%fp;a#+6{&{d44BBXJYLIzJ+93==*NMXMq4N9#7?{?Q8 zpaMxj_t`{&W_Nueu^WjIJEVYwr-IGe%`Qk*vUf9c*-`H;3}htBQ;^UXv4!5q+E#SE zzahFG@)D$g?+F&335CXJka;4_x5STSiQRyUnuhpHx zJ8>N#JM)PIX`C?aaeE+KS($D9#`HUcvC{%Mk>YGLtcF+uMbI%i)Zk{o zxAI`hyP-~y>^(nMNi>hDq?;c-{3l+;%9lieUScdAmgWa{H1X4=n#fcReX0ZelJAO+ zh=#qmmtRz3bodFx*)>rdovpYUW`xlK-GXt*d)X-12?*dkL15m$V;KX;UM&*7vUCz; z1)d_I!BH>BF<#M{12;eE?u0894U0RfEHnt0!oX5*+t)?GoC->j(edfgfJ;jjoY79n z7*U{1k?oG{AX-N3j_w!jKP^eVyCLz5=6K|R6pbF>5knE`*|YL$8C#!zQORL=8Ti}_-!-?#WIqLpq9FyZ?zuuUvj zD}k4Cl5T(K59#hbWZkf~7&HgOi2kNsU|{N+Rlq!Fs2TX#`H+DDp8>x$I7J|%OM{kV zpB-$(8e4XICoIQh8~qF5OxxgBKsKng!*o$elXTc8EwLtsLIoTnsm{}qyYL;3(QIlL zYZL6$y@_2Q9qGx`>Q)TzV0WA2Lpkts2^Q#XEB?%~Qr0`jny~)@)HK*ky%{c?pM?AR zI+7!x_y?O~hZ^D&xnhEr86$eZ-O*y2=ed&ml*A>_BHN*nte!lm=m)+G zLH0r%#G~X^bh#epW;*7bt>eSg?}!`m0pQ;o_HlSO$><}*(*d915TOEr44;don&v&H z#Ozh*ZViI-E@s~==xN>enq~FD@c|kbd&D1Qd76D?55&9PQuCgdson1P3j58lo*nWW z&JEqnRLgAyg9VBhCLj2sfR-#ZpDciPVaRDuf$CAi+QW>;MY#QFt~CeK@31`Ux8wL% z!d&g=Fjqa2N^d71F6_+luJ)GYZbb(7iBe1@vvr)qinEyKop&X;*?y|OT1lBX_+M=t zJf4$v4=Zill)YZ;w*}5U1}+6phgdG3^ZiorTDU)}QoFPV1!vBiL4U#OnHD4s7(TE| z$ZNeQYbm`bOJ09bCfNwjjc&%J;3pBU4&zzzeq;axD`gzhQ@anJ_<$g@JYGxUJvc*E z`N^HZf&*BttAJy8GLl(UIIybVQm_mF&jw9{Xbl0HXEK%OL+h%70)1eB*);q|Bf?5^ z8Q(nBT=A z+J<0T3Z^c{{S(yHG70zsIC(1q%|oi3mYN9AL2-e5ckves?AYCms6hyp{xq2lH@LGQ z-7oDlc;TwDtW8J(eiEB?%k5OrilO$o!1(joR;K`+e(=vN9t|gf_#EXlaCK{7?N`R3 z23W6PSMW*)oKJ{JGZ!0G8kEchDHq(dqwWsy!2KzM83K19m+vgM`{}adgCZc_>=VjR zGd!QaY+QP+SPeC)p(Ylr+05-IC804J{EV`EVv#WAta&YlH9r$}O8Jg{YmuHALuo7n zH9LI<-#I|*_Kl{pVFhUp0#D$0mQ&zaMr3{mnUU>$*?IyF6wM;H{4;Fg15hK}T@*sF z*v6Ubbw?(IxS{D%_n_$^ECI+H`R~oqH@@JezUGxT^(16TL-IP@t?;O z?yhJASl-IYI=FOdM|7Vrg(jemCdnAqMClsgvDwutPaMaTa;nKBTjOH_Uz>MU?p@jT zkn#Co?X4p|t|@Fj>JI*tzz@?+R})>jE{lIG?C8!F>r=qKsNUT`x3D0FZxWYUr7*%& zxPQ)ag5rp83anQ%guf(gS$rDyKRGXjw!me`t2MC8V`P>fM;lk8JYd6H8uI+PU9sS4 zc@!~sxh^j@V^}|T@44{5haX$ErY8uVy4doyJ+TDpOqOQH;iO?MKL-`!A_lvwy)a^}o+w-P@b@rWpl)6Q0*4~bi)w?27uH_DGsvOtcoZ!mi!ye+f?bGQ9r!(b9&f&zC;hy#(n8}S3wUzE>sH3OjKHK} zeRY0M!_+=UfbN4NpfcsWk|P<#%FB$+nw`a9Y$WV?hxOC>kuXlTl+t0^KaB@dZ+v>$ z632S)ti&}lwUXj&&-b1Uf5|$QhJd_gPqRnO+3O zUV_*LkU*00DI@38&10AU+V1G{GPHrf>cXEz*$ksUAzlj%4p{j#4NK9 zC%(>(=l^k@6}CK>vJLq;uNlM4(}b-9{s>i1(_&&F35p(JnU`Bimwd(@~+rv6~^rIb$0)>cGv;7dJdmUgs|cH z<^7_)e0Wxu{od#X&;G*nNkVvjbIQ<+8e|&%D!GQg1kc2&=@cDJUs8^swH;%r5}ra# z;5)xh4vajJ9M$%#F);2Ld(zex+^>`MR)iG;R0=@JB$`8?^olJ}DG;UM? z8#L&!P6+r9kPu{a4#s#!lOF5XS$kkFA2oqA0A!)o-4ruJG%sQPs{P>~%a0E*-^0+z zH~7M>um*~iOWZ=;^}_Y3gF610))61^otbg8m7dx8O?x|bga0(NhG}i1j)GHD=6#>; zkLAXL-^ehf)#r8PDk~2VpJh!6{>1?P|1>_RK?>s{)7a}rO+3Tiq36-Ei^tqM*5P1E zVtl=Uc5rUCKB-z!VK2oC%J70R64%qE*efl^lvGNr7cOBLd? zetsaa417iemhm8Yh#-hY7et+4BiU363D-vwW?wi#O1UvQ0(ljm&}rG)qLV`XNSy*~ z6cTg-WpAu+%g2~Q5Zh*f&P8P{C18(vr0As(Q&+L9AIjwPHgk>4tWc9;*iVYh`?rxa z8+;qHj5oi)JcT#dk0Z@*4@LQU?Jo~Ug@6?b+~tkSCW%;(9oz>$t>{J&8$yJkbK7 zI2&QOCo9X9i69Gn*p2|Io+3rqIHD~DQFO!{9p%nQz!T`mLv64lV`{~Is&twyK>OzC zBHbZRFakL;Xj_`ODkiO68#dRFs~>AZ>Mm{18=yCB9{qJZQk|q`aD_`NBG_J_)rCaT z69{k$kC=-t1%(br$d^Wwx?BBB8`k9AoZLZKdgNgcE$+IyR3#LjVCj^4rJ@q|ZVa`K zM>m_=;|yKb)i+W19M;&52_Y;fTZa&pOX!zat@aFSbbEhDA7Bux6>3r)m(f+-^BS}- zJR6OX4L1p@7)l{&3WbmQ0j;P;jS>rST8vRHMUQjtgF@dOZ z>~YWe_wNdU-)leI3zC5U^q*TP@a*sx3{N--V?HdU{8!6Nw3Mm*7nXU*Qs(J@VVV5( zOm_p|`LF8x3`>~{|Al29u#~C$7naH1!1P@N&wo|lr&`LK_ZMYe{u|6>k$)YbgE9gj zN`uSdF?h*^Z!LVA5%#aM{l5!^MIv@2LK7z=G=2Ji?T6cdHRAv7?|)MqZsR|-=kNO9 z40l4n2>~YroDgtAzzG2-1e_3XLcj?DCj^`ja6-Td0Vf2U5O6}k2>~YroDgtAzzG2- z1e_3XLcj?DCj^`ja6-Td0Vf2U5O6}k2>~YroDgtAzzG2-1e_3XLcj?DCj^`ja6-Td z0Vf2U5O6}k2>~Yr{=b3%L9)RsB|;R%M^kGMkqEze@LK`DLxT~);c{Jg_zxOreeN3o z{?=avpOyW=m&p+D%mnXG8>F##*j^2>2(YGPTdmtz5Wus2A+|XM#IrZO^WOHIkep32 zu>>h(^Wod_SP8FB*<|8x=bsY-P6#+5;Dmq^0!|1xA>f3769WJHAVB}`Ym&1?P6#+5 z;Dmq^0!|1xA>f3769P^MI3eJKfD-~v2sk0&gn$zQP6#+5@P7yb9JrzKQJ2vCe+fb% z`I0=SnTB7N_0*hc3E}Wf{7?8Xo#3+IyU6EuMtz~Ect88$_rI>VIVk7dh^~TxYlp?2 zzTS3WQs&0~yH19@`17but}#zejp6s(J}0a}`f>WJ z0*-g^6$-FS-tFvym`K8=47#3*0|lK@e^l9uROKGKWOvo zp@T2Hx%Y(!!{6(BR+dIE+9sB)-@H2Gmv+{Kn z$)Ap#e(?I-Zq>3fj~|9N>wbTYOp7=LKJl|Fwv1SF_Lpzpyz|C7)~0P6eD5uP>x-+? zCT!}Pd%W&j@zSZi=Icksp08QEpy*_pDr2qb&6lRW)0A>J^s}+e$NfJnG|bsY)f^i9 zRaQX4jhQ*m1hpm(7{6uss)@<^WwQ?Eee~v$U`_V#8+-GAnL00C8Ti}qbp;ErZ~Xjm z=7f-Mm+WmJUrv2xUC*20dneD~h28s@b@J1Qt(j-kJNeIlYb*$h{CMXVA=L|5K&Md8ui{vD>3RT{CGt=e5%*i|e@TF5hv9 z(qGF0x3nF*a&efVXxaM>bC1Q`Jy5v1h!^#0;GJtfpU;RBtk~Y>8MC6MN8V$M^0{i- zCH|-0{r4%odW=b(zVO#BkKd+5<$Lz{?xPn&2lah!R)eQNylck1uP43w?%;mUNe|8y zxOv`rQ;kXUUtTudFUUJsQ2lmGYq&-?OfMPI-M^c+tGkQG zhv!xs4_AKH_k2|kQGVcqS4Q#D_8)0_=jY!NS5HW@OW!01Tjb4&jZE>edIxB;Q8Z`BNvZmZG9UwV3W@N#M zucI1%FRv|m&b6-WQg-{Uu;6CmfRO8;g_{M_d5i2L1^jY)h zuC~7P^^QUP+V`KzIZnU!!HTyp&#&tH-QrKYWtU!fXW#kVSpmXDGq>H%Jo3Ud7nS@= zQ^2%E#OGUotlT;_clM%9w^!co+QYweRDAoc@BM~%?^J*F+~R~fmk)lpvf@Cm{U7gm z=9!S8;gK76p4H7MfA;yKW0vl!&FMUFxm534zk5JJ8T&!U)gPlh#(lXe;?a8lHCINb zk3MjJ*rd^WF5X~ozIF4{uix)hxL}mFXP*Nxx{c#(y}Wbg z%(HnbRy=-Z*|MM4WM)2cHyXQ+z4_*qgNqkmpLFKT`f-twi7bL3tLD!ADyw(zDS^NL zekb|+??1i0ckk$}>FGZXudQA8UQSL=MNLgnK~~li-zQJ*-alFdR3=;_vGiFrv?A^Tk}V6zy0C@xqQ_0 z=bl>_J#^?wvZJGY?8S?@GX@TvXWF@Q{J_@MulWxi{PK26O3RY^`n?mMc_w+NuWz^; zo6Vna?%bx?At57PKXvN8uz-Nb?VC40@5$i^KHa)C0+hHsp7ZvWzDv{HUTkT(A-{L; z%lV<9W4`?O<5eG|rTx&&#l`#m+}!R<`}CRGFDPhW-)`NW`*_i!#-FE8KlH0c^Xj7s z6LyS#;f3_1D_1`M>XT2hGJEx!@Y2njO(_u(uW!lA^J$+rao4=BzdnrTZl9liI*~|G zik_XFH_snDnDNuAuYPuX!GgLG7cQ)6IDUNY%Yz1`UQbBaST|}^+1;sA4g@C z%SXcR-#^p3XU|x_Uw{4S%&=kV??;c`I(fi=IUDoyy)F$OUM&3Omo_d*va?sM`rR;Y zoF;b25LNXDAINT2R=)gj{P^oDHL?^x^PXH2&6%8QRxQp8R0Z zx8EMSzi;2LUCGI(E7z|dv}4nzXP&=x>)X{C8OHv1?tC}w{Q1?>o_~JP=Wo4rwPej2 zV%B%x9sFj@m~Hy1s*#5lF06ktWy(ID$@Eb6!w;AC&z@bocKLEs+eaV81@QU8@2aa8 z7phc-#WGn!YQKInq`|>a4|eT(<=mk|OU9o)yCvlA-3u$4nznCSy7aENXU~_KUVeFV zeZ{=^NWi;OO;A}%u6q=IQ{9TDSPJ3xmX_`U&>*zxWuDJ9o`-u!4*kKC*OGX z*#*D6^2$e-4UCZ0OapQo`-hH>Pq(_e-8wv`1skXM7kzajP&^3AT9#vS_xaBu)>|9q;!g{=Y z`!u?!$i?5?J?QEeU(9~y_U-S_#>C`l=gqr(Dmpsnz&r2sTGqGkbT3cO9v2QA$n2an zsq)H^BX14%^Xr2MKH{>`(_9xuX3HNaFCw(Z{J%K_`{Cd7SKmOrRum(G=jP>yl@{~h zo#Wym!kUm9;hpU&^yfe^CGgG_c={sHf>iBT@cop}&)vPIq@+K8b?n4`&lT+(J4K5KhT7;$ByD3;8=y}kbYuixIe{bjTG3h((-1@7OOeiBU|&S|?@^|<1GX9Kx- zZtu<3?9N$rO>H5owFCTfNJo?4)vn$^XdlI_+hy2L< zb)4>n>_M078d~4EcKh*)@}9G&>^mJR>1Eo|6+Uct$i}^cG;epFn)d4K4HwtLr~(9~9yIb3(ug0Vf2U5O6}k2>~YroDgtAzzKo>LlE$Rde}7l_b<2}4VU8l zb3(ug0Vf2U5cr>mKqvzk3=XQev{x=_Z$dxmVSZ7WzIh*1e_4~H--R+ zV*joGtV3@Vd!OHrP*f~|#+^c_1q9kAh`0-93}z{~HSs?@t>yexlD~?xhB*#`H7~xe z_zn2oum(7v|7i%|vkCkYO9+XV*vreYfd5+$Auu}rPy9u`0tah<@mD&6@koMk75^gR z?BDo+NEJiCi60Y(+a|h3n9qRV)jVw`-LQY-FyYvzJ)GdMzx%V!59{;q(*3)KTj3)H zKv>`Z4knIkjrINS(*AeDCkY8+D*R@^PX)h)%SO^{E}uiN*gO{(u1o1Sf{2|6_yIpY z{1V~U2YwX%kPH4tkd~(l0soK->B7RH9MbYmz&8$o-~W<78rt!D?T35+syWp5{~Fi* zcVqfb;b92>WB#n^@YyW>`@3%e6K#wC^BTEwWm!aV%=*~pQ!f3g`*i2EPupHSIc3lT zuLsk1L-Rr@7%l7c!bop1FS?c*LbancgO>?48&>HTU>X6N@w-LU=c7v(R{ z393}Ce)(j@_=V>J?{4^7%6;cb{<9t?rDlQ9@5GKk{=(;bj9L~S`svXF13z&K9+a@B ze$3d~ZLdCD+;85`IqQ}#p1D&cQk~D^ljlmFbR93fw{YB!j*4H78&xT1B_D--k74lT z?E4`Y4iPVm{t?6C=(VD343DT!;~!#}1YYKRhT-z=*uec5HUZghUB&Q;Az2j|M#mQ` zhhsREe0*yRhE>aly>c;p_uiQEGlsFS|DnDZ z&O^n&mSI@m^0)rWxEA$W4JHQVd*jKm5V$C82+6R-;BUxAg__nz~k^! z`043*EN*3cB7EYzSg2zt#^^yK~{LWwgMvKRA;@;@-cpTrk zxAq1e%gXq7oAG$goL+MVkLiWt=$m+4m)xAW43BMv_Twvfd^gDTa~+SnZ^qe=@!0pCn0gbB|F$Ig4`00$TFX1B6Q9$n zzwU8Q|K*jet3Rl|Ui9;-v03fai~Upg%r$U#m7Om?lQmQDk^3*l*=0k$y2S&}b{Upc#TTd!5q zetdFe@ZQB2-teCqmrxQIyKwGpmj(GB%{`L(aM6&#?PGVYn&2_MWFF_;y$!iN1HaV2 zTK_)h#B1*zxxo8w#dG1kwkG>GDI=#7)7B4~=Fw6AV}$QBuDY(d@&R+be5cMUNI0~1 z_qtzZx%YFswqxv*f3769WHT2)GCv z{<}pu^Z(xt0qU0buP$Dk)#M1G0*yz#kO-^+Il!9|48Mv@UBgjFmk90YqTpSE`l0$R zKKi0RO2=hcO zP<|JbFb349ja_1>hmYLRPNpjT7Sa1e^b z!~1t#;h?153_bV)Ql0MlrK_fE8jRyFUC*P7T|>}7sFj3zzw5ffY~@L|0RFgGUN;&A zb3BK@i?=sFFfcG+Quh}JA#agKU|2|R|9+AE2R@I`Sw1!BX|!NN&F;txdJ=?sAPJJA z-Y5bMK+mHW&`>lC#i3DX9GZltq8TU=%|i3gLbMnyLCa7kT7_~^0a}gLq77&>+KS#s z+tE%`g+4?F&>^HnN6;7O6grD)(O2ke^c|{4jUfHLiSD2u(9h@rYDbSzC+b2Z!3ANE zJ0T=Qgg+5P^dQ89ln5hw6a9$(#Ir;c@d7cFh#`g(@x&-%EHQzYOiUwY5N{C4#B5?7 z@g}jDNF~w;6_H7-B(jM-qJStS))1w{+r(yKEAbxj0Z~ruBr1u$#7D$I;t=sUQB52p zbi^s*EKx&TAig5LChCaqiK|2taf4_fT8X>FJ>nP*^BH$_9LGm2a?Z`gUA=im&j;x7&(HBCtoHNOk1QaI$P#ibSxUZ5ZX(Obt>iZH z19CfALGB_e$-U%<?D6D5o@LM&j|r11e_3XLcj?DCj^`ja6-Td z0Vf3he+_{LItfL4@^w)G0vRg3w2UAI3RjY1q$|)L``CCXl_1JIPy^rKD<35^NEC=@ zMmzGFt2=l(yj>_KOgoV}g;+V!VFasPt2;b9gJ-&=B#2TEL<>_`CR9%v$oe29s$ZvF z*TBDq>q?-59}C2E1VLy$sRHChQYahOd&m=&6WNIcL^+vFmb0>1<-BZmIj>k=%-3=< zLJo7^JaHK3kEapxEbeCsRfNzidw9HZUW(`{Q_B#xAOz91A<2l=i;S?TrEqWdxl%c3 z_XIJ4ri&4WD!-IM5P7aqi6{_JiUNU>Xu!D%V%)Qrlo}m6FiyzgLC_>2~dkhYXYnT$6K zkM}a*oElHPrsZ%8l>=~6Oh)QvEq+JD`K)`##OAaKG~0vLcQXZlSd_cPJSV zZ8fNn*7HnE$@NVf1AfD0AakBdOCKYJR3!y5e4RePimL+y_-QzGJbmc9!AfRyr2e$9 zzY<;NmV6sfZlOTVY^Vn8|I$f z5=78+Guz}_KcMCU^Kh$h4?{z9}$z7JQ&*>RaJKLVX@4Z;16Yt}dW&xtlI6C5ROsIeGLg zo{`lMwu`7o<$(se+1EthWE&$2K4|tbK^u*(kjK^N1^>I4gz!Jd+(x2-G?I`D_btr* zRc{*I(Q=F^ht{)9VM?ySFXy^8PyfOr{w|E?A~z~KyLp0XOu>MH>B+-0Mir3N!!yPg z{6Cbv4R}=LnK1mEnKPNmu>A(I#&#J?`}-Q6Y;65;|Xs1Cs7nq+SpxpodnQHBp`ilJ4^?{`uZ;4eV;QY zGpOC~`?xML=jZvopZov5pXX@dZ*>a`e^AheSV}02n}@TT;SSLT+kcVfNZE3F7-5D|kO0&y8Y_o)q5a@>n7?WQmf^}7Bzt+fyy6V=VwEB63k~x=GQs=cjaXJ3&{)OJVSWP;XeR5MJnfixE-%Ui z6 zO^u}OcJ#0030cL1PjmNV|A??&rdk+Lz|kG(Cp~u+mT{yR_+&G1$!6e^&Dw5Zw|h2a z>;sk>X~5AS&mc9WOWQ2eE2AoZtrCGUQ(-_)gPw!u>le(ms^(WTvO z?;q^X>{`_9o+B|Ak4gPmT@UTn>^8jha08YwLwzg!W_Q&zKiwep=XB9#cL~Xm`g6NT zvjghZ0E}iu#^3s*U3hLLNPwmEqX)Hs>p+Pnj$F4Oe=tblCFIjfG1!-`Qm;JsYQoH? z^kQ~|$fH!&rgRmNN2lC*?(K`!+j0lX5uS$bjP!X#CzGYT-|}7UZk+kg(gXbUrd04* zx_#Q_@&1$uoyY*pVY-xZpD#-e`zG`tm((X`S0c`e4-&sEz@fO2YMOrk` z(%cNrUDA{>KQ|M8-5Jtb(g0GJJ;i!FE%OB;9pBmec<-FvjR6vT|E)IR1w(=D`($CR znL7l}ir#wvtpb~y=?8!jNI0q*=`s}&)h*A4UYcQ%w|&Cervno zt@ryMZgdX3KVSg)ar3J;w^av|1wxK_(q5g{o&hx+4bJ}e`;#3EKewUe)!W+b1GhJt z$H&Imsku+x@+uo9XMXzX5zlGI;J(u~#+MYSa*$5o0arE7eZMnIH z^Qx^05jMc`@9ZIj-VL%1Dqx(;ps5nC37W) zDP2_MB%NlN19P(Uh?)=&hOL5jSP%%v0S5UO!z>(A$BWQOis)m!iipbkADLc%(NbI& z^6~T`8W8@ksZ2(e%Y&X;T1InnQ%xFyn1^UwUU)PDxN)9jzIUf6GgzaXpj+xMS}Q6{M_ z3ky&`Jvz7br>%y8ds-b&8IH|q9eitXqkZ7r0XF=I-{JRtW|%_!;N^C8K#63(Gko9K z0zs>#wv%MT{<*Eop|)e&D(iM?gc(ClaS>ZUXW?%$P#_^y1>PO`r+H>-Ea@dgXe(a=l);Uawpa-aFn3`sN97FP}_SjhjJI;%^D}k(#hQFy;KqOO3-9~MP_sohO#qw@*}y_Fh2np zi#puFc{`Dp<}Q>W0Gd|8toDojS&=;_`aHhD(&?uNdqcEzv`^L)mr>87Z%Zn4Rk=6c zlIKO3UNiLuoB>1que_C3kw<-hDLuaeweTUU-wqhY`+*j(GiF(ja8*~=lVFOBaW!xa z929UQw4%CR1KgX2eiHeW*BoKS1LGt(%$Jd*FcS)ZbP)(wcXBH1WH?v-wJVAa0yHTM zX%)$n9-|M}Qm|jLNHDaInGAq_Sf;JwNvFOC^fG{RK1X~^h;&t1NvEpoez9_{3_o}W zRL*=-6d9?5S*4L?Ur30a@{rNpvNcjk?Qd!T|8QpUS%HoV?S7ud`;cP8D{z%i=Rs|F zuSo(<2|7wpfn9K#AGj=CgN7{&yw+oRo0nVLP0TsbPF;O6SE``Z%qlyRDcVIBwpKx1 zWR=y;?3Agm0*1KC>CTA1?IZ}ns`MKFPR}Zvn<#Z^80NFVw}?5*RnzUhiSn!Xl??gR z7#{s`SQxS?GOUtHN12N&>))JWf_IHR7PAVZqqwR7jQ~olYiZD7&=&a`6nb&Cu*v{2 zb$wI+M@V#b>ca+kehA0TUR)K>Ujyqw*O|6W?qbF&HXH2{i*rB@uS(Jn6KL9H+2&a% zV_r0k6jHOMy{p~O-zI!u(mm~b`{di?Q*D^J*nDx>l=(@7%vWh-16OzLiY8oKzpLnj zUk(dP0A~WAt;__R3BYQ(ma@Mk!4F`zU!|qya$L+(g3*vO3t&8SdOR{N$y$$MFU^A) zSo=@(uiT_*;c7FYgDv#Ju;7OFeb9a?w2ykOYiZ5)$2|FfWz*V{P!_}6lo;N6mbUR9 zm{gl|@4bjW7LHg%wvBI<*A%kvmn(Sm;WQqVTM$=)doRg+yBU<))aD~qsZx5IPph1B4-yisSpgQnqfKJ?>qvKK{<$*s3s_U7tA!|FK z6G(k4;hjG6{Tx4s_a$V(`p6TyZHu1~OEj62+r*nqTKIdDiCz2*!u)vZWcLFB-$bEI z^HEtgxxl(PZQDRIBXs;U=*8No|FdMEc{186V;;)W!Z1Cr4Z>OluU`Hk^q7MZDyBzc zd41IPnJz-l8>3pFD>k97SfR`_JU!2ami>c@#n{^-7Li=dXr7FJ%c%Gh<`Y$xeYH~M zzdvrFz<>E%mRsLtm;tES@=sTgHcU-3=qTeMMM$Po2SUO#)Fl{So+T>1m;9#%bR(tK>AUw!%1k~_ z!1)S`j1Q?wnXm4_JFqq=uKsxwYTp~kOZ>?go_w{EG>3qzW2rYxB2|4TlLJyCa!ber zkmW%IE%{H3T@iAI3uCFzR{)nH zVSbR5gCzsJ$ozBv z#nZe%?~KrkTEP1|qCWZlHo#|X#D5WRICQ#502)x_1L)7c;UdcFx>hcdw9Rfw-@I5# zYA%=3n#&|z^OBgA!d%H8C9?{8^fSDEhv1##gW};pEJR<(VYWI z>6+h=;6m`+DR+2fhhyG7NF4kXH4Ia?2}&z zrS!-X%s6V`ZY>{queFn|fB$5wF5iFKsn#U;JKU;=zrSluZQbyGa=ymJNS&`RuNcha zR$QZwboSSznF+nyPxcQE7$W)H& ztkM|r(0HpSFUN7V%A%}S1%2;7QiD7D6_^9hgK>j@l%n6O-?UE9=%-T@C)?Mf`eyYnkViu@fo2}mU5 zYS)?5U`eqNK2Yt=1s;_&P0^sY^(u33kmp`g9p@VQuy(p!XRk88L>mHmugte(Zkx!r zz)DCMIgS};Udq9^!CS(N?f{I#@rPuskYOqoS`xTWa*PX^X5h#SlEQ`b(_@KqAu>ay z4P`6|aDe{zniOC0H4`200n3q$0;dGsmy8aBmf`HwgMVJp{=Zn66-FP(`4uhl%3n+4 zj*I@ZU`>;DRA(>GQr7Q{58HU|YZ^x)A1?(yDAT@?1onDqXhH2Qvc?Qnc6JB%*KIiC zg;R|G2kU#hkY)tC0qa0pM}C>|re#_$+SlJSO}B}7pvaW-#!S#XQ-I5n z(UfV<#smxZXNPCN8$}C2-bOw_4&J317JR55!^$W=luy1z*8csm&zK%NV<;M6g3^FB zHhRlSO|t?GvQii0xd-Pda7i3@mCSDdF8&x?;8%f5iY$RK*5C^%quW=h!gs{`p+s(B zGl=22eikh2Z-Y0M#oC5C5>zB2aHo}IdMv7Evv}G6+-jWOm9d^T&Id1=3G6EkLn!Z~ zBlh5KdLOcF{DHnC-yP&)d7>(g-_;#A4S3A^Kv{U zF7*{ZK5*zo-<&gy&uftG|B;F{FK$kxC}oykEJh4=C2-ttwo_qY&S5D}3UGShX$MXF zUL`^OtLTR)`N|;A61@;|q%Ob0QlnMcxN%*tfp+E|RJ^&yXuOunF%UM!n4hQmN_R}6 zC(5EKi&_@tt?o=EY;ZF=2!k_09-{*+SK@UjzrQ(;8|$;*s1I^zluT2}H|r~Sf8JOM zbZFTRwi(|AnmW=65sRCR1IT|GzK^3pZS31%fNS}=31RtFiiV0lt~M<~x=>3+&!sP> z`}<_AKHfi;Kb|^Li{2wHlQGn^8s1_Bp9zwiDQj!OTF*S($mP`#fpVF|aAIHyFPR(- zTpmwC+v7Z^+|oU0*ou}8j&T|7c!&v}idp?tZ}x#NMR|VhAr<Pq6OD;jfLXTmi{NPPj`jbYwR06LnG zY^$F=hn^ht=!_5OBg6ucO2RJ>ZO1Deas42)J>DnI1tN{#S9?O7F??gqRVb_V${`j| z48CtN+CG3Spg-i4N1e5Fmr_0vEp3Aie`hBY)=e}$qbwiaCDzx3}X?R zpkhZcXRtlc?Y@VrOOLQ;(MKr#iiWCT9Y;2IN*^7e{nfCJcY(jHOHY8ek(sx@)Sp*+5CU$|Q3zT#4A-2u zG!c+m`j{;iO0Wfy*C6cZk!p|v05gEp-4MY>Xc9{e!FL}W;e!alM4C`}_&ng@Ns-KM zWwsTSYX5sZ{a!_PsiDL|ru_~(?qhVP8`{Yw9i{?IdE zt0+DC!UAxvhERh6qC-lXRc~rzJ>r-Z&n#$Ni$V=b3FVqiD1&XCH-?_!y5eOH-Vq%*T~rS_6*s+#*s_ei_&aR-8fM?tK99nWHOz~fbz!F2*U#)%+P-#!zsXSd*M9UW#Vm)_e|bAAMibC7 zj8|^CD@o4k&@e}~LR&uC&&VrmkZzRAh}~NrCX^XPZYvN)&jJZ{KE{3dZlE57f#?JG zknC}E6LrRMcmjq%sf7;`kZP$BMQ`En18yU8CWBOB_<9|r>7~@Qm2alwDG{-efM*9s zbKpsY2WB8BHE_Hb=~eS-m@^Rf3>r3rB`(w8GP>_~E)|1Pwol6du!ZW1w<^*9`56S_ z)s+I_iDS&PA*FS6vd+rmkX z-a@iiOPOtF|42PyI-gH_(-BO6Q!FADZkqGo+LG3S`2WV5(i-kf5;XCmRxD!jRgciw zR^T8!t}z>vc`%N3${a%p>sw-RQZ4NoWcho^hzB&=l1&_E08jT^pg@i{r}LFo!aKv) z-vbd!}mVe>4!pTSn~A5|ltyFJ z(ZIZlWxqa4mBz{~_+}aX{LIF4BU=G4N^g~|mwRZ5)}F)s3oD>LMDpkK2ZS(b3Q4oq zGi+oB{B~*9zx^?I4f*Bh+n>O@1C`k1|QwH+f%ELZrPn7 zNOXkPXqodJ=YRc;KC3L;fTjPHK}SRNHr+P&P}#e_ArgG9|6$m6hM0pHpDGT^I(Dth zTQXBY(?rgaZPO6i-P&aDHrZ3T)>n`U*)_0|GM5F}`-3=a6}{;sSM28mh8A}Z^W(6Z zXbYYEp)#LDyH>$l@jCuOG<3Q|sDT9?4KdkfX`s~7Z!!|bc&p6I5vvt_LZOwU2m_P? znXj*+{)TJUu|(-fEQ|Aei^Xr(d>8oDm6I$XE0Ec_6;>L|!bG zc!(M9Blb+!!6`T=g9q!1S4!^lp3l^F5?coSJX6!jSgXmtOwxHElj&66AAItk@I7$Y zPJAygEa4@JEi;0TVC#Gf)57;KJ=PX&i?v7FV{g&5*n4z6&K7-(vq#@k+>+c<+>_ih zrzNFjPESft2}qBUp0u7@T1+js^q3&-`pa;cBh{=uPVAc7min8vwC*6*Y?}21V_(TN zdGalyj<-;jnS5??*dcIyP6lVs;ke=)3s;hp#j$+Vd{<5`$J&T}eohXTR8(e9ax(Uo zZDm764T~gk_Al&nAlD{cmU{;2U_m)Nqc)xJL)T&n-(*g|(G4wbWQX+dW@*C``CV@8 z-Rc5&ahWygUEQ{&Pw54B(sGDe66+9UV5KyJh*w+|5qwlTlw;HC7^?<8mAJl%0L~-@ z80!!rg1h<0aODU1iL|s(%4Td$#L%M)JleA{pzqNJ9_iT-(Df`Vq}i@Qk~6kmhAnOp@=X=~eqFv-a4A~hcdD%k%F8O0DpXc??C9K{m39M}qQ{Jez`I({yV%6+mc*0cK#eL$CTdJJ8?Fj-o1o>PxY4Y+J znWW&de{#pvoF~|@=ork>4&d7+Z?R8LRg7$b_j}~`yE5ZgL97|Hbq8aw=JrfBPnAJk zP1yRxH|rmK60sFAwPW&C-TT-7RrlBHz9(t|VvD?90kKzT!Bt~=Hw4P$XWBqnuT6fY zh1|As`I#3SatERmn-150{~Rh3?Lq?Xi4uy>{!uDftnR6?@WjtBlWZO48`2y zafn5fM@quz^*)l3?Oc(?w2b%vk?*28pw;o<5mNmNsSnUlW^|o{X0Q;^y*?VOaU5|T zF~hYXj8D}ks%NA1r_3as{ExpWF``P!*I>WJ51ou@eD-o?9y7z zkmlI)wZlT1ZkXQ-p_Hkl!6x!)-`2U|Y~ep_BwNE{R+y^G5uyWsG3s)j zrPg=zvI~Ej3am z5FyMnY#Bfz3_9yX1L0S~!Iv2>*37wfTpSkOmor7c2MFydI^8LN3$}>5tws>}Yc(2v zNSn%2;M8t*nEyUM%%?-P&Gt?uCY7QcMxE3OI;l{`s`_Y?q+}qXH>XKj;6dH^bdj}V z*aqc*Qw<9mxh!UY0buG=Un>KypY>C#SG?ujOn0#+X{7!-?4W;m8{Fp<_n+UUd&+2~ zbK%i-@Yk^qZ~NXmVi#BxnU;6XH=JnrY6hXmZ&g^3;A7y?QSN@WLnF<#Ye*Ttm^j1P zHqoYWEYfD%27yW>A2TW5lA7thMVr(7lpC&~y{At6jJ5AFH$PR=DbCSq+;d3M!wqh@ zvK%|#@bESk#=p3MbamAI2A~bpb(?~*QiA=#gACQ({-tMuH?MY^jEOtz$S30a?)Q&v zJ(*8$^Go6=>aa($;RJ^EaW)o#pKAx_23I9x+%=uG(_9@ zd(tk&R>`%LZzi8G%|sY%Vn7S#_cQzdSl_Sz!}T=|#yrot%eKZ*mYM0x+rWf&@fu2B z&Fo5zR?HA}YaC*x=wLDtN(>|Zh`BI%xynX5*$AxG!OAJX_Owc`E5^G$OND0b7-?2; zV|4)q9rRQ`1Q}3YW>;COHRRKi*;;OmJ##+n6%a^KP6T_t&nh~oOzpVVC$ml5^^3+R zK27X<@X0>UeO9;QQZ0>n;S8J0_z@vJEIO+><=v@Tg$uz6oSQfO*0_~k{M!}ssp;>O zU@jWBwqAUFiomFa=}{|lwLf_}pSV8E7hPEY%SVXtuI+SI6TuOv+{mz*xrp_5IW--_ zQ(qr1`NR~?arm+{KHIcjlwY?zpu(G1X@G0*9@%~%hSk&qOcvELZoSRiJL4l=_o=fQw>`UrF3PnXG{JNTUj zq}Y?NzI$+eH79?oi-4YYU>RV=J*h@7KaCZ?Xr||fodTB{d07%2ni=BgvzryVdz>9@ zrlZ78Z`))kBg};#|JDH7xO}H$E^PWOz4+x7HXDu!8CCoS25EJHx;|^{-2BgBjlO_2 zdijIkkLlTT$dF&dm)X>vSC6xorhUq#k4P6zO^H02(yo5?H8IP)h2 zO78Udc>}3y@N!HN^O<}0?-_A+Rnq>Sxo5Yt;_Thp6HnU)dVki^xSdN)a+fSOizUC$ zI`Oo-WCX63XH9OObNqv+Tb^!&x5qa^vQE-3)|b|hd_ttpx{r>EB&leG=!52ky{RfSBQ-x0FOwZIi16ub@ zE0R9`$>esuvpu8m5zHpwGQ&kHvNE5bTU~bI`tL^w52Z@lIkAN166X%hi3WGciY&3@ z4`ya^a{C8xwEGPC`Mcg{ zy{EQFlQl4dPXBt(@r|_G=ht`tV!hC9^$T8Wx6SYN+Pdxj#`X4YhriS7=yv);US~H2 zh$?G>K8dcuxHJb&I{$(Ey{?x%#altDJ3y*iMFIRQw;FAdK!RoY7S|fPyL4wQwX)is zo2iXu4#Ye;yK3EL@*T0bgQVKXzG15lB+m(uV$Fcn=^*o(Wr z+LHNrIb`wzjGk`txVCh4E{40btln)qER=xVx#iU<-}~kHdv9BkA9O9wUps$k{@UBs z9yMd4Lu(ctYz{H&Tt=tFs{P()Ur|~Hvss#NnZE?)Or-Ms;BAZH3P<|)>z(o_{1;{M zrG#sse2Xilhn+nK{A#}8tg-?_(|RKMgvh7!!sv@Sl5yqfom<__mty{vWwadp`h=AC z;|MG0N58G+87A>bwWOAXDAE&`Vrv3=UXa;;2{;|r1I^_hn2Yq{htoRZ$p=vnJ()qy zn8N0t1Z!;IT{1*mfimi-O}elqCdxe=qh&-7%5IfL*!y`m(S zs#QyE>c^dRWDw}WE_5cheAb^H(YJ70jk5n5q7z;s??pVBF}D-vqvSPaMaZXV;r<#! z=n5}s;~utsKVdF5UBn(0?D|GS1^YZ>UG8;H`+8?k;oOXp`W{E5c- zGelV?ETc8xJxqgLj=m7YRfDN=#<$@iWo?w40HqA<>;S(8?o-?`sRbXGDI9QKf8I4q zGMgZK2Fo+dduxwA1Acn2gOvGyXi=WKexyb)-dn3Ysq%iB;P*w?;Pd|vkO4c5d0m=c$1Qu-l-wo))20I|Orw9GH2n&QD*cd{U4dFrZCG!OtCe4#K2XdoJ zgu4O?+>XZJ=2{9q1G73C<(GQ0U|(lO3@&Mr#1i0ji^<^fS``*?pBHb*^KA1PWk388 z$ni(JB%LMa9)xHFdIEpfur5N(*?g6Qb|!6K9SPf3*vRN5&!t*LPc}#k3og}u=^67X zx**;^8?#RFdZd<+msc);{P{n5h7-z+)V4F`G$LelUh*)opOVCKkg!hPm}1rYSPf72 z?0tCYXNv@e;7kn?g%%kmHB)>Uc7=77HLy_*?5@(9b-YjTdky1nG?HI|)q0^TmaCYk z>p|Wh;3?SC&kVMN-Z9kSo~J}^X^3&p9Rt`G?23>A&S(B5B_iHTvLRm$o*k0*u^4&9 z`ruVhL9CXFyTP*b%jL)4flOa0&BRKJPAokEPt9*LL7ijwtV0rPt|$OEj69n-&sqrU zP`uSJ?Uyl(v8d^xb%mS~evL6Mk6s=Q-cl3VV{*;}{OX=@Jgw?qsJCH>4#=heQ$T2! zf8%eV{x(;G&dRVSTda?KqdL`=wdozp~>Kxm}*_?9@>}68c;b4J& zOb31!{nJI;6QA}re9)-OEuKRMu@s23syuF9WTalhEPRuPy@V|IsFNRE$7{7CbsFaE zuR#K4KT@+!V6=F}I@@Q#)JSPfYC?t@-%|R{I?#ET3nSYL9@aHm-q|sJqCvMGBbgGc z2jBa3*uuKYRG1p@g^FeVi+scvvQG1=G{fuw`P2#!ROYvgKJNJfGC`NpIR7yQxVrbJ zl3_2DCh}?zLV+-Ze7&y<3*?j3a$)mhvi~`wL6(*f-KSg==N)nQIA&tU1Xv@JS#mac zRR)1f-bDF__4Ex?_e#H^T-kr5c zd)CokQ+e8z=PkcXV_Bg*=5y$#S1g(Ll|6z{<2tP8RZ91WocqabD&izrj+0H2Xl)L?CfIsN1KbMc1f=%2gx zHUHc~i?%V*CGt8P*t!7D6S!BP;G64ahKn|Ed7f3^!)pqS6m@YU{5U@|a<4!- zF=rKY+P{RsUqoVBc*EOt@-xUM9^qjd@TdCly#kzD04_`EZp5yg<|h`M-0ZKaOO|);;=8m6GVa{Y;`sBIIc;;Rl&E z{=XTvkq(HEg;x$adP{^s#@?`)7d7R1Jjn=Fz~AYbUaSe+3~EYDfM?R1c{izoe4o`f zKGUp*XKJmu9Nux2Jl z@8!i#+{yeI@7InvHe`MiK6~rHPW=|>B=Rea&w@5AfcI3!`^*9r?^Ta+@p0UNp{~>t z$6yAob0wV*aaWvwKIDn2Jo}mj^a-H00}m0uqk(iQSwNMv>P^gG4gFrt3VLy~YFRI| z7&hmDuj3kc#@C-1+1e_V@W}yPe%Wmlc0@i9O+widTnFc2w0^dh+)R>tZgUR9XkPqW zEFzoDJk^kf+nn#hlTLh6yQP6NXoJbHYfT^41$E&h$VJcxb+BJWXQr;5wLaPAT1Kn( zj?}kGTfWBxQz16Zk&J>(UYr+V2567v{@L!lFR6k z7a&T=C>G^1YIy-TM39Z{@9FE&22~p*5!P_dO8o+F2>1@}OE+WYD)OqF={3_gXKyFdnsR4@zL^Q> zVL!Kmdx`dt8qWY(RoBL+%9$M?c05DI^&;_~+GhAkDIXKRbM zZ1O(4d1OlnG#9gd31_wsb4QP-I!V)MtL}wQz+?E*an_lnWv#|6jWgh%>)gQ*XTTJ? z8~l1sW7BD;wrLl`61^}?N1W&NNdl`4Jhj5k>Rx=S-;-*W;EWF+HIpO)wPD8a&#~CY z*jc91PV30%0bXL&Qkg_YOaf!lIGU-}{@!#+on7?7Tp%0mbH01JG>4^m@{Q7Sc`b3z z_R+aKOC|3(|GvJQuOd2oYKG2U^<3y@BKYk?&$tDKXspH;PFn?9Ml@uuQw;ymI~PWe z`_e{)aaIGfMmVt6wpk$3u0zQV<=vlIIp>!W^5aI}ufbF+k=udD4H@TuuOAkE53@~b z!qS=0wpu#$%#RyY$gYLa%hyl_>wH@q>a){MMs91IAJpT>upU?{(0}<;?_nMXT)~cR zXnn3jqHZS(b^;+dvwzbFWUe4~d|-c=;Ap}c24J(~rGFn75v;lgh?N*Ta83beI|YO% zbLY4@8mhEPxv3!J=FVX_(Q34mS=%yU?KGlu3CwC|gg{BA_;;F2I3c;rnqncvgPJUO z1~RZ1XnJ;=MrZS7x^G_EyvlZx1$mHN1N~Igg8#Q86?&Q}_rzq<3G69d?#UPLsi;LG z7A=kUH0O63v)a>~lNtzF5i&;R_%)=sEmLP}&D`bubWa(~Ygf^ydme%LYMk#g)H!0R zv`bG{+6V`kTHFC%)XlZh=jYmfmzm)`&HLyH>myt`tbvB7R4Xu=xjdnBg?orjNG6YZ zmw8y>ojoEzamcwIVkv+hvG-L@LN}3AQqI3a=fP~s`ASA7yz{&hu0?1I@e1ows4F=) zKwSn_pbW9`8^1X69L7kJKxabA5O2}w7B|kdYMI52q3y9+^n~y*mw3I)dENgPk^=K= z15KR38dP?)!u>Ajsmein)L|9Q8)og zE>Q?2u;!3$7`(;sZ7j7ke@dgSIGL@ig9t0m%$AgO7-e9^nb|&#j+ZoPFcuX`2pvq- zm7!zZ{yeU`3Z1V*18|E$h#>?JVvU#EoS<ym)^x>95yG5KEBJGxD{H$s3`?RDu2y z`PPUx{0!J6B#l(r3BYTbBDSYG=pHOFAKsBsTyLa`Vw~^SN`5T&mkMtXk8s6Dyw{*r zpetAjEv&K6guUQBL^FShqrfrc0>!^_8xJ5TCXy_8-HXA9&f5SYH&#-LOM8Y=Bdpl7$SOxma6&Fq_F)GsQ^0@hIr6 zNl}vPgM{hu-xLiF+tAn<{?>-O1En>ydOpAG8_$C>lt&AuGPW}TOF_W7Pr+@h=3dt3kwa)#vid5^aQpo27e>anURMQ#OWR%}fQn+1B?_d3?UbJr1i;m)h? zXOkQn+Fp>q&mu$6$WccQH$QO6vo=uw64qmweTVLN$=rkaii6V%XYE;MV{`;4*(_*Cn}_m-)ashH zE!3_rm~Rh2>{3(Qw)H-1Flmi_Xf}1GSdw#Ig0lkOC3q&#kfV%ggEh|Ke(=(;W01@( z@o`2QaV)ntATxtjIeU>%;sisoQ;ju-eDm? z)UssAJy`7-wx*F8FX6}vcuJPr5Yh`E9+?s;_84Ok0>jLI;C+mHa8Wa{zcd%xG{CM@ ztH9q1y1nXwEo=DLQ$@skQl~V6n|<;ohLPK9w0hlxIpL2zdkOuyaq7vN0OR02zFXV) zm&+e}&J$^TNLbE(BrGQvratz(@SkKK8S_sq+P|*0xS-seyXW?!>-Y>^-kvq~9J{6F zKD)cv>d9E2{u1Z?@G8HDj;BUfXEE?$1Pvd@oYf$x7VI$#B0s-~;nQDodHyJuO^dAk zM%lGcHvOgIb~=7*WDfjIjl#;w(8P5k#bspUOv=v;@8b2lKfe0<_^@>+zGYgjo*!q& zlsl1Zgm&ZoZ+SRk0SMkwvu3n0M5Z4CNS!T znbe*N8PPMt%n(7pK7S1AD(xM42lN6uxR|SP;Dxalze<2N34C-XB*xDQxED;@J`PdAnW1x@g{(?M@ zr+{Q=ThOm|wt#tsZGjIJw9LpaC(uT}XU8B~ z`1f0kwIiFM<%`N&a~GU25yiTj3PdxuBMNTn=3y6Lq1XX_^bSLCX_)xSCC0y4GCD9{ z{cIlkk?*&N5EEaRt>FXjigxynOVek3E!ySY;4-H;i5$Y{fwCk0V5I_cab zrXrgF#$EDkZw9ZpnRO|nISIREG9&-fXf(lVVWlQ{cR1Gi7kkx69_di8%>Rt%Dqu@E z9~nL{ADq{p89*+WS7i(n&%WXdeGw^WUf7(@i>jA>=9ou~8juf%y>3YvANg>^TYcNA zn0Ev3TJEThlu69=d(EIyvf}uNck7*{cPx^IWBrg1wF&R&-F;bV$uZ9*&$ELMG!Ji9 zo=}J*aR3D(uZalOg$w2ZxsV;G3%Xz)d%`!YcqFe`BV_Wpf@*XJXGJ4-HH&s#seb5^ zC+S_lH&(PKeOKut^b!rNk#~_VoN0zLDlU0$jNsU2nhlP0z!j^5FYxdA+`cv^(4ox&c5=hgp$}G^(WAxMUIW$ z>D}ZxwiP62F_Z1%U*75;|D3srP`iaMgnK&vmuTBWkVz+}KvJ7IGCI?H3gm1mm!F-( ziH_VE*^Z8EanR0X@Nq10OWAVV)F8b$lZmY~`A~u9!V%HAhPPV?e``yA0nH{t7Ac2# z9iBT8k0UKKL-w(aqoP>@*~u%3p?P6G*+)ZSKHaxEqOq;AW1TsmIn7C^rQx|wEkuy8 z?33Uz#nQ`pzy7h9h9yTZZYZDH3HwV-41urhSQqhF_E|XF7e}g;J>{v0tsg&d3bGeC zQrRR1>4a!wQZ&)zrkzdC_cCM2;jqv|JX^}AYI`?rVJ50QrBkxgO6wQ}5=(G zCrGd_{&=YQ@wC~dCR*~%*6VE69b$#a>WBV{UYwxf%ZhO2bS{` zT2p)^$o1AZHF*ZF`T5M(v!Bm;UGbuU-~2EQ+2L$iGDCFDbD}oZ3mP9B~0gq~?*P_X>mD`T@s&BSbk3QN3Jq;V4^B2D*G&G?K&QI`*FeoefXG zA^|e^Ug6pVeN@#wF)sk3TU!;JByT~cbg)K3=~7y#gA-`rtm3yVH4OO2M9@*Rc&^J& zHE>!oe0;}+JR1E$>p*&tw+jfif$?>)_&Uj_LZnKdo#Tg!BTCz6j{#jqSlD@l_uvnE z)HnE9r*dKnL~VY8amOE|<2x-=GXH8=skQb^b?-7nI)42{>?yW2EOe1!eo&5TfaE#w zN!YQwc|2|EHm4h8T2K&+XzhIP_9^X<&dRVV2lm1aZpel${Ng}zcpgvZ5)#!wd(Q66 z@Q>(JB-K@HOTd0C+6dsvD18D$MitFo*|*$|GqqV zNEw?5dQS_)>`%ogtoqkGFI0dnd7HBhs5pC~oVhfmd?@+=A$?Z%mGEL^f% z8+%jyD;1-TzorRaJOnz)r#GnG-zhlG4rbB8O0P1&qE! zmN}ld=m1;U@sltK9Bp6*#l6;T;t{;o47%akeS}GPj@RmQKF}l`ZCoEX`jq<@nyhkW z)i(YYHUCS2+k5@mA>F%Wa|ZRqIz*GC#X}6}Bka%;NiRP&NcbF|RY*&Ru(!}&W^Z26 zP}Y|o2t<&zHD$$vdS(1oJZ2U!0n99b-Ee!EN$WGr-oHGf0lOowNXojUF;8$qT=|9? z&YVsLvVC8#n*+IWIQL3r zuOdaz7Btj1OOFA6GLrXvkAZc|ar10VK#T9_9;@B*vp?2RYce@8b*Gv6$KBNkOzUcc8KlEsj&NP~!moi; z%mDrXVa3ohrY@y~Q7&PC5@Ij|%CN+w)C&vHLT50&iv~G}n`Xd!e4~SCS!P$_-gMl* zY5=cGj)iH@&FSF$q4P`%DFka~ZuHLf1>md60sW((y|4b346Q)HmysE{qeY$jzC*WU zFhXu`-2X81aB_I=O@n0SVYIMI8*+R5N+@r~33*iI>iK#4tsX8P^!Ny%jX=pL*a$E@eaqocll)3TU9nt*u zN{2|E4GlS}m_E-Pqx!LVP)!?uoFGKlaG56>-OIP_;U zG|q*n@a?^2*-Qp7iREL&=EYcCk$fzp37fy@)3-nTH75RENxh^^4yJ&>d z>QW*I0b3a7C%|7q3c^Ov-)DyLY_|SK*F1G(XKI#?_$KEHOBps=Wfv(IWhPb}_D_FHB3=)f^NANHmwIhPbZbeII!_op6ix;O{?%N&gPIoRWV$tya+Rexr0%yOxD8O|Sy zrnfU8Q=@;}PfAGo;f!{)7E8gpt>no~$&tf=v6Y^#80`k(ytMSguN`KB3q0K6xTT%Z zlL>vyiRfR;YEODi!G#0IjG(V%wxfokg{UCtCG%CiMA2T9XmDIR0oY!I^XV^^0!%yM z4BOko`X`-FDy?<=60NMHJ!;zvWAdE+4fdkn^M}hQsYH-pFK9_jvxoEeV$_v-G@e(+ zzo~~B42-A}tll>+YlCTrAG>^SVOiGh%c|}LzT5f_^IMOQpj*lV*+g<*;^q}0efI0N zc{RLSw_%`cP}oyivk0=*MZO&VQhqU5mS1}A^vnb~_f%Mw_TgVIks$3#*5eG)-n^ut zrBZR7UOE+9h4b$#b87vS@_X_RhOLSOgDC#5^+SDsx18c*5@X&tk)W?hb4wYAyhT&| zeS*@d!V}lw`)b#D4O`1@9?b1ac#6FEKq292Q;yZIgT0gNwLC&o9n$`<@a` z)h;#fno8xxBc}!C2<|djG6nPWvian8jbtpM4klD4X$LhD=Y?1s5sTJ99_G5Or|MqI zB{^JOH0k~8n!)w`-HmMHuXD9I*|swN=u>SHN>%=4_semqYLp5eNdb0}$upCmU1kPZ zX~RHi4Zp{?N5hwq{Eca0S-upmX(T>o0_@yQ!3TN)U%h3^6!ta8ixiEtY?Rj?Wu5|8 z*P(+kEROGE!*k~sc-NtZ;v~X>I-pts{oAz2!ntz6OOvbVfV0x9T@<({Up`e_*BM@w zLvq$QU&#A6Pi4&Gg*q?TDzF>k%dP0OFUNQi*NjFaTdKbvnIF-6&>t(Ob3Vv3kl9#4NvPn@%F4OTc&m@;M zBAihE!;XqvKR7ju}4XZKeRNqMr+?p3Y%g&?|X0J zsTVaNgnxFdHns$je9$1O-yM#fi-#FmaBfFX=3u}x)`I2mheI_IX`!JRaAJu*R`+Xd z10VXj9=#x};NaO~3g@PwJg+I5!cqRczC6(CF$XMB)3(EzO!0NYI{Af6mudI=U2t+y z3qZi7>C(0^7C*1;Vq4fQU5idW)1~2o8W^kCBe%xhJS9?w_eA*bbK54D4r1^hjE zwf^yy;AJ_sS&n~jT`dOig_b*L?p&*e@ACxsuT1XZ7Z`=Zq8H_Rqm}^{az;T1Gbytr zAAadkc`==N7rZZiTYUrHMgaTBm2;>DXIGJfTxhLjo>gM!0S79rQE-vY9P!RCBQcF& z{&A&t)rf{)q5V^gx1ao9aI%nFErVXZj_JGk$JcpYjq!mOXDYS7US9Qjq7N`I-IoY8 zFU4xonQEE&$I0lw3@GhX99KP>@o|AB-)X2ziA?+^sj%EU92;TP2>Y9Y{4zLIT=8%n zncg1(XT*Do>niGDUkdE8ObXi$kUi`B$!la!8s`J=_2>k#DfhaIgV$y4fExQWm zc+7oj+_Gj*Tq{sw2?~@GZBfWof-|vJ@w5f9F17y%-!vHUp8nqNPvh*s<2d7itEu7j zZ{t&b8h6NthOJ*OclfF~%uJ#trNE`;clg~BtfM}|)?8Od>MO;e4eB$75szQ;=6O_& zpyIeOR(~zjkNYG?yle0JqTW!iw2hctaMz!zl)DOOA^!ZOyWYt7w&xGr{o)VR=jvLM z5AO!bQ=b~(gd@BL>v*PG0x-YsleAV-f~QO5E)j3qA`_l%dmfhTnq>^2=%-bat67i!FDhm&Hu z=Gj-sxtZa@Y0Zg=)AduZs9b}pK_2fv@Rq0<=Aw=2G2_!va#mwAtP!U&QRXfMBPzCNf6~fF)$imG*fz$&`(IIh3|fAKO{0 zoVSynaNZ7jdlrI!IQ=!qk2_q{ZuBf^-xAZo5AJgTRVuaLdo%7y8|F1E`h|4N#(s0A zhDScX@7G){=vCAEUG}|hkRxV9;%YU~BKaF1*Kh~SSj9Bd)U4`6I>xj4`@IBm*84X1 z;THn{+Et(no_&^H$c+5=v&S#)es0IrUH0UkpT7E>r}8Sv_iLYimN`cXhDh3T6`R54 z+O`AiD>{j1vZH@)YlCtQrgCne!a3sm97KyUznWu;1*ohQ=pg4(q6SzC_@ZA#DY17T zE1UwWk{eBj=kPT%XkF1maF3C!ZBRTnPoX|Ie{5hC@HOLW>JFg2a8|3*k_UXCsz;EV z%YqsVe6yf$^ImzU4?uND;r7;1ERW+xD3liV^!4_2_wDO@NIvR@iAo40|~ z5+S?S4bf52K4&ZH4%BJn3eA50rvW-~YalHk*#^l+HaGl-yr{^X56yf?(HOvzJ=X7u zUkBmqbxY~m3X-eme3B@&dRRC&0@`K7TLJ|0#c{TZvX6tWSM^V2gyU@+09VN9F8D0Gat0LcBnO|A%@jZ>l?{9JSc}M~L_7hE z!eBYY+QxF~sz7|oqk1`|Y583W`x_1QM(|W44X1)WS6t_V6Q3W5)a+L1S>atv+x-`v zK)2en;(MFmRN)ODxFw`hBWQ9d`DL&d*c8_M-FFIJ5D&KR55XRSY5W+LzmqWpo_3_S z@Nw`QhY5VksSwVn|1o^^gL`YTA<(XS$^vhc9BjY9j5R-nEn++%+cIRsoi?hRFRs@D zR;rX2=T{~8EgLWTGIAP~c^!O~%XpqR+n2%@vM>vkZPW=b5~Po+!c}|b?J*oWFJ2P8vX)&{7kL6ku)l+fOf*|aFQDh z-5O=!1l$TwMcu8SVUaUTumrTM|9e?G#=_3iq%#GOQGsU^BDGdz3kR$Rv}1pUw;Cu( z&gF)+W6YWV1NRl1|Ld~;4CHE^(S?)GXv4-c+OfZ0PC4^`FOxHyYBzZ{0Y<^M9Dv4u z)}~-%qD)ELYg1gOp3c=h2w#t|2^2HbRzy|k($F&4%_Pg5t#Zyy4zb+Yg4W=NuagJ1 zLat&;aJ_^X+$5Oi(S!Ub2`0hc*BVB=kB^X_BLv{gS{7HQ<^)(p^IbtrKI>xTQk$T) zowXUTGXau&{ww~iI5rlG`gWg>N>gz=q#W$O7{1P6-GI#NU=FaGxDS0|4$w_)QS|CTu37?BWyS0|*Q>b06RGX% zekDCfKJ|qBeXpywRQwD#-f|31?ii$m%OLbZrBmdGoNW$zfqYthb-BQFlC$t_Bgk=X z&(hN6f|-(YT1OhE3mZ5yd4)noaTp^45B`{OF6T7%7x!r$zc-6TBA@A5LY(AF;G3ts ze~L+PTJWdZb+9Y4Eq0y(#y#ldkp55CuQ-Mr8fZrgtq^F1fmX_%IeWRvDRv@#?CGZ$ zrJ@vW2>jNUJPL)xZIgxa`RHF2(9p-bmq!#Hw{WHiv5Gb!MfM5HvIpW|_gk13kgm_> zS>#hk&lcR#vCf&E4eCWi}iaCVmlqqsC2kZ(O`sE?;xxjN}+==)D z7L|9?RxFIfi^U?pdR>{p$)gNt&v4rL^!bLs73Dph zgn{hWL$ks=F5+ph7TJcrG0F*FKajPI8>6F;!wU5w#{iM{K_AvL~x`hXJc!02uYSYtS|8zY#i z&d(T7ld39obt)r^(^#qHtNfF{G1|x-=)+UX!jizU%HXaLuyySLo>^C*;63UvnLrbn68GrApE65#U!=2+h zuEH)|;6(dJU58ZsipvB1P7I#DIxYEmW=!!VqvY?~tZ1l9Tb-?%pa^>!)hx_rn>O|T z;qKkzqp0t_@$byeUUGqKk_{vwf!SLU0-C63siis_!o`>>idv+o34&UCaT9IZ;G_xJXdEi~J|mPa!I z9`QVz;XQp}hSy;4WoBf6Bx}vt^QmtgyfDQjSwBtj|EBmX8odCEt9FtH71n_|nwh(*dc(*X|#<_I8_oRiuaG_tR!~+%M>`IT1?afqrM?mt{pw73Z>fhWj)vF@~%A-SG`ik{t<~5anCZ?IskDUD&`*biI9U z5o9^X z`qfu@XYSznu}=~2cPG3``VIQ2OZHg^9_)!FWpODv@>}wnIhVL9Z`3U<5qKq+E#^y6 zOI76pBEL=kcIw?i_b{7wKWT{x*6F<^=cvns>s_M?K7-YP3@drXx-%a%-s<_c%%x1{;5y2%;UsF_A% zI8NySbveE3XU(VYhip$A`fE+&+h??Aw_6wAd}+p#3!q2VhFzC9#J^b^#sOpSfOZ{Q zr0yNT>jNc*!e^ho=h->))+6V+dFYvEd56K^ZFqR781WAr>u%*feW+<-UD8)T*A!`y z0CGuQ0eRZbYVwPjmfR-xqOSW$;)Ln>6U4Pxv0oZdKYY=!XxvlU!lUl#T@KmI#-UO{ zq+%>-#hIn*X@VD+CauXnN%utXP|u9fc>|}yx4cp{G$PIiB=H~Rz}5DXz2QGST&+a} zI7ltGbp*+=4v>W!8D#0TkvkZs?v z<6xXuOu{MEp}!RzuV{THuB&HnjBu~BS(XT+t87MS(UMSpHGO8U-Kg4Cw;D~qkziNv z4T{CQRXcT|6gittt~NW^N8>w^dVZP0kV~`-ktqioG#wH!@5@s!9e>+cn)O_td#+X2 zyhMI`?U^Q8slB}pIzdtOw1s9apxtYFttM}+RpV;KcYH+WRjjBnZSbt9)P{T4cqBsqHNIn-*Qu zV1~S_wHLR1e*W`>t-2a^8%UY3kikQtxXM}yk1s=vy!RRSgq&A$sOOU2Rp8FsaoqnmF3f(Go@lXrEcl%ck05i_iF@sQi?TYS3ytQzZXi~2s(G7cGm9kuaT3TV#ofbY?-^-mrD zBX0xxhBpM(36bflexYR5eXF&#BCROJXA!p0c$TfNYQG52=x;*Zf@A4+CV%7-a&wu; z{vf&-Id2T0s;6YE8rRE*S3X#; zj|sR3p12v7SJtqj>(*T;q6G$m2n5FWG5tFWu>CFW>2CFWc#CAG_1tK5nO}J##0d#DS8X?b_;Ij^om6^H7jQ0JIT%Ry(>jTV|*M z8a4VP@a5*Xbb`8uL2V^c>!3*a?Mq~Fgyoa=?F&DI4tW32hYR)(?eL~YCbd^C5r*Vb zf4MMcd;PxI+x2x!;wOR;RR`-Mc|+qA$e&SLtBIpsct#s{@MXPc8sVf-+|gQCn#eot zaE163Y)9|iGjk7ppCiuB=3D0%Jl{z;dtSlwh%7ezbLyJu(I&KF&^hB7aD9MO zGh{s2Okz)X$*!gMsqYu+Bz>Zd=j!KRbB@v(Geoa`?nYH^_ze$D*1#}m(@2VV-ROh< ziDLRuH^L9x9V_#iB5xs6pd9`SylYbZ+^{|>KWc4nM(tKZh>ugmIor*M$ET4Px$3v| zQKrt1I~s$Z%;9(*bKa5$&fU{DSGg7+rtYPtds{o24Lk)uS;o@7((4jMK1y2Ywf<6T zWguS-G-TXoPc3ix?9NLg#D8He9qSvux)|tK-*^#oBHl)SN?%Lj19S?1Y+*~d-(lx8 zjNpOZl%(G71>bx|Uk`5JrtLZ4(bMB_Pk8fce0eQ=QycJ3@h4{e+8EJx@}1YUUQ*W~ zxzB|EsJ@1-`4<2gq&N6m&k!_@4<>6`PG1P0!6t27vwp2Vq0e8+FLZv76~eRj!FqW? zq0_^7cUEq=d&^S)QhT@7I+YL9@hM60#9bJ7nBp^F@z$0C8Ge^{$nZMPxPQ6$PxdEk zaqRL)`B{JK6;X$#_OmY`NqCVEz z{J{j*q-*fREjqWFTx(UfQhh=)ASr1xfB$zMBOd9`>mT*?)9Ug}8kM;tYsau1>S-T60eOPMD<{%l=tSu( zk0)+0WKr?iL|lP`1Eo>(=vcI+inieu8kH&oFAD#^=ymwio}zcg znt4!q+T)_p+E~V0v=jZ7aW|dblLd9*m6Saw+~mi|uVaRxEOj)Oi^D5N?$Ay$tuT68 zsi?lTbBYW6Y#_Yy+gm7aKSg$725Js}!ot>e{X3{=;`^L@++C5(>rXkC=vfQNl&Tha zP|;*d^8I6)wm6nPQ$clCUoN~kaF$9*$cG2{@=j1ySRFTOx?b3yuaQ!}=}QQji~7O+u#e~`W9zFUMhi9_ zmXi9y+I;QpG|~dnSS4^@@-#x*P2UE2lC7eNcz;&f$kX;0rwy8C-J58Vt;707vo|Q=IS070!2w7;G?8SHgvS-&sYHWzK+({Haw<^oQAN_&EMpP7yWTt!(g zM%#5nx^lKH=`a3?Dqh<%G^p_t2atip*1 zu@WQjJOnz%<8)*?wzgz{=bt${BKh}sUeDW+Dd7XI z)+ueAyWGSw(R-EC--S#CIpt88j)3;J!Y<`Vjw*Q+ct6E{XAb;A^LfW=D;wLK!{M!& z$Uj2u(>b0oae9s*zV!msLM#W*Q&x-$k$>iZb3Q}XgRU}$qxIPbV*PqW++w912zqPE zfq<4d@h5WVJ7tq_VN5jQ=b&dYiSihL4KhLW8K*SWB1Zw%!5m(}m-riK^{Oz+ThLzq zOvKu(c3c_LeX$Na!EdmlKfNK&JL3bJ;#*V%VPr&A&RPSI;lU?!qrIhu7Bt%b|!|4((GF z)tqrh=I+A0i{wuH&cJ*G+U;(3)2_C*M z9lG+wdDPUwaG}S-KaL4cMJ=`8Xje@b53sRUS;_EO<|RBx z|Lf;hJ_))j@#IL zh%+JYieU7NGa7l-5XM3le{~&d2y3}CtVQoFq&3EKN|+mOL=LYKre>Kr z2C6pRV?E%mVjOzS1@udpV}*mTnU-VcNfo;(3GDVXt_imta&Yn?d$0VUw+J|Hy7!L8 z2OFMfxP!d>vI*CvyJa33hk)&-2L8X##ZytL0B8RHnU80Nfm8FSY&7WDSN;`mzaz)R zA!m?tbr=5S^H91p(Nh|HR}U!Ib+rtE_p${wUVq-XQ7VSFm?*0TA?l$Qq>RjvemwSMr85rzz>?&v$bVg$>J1_J* z{$zdG3^;FIgm zL|LUMBN1gNA}V*H(}5Wf?X#k1^7_z5Jem8?^90ZTevw-1`HP-tAb8PpzG>77Ip095 zPJ*Uox>@s4e0s)L8$H)eF@l00Y+l^@RY*pzrv|%`n9(v|ksRER=;yrUZGa_P7ZaCoTU0*FuVF%nq zt0W)o-pI6v@oY;Lt%rX4sBMK?xhg~21He$={}LI}%7D3&8Peu3EkhcuCUJ+@TWCyc z5_!x1afY-+-m>KWB45_u%8*8x*t863$y{t)JVTn6i|rq0NK52mLxwccU|yRc?av&i zVq_O@M?&Y-$ldoY_Gk?&wzn}qvZWQ-*MhtGV7+&UCs(5j^sAprGzf>wW8>Dh(@QgF$&2N&%W#$5FcO7tTu@Y8u0RHI|VLafoxvQ`z zc#>Rd^BCI5rzV1b6Q=2 zGpYS|8PmqI43)wlN1&PyjdJ!Sa-i7{rDRN#PfP?{EBB&$EUJOLk^fm&BG@7nb9l%tLK?J(rrS5Zk+%cC|4wsFcRys7~@h=n8r zL;eM)JlPt2b3G(rWAkEQm*?MXS=O?gcl5~>ju!S_BfA~bbQqA0($IW{APO*l`q zo(j&dr`)vhAIZj^apsNxom~7J-bqqX5T9D6#9m}dl;JIfOq_hCC_U3BPR;qjGUP`j z3YwE%%J_mtU9zKWh$QjRd7Fjv23iW*Ni=oEdOEkYrA#iuHA$7~GXg^^z*t=F^+0YT zS@$_o;!-fl#v}!& z0WfqanBYDx1^Y-E{6|vo%U4OkFRFaU6jc(oFnVFoGM*<)nrv&LZwrs{Z4W#Jz3_}pC#E9&?DEl z6mS+L>?udO`me&_Mo#eXtOWge5KjQI&W zDWZv!%KF-*aR%W4a1>z(oHvdOBa3>Xg{MryTRq@YI1@K0jTKrc7cTfUW_DF`;Bvf1 zx12?g7+$fykzl>6u?#S^egS{9X0_v3hnPX0U4qSLGo#IcNyJGO$d z@9*4lQNs@3Y_;*cj*A@FdtTKs>ThV*D0du}fpV*Qv8S*0XaC zvWy(f3y3msTYis7A=D6m^Ji<_maeBS6=RfWXdsJ6rg+gI8RRn)>lD!;^p?%#l(KqG z1Z}h^Ngsg;`M>QY&)7AKc6e>7E?)IBhE3qj3{k$->+2D_9j)BaNvI0vXe(^|Edi(Nd1t1sP0ep%j06};YOa@E2AQbsi|kg(us5HP`iQiN&7vB zS-#hs6VGu38}@OrEw$CHb2Hb zDu~Hv4was4%ZrgLj{1?%_GU%tbdp{W|GLPQLtI$Dvz~nm^;ZkwquuX3$=wix52Mq; zUl)@82Z8!Cs`hzuq2=0hNV0qM9UVK z5WxYz&`;{NcpJD-pU5$917ZOhc&u zmL$ukMgODztvxTj@!hDgMF|Q)H!|#(v`qK*_R#81m#w_LMRG{OyYXw0IdCl}uC2_8 zYem?vx90@B#~d^+e{@SJeqo80UEJd>1m~yHf3jKh`+LMKWi9XapiI)1>4<#a{Rj$-xd8k_vjXSuhy!Ii?`+}?m^2afvjIQYco&vm)qG(=T@_!!9x5ayW;4z z+V~sj`5M{wcI&$by;gM`bgEfz^I!oifMkCq{}^8NF`B9%dd0p)w#4|rbj1+3LlFYg z6b;UKZdL;WVJtul5ZULR|DM>*LQ~+s+^xvJ%|~n%d3rp3cS%qQGW7)CAs=}@J>nb8 zMWmSi1Txep0mRXP)4C`OXucMA$dQlIBP|#U<*7Fm=#@cs#^L^I|JrTjTfJlrB7~DT z%JUxCMO_)b)6xM;G_$ix8P+*j8Qxi~*fxA)?Z$^|+`#S~AIZJ4|ZDc&LPbsDwtqHRF)!XgZiz;(zPkfHjGkcaoS__$Ny z61IIn?y2;=EhGKbhVtlWzc2i)Er@-=-B^|cFA>$2jT1dVp0e7fWu-x^0d~kf7u+rU zgtPcTvD*;0$mWMA1CtI{I2{AX6dE4o`@dsuO|)gT{k z!1vt(YE7}w5!BoucmagPbEnPvRJ%TOyEl))r(6zt(UNxa%}2!U!`^mf?IP9hsbbodp7|1$AejsL9p zydVD=kQ2@p_owH$mhbAToup$F-|;+rBB@r?1o?DF)-vjShP>z#;&T=4vopy~rjyQ|GEH7*a0b@b?q{JYzc!9zO_qkVh!JCopf&v}`ZaIKWKE*v z8L!P3WqQ9w7Pr`C)a8^>l~ZwitZ;7MG89c_4&uZd^_ir$k*ZRCNeB;qF--E& zcxYVVeIjbt$b%G-tBu7Bynxs`^(r}1t-n;5)%<}@rH_=!EAZ;GpnE6ehjgfa`9}Q> zNgoppe)I3qTPw%(sPdO@r2fZSiJQ=TP(q)6^Lg@jDT{l(9tr7C(K3ZQYWU>&#Xmw&#=f< zVlz0NxhMo=J4!PkJQHq$=!klz2Dv#*(jf;QA07}9UZMFiVh@0wwbuEd)dX8t-=pew z99NfN1s$h$6y;2{1Xa2qYfl~t(fX@T`uN1#lJ}B5gi)16<2SN5YtO!XC;Vyu#=TTu zBIJ-*jELeT?aF13*v7hG+pAy-G=hjC_6RI{SemeIf6$Le3L%J`NI~H@d`PP{$Z@+b zNE^8}Pq~M?x#^vKMo|)A&$C$VK1O?@MXAEW>93S~E%K$wI4MFr3$x}!Mn3AbM$Db(8Z@}gKQEt2W;pd; zmRypU>wSl(`r6Zv6^g?QLN+H#cIHHO!1+RKggDG-*ue6hLB@Z%qFvct6>)aDW{O96 z^T>_X8r654=OW1IKTQ_qF<(t*mMAkiztd!fYd$Y8n+vnec}~=UIL=1N&MU|rVCp=$ zz}=~h=;be~J7+o+76{jrN@51q?OcPfiw|j4?`YL3BduX^QweB2t-9nFf)kegdfyBC zSPqx=Y6J4F1%+M9P-OwDy(`_RxcShz26NoweD?)I=l-A%zTHC5A2jUZj%&4-hL54% zDT~CvFQ#W|ovi!TDBGls>HWW^m(px6dl(G$;wG9q?ec^sqo`olSlX-J!l-~%-4CAF ze3V9@$4czJfOvj9Lv4Ej5iG4$%w(uF&S*`_{>XgNCM)XsQd}w9ET8%I1#SbZ#iIFj z!-g#9vo6!?LN*gKFrM3E6uXKT-o5Bi%n+59pC;s>FTPqU?(dxK&AmW0lI@32WrQ0P zPp`G}@|{CM2f^T%7Y+C%ANaX)^aA~&aflPG8iyE}I;~>|Dky7n{^C#6i;3o!&%~;T z<+OD`9<1*%MI&wrwxhq`4OcoxMa4~r7t=hX)>|9aIxKi6afbP0G|tdFP57yVtPdJD zqvk6>wk%_3dSgi^hx~^u&L2sCJs0QdIWBnlTM-N9Owj`N4d+ytLQbUxl8L9aZ^pBzH?O54x`;x0Xw7i{BYF|6=z4T>N0eB_OLzL+#)CX<8KXpO=sPr zY)^^(a^-LBrFJ#)oGXOCp7S%`;YEmTs`SC9IFQGF-5m@RPwaxdVDp+38K4lqP>s#c z{UV~IxR>afsnvAZqeK(u@gPs7!*UNV1U)#CY0J(pvax)X*Ew>p2$|Am$e&q~%e>kA z@CxyL(X^?;(TUqi?RXd zHZCCjj^F0m=6LC+kz;t<`)|xx#s(zxHe!VnZwTWr2)>g7|+Bxs3 z2uZuHC&hSe(Qq+St^~)NFe1x1Wg+Y|Yv+*Xnij}md!KgxZnbK3gz%=luk)k@Qm>z_ zf`r%)32`-GQvz;Tt>RUCuYQte{2AvrYKPQnWsaMZZy?_Gl%GxtqR$k6uu4e>HAR)t zdBBO@@BwEhYN8i^NN-^K$2`sgnE6q2eCB@h-OGfIDZALw zX}e6j_`uZHyMw~()=ffxj8n5*Ks4( zTa7*Zh-a+doj;}Hv5px_4mmw70-{{+^$w518^C3KgJ$+E>*=NQmuaWNJI#!&U~5bH zu70sfATG8ab%o%sgwsi~$ID-`4TPDfH7Xf?C3Ngixd7u)e^7WOxtm0Ln;{)KH~JyN z2#9)^BFdcMl^tqV_Cpy!&l{8h82thwXWy1aYe zW$RC}z0H!#>}P_*qI6B!@+oJ!FpREv&dQk(wV^$I zEUICZBZ)ntxNO$0wQO1-c0%9WnHHPZNvn6KmF^SXVx9IlR|g11-uHQ(88Oz$j@mn6 z=}u7o7b4=ue?q3T{l6EY&8M@6e4P^X-_mu0jo#+529_C}22OvctJ9~(M0^J^5%)x; zjnrmRyhrb}r4eD>iyMi{`QZ22F~hoYaNk%zoGb$}31^8C)8%#+8G(p@T~-cWHm=*z zShDVFp2VO&4LmKp4=vG04E)-wDp>C@t~Ir_G$2TF) zn>e?blpUc%Y`Y(y86Ej`dyxspv|%>>nm5eBU%ul3%8e74r5FPbDyG0}#T@v7!Zysp z-Smz{im+h@zDXM@8-Jx_#H4}hr;^;B%GJI^u#bFC$aa}byHzj|wr&av4l>ukA| z^K3blPuQ|6H7E%e*A}q}Y(u(>8Ew7kZbiuJOD~ay5&P3iHGMI(CYOYchi%*qc>f?_ zlQitmjt1?_4m)az&=q!!(HYh%NDwY8N0b*yJvTRXcgt91ZS~(zoQukQcx9>_3gq^G zO-JMtG}K~C_-j_eW_vZ6>9R+FYm;&!|Lr_c7EXg38EzRK5pt1@d91|cEqkZu^fJ&e zixtqy3V}Y)oVcJt7Ev>)++(+v47X0KGX@#53K7lH`1=~WB&J7krbThXgeH0~OZz)Nume;e7hBLEwx7euxoJ9-^VqT z$kR3(*%)qZ%nTh~!r1nDjb}i%%~uh<2|4g2WHAdWCDS;)V7xAEO{JsxK_3xPRS~#nIlh(;PQE=1Pwye9k23Vd3MEm%r-08nBZlSI z(MSd!64&v1yDuNz0h~1NsCI%Z%A{iO%gAU=Bj&(O3drw<+UNz6YNbP_o>#ZT>F1Gr zs_8>qcIoBJ0fI}i1L*Sq`1}`<-)%P5aE%wyPuMrhx%>o1$O6_ps8TKBQdAv9qqdK` zFUV(SM6bL(=2H{+p0ul62zC#+K9Wc>Ky~AF#z)w) z&Fgk8n+;8ZX&w8-9mjYtf4MpiDP32*ZZ@(O+_ox9Z+r6sVO?K19UPcFV6-a&w=M0c zF#?NPcfZ5I6aFN;A*s7;^2xNQ1yIMwvq(X6`d{2>|LNUB zFUD6YHFw%XVAYuN%Of~B7CBfUrg!(-IZm6?x8po#<+O|r?s#{& zuVig*dSZW%9JMSWZdKKY*f~)?V=c|H8lxGjy2F-B@);pU-`=?-pZ)xzd^Q($LXAJU z9d9KIN@Qw!98%~_5xhZIMVJq~$to-I@Dh~XW);_K`TU6AX2-Ki?#d;)q({@U2<PBT#_?@e6g^u5u}$UAl(_LTMB*x(q~%48K7s%68M3I_-!yrge-C0 zO6J$*hyo%k+3%Wbm994lRj%P(^bTone+lmRE!jqj+EafQvIRDIRsNe( zo~9Oi-#2ufX_7)Y-+j#b`?P(l#Vc97!)wI?<-lCJG(LTm_LYI0iRAC0zKHQ z-Tiiiv?rDhsWjL2Z!2e);6#hhffIe+FW8tUwpklykf%o*Lq)QjCT%y49CfrY+b|K; zwwdE4i;WYD@omD-1|IYGWQr0n##DC8PZ75$xSQB0USw^%f5wH2_pz6z{ER!}KQnnq zK7HTD9dc$cQRE{Ec>o zPrf)Ws$B7~gnV`_d;u3MDgquLnO8gqWGYi_R*!PH!N9@O5wtulwl_4+_nc~jP%F|~ zIgvOF85K&aT!4Snc+zsuS}*NT;hN{RGs_YVInp%x3?A!>d{&IDS(2W(bNMvokKWBb%$PVvn`$tAv9g;zG>PC3%rCyzyO(zcbTU(2y%I!sR<;z7% zq4hG3C=!<$9Q4L3hwS@a&TA%kF=)M-560#{g6eUr2OiKAxtptOVkOE0Rf zw6`NyWTn_{YOn8|tE>j^dB4kZYbLl_Ke7!`=E$dUk1|BIC^RyQ5-y%>W4Eknd{`lh zTXFg60lH5%Y;c9&5|3#s&KKw-rd-pjMGh6bvl%;{7qK?Y7Ma1h;XSN>bx%`%HM4Kv z&Md)M=NnN2Y=phTQ0NsqxKKu9Hav*w z6z}VKa_)?Vk1lZGwIVOSrfSVHQ*h9G=c}-P#qbcK`o;fo`MyDo>p&LHctn3PPbzRK z-l$`r>!V7KG`7m*YJazVe@|Xd`djX0rR{ZHxjiji?q%+F>zl)ScD7Gh>R#b!w_1(N z(qprlSU&8)X4(C;q!7*^tyLSx9X+tz=oYTQ6<6cFExm^qwJWt%dG5Qd?3mIfe@56X zBN|wtywn-C9PcmTt^fA3BY^`?XGETPy5$>p-+8)go3y{akM@oBbxkAf(YG&adGTnE zbf`+^)u6mZ@4>ptapG60&`h=i?W7Vc7sg6}*;Q*ycS}gvrk`*Dd0vf_Q78_-EoL2l zH8{AsAIgM9zmtT(zpYs@cz;%DbFKoecyALhRsJc)`90T7&R*0s)6Hiai93fpAj57T zLYqmvbbdjd0eNxA#;rnRvXAQgjP`D1b~fN#T2!h99X5~be;2`rLst*GOsh;e8W!Pv z%#)y<6k=CGS;!~;^#u)zj~o?SRVw+S7^v?Nw`o13?h)m$K)#R9T0W}=gc7V+7DgO> z?A~Sa$%_}R>>G0o{Ni;!>s{`(BY*cJD`GDKKQsQGxz~=NGr4W;9`Ao#d~xlbhI1F; zn{;edoT?{n^Q2!WL)JOc_lxrMMMQ6ju3wj+(C3gJN!uCHCuT+MKlz}iWOwOqsY};( z-51xe%}cCM(!NT$G)PCc*Uw~Hiyd)Xoqr`yU9lROz3Yo}1vkd~j7%loT-({{-`4Hl zx^9FOY);@O$`0gF#5GmVLgN}jz2Sw_lh`5;j)auUw(@J7YwFi%Z>r-nVY|8IDT$97OL*2C6~Rd} z*hctB@3wRC)lT)fAbO_H=>5M~78yd?DNu3vX-iCp^cnx25utVa$bYaw!{LMrlkkDn zUqG;+S~Zu?bYya3Gib9x{3rGPJh2&8seh6O+}pDTP$OcXboaHpb+sKliHB^_!wb3< zHc=YYou&L|z?jU{Qn3{G;`*ePziOjN=GY*cKH)Oa7wy428r63cs_!tUXKDNs*_=fx ztc&~qz&d@+I|yFBK;A3L=SbNuQ7`C*s{PsyKF3d1RNa!H8d?brCar(jrfB0}1@qdc zwdd~3dt=J-sqL%Vv-V9{KBYY!f2FSZ%jR`i-kATiG}a(E+vhKR46v(?4&DG#zG#pj zFH8Ah*ynXRLgSzw2zO{J$II;KUJcT%Tw1F=lePD-{CS}4n#A25hyLW*nvU96+9+wK zg{yWtp6l=Wvi$BWX3(v3&>pHdCiNY9?y@hwnuZ*q`#UWS$y4;jpSVz3WO_mZ%ZL3! ze?#&Nk}nEot4dq6LtiXZHPf55Rh`6Z`goR*9lrRJzO$+Cpw^o1Qk4OG{=s3f)y|KM zRb8v?E#}HbiY(RM2nI%-MXEmx)^h=!C*T2C746Lic-5pwr8UIAj~t_&QB{)}VsR{( zx(0ysMa+LXXpY+bG}=Q?h=6CtZoMq3c;XKE@<$AG;@Y|Y&3zn*?_+*D=f zRF55u7+y<3Kj$CQV+pbx0di|CEc?#{iN-dkQC@WFk$CZ3NVS5DKaA&+Fhpam?xR&9 zZy1{Y=YHcrS`TEBeC;kg8bhXkIPN5VyeS1g($k=!afv2%t*B2>9+`aJa()I(8rMNV zYQ-?p9v2K`l=_ivsYA73h6s?9fI6{g9?{g(Q( zL5rG`mFMKfc4Pp8Z1#8Z5KWeSC*k3BbaJ>iz2YJ&8}I=TBG9AW6D3CRdky z8W}veBlbbgwOgM>5=Q@adk25SZs-42dp(Z}z1}9Ze19E#-a0N${JQuRa)F3EvEyLit0<%ERN7Ai=zT#&YX|DVGEv z7Zx^$S5Dgle;Mr27Ymt8EuQx?&|=2q`=!nA0ovss!qa3k+JMRh{Y5W-_vO3yibZ`^ z$;C#}mEZjW_2CudA4Hb=@Je`5V*jgmg;yGBOx_GmIKpJ2Db!-OpQ(9) zw71kYRC>wpNNLipU;dmvd9GW<6g>BS{L^O8ewT-|-=+9{FPG{Iln)=9W9?tJllFo` zoi!%%;!OA~^4y#boUDRik!82!w&e*w@hD>>hmIAyIp_U$rIguo80prij&qlJ8gdze zVhZD$N>=7Zb)8D>gVx0vF;fm_7jl?A&&}H=){XT~tV`P>xh1i}Z5HLTA79LKKc9Pd zU;!V0?&6-Ub^HL>T zcETLtl!yq;LN;BCajDMRy)4HrimNE^vQsGlqtPg)ln zV@zQK7n?+N&vy;65S^~9ZLcbX5iCk~iob;`f0_3eRNH6qzD2h#n!O0oD1bBWbj#^h zl9iz20;F`p9tD`0(*Y=KCR@q*3%U$a``|O)a~HKMItdY{$0^zG5mABO!6N`&7H@m( z&L;MWDazqHd?K8jAb)oF;=Il~mm>>XY(74DNTaACd(qTs6<0KCd&}JSi@!fl`j&s? zId9IVg