Registered User No edit summary |
Registered User mNo edit summary |
||
(18 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ApplicableFor | |||
|MPUs list=STM32MP13x, STM32MP15x, STM32MP21x, STM32MP23x, STM32MP25x | |||
|MPUs checklist=STM32MP13x, STM32MP15x, STM32MP21x, STM32MP23x, STM32MP25x | |||
}} | |||
<noinclude></noinclude> | |||
==Article purpose== | ==Article purpose== | ||
The purpose of this article is to: | The purpose of this article is to: | ||
Line 6: | Line 12: | ||
==Software frameworks== | ==Software frameworks== | ||
{{: | {{:STM32MP15_internal_peripherals_software_table_template}} | ||
| Networking | | Networking | ||
| Murata 1DX | | for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} : Murata 1DX, for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} : Murata 1YN, for {{MicroprocessorDevice | device=21}} : Murata 2AE | ||
| | | | ||
| [[WLAN overview|WLAN framework]]<br /> | | [[WLAN overview|WLAN framework]]<br /> | ||
Line 17: | Line 23: | ||
|} | |} | ||
==Murata 1DX== | ==Murata 1DX / Murata 1YN / Murata 2AE== | ||
* for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} | |||
The Type 1DX<ref>[http://wireless.murata.com/datasheet?/RFM/data/lbee5kl1dx.pdf], 1DX</ref> 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. | The Type 1DX<ref>[http://wireless.murata.com/datasheet?/RFM/data/lbee5kl1dx.pdf], 1DX</ref> 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. | ||
* for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} | |||
The Type 1YN<ref>[https://www.murata.com/products/productdata/8815814344734/type1yn.pdf], 1YN</ref> is a small and high performance module based on Infineon CYW43439 combo chipset which supports Wi-Fi® 802.11b/g/n + Bluetooth® 5.2 BR/EDR/LE up to 65Mbps PHY data rate on Wi-fi® and 3Mbps PHY data rate on Bluetooth®. The WLAN section supports SDIO v2.0 interface and the Bluetooth® section supports high-speed 4-wire UART interface and PCM for audio data. | |||
The CYW43439 implements highly sophisticated enhanced collaborative coexistence hardware mechanisms and algorithms, which ensure that WLAN and Bluetooth® collaboration is optimized for maximum performance. | |||
* for {{MicroprocessorDevice | device=21}} | |||
The Type 2AE<ref>[https://www.murata.com/products/productdata/8816428220446/type2ae.pdf], 2AE</ref> is a small and very high performance module based on Infineon CYW4373E combo chipset which supports Wi-Fi® 802.11a/b/g/n/ac + Bluetooth® 5.2 BR/EDR/LE up to 433Mbps PHY data rate on Wi-fi® and 3Mbps PHY data rate on Bluetooth®. The WLAN section supports SDIO v3.0 DDR50 interface and the Bluetooth® section supports high-speed 4-wire UART interface and PCM for audio data. | |||
The CYW4373E implements highly sophisticated enhanced collaborative coexistence hardware mechanisms and algorithms, which ensure that WLAN and Bluetooth® collaboration is optimized for maximum performance. | |||
===Linux driver=== | ===Linux driver=== | ||
Bindings : {{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/wireless/brcm, | Bindings : {{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml}}<br /> | ||
{{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/broadcom-bluetooth. | {{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml}} | ||
Sources: | Sources: | ||
Line 32: | Line 47: | ||
====Pre requisite==== | ====Pre requisite==== | ||
1DX | 1DX, 1YN and 2AE chipsets need 2 pieces of firmware to work: | ||
=====Bluetooth===== | =====Bluetooth===== | ||
Line 38: | Line 53: | ||
The ST Yocto delivery includes the following recipe:<br /> | The ST Yocto delivery includes the following recipe:<br /> | ||
- meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware-bluetooth-bcm4343.bb<br /> | - meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware-bluetooth-bcm4343.bb<br /> | ||
* for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} | |||
that includes the CYW4343W Firmware which is needed by the driver: CYW43430A1.1DX.hcd (firmware) | 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 | * for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} | ||
that includes the CYW4343A2 Firmware which is needed by the driver: CYW4343A2_001.003.016.0031.0000.1YN.hcd (firmware) | |||
* for {{MicroprocessorDevice | device=21}} | |||
that includes the CYW4373A0 Firmware which is needed by the driver: BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd (firmware) | |||
If the newest firmware versions are requested, they can be retrieved as described below :<br> | |||
Clone bluetooth firmware from the Murata git repository: | Clone bluetooth firmware from the Murata git repository: | ||
{{PC$}}git clone https://github.com/murata-wireless/cyw-bt-patch | {{PC$}}git clone https://github.com/murata-wireless/cyw-bt-patch | ||
* for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} | |||
Copy/Rename CYW43430A1.1DX.hcd file in the target (rename needed to be compliant with the broadcom driver): | 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 | |||
{{PC$}}cp | * for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} | ||
Copy/Rename CYW4343A2_001.003.016.0031.0000.1YN.hcd file in the target (rename needed to be compliant with the broadcom driver): | |||
{{PC$}}cp CYW4343A2_001.003.016.0031.0000.1YN.hcd $target/rootfs/lib/firmware/brcm/BCM4343A2.hcd | |||
* for {{MicroprocessorDevice | device=21}} | |||
Copy/Rename BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd file in the target (rename needed to be compliant with the broadcom driver): | |||
{{PC$}}cp BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd $target/rootfs/lib/firmware/brcm/BCM4373A0.hcd | |||
=====WLAN===== | =====WLAN===== | ||
Line 54: | Line 85: | ||
- openembedded-core/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb<br /> | - openembedded-core/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb<br /> | ||
- meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware_git.bbappend<br /> | - meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware_git.bbappend<br /> | ||
* for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} | |||
These provide the CYW4343W firmware and calibration data needed by the wlan driver: brcmfmac43430-sdio.bin (firmware), and brcmfmac43430-sdio.txt (calibration data file) | These provide the CYW4343W firmware and calibration data needed by the wlan driver: brcmfmac43430-sdio.bin (firmware), and brcmfmac43430-sdio.txt (calibration data file) | ||
* for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} | |||
If the newest firmware versions are requested, they can be | These provide the CYW43439 firmware and calibration data needed by the wlan driver: brcmfmac43439-sdio.bin (firmware), and brcmfmac43439-sdio.txt (calibration data file) | ||
* for {{MicroprocessorDevice | device=21}} | |||
These provide the CYW4373 firmware and calibration data needed by the wlan driver: brcmfmac43439-sdio.bin (firmware), and brcmfmac43439-sdio.txt (calibration data file) | |||
If the newest firmware versions are requested, they can be retrieved as described below: | |||
Clone brcm firmware from kernel.org git repository: | Clone brcm firmware from kernel.org git repository: | ||
Line 64: | Line 100: | ||
Firmware is available in the linux-firmware/brcm folder: | Firmware is available in the linux-firmware/brcm folder: | ||
* for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}} | |||
{{PC$}}cp linux-firmware/brcm/brcmfmac43430-sdio.* $target/rootfs/lib/firmware/brcm/ | {{PC$}}cp linux-firmware/brcm/brcmfmac43430-sdio.* $target/rootfs/lib/firmware/brcm/ | ||
* for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}} | |||
{{PC$}}cp linux-firmware/brcm/brcmfmac43439-sdio.* $target/rootfs/lib/firmware/brcm/ | |||
* for {{MicroprocessorDevice | device=21}} | |||
{{PC$}}cp linux-firmware/brcm/brcmfmac4373-sdio.* $target/rootfs/lib/firmware/brcm/ | |||
* | * for {{MicroprocessorDevice | device=13}} and {{MicroprocessorDevice | device=15}}, at startup, the MURATA 1DX module is loaded and you should see the following dmesg output: | ||
<pre> | <pre> | ||
[ 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.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.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) | [ 67.676323] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code (0x30 0x30) | ||
</pre> | |||
* for {{MicroprocessorDevice | device=25}} and {{MicroprocessorDevice | device=23}}, at startup, the MURATA 1YN module is loaded and you should see the following dmesg output: | |||
<pre> | |||
[ 96.840123] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43439/5 wl0: Aug 31 2023 01:16:08 version 7.95.64.1 (64b6b2d CY) FWID 01-b73af1f1 | |||
</pre> | </pre> | ||
Latest revision as of 09:44, 7 November 2024
1. Article purpose[edit | 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 | edit source]
Domain | Peripheral | Software components | Comment | ||
---|---|---|---|---|---|
OP-TEE | Linux | STM32Cube | |||
Networking | for STM32MP13x lines ![]() ![]() ![]() ![]() ![]() |
WLAN framework |
3. Murata 1DX / Murata 1YN / Murata 2AE[edit | 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.
The Type 1YN[2] is a small and high performance module based on Infineon CYW43439 combo chipset which supports Wi-Fi® 802.11b/g/n + Bluetooth® 5.2 BR/EDR/LE up to 65Mbps PHY data rate on Wi-fi® and 3Mbps PHY data rate on Bluetooth®. The WLAN section supports SDIO v2.0 interface and the Bluetooth® section supports high-speed 4-wire UART interface and PCM for audio data. The CYW43439 implements highly sophisticated enhanced collaborative coexistence hardware mechanisms and algorithms, which ensure that WLAN and Bluetooth® collaboration is optimized for maximum performance.
The Type 2AE[3] is a small and very high performance module based on Infineon CYW4373E combo chipset which supports Wi-Fi® 802.11a/b/g/n/ac + Bluetooth® 5.2 BR/EDR/LE up to 433Mbps PHY data rate on Wi-fi® and 3Mbps PHY data rate on Bluetooth®. The WLAN section supports SDIO v3.0 DDR50 interface and the Bluetooth® section supports high-speed 4-wire UART interface and PCM for audio data. The CYW4373E implements highly sophisticated enhanced collaborative coexistence hardware mechanisms and algorithms, which ensure that WLAN and Bluetooth® collaboration is optimized for maximum performance.
3.1. Linux driver[edit | edit source]
Bindings : Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
Sources:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
drivers/bluetooth/hci_bcm.c
3.1.1. Pre requisite[edit | edit source]
1DX, 1YN and 2AE chipsets need 2 pieces of firmware to work:
3.1.1.1. Bluetooth[edit | 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)
that includes the CYW4343A2 Firmware which is needed by the driver: CYW4343A2_001.003.016.0031.0000.1YN.hcd (firmware)
that includes the CYW4373A0 Firmware which is needed by the driver: BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd (firmware)
If the newest firmware versions are requested, they can be retrieved as described below :
Clone bluetooth firmware from the Murata git repository:
https://github.com/murata-wireless/cyw-bt-patchgit clone
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
Copy/Rename CYW4343A2_001.003.016.0031.0000.1YN.hcd file in the target (rename needed to be compliant with the broadcom driver):
cp CYW4343A2_001.003.016.0031.0000.1YN.hcd $target/rootfs/lib/firmware/brcm/BCM4343A2.hcd
Copy/Rename BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd file in the target (rename needed to be compliant with the broadcom driver):
cp BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd $target/rootfs/lib/firmware/brcm/BCM4373A0.hcd
3.1.1.2. WLAN[edit | 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)
These provide the CYW43439 firmware and calibration data needed by the wlan driver: brcmfmac43439-sdio.bin (firmware), and brcmfmac43439-sdio.txt (calibration data file)
These provide the CYW4373 firmware and calibration data needed by the wlan driver: brcmfmac43439-sdio.bin (firmware), and brcmfmac43439-sdio.txt (calibration data file) If the newest firmware versions are requested, they can be retrieved as described below:
Clone brcm firmware from kernel.org git repository:
git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.gitgit clone
Firmware is available in the linux-firmware/brcm folder:
cp linux-firmware/brcm/brcmfmac43430-sdio.* $target/rootfs/lib/firmware/brcm/
cp linux-firmware/brcm/brcmfmac43439-sdio.* $target/rootfs/lib/firmware/brcm/
cp linux-firmware/brcm/brcmfmac4373-sdio.* $target/rootfs/lib/firmware/brcm/
- for STM32MP13x lines
and STM32MP15x lines
, at startup, the MURATA 1DX module is loaded and you should see the following dmesg output:
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)[ 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 =
- for STM32MP25x lines
and STM32MP23x lines
, at startup, the MURATA 1YN module is loaded and you should see the following dmesg output:
[ 96.840123] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43439/5 wl0: Aug 31 2023 01:16:08 version 7.95.64.1 (64b6b2d CY) FWID 01-b73af1f1
4. References[edit | edit source]
- Kernel.org wiki
https://wireless.wiki.kernel.org/en/users/drivers/brcm80211