How openipc/aic8800 works
aic8800 is a Linux wireless driver for AIC8800-family hardware, with a separate USB Bluetooth firmware-loading path. The WiFi workflow connects Linux wireless interfaces to driver control and packet handling, then transports messages and frames to device firmware. Firmware loading and chip-specific configuration support device startup; Bluetooth has its own command and USB path. The README is minimal, and the sampled source is partial, so links between unsampled subsystems are omitted rather than inferred.
Main entry points: rwnx_main.c Driver interface · rwnx_tx.c WiFi transmit · aicwf_usb.c USB transport · ipc_host.c Host IPC
Components 21
WiFi interfaces
- Driver interface
aic8800_fdrv/rwnx_main.c - Mesh support
aic8800_fdrv/rwnx_mesh.c - TDLS support
aic8800_fdrv/rwnx_tdls.c - Radar handling
aic8800_fdrv/rwnx_radar.c
WiFi datapath
- WiFi transmit
aic8800_fdrv/rwnx_tx.c - WiFi receive
aic8800_fdrv/rwnx_rx.c - Transmit queues
aic8800_fdrv/rwnx_txq.c - Firmware messages
aic8800_fdrv/rwnx_msg_tx.c - Message dispatch
aic8800_fdrv/rwnx_msg_rx.c - Host IPC
aic8800_fdrv/ipc_host.c
Device transport
- USB transport
aic8800_fdrv/aicwf_usb.c - SDIO transport
aic8800_fdrv/aicwf_sdio.c - PCI transport
aic8800_fdrv/rwnx_pci.c
Firmware startup
- Platform firmware
aic8800_fdrv/rwnx_platform.c - Chip configuration
aic8800_fdrv/aicwf_compat_8800dc.c
Bluetooth
- Bluetooth loader
aic_load_fw/aicbluetooth.c - Bluetooth commands
aic_load_fw/aicbluetooth_cmds.c - Bluetooth USB bus
aic_load_fw/aic_txrxif.c - Bluetooth USB
aic_load_fw/aicwf_usb.c
Other components
- Linux wireless stack
- AIC8800 device
Connections 21
- Linux wireless stack → Driver interface: configures interfaces
- Linux wireless stack → WiFi transmit: submits packets
- WiFi receive → Linux wireless stack: delivers packets
- Driver interface → Mesh support: supports mesh
- Driver interface → TDLS support: supports TDLS
- Driver interface → Radar handling: handles radar
- WiFi transmit → Transmit queues: queues frames
- WiFi transmit → USB transport: transmits frames
- USB transport → WiFi receive: receives frames
- Firmware messages → Host IPC: submits messages
- Message dispatch → Host IPC: receives messages
- Host IPC → AIC8800 device: exchanges IPC
- USB transport → AIC8800 device: transfers data
- SDIO transport → AIC8800 device: transfers data
- PCI transport → AIC8800 device: connects device
- Platform firmware → AIC8800 device: uploads firmware
- Chip configuration → AIC8800 device: configures memory
- Bluetooth loader → Bluetooth commands: uses commands
- Bluetooth loader → Bluetooth USB bus: initializes bus
- Bluetooth USB bus → Bluetooth USB: uses USB transport
- Bluetooth USB → AIC8800 device: loads firmware