Last edited 4 years ago

WLAN and Bluetooth hardware component

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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