WL18xx Linux driver uses the open source
components along with interface driver for the device to realize Wi-Fi functionalities.
Figure 2-1 shows the high level driver partitioning and architecture.
The section below
briefs the high-level components in the driver layers and their functionality.
- WiLink8 FW – The FW runs on the
device HW to provide the PHY and MAC functionality of the Wi-Fi. The host
communicates via SDIO to the WLAN device. On the device side, the WLAN MAC is
responsible for the 802.11 MAC functions, and conveys WLAN packets from/to the
external host to/from the FW. The MAC is responsible for the timing and the time
critical decisions only. The PHY performs the 802.11 PHY functions of
encoding/decoding and modulation/ demodulation, and is responsible for the RF
functions of up/down modulation to carrier frequency, filtering and
amplification.
- WiLink Driver is an abstraction layer
to the device HW and FW. Implements low level operations required to support the MAC
driver.
- wlcore: Implements the low
level driver for WiLink devices, supporting mac80211 operations. Contains
the common functions for all supported WiLink chipsets.
- Wl18xx: Implement chip
specific functions and services. Supports the wlcore by implementing
HW-specific functions.
- wlcore_sdio: Adaptation layer
between the SDIO driver and the WiLink driver.
- MAC Driver implements layer-2 Wi-Fi
protocol requirements (data and control path). This is a generic component, not
platform/device specific. This layer consists of the following components.
- nl80211: Implements a
net-link interface between user-space and kernel space components of the
Linux Wireless solution.
- cfg80211: The Linux wireless
configuration API. (This is the lowest layer that is common for both
soft-MAC and hard-MAC).
- mac80211: The Linux kernel
module implementing MAC-layer functions for Wi-Fi Soft-MAC solution.
- Hostap package: Contains open-source
user-space package. Provides the upper-management layers for all WLAN roles (STA,
AP, P2P and Mesh). Generates 2 daemons: wpa_supplicant (STA, P2P, Mesh), and hostapd
(AP).
- Utilities provide initialization and
configuration services. Implement debug and statistics capabilities.