Wi-Fi Bluetooth for Linux Forum Discussions
text.format{('custom.tabs.no.results')}
Package Version
ahd-2023_1221
Release Date
2023-12-21
Description
Infineon Android release for the broad market.
This release has been qualified on IMX8 SDIO platform and Hikey960 PCIE platform running Android 13.
Customers wishing to leverage the Android Open Source Platform now have an out of the box Android solution for Infineon's connectivity parts.
The release package includes:
* ahd
* 4373-Android13-SDIO
*43012-Android13-SDIO
*43022-Android13-SDIO
*54591-Android13-PCIE
*55572-Android13-SDIO
*AHDBinaries
*device
*firmware
*nvram
* Android13_55572_SDIO_Release_Notes.pdf
* Infineon_55572_Wi-Fi_6_6E_User_Guide.pdf
* confs
* hostapd_supplicant_src
* Android13_PCIE_Bringup.pdf
* Android13_SDIO_Bringup.pdf
* Android13_Feature_Bringup.pdf
Test Environment:
* IMX8 SDIO setup
* Hikey960 PCIE setup
* 55572, 43012, 43022, 54591 and 4373 Sanity, 6G and 11ax features (55572), WOWL via OOB(55572)
and PNO scan offload(55572, 43022)
Show LessDescription
The package contains all the required files (including AIROC™ Bluetooth® stack for ARMv8 Linux, Bluetooth® porting layer, and sample code examples of Bluetooth® profiles) to evaluate and test Bluetooth® Classic and Low Energy on AIROC™ combo chip (CYW4373, CYW43439, CYW55573/2/1).
What's new?
Package comes with codes examples to demonstrate Bluetooth LE Audio capability of CYW55573/2/1 in hosted mode. The code example demonstrates Bluetooth® LE Audio unicast and broadcast functionality.
Functions include:
- Broadcast audio stream scanning
- Receiving broadcast audio stream
- Unicast audio stream establishment
- Unicast audio stream release
- Unicast sink connect to source (1 CIG, 1 CIS)
Bluetooth® Linux Code Examples & Supported Chip
Code example |
Feature demonstration |
Supported chip |
LE Audio CIS Source |
Implements the Unicast Source application using BTSTACK and LE-Audio profile library |
CYW55573/CYW55572/CYW55571 |
LE Audio CIS Sink |
Implements the Unicast Sink application using BTSTACK and LE-Audio profile library |
CYW55573/CYW55572/CYW55571 |
LE Audio BIS Source |
Demonstrates the ability of LE Audio broadcast |
CYW55573/CYW55572/CYW55571 |
LE Audio BIS Sink |
Demonstrates the ability to receive LE Audio broadcast |
CYW55573/CYW55572/CYW55571 |
Linux Bluetooth® Find me |
Demonstrates the Find Me profile which defines the behavior when a button is pressed on one device to cause an alerting signal on a peer device |
CYW55573/CYW55572/CYW55571 |
Linux Bluetooth® hello sensor |
Demonstrates GATT database and device configuration initialization, sending data to the client and processing write requests from the client |
CYW55573/CYW55572/CYW55571 CYW43439,CYW4373 |
Linux Bluetooth® Wi-Fi onboarding |
Demonstrates the feature that enables devices to connect to a Wi-Fi access point without requiring a physical interface |
CYW55573/CYW55572/CYW55571 CYW43439,CYW4373 |
Linux Bluetooth® Headset |
Multiple profile code example that demonstrates the use cases and ability of audio-related functions such as A2DP, AVRCP CT, and HFP |
CYW55573/CYW55572/CYW55571 |
Linux Bluetooth® SPP |
Demonstrates how two devices can establish a wireless communication link that emulates a traditional serial port connection |
CYW43439,CYW4373 |
Package GitHub link: https://github.com/Infineon/ifx-linux-bluetooth
Release notes
Please go through the attached released notes for more details on the package.
Show Lessv5.15.58-2024_0118
Release Date
2024-01-18
Github Link
V5.15.58 backport package: Link
V6.1.19 patch: link
Description
This is Cypress's Linux brcmfmac driver and firmware support package.
Brcmfmac is an open-source driver project.
Files in this release:
Part 1: cypress-fmac-v5.15.58-2023_1128.zip
* Backports package (cypress-backports-v5.15.58-2023_1128-module-src.tar.gz)
* Firmware/clm_blob files (cypress-firmware-v5.15.58-2023_1128.tar.gz)
* Cypress fmac patch files (cypress-patch-v5.15.58-2023_1128.tar.gz)
* Device tree files (cypress-devicetree-2023-11-28.tar.gz)
* hostapd/wpa_supplicant patch (cypress-hostap_2_10-2023_1128.tar.gz)
* Cypress customer patch (cypress-custom-patch-5.4.21.tar.gz)
* Cirrent Agent (cypress-cirrent-1.60.tar.gz)
* Documents (docs/)
* README
Part 2: cypress-patch-v6.1.19-2023_1128.zip
* Cypress fmac patch files for Vanilla v6.1.19(cypress-patch-v6.1.19-2023_1128.tar.gz)
* Infineon-Vanilla-Kernel-v6.1.19-Bring-up-Reference_20201221.pdf
Checksum
cypress-fmac-v5.15.58-2023_1128 sha256sum:
990b5f6beeb9530525f254977569fd25936e09f9ef1bf36ca52118e73dff3e68 cypress-backports-v5.15.58-2023_1128-module-src.tar.gz
ce3bb31020e5ffe24fe549802440c137d14a05ad77af3e8e1fb9e184db96ed55 cypress-cirrent-1.60.tar.gz
0c8da2efe289115f2242aa3f69de5bc616cb893ecd411e11194c4c008418bb2e cypress-custom-patch-5.4.21.tar.gz
c38cca05bb05db6198af7809c7a2e519cb33a06b02ebd4d626588c9038f7259b cypress-devicetree-2023-11-28.tar.gz
92608ceb4509cc02730833ce2119662b3c116a3956ca303245e97378186dc2a3 cypress-firmware-v5.15.58-2023_1128.tar.gz
771099830bd106307e77ebdd4d27a3e18de27bb60889c4db4bca81f44ade495d cypress-hostap_2_10-2023_1128.tar.gz
8fe7d8b677032fb04374615aae27c5a3131499956dc22ddb420847a3876974c6 cypress-patch-v5.15.58-2023_1128.tar.gz
cypress-patch-v6.1.19-2023_1128 sha256sum:
933ac3a50f0146b4078beb5e398c75a93ab0a1979a93d120a1c0ba2a06ab0ff7 Infineon-Kernel-v6.1.19-Bring-up-Reference.pdf
ac23fabed00e5c5ab0c3720fa0eb6fa135a589e009714f783701fe557abe3fe7 v6.1.19-2023_1128.tar.gz
Part 3: cypress-fmac-v5.15.58-2024_0118.zip
8ccbebf31bf69c85dc7d05fb7e3597fa282c3ba5373d76b2a65364191abb14d0 cypress-backports-v5.15.58-2024_0118-module-src.tar.gz
ce3bb31020e5ffe24fe549802440c137d14a05ad77af3e8e1fb9e184db96ed55 cypress-cirrent-1.60.tar.gz
92e7196a896fa65138c8297d4202a1811564605360f807faa2c8af310eddeb2e cypress-custom-patch-5.4.21.tar.gz
40dd314cee28149028a2d524ccd5d25f20336c7314e1e26654daecf4c9a796d2 cypress-devicetree-2024-01-18.tar.gz
739d1fae54d885e136847af2957821324c18c68622f204992e268b991172da53 cypress-firmware-2024_0118.tar.gz
2a411fb64818b054498645f64e3ef3b29e4db9a36b65987d9a3af76c2d60f765 cypress-hostap_2_10-2024_0118.tar.gz
8e43bc4487c5d4e77880e2fc9d3152a011063c5b0f3871e277561f0108a88304 cypress-patch-v5.15.58-2024_0118.tar.gz
[Change Log]
2023-12-18 Initial Post
2023-12-22 Add cypress-patch-v6.1.19 to support build brcmfmac on 6.1.19
2024-01-18 Fix for system crash post suspend and resume with CYW55572/55573 [PCIe]
The BT assets of AIROC Bluetooth Stack (Linux) Release are all on GitHub now.
Description:
AIROC Bluetooth Stack is Infineon's Bluetooth Host Protocol Stack implementation. The stack is optimized to work with Infineon Bluetooth controllers. The BTSTACK supports Bluetooth BR/EDR and BLE core protocols. This page provides the Github links to get started with application developments in Linux platform using AIROC Bluetooth Stack.
Please find the code examples :
Code Examples:
https://github.com/Infineon/linux-example-btstack-wifi-onboarding
https://github.com/Infineon/linux-example-btstack-wakeonle
https://github.com/Infineon/linux-example-btstack-bas
https://github.com/Infineon/linux-example-btstack-hello-sensor
https://github.com/Infineon/linux-example-btstack-alert-client
https://github.com/Infineon/linux-example-btstack-alert-server
https://github.com/Infineon/linux-example-btstack-headset
https://github.com/Infineon/linux-example-btstack-a2dp-source
https://github.com/Infineon/linux-example-btstack-a2dp-sink
https://github.com/Infineon/linux-example-btstack-spp
https://github.com/Infineon/linux-example-btstack-handsfree-unit
https://github.com/Infineon/linux-example-btstack-handsfree-ag
Show Less
The latest Infineon Linux Wi-Fi driver (FMAC) release can be accessed here:
Sr. No. | Driver release name | Release link |
1 | Backports v5.15.58-2023_1128 |
Public forum link: https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2023-11-28/td-p/662238 |
2 | 6.1 Latest kernel for RPI : RPI-6.1.21 IFXFMAC |
Github: https://github.com/Infineon/rpi-linux-kernel/releases/tag/6.1.21-hedorah-IFXFMAC-20231128 |
3 | 6.1 Kernel on BRCMFMAC |
Github: https://github.com/Infineon/ifx-wireless-drivers/tree/RTM/v6.1.19-hedorah |
Documentation is available in docs folder of cypress-fmac-v5.15.58-2023_1128.zip available at this link https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2023-11-28/td-p/662238
The older/archived Wi-Fi driver releases can be accessed here:
Show Less
Package Version
ahd-2022_1223
Release Date
2023-01-03
Description
Cypress Android release for the broad market.
This release has been qualified on Hikey 960 platform.
Customers wishing to leverage the Android Open Source Platform now have an out of the box Android solution for Cypress's connectivity parts.
The release package includes:
* ahd
* device
*hikey960
* firmware
* nvram
* 55572_AndroidBringup.pdf
Test Environment:
* Hikey 960
* 55572 Sanity and VTS
Change Log
[2022-12-23]
* Initial post
Show LessHi there,
We are trying to fcc wifi certify our project which uses a custom buildroot toolchain and arm processor.
We need help to compile the wl_tool so we can proceed with certification, but we need it to be cross compiled for our architecture (arm 32bit).
Can I ask a representative to help us to compile it with our custom toolchain?
CPU Info:
- armv7l
- little-endian
- hard-float ABI
- neon/vfpv4
Custom Toolchain Instructions:
- download toolchain
- extract toolchain:
tar jxf arm-co6-linux-uclibcgnueabihf_sdk-buildroot_2021.02.1.tar.xz - cd to arm-co6-linux-uclibcgnueabihf_sdk-buildroot
- ./relocate_sdk.sh
- add toolchain into path e.g.
export PATH="$PATH:$PWD/usr/bin" - Set cross compile variables:
export ARCH=arm
export CROSS_COMPILE=arm-co6-linux-uclibcgnueabihf-
Tagging @VinayakS_26 / @raks_99 / @DoubleLo as I found they have helped another customer to do this.
Show Less
We are using Murata LBEE5KL1DX (BCM4343W) as Wi-Fi module with i.MX6ULL. We have been able to compile BCMDHD driver for this chip inbuilt (in kernel) successfully and are able to use it. But while putting system in sleep mode (echo mem > /sys/power/state), sometimes system refuse to go into sleep mode (Error: mmc1: resource busy -16). We tried to down/up Wi-Fi wlan0 interface but still system refuse to go into sleep mode. We tried to debug this into the code and suspect that this is due to some wake-lock related issue. At some point in time, Wi-Fi driver takes wake-lock (this is different than standard wake-lock being used in Android) and before it unlocks the same, user space application tries to put the system into sleep mode. Any pointer - how use user space application come to know about status of this wake-lock / how can this lock can be unlocked ?
Show LessHello,
We are a manufacturer of gateways and intend to get the "WiFi Certified" approval of the WiFi Alliance with the Raspberry Compute Model 4 (https://www.raspberrypi.com/products/compute-module-4/?variant=raspberry-pi-cm4001000).
The Chip on the CM4 is the Broadcom BCM43455 aka Cypress CYW43455.
I understand that Infineon is now responsible for support.
What support do you offer for these tests, are they feasible with that hardware and what role does the WICED Software Suite play in this?
Any help or information would be greatly appreciated.
Thanks and greetings,
Oliver Fischer
Show LessPackage Version
v5.10.9-2022_0331
Release Date
2022-03-31
Description
This is Cypress's Linux brcmfmac driver and firmware support package.
Brcmfmac is an open-source driver project.
Files in this release:
* Backports package (cypress-backports-v5.10.9-2022_0321-module-src.tar.gz)
* Firmware/clm_blob files (cypress-firmware-v5.10.9-2022_0321.tar.gz)
* Cypress fmac patch files (cypress-patch-v5.10.9-2022_0321.tar.gz)
* Device tree files (cypress-devicetree-2022-03-31.tar.gz)
* hostapd/wpa_supplicant patch (cypress-hostap_2_9-1-2022_0321.tar.gz)
* Cirrent Agent (cypress-cirrent-1.60.tar.gz)
* Documents (docs/)
* README
Checksum
sha256sum:
61217378507bc86b950823042eaa6a9859b9692f91b38f660e9fd3e75bb08dc7 cypress-fmac-v5.10.9-2022_0321.zip
a20938b0183552912894fa07a15eff27cd0139f9ae4f9f6e4b15ec0c7e5ae10e cypress-backports-v5.10.9-2022_0321-module-src.tar.gz
ce3bb31020e5ffe24fe549802440c137d14a05ad77af3e8e1fb9e184db96ed55 cypress-cirrent-1.60.tar.gz
d02b0ae908240e1ba96440b66fa8070b119c9931366b3268e726b8b192e25939 cypress-devicetree-2022-03-31.tar.gz
653691438cd304c5a5ef1470080e032d138a6b18e2a5aa393886212a94f63dc8 cypress-firmware-v5.10.9-2022_0321.tar.gz
86c542bd54e7b7800b91249697ad32d9e36ef8f0c2cd02c7330bb8bd4c2ddfac cypress-hostap_2_9-1-2022_0321.tar.gz
a388de0fc177a14aa654c0ec487c86a2ee53977f325c95b2e7482aee705518a6 cypress-patch-v5.10.9-2022_0321.tar.gz
[Change Log]
2022-04-01 Initial Post
Hello,
我们在针对CYW43340进行CE认证时,自适应测试失败,测试报告见附件;
我们使用的固件及nvram文件也传到附件,请参考。
1. 我们使用的平台内核是2.6.
2. 我们使用的wl命令如下:
wl out
wl down
wl ampdu 1
wl country DE
wl band b
wl phy_watchdog 0
wl mpc 0
wl up
wl phy_forcecal 1
wl join <SSID>
wl scansuppress 1
wl roam_off 1
wl phy_ed_thresh -70 (这一条命令返回Unsupported)
iperf -c <ip address of server> -u -b -l -i 1 -t 10000
上述命令执行后测试failed。
3. 我们在nvram中添加:
edonthd=-65
edoffthd=-71
执行下列命令,还是failed:
wl out
wl down
wl ampdu 1
wl country DE
wl band b
wl phy_watchdog 0
wl mpc 0
wl up
wl phy_forcecal 1
wl join <SSID>
wl scansuppress 1
wl roam_off 1
iperf -c <ip address of server> -u -b -l -i 1 -t 10000
4. wl工具版本见附件图片。
请问是我们的固件有问题还是命令使用方法不对?
Show LessHi All,
We are using CYW43012 chipset with the following details:
Firmware version:
1.21 RC0.0
wl0: Sep 1 2021 22:33:32 version 13.10.271.273 (9278a67 CY) FWID 01-e6c8687a
Driver Version:
Backported Linux Version v4.14.77-kong-RTM-rc8-0-ged6fa18
We have observed that after certain time when we are using the device (going out of network and coming with in network zone), we observe that driver disconnects and remains offline permanently with the following errors:
2022-04-29 10:32:11 SAMA5D2C3 dropbear[697]: Child connection from 10.0.250.20:61214
2022-04-29 10:32:11 SAMA5D2C3 kernel:[ 307.050000] device wlan0 entered promiscuous mode
2022-04-29 10:32:14 SAMA5D2C3 dropbear[697]: Pubkey auth succeeded for 'root' with key md5 8f:1e:41:f8:30:7a:52:07:76:10:26:22:6a:24:53:b6 from 10.0.250.20:61214
2022-04-29 10:32:14 SAMA5D2C3 dropbear[697]: Exit (root): Disconnect received
2022-04-29 10:32:41 SAMA5D2C3 kernel:[ 336.430000] ## AIC32X4_STKY1STATUSREG JACKSTATUS 16
2022-04-29 10:32:41 SAMA5D2C3 kernel:[ 336.440000] ## AIC32X4_INT1STATUSREG STATUS 16
2022-04-29 10:32:41 SAMA5D2C3 kernel:[ 336.440000] atmel-sama5d2-sbc sound: ASoC: DAPM unknown pin Headset Mic
2022-04-29 10:32:41 SAMA5D2C3 kernel:[ 336.450000] atmel-sama5d2-sbc sound: ASoC: DAPM unknown pin Headphone
2022-04-29 10:32:41 SAMA5D2C3 kernel:[ 336.450000] ## AIC32X4_HP_DETECT Detected 16
2022-04-29 10:32:45 SAMA5D2C3 ntpd[311]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
2022-04-29 10:32:47 SAMA5D2C3 kernel:[ 342.650000] ## AIC32X4_STKY1STATUSREG JACKSTATUS 156
2022-04-29 10:32:47 SAMA5D2C3 kernel:[ 342.660000] ## AIC32X4_INT1STATUSREG STATUS 0
2022-04-29 10:32:47 SAMA5D2C3 kernel:[ 342.670000] atmel-sama5d2-sbc sound: ASoC: DAPM unknown pin Headset Mic
2022-04-29 10:32:47 SAMA5D2C3 kernel:[ 342.670000] atmel-sama5d2-sbc sound: ASoC: DAPM unknown pin Headphone
2022-04-29 10:32:47 SAMA5D2C3 kernel:[ 342.680000] ## AIC32X4_HP_DETECT Removed 0
2022-04-29 10:33:03 SAMA5D2C3 dropbear[715]: Child connection from 10.0.250.20:61268
2022-04-29 10:33:06 SAMA5D2C3 dropbear[715]: Pubkey auth succeeded for 'root' with key md5 8f:1e:41:f8:30:7a:52:07:76:10:26:22:6a:24:53:b6 from 10.0.250.20:61268
2022-04-29 10:33:06 SAMA5D2C3 dropbear[715]: Exit (root): Disconnect received
2022-04-29 10:33:59 SAMA5D2C3 ntpd[311]: Deleting interface #5 wlan0, 10.128.0.52#123, interface stats: received=13, sent=14, dropped=0, active_time=384 secs
2022-04-29 10:33:59 SAMA5D2C3 ntpd[311]: 10.0.250.3 local addr 10.128.0.52 -> <null>
2022-04-29 10:34:00 SAMA5D2C3 kernel:[ 415.310000] brcmfmac: brcmf_cfg80211_escan: Connecting: status (3)
2022-04-29 10:34:00 SAMA5D2C3 kernel:[ 415.320000] brcmfmac: brcmf_cfg80211_scan: scan error (-11)
2022-04-29 10:34:10 SAMA5D2C3 kernel:[ 425.330000] brcmfmac: brcmf_cfg80211_escan: Connecting: status (3)
2022-04-29 10:34:10 SAMA5D2C3 kernel:[ 425.340000] brcmfmac: brcmf_cfg80211_scan: scan error (-11)
2022-04-29 10:35:01 SAMA5D2C3 crond[744]: pam_unix(crond:session): session opened for user root by (uid=0)
2022-04-29 10:35:01 SAMA5D2C3 CROND[745]: (root) CMD (/bin/date -u +%4Y%2m%2d%2H%2M%2S 2>/dev/null > /etc/timestamp)
2022-04-29 10:35:01 SAMA5D2C3 CROND[744]: pam_unix(crond:session): session closed for user root
2022-04-29 10:38:23 SAMA5D2C3 shutdown[758]: shutting down for system reboot
2022-04-29 10:38:23 SAMA5D2C3 init: Switching to runlevel: 6
2022-04-29 10:38:23 SAMA5D2C3 shutdown[760]: shutting down for system reboot
2022-04-29 10:38:23 SAMA5D2C3 shutdown[762]: shutting down for system reboot
2022-04-29 10:38:23 SAMA5D2C3 shutdown[764]: shutting down for system reboot
2022-04-29 10:38:24 SAMA5D2C3 shutdown[766]: shutting down for system reboot
2022-04-29 10:38:24 SAMA5D2C3 shutdown[768]: shutting down for system reboot
2022-04-29 10:38:24 SAMA5D2C3 shutdown[770]: shutting down for system reboot
2022-04-29 10:38:24 SAMA5D2C3 shutdown[772]: shutting down for system reboot
2022-04-29 10:38:24 SAMA5D2C3 shutdown[774]: shutting down for system reboot
This issue is frequently reproducible and any need asap is deeply appreciated.
Attached the complete log file for your reference.
Regards,
Rupesh
Show LessHello,
We get a very reproducible crash of the brcmfmac wifi driver under specific traffic conditions that I will detail below.
Product info:
Device: Raspberry Pi 3B+
OS: Raspberry Pi OS 5.10.63
WLAN CHIP: BCM43455
Wireless firmware version: 7.45.206
We had the exact same crash almost 2 years ago with Raspbian 4.19.75 and wireless firmware 7.45.189, so the problem is not new.
Transmission parameters: channel 36 (5.18 GHz) - MCS3 - HT20.
dmesg crash report:
[ 6582.744261] device mon0 entered promiscuous mode
[ 6595.671916] ieee80211 phy1: brcmf_fw_crashed: Firmware has halted or crashed
[ 6599.210435] device mon0 left promiscuous mode
[ 6601.763640] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[ 6601.764088] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[ 6601.764297] brcmfmac: dongle trap info: type 0x4 @ epc 0x001aabb0
cpsr 0x2000019f spsr 0x200001bf sp 0x0025fdb8
lr 0x001aad23 pc 0x001aabb0 offset 0x25fd60
r0 0x00218b58 r1 0x00218b58 r2 0x0025fe34 r3 0x00000000
r4 0x0022bbbc r5 0x0000ffff r6 0x00000000 r7 0xbe23f199
[ 6601.764324] ieee80211 phy1: _brcmf_set_multicast_list: Setting mcast_list failed, -110
[ 6604.323574] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[ 6604.324003] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[ 6604.324233] brcmfmac: dongle trap info: type 0x4 @ epc 0x001aabb0
cpsr 0x2000019f spsr 0x200001bf sp 0x0025fdb8
lr 0x001aad23 pc 0x001aabb0 offset 0x25fd60
r0 0x00218b58 r1 0x00218b58 r2 0x0025fe34 r3 0x00000000
r4 0x0022bbbc r5 0x0000ffff r6 0x00000000 r7 0xbe23f199
[ 6604.324259] ieee80211 phy1: _brcmf_set_multicast_list: Setting allmulti failed, -110
[ 6606.883511] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[ 6606.883946] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[ 6606.884168] brcmfmac: dongle trap info: type 0x4 @ epc 0x001aabb0
cpsr 0x2000019f spsr 0x200001bf sp 0x0025fdb8
lr 0x001aad23 pc 0x001aabb0 offset 0x25fd60
r0 0x00218b58 r1 0x00218b58 r2 0x0025fe34 r3 0x00000000
r4 0x0022bbbc r5 0x0000ffff r6 0x00000000 r7 0xbe23f199
[ 6606.884206] ieee80211 phy1: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -110
[ 6609.443453] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[ 6609.443866] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[ 6609.444084] brcmfmac: dongle trap info: type 0x4 @ epc 0x001aabb0
cpsr 0x2000019f spsr 0x200001bf sp 0x0025fdb8
lr 0x001aad23 pc 0x001aabb0 offset 0x25fd60
r0 0x00218b58 r1 0x00218b58 r2 0x0025fe34 r3 0x00000000
r4 0x0022bbbc r5 0x0000ffff r6 0x00000000 r7 0xbe23f199
[ 6612.003397] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[ 6612.003804] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[ 6612.004023] brcmfmac: dongle trap info: type 0x4 @ epc 0x001aabb0
cpsr 0x2000019f spsr 0x200001bf sp 0x0025fdb8
lr 0x001aad23 pc 0x001aabb0 offset 0x25fd60
r0 0x00218b58 r1 0x00218b58 r2 0x0025fe34 r3 0x00000000
r4 0x0022bbbc r5 0x0000ffff r6 0x00000000 r7 0xbe23f199
How to reproduce this crash:
It basically involves injecting three "small enough" frames back-to-back. We use nexmon to configure the BCM43455 in monitor mode, and pcap_inject() to inject frames. We forge our own 802.11 frames with radiotap headers.
When making three calls in a row to pcap_inject() with frames of any size smaller than about 600 bytes, the Broadcom driver crashes upon the third call, while the first two frames are transmitted correctly and received by a nearby machine.
On the other hand, making these three calls in a row with frames bigger than about 650 bytes never produces a crash. Making only two back-to-back calls to pcap_inject(), even with frames below 600 bytes, also never crashes the driver.
When inserting a small delay between the second and third call, here is what we get :
- with a delay any smaller than 500 µs: the driver crashes upon the third injection for any frame size below about 600 bytes. For frames above about 650 bytes, no crash;
- with a delay bigger than 600 µs: no crash whatever the frames size, whether big or small.
When repeating the experience on different machines, we noted that the delay above could take other values, possibly due to different radio transmission parameters. However the behavior was always the same as described above.
It looks like some sort of traffic shaping mechanism is acting up inside the driver - and failing under particular circumstances.
Are we doing something wrong ?
If you feel that more extensive tests under various conditions could help sort out this thing, please do not hesitate to ask, as the manipulation is really immediate.
Thanks for help!
Show LessHi,
I need WL tool & MFG Firmware for ARM aarch64 Platform with Linux5.4.70 Kernel + iMX8MMini Processor Supported WL Tool.
Kindly provide the wl tool source & Build procedure document + MFG Firmware Build procedure Document.
How to build WL Tool + MFG Firmware in Yocto?
Thanks & Regards,
Kumaresan
Show LessPatch 0109 in the fmac 2022-03-31 release modifies nl80211.h by defining a new extended feature NL80211_EXT_FEATURE_ROAM_OFFLOAD. There is a corresponding hostapd patch that uses this new feature.
However, nl80211 is a public API that can be used by any user mode component. This mod breaks that API for any user mode component using the public header file that looks at this feature or any defined with a greater value.
How is IFX handling this going forward? Is this new feature being upstreamed?
Show LessHi all,
We are working on integrating the Wi-Fi & Bluetooth driver for Linux in our platform based on a STM32mp157 that connects a Murata 2AE ( Cypress CYW4373 ) chipset via SDIO. For that we are using the reference software package "Infineon-cypress-fmac-v5.10.9-2021_1020.zip-Software-v01_00-EN.zip" , however we are having several issues in the bring-up of the driver.
CYW4373 seems correctly detected in SDIO bus:
~# dmesg | grep -ie mmc0
[ 3.417714] mmci-pl18x 48004000.sdmmc: mmc0: PL180 manf 53 rev2 at 0x48004000 irq 49,0 (pio)
[ 3.589089] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[ 3.594607] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.608811] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.669254] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[ 3.787592] mmc0: new high speed SDIO card at address 0001
~#
Also the brcmfmac driver is automatically loaded:
cfg80211: Loading compiled-in X.509 certificates for regulatory database
cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
brcmfmac: brcmf_fw_alloc_request: using cypress/cyfmac4373-sdio for chip BCM4373/0
brcmfmac: brcmf_fw_request_firmware: no board-specific nvram available (ret=-2), device will use cypress/cyfmac4373-sdio.txt
brcmfmac: brcmf_fw_alloc_request: using cypress/cyfmac4373-sdio for chip BCM4373/0
brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4373/0 wl0: Oct 8 2021 09:44:25 version 13.10.246.261 (4410652 CY) FWID 01-3fd489ef
Once the driver is running I'm able to connect with an Access Point, however I start seem several alignment errors:
[ 33.160071] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:840 length:548, SDMMC_IDMA_BURST=32
[ 33.168037] brcmfmac: mmc_submit_one: CMD53 sg block read failed -22
[ 33.174330] brcmfmac: brcmf_sdio_rxglom: glom read of 1792 bytes failed: -5
[ 33.181431] brcmfmac: brcmf_sdio_rxfail: abort command, terminate frame
[ 33.188304] brcmfmac: brcmf_sdio_readframes: brcmf_sdio_readframes: glom superframe w/o descriptor!
[ 33.197119] brcmfmac: brcmf_sdio_rxfail: terminate frame
[ 35.488532] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 39.456683] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:18 length:328, SDMMC_IDMA_BURST=32
[ 39.464506] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 39.471130] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 52.227124] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:c18 length:112, SDMMC_IDMA_BURST=32
[ 52.235046] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 52.241613] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 57.216022] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:418 length:112, SDMMC_IDMA_BURST=32
[ 57.224044] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 57.230514] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 62.221550] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:c18 length:116, SDMMC_IDMA_BURST=32
[ 62.229590] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 62.235973] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 67.223287] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:418 length:116, SDMMC_IDMA_BURST=32
[ 67.231283] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 67.237743] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 133.251372] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:18 length:112, SDMMC_IDMA_BURST=32
[ 133.259245] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 133.265626] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 135.887536] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:4e4 length:92, SDMMC_IDMA_BURST=32
[ 135.895362] brcmfmac: mmc_submit_one: CMD53 sg block write failed -22
[ 135.901924] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
[ 137.577190] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:900 length:1544, SDMMC_IDMA_BURST=32
[ 137.585215] brcmfmac: mmc_submit_one: CMD53 sg block read failed -22
[ 137.591683] brcmfmac: brcmf_sdio_rxglom: glom read of 13824 bytes failed: -5
[ 137.598824] brcmfmac: brcmf_sdio_rxfail: abort command, terminate frame
[ 137.605518] brcmfmac: brcmf_sdio_hdparse: HW header length too long
[ 137.611590] brcmfmac: brcmf_sdio_rxfail: terminate frame
[ 137.657344] mmci-pl18x 48004000.sdmmc: unaligned scatterlist: ofst:4d8 length:104, SDMMC_IDMA_BURST=32
With those errors the interface is not usable, however I found this thread " brcmfamc - OMAP SG entry not aligned with block size " with a similar issue, so after try different values for the "brcm,sd_sgentry_align" device tree entry I verified that a value between "32" and "128" (this value is limited by SDIO_4373_FUNC2_BLOCKSIZE that is set to 128 ) starts working fine and I can get an usable wireless interface. These are my device-tree entries:
For 32 bytes in sd_sgentry_align:
brcmf: bcrmf@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
brcm,sd_head_align = /bits/ 16 <4>;
brcm,sd_sgentry_align = /bits/ 16 <32>;
};
For a higher value of 32 bytes, for example 128:
brcmf: bcrmf@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
brcm,broken_sg_support;
brcm,sd_head_align = /bits/ 16 <4>;
brcm,sd_sgentry_align = /bits/ 16 <128>;
};
However, the brcmfmac driver is not very stable when I'm doing a throughput testing, because it throws a kernel NULL pointer:
~# dd if=/dev/urandom of=/tmp/output.txt bs=1024 count=10240
10240+0 records in
10240+0 records out
~# scp /tmp/output.txt root@192.168.1.1:/tmp/
root@192.168.1.1's password:
output.txt 39% 4050KB 2.0MB/s 00:03 ETA-
[ 495.445680] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 495.454181] pgd = 4009a252
[ 495.456439] [00000000] *pgd=00000000
[ 495.460018] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[ 495.465292] Modules linked in: brcmfmac(E) brcmutil(E) cfg80211(E)
[ 495.471519] CPU: 1 PID: 51 Comm: kworker/u5:0 Tainted: G E 5.10.61-00729-g08fe05962fbe-dirty #146
[ 495.481746] Hardware name: STM32 (Device Tree Support)
[ 495.486934] Workqueue: brcmf_wq/mmc0:0001:1 brcmf_sdio_dataworker [brcmfmac]
[ 495.494017] PC is at brcmf_sdiod_sglist_rw+0x204/0x514 [brcmfmac]
[ 495.499997] LR is at 0x1ffe0
[ 495.502946] pc : [<bf0ea3d8>] lr : [<0001ffe0>] psr: 80010113
[ 495.509224] sp : c1bcdd08 ip : d3b39000 fp : c1bcdd4c
[ 495.514392] r10: c1143040 r9 : 0000ff80 r8 : c2d74400
[ 495.519664] r7 : c1b15600 r6 : 00000600 r5 : 00006a80 r4 : 00000000
[ 495.526146] r3 : 00000023 r2 : c2ccb8e4 r1 : 02ccb8e4 r0 : 00000000
[ 495.532731] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 495.539921] Control: 10c5387d Table: c305806a DAC: 00000051
[ 495.545602] Process kworker/u5:0 (pid: 51, stack limit = 0x4276b89c)
[ 495.551987] Stack: (0xc1bcdd08 to 0xc1bce000)
[ 495.556356] dd00: d3aefd48 d3b9da06 c1bcc000 00082a20 d3af1fb0 c2d070c0
[ 495.564558] dd20: d3b9e4fc 00000022 00000080 c1a96c00 c1bcdd8c 00000001 0000002b c1bcddc4
[ 495.572756] dd40: c1bcde98 00008000 c1bcdd84 c1bcdd4c c1bcdd4c 00000000 003beee0 00000035
[ 495.580952] dd60: a8000000 00000000 00000000 00000000 00000000 000001b5 00000000 00000000
[ 495.589148] dd80: 00000000 00000000 00000000 00000000 00000000 00000080 00000000 00000000
[ 495.597344] dda0: 00000000 00000100 00000000 00000000 00000000 00000000 00000000 c2cc7400
[ 495.605541] ddc0: 00000000 00000000 c1bcdd5c c1bcdd8c 00000000 00000000 00000000 00000000
[ 495.613736] dde0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 495.621932] de00: 00000000 00000000 00000001 c1bcde98 c2d74400 00008000 c1bcde98 00000000
[ 495.630129] de20: 0000006f 00000016 c2d74800 bf0ead4c c1bcde98 0000001c c1bcde98 00000016
[ 495.638326] de40: 0000001c c1bcde98 00008300 bf0e630c 00000000 00000004 00000020 0000001c
[ 495.646623] de60: 00000604 00000000 c2d74ac6 00000016 000000ff bf0f33e0 00000014 18005020
[ 495.654819] de80: bf0f36b4 00000000 00000001 0604026e 00000000 001c0116 c1b15a80 c2d07f00
[ 495.663015] dea0: 0000002b c1e57a0e c2d74400 c2d74800 00000040 c2d74810 c2d74400 c2d74400
[ 495.671211] dec0: 00000014 00000000 c1a07800 bf0e90e0 c1a39900 00000001 c18dc000 d3aef400
[ 495.679407] dee0: 00000000 c18acb00 00000000 c1005118 c1a39c90 c2d74a3c 00000000 c2d74800
[ 495.687602] df00: c1a04700 00000000 c10ff5c0 00000000 c1a07800 bf0e9798 c2d74a3c c1af4380
[ 495.695800] df20: c1a07800 c0139d14 c1bcc000 c1a07800 c1a07818 c1af4380 c1a07800 c1af4394
[ 495.703996] df40: c1a07818 c1003d00 00000088 c1bcc000 c1a07800 c013a120 00000000 c10fed3a
[ 495.712191] df60: 00000000 c1af5340 c1af5300 c1bcc000 c189bdb0 c013a0d4 c1af4380 c1af5364
[ 495.720387] df80: 00000000 c01402a4 00000000 c1af5300 c0140160 00000000 00000000 00000000
[ 495.728582] dfa0: 00000000 00000000 00000000 c0100148 00000000 00000000 00000000 00000000
[ 495.736777] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 495.744973] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 495.753322] [<bf0ea3d8>] (brcmf_sdiod_sglist_rw [brcmfmac]) from [<bf0ead4c>] (brcmf_sdiod_send_pkt+0xb0/0xc0 [brcmfmac])
[ 495.764262] [<bf0ead4c>] (brcmf_sdiod_send_pkt [brcmfmac]) from [<bf0e630c>] (brcmf_sdio_sendfromq+0x438/0x7b4 [brcmfmac])
[ 495.775400] [<bf0e630c>] (brcmf_sdio_sendfromq [brcmfmac]) from [<bf0e90e0>] (brcmf_sdio_dpc+0x288/0x90c [brcmfmac])
[ 495.785933] [<bf0e90e0>] (brcmf_sdio_dpc [brcmfmac]) from [<bf0e9798>] (brcmf_sdio_dataworker+0x34/0x80 [brcmfmac])
[ 495.796316] [<bf0e9798>] (brcmf_sdio_dataworker [brcmfmac]) from [<c0139d14>] (process_one_work+0x1e8/0x5a8)
[ 495.806137] [<c0139d14>] (process_one_work) from [<c013a120>] (worker_thread+0x4c/0x520)
[ 495.814240] [<c013a120>] (worker_thread) from [<c01402a4>] (kthread+0x144/0x180)
[ 495.821635] [<c01402a4>] (kthread) from [<c0100148>] (ret_from_fork+0x14/0x2c)
[ 495.828917] Exception stack(0xc1bcdfb0 to 0xc1bcdff8)
[ 495.833981] dfa0: 00000000 00000000 00000000 00000000
[ 495.842175] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 495.850368] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 495.856952] Code: e0822004 e59ac000 e2821101 21a0600e (e590e000)
[ 495.863448] ---[ end trace 310072358a036424 ]---
I found this thread " brcmfmac driver cause kernel Null pointer in Ti's SOC " with a similar kernel NULL pointer, and I tried the suggested tests about try to slow down the SDIO clock but the kernel NULL pointer occurs always with the same frequency.
Do you have any guidance on how to fix that issue?
Thanks in advance,
Arturo
Show LessDear Sir,
I find the CYW54591 datasheet as below but I do not know how to control BT_HOST_WAKE and BT_DEV_WAKE pins by HCI commands.
I used the "Enable_generic_Wake_on_BLE" command but BT_HOST_WAKE and BT_DEV_WAKE pins can not be changed.
Could you have any example to control the pins or any suggests.thanks.
B.R.
Bill
Show Less