Last edited 4 years ago

WLAN and Bluetooth hardware component

1. Article purpose[edit source]

The purpose of this article is to:

  • list the WLAN/BT hardware components that might be integrated in the different boards
  • link these components to the corresponding software framework(s)
  • point to the datasheet(s) of these components

2. Software frameworks[edit source]

Domain Peripheral Software frameworks Comment
Cortex-A7
secure
(OP-TEE)
Cortex-A7
non-secure
(Linux)
Cortex-M4

(STM32Cube)
Networking Murata 1DX WLAN framework

Bluetooth framework

3. Murata 1DX[edit source]

The Type 1DX[1] module is an ultra-small module that includes 2.4 GHz WLAN and Bluetooth functionality. Based on the Cypress CYW4343W (previously Broadcom BCM4343W), the module provides high-efficiency RF front end circuits. The module is designed to fit into small spaces and is smaller than a dime. Minimal external circuitry is required to complete a radio design; add an antenna, a power source, clocks, processor, and associated interface hardware, and the radio hardware design is complete. To ease Wi-Fi certification, the Type 1DX module complies with IEEE 802.11b/g/n and Bluetooth Version 4.1 plus EDR, Power Class 1 (10 dBm max) + BLE.

3.1. Linux driver[edit source]

Bindings : Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
Documentation/devicetree/bindings/net/broadcom-bluetooth.txt

Sources: drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
drivers/bluetooth/hci_bcm.c

3.1.1. Pre requisite[edit source]

1DX chipset needs 2 pieces of firmware to work:

3.1.1.1. Bluetooth[edit source]

The ST Yocto delivery includes the following recipe:
- meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware-bluetooth-bcm4343.bb
that includes the CYW4343W Firmware which is needed by the driver: CYW43430A1.1DX.hcd (firmware)

If the newest firmware versions are requested, they can be retrived as described below :
Clone bluetooth firmware from the Murata git repository:

   git clone https://github.com/murata-wireless/cyw-bt-patch

Copy/Rename CYW43430A1.1DX.hcd file in the target (rename needed to be compliant with the broadcom driver):

   cp CYW43430A1.1DX.hcd $target/rootfs/lib/firmware/brcm/BCM43430A1.hcd
3.1.1.2. WLAN[edit source]

The ST Yocto delivery includes the following recipes:
- openembedded-core/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
- meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware_git.bbappend
These provide the CYW4343W firmware and calibration data needed by the wlan driver: brcmfmac43430-sdio.bin (firmware), and brcmfmac43430-sdio.txt (calibration data file)

If the newest firmware versions are requested, they can be retrived as described below:

Clone brcm firmware from kernel.org git repository:

   git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Firmware is available in the linux-firmware/brcm folder:

   cp linux-firmware/brcm/brcmfmac43430-sdio.* $target/rootfs/lib/firmware/brcm/
  • At startup, the MURATA 1DX module is loaded and you should see the following dmesg output:
[   67.306154] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug  6 2017 23:19:25 version 7.45.98.30 (r666241 CY) FWID 01-f0b000
[   67.326146] brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.11.15 Compiler: 1.24.2 ClmImport: 1.24.1 Creation: 2014-05 
[   67.676323] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code (0x30 0x30)

4. References[edit source]

  1. [1], 1DX
  • Kernel.org wiki

https://wireless.wiki.kernel.org/en/users/drivers/brcm80211