WLAN and Bluetooth hardware component
目录
Article purpose
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
Software frameworks
Domain | Peripheral | Software frameworks | Comment | ||
---|---|---|---|---|---|
Cortex-A7 secure (OP-TEE) |
Cortex-A7 non-secure (Linux) |
Cortex-M4 (STM32Cube) |
|||
Networking | Murata 1DX |
WLAN framework |
Murata 1DX
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.
Linux driver
Bindings : Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt| |}} Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
Documentation/devicetree/bindings/net/broadcom-bluetooth.txt| |}} Documentation/devicetree/bindings/net/broadcom-bluetooth.txt
Sources:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c| |}} drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
drivers/bluetooth/hci_bcm.c| |}} drivers/bluetooth/hci_bcm.c
Pre requisite
1DX chipset needs 2 pieces of firmware to work:
Bluetooth
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:
PC $>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):
PC $>cp CYW43430A1.1DX.hcd $target/rootfs/lib/firmware/brcm/BCM43430A1.hcd
WLAN
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:
PC $>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Firmware is available in the linux-firmware/brcm folder:
PC $>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)