PRELIMINARY
CYW43438
13. WLAN Software Architecture
13.1 Host Software Architecture
The host driver (DHD) provides a transparent connection between the host operating system and the CYW43438 media (for example,
WLAN) by presenting a network driver interface to the host operating system and communicating with the CYW43438 over an
interface-specific bus (SPI, SDIO, and so on) to:
■ Forward transmit and receive frames between the host network stack and the CYW43438 device.
■ Pass control requests from the host to the CYW43438 device, returning the CYW43438 device responses.
The driver communicates with the CYW43438 over the bus using a control channel and a data channel to pass control messages and
data messages. The actual message format is based on the BDC protocol.
13.2 Device Software Architecture
The wireless device, protocol, and bus drivers are run on the embedded ARM processor using a Broadcom-defined operating system
called HNDRTE, which transfers data over a propriety Broadcom format over the SDIO/SPI interface between the host and device
(BDC/LMAC). The data portion of the format consists of IEEE 802.11 frames wrapped in a Broadcom encapsulation. The host archi-
tecture provides all missing functionality between a network device and the Broadcom device interface. The host can also be
customized to provide functionality between the Broadcom device interface and a full network device interface.
This transfer requires a message-oriented (framed) interconnect between the host and device. The SDIO bus is an addressed bus—
each host-initiated bus operation contains an explicit device target address—and does not natively support a higher-level data frame
concept. Broadcom has implemented a hardware/software message encapsulation scheme that ignores the bus operation code
address and prefixes each frame with a 4-byte length tag for framing. The device presents a packet-level interface over which data,
control, and asynchronous event (from the device) packets are supported.
The data and control packets received from the bus are initially processed by the bus driver and then passed on to the protocol driver.
If the packets are data packets, they are transferred to the wireless device driver (and out through its medium), and a data packet
received from the device medium follows the same path in the reverse direction. If the packets are control packets, the protocol header
is decoded by the protocol driver. If the packets are wireless IOCTL packets, the IOCTLAPI of the wireless driver is called to configure
the wireless device. The microcode running in the D11 core processes all time-critical tasks.
13.2.1 Remote Downloader
When the CYW43438 powers up, the DHD initializes and downloads the firmware to run in the device.
Figure 32. WLAN Software Architecture
DHD Host Driver
SPI/SDIO
BDC/LMAC Protocol
Wireless Device Driver
D11 Core
13.3 Wireless Configuration Utility
The device driver that supports the Broadcom IEEE 802.11 family of wireless solutions provides an input/output control (IOCTL)
interface for making advanced configuration settings. The IOCTL interface makes it possible to make settings that are normally not
possible when using just the native operating system-specific IEEE 802.11 configuration mechanisms. The utility uses IOCTLs to
query or set a number of different driver/chip operating properties.
Document Number: 002-14796 Rev. *K
Page 54 of 101