Framework Version
cy-imx-android-10.0.0_2.0.0-6
Kernel Verison
Linux localhost 5.4.3-00002-ga85b5953f05b #1 SMP PREEMPT Wed Dec 23 07:58:53 CST 2020 aarch64
FMAC Version
v5.4.18-gamera-android-2-0-gde98449dbb46
Release Date
2021.01.22
Description
Cypress Android release for the broad market based on the NXP Android 10.0.0_2.0.0 release.
This release has been qualified on the NXP i.MX8MQuad Evaluation Kit (EVK) 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:
* backports-wireless
* cypress-fmac-patches
* firmware
* nvram
* aosp-patches
* utilities
* build.sh
* Cirrent Agent 1.50
* README
Test Environment
* ARM64 (NXP i.MX8MQuad Evaluation Kit)
* NXP Android 10.0.0_2.0.0
* 4354/45455/43012 Sanity and VTS
Change Log
[2021-03-05]
* Initial post
Show LessHello,
We are moving from the cymdhd driver to the brcfmac backport with an CYM43455. We needed to set the following dhd build flags in order to achieve good 5Ghz WiFi throughput. What are the equivalent settings in brcmfmac?
DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16
DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
DHDCFLAGS += -DCUSTOM_GLOM_SETTING=8
DHDCFLAGS += -DBCMSDIOH_TXGLOM -DCUSTOM_TXGLOM=1
DHDCFLAGS += -DDHDTCPACK_SUPPRESS
DHDCFLAGS += -DRXFRAME_THREAD
DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=31
DHDCFLAGS += -DMAX_HDR_READ=128
DHDCFLAGS += -DDHD_FIRSTREAD=128
Thanks!
Show LessHello,
We're using a CYM43455 with Android 8.1, Kernel 4.9, with the brcmfmac driver from the backports package in Cypress Linux WiFi Driver Release (FMAC) [2020-09-25].
We are not able to achieve the same 5GHz throughput using iperf in lab conditions using the brcmfmac driver compared to our vendor's (AzureWave) preferred cymdhd driver. The cywdhd driver achieves 103 Mbits/sec in client mode, while the brcmfmac driver only achieves 86 Mbits/sec.
For the cymdhd driver to achieve its highest throughput, its driver required optimizations such as "tcp delayed ack", "rx frame thread" concurrency, and others that do not look to be available options in the brcmfmac driver.
What is the highest 5Ghz throughput we can expect with the bcrmfmac driver and CYM43455, considering the cymdhd driver can achieve 100+MBits/sec on the same hardware under the same conditions? Is it possible to match the performance of the cymdhd driver when the offloading and concurrency it depends on does not seem to be available in the brcfmac driver?
Thanks!
Show LessHi,
I have been trying to connect phone on the i.MX8QM development board with Bluetooth module Cypress CYW4356. My phone is connected to the board and i am able access the caller app on the board. Using that i made a call to another device and calling is done. But no audio is getting in both devices, which i guess some issues in routing call from the board. The board is connected with a speaker system and we can able able play a music from phone via Bluetooth using an app (media player). I think Bluetooth audio routing has any issue. Could you suggest a method so that i can able to use Bluetooth for telephonic purpose. Thank you.
Regards,
Aravind
Hello,
We're currently using a CYW43455 and porting brcmfmac to and Android 8.1 BSP w/ Kernel 4.9 using backports v5.4.18. We used to be using the bcmdhd driver. bcmdhd will load a 'config.txt' file that sets certain configurations that don't seem to be available in the brcmfmac driver?
This config.txt file allows us to configure things like the supported bands, bw_caps, channels etc.. for different scenarios. Specifically we would like to disable 5Ghz entirely, which we would previously accomplish by setting "band=b" in bcmdhd's config.txt.
How do we support these configurations in brcmfmac?
Thanks!
Show LessHello,
We are trying to use the brcmfmac backports driver for a CYW43455 on and Allwinner BSP using Android 8.1 + Kernel 4.9. We were previously using the bcmdhd driver + hal (using libhardware_legacy) provided by the Allwinner BSP. We have built the brcmfmac backport kernel modules (v5.4.18-2020_0925), and the firmware (provided by our vendor AzureWave) is being loaded successfully:
6,7572,90624538,-;brcmfmac: brcmf_fw_alloc_request: using /system/vendor/modules/fw_cyw43455 for chip BCM4345/6
6,7574,90677612,-;brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Aug 16 2020 21:23:41 version 7.45.203 (r724662 CY) FWID 01-4cfc72ea
However the wlan0 network device is not available, and the WifiVenorHal fails to load:
02-24 23:00:31.013 1990 2239 D WifiService: setWifiEnabled: true pid=22334, uid=0, package=com.android.shell
02-24 23:00:31.013 1990 2239 I WifiService: setWifiEnabled package=com.android.shell uid=0 enable=true
02-24 23:00:31.014 1990 2116 D WifiStateMachine: setting operational mode to 1
02-24 23:00:31.014 1990 2116 D WifiStateMachine: setting operational mode to 1
02-24 23:00:31.015 1990 2117 D WifiStateMachine: InitialState !CMD_SET_OPERATIONAL_MODE rt=10880343/10880343 1 0
02-24 23:00:31.015 1990 2117 D WifiStateMachine: InitialState !CMD_START_SUPPLICANT rt=10880343/10880343 0 0
02-24 23:00:31.015 1990 2117 D HalDeviceManager: isSupportedInternal
02-24 23:00:31.017 1990 2117 D HalDeviceManager: startWifi
02-24 23:00:31.018 1682 1682 I android.hardware.wifi@1.0-service: Wifi HAL started
02-24 23:00:31.018 1990 2101 D HalDeviceManager: IWifiEventCallback.onStart
02-24 23:00:31.018 1990 2117 D HalDeviceManager: initIWifiChipDebugListeners
02-24 23:00:31.019 1990 2117 D HalDeviceManager: getChipIds=[0]
02-24 23:00:31.021 1990 2117 D HalDeviceManager: createIface: ifaceType=0
02-24 23:00:31.022 1990 2117 D HalDeviceManager: getAllChipInfo
02-24 23:00:31.022 1990 2117 D HalDeviceManager: getChipIds=[0]
02-24 23:00:31.027 1990 2117 D HalDeviceManager: validateInterfaceCache
02-24 23:00:31.028 1990 2117 D HalDeviceManager: createIfaceIfPossible: chipInfos=[{chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0)], ifaceType=0
02-24 23:00:31.028 1990 2117 D HalDeviceManager: {.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]} expands to [[1, 0, 1, 0]]
02-24 23:00:31.029 1990 2117 D HalDeviceManager: canIfaceComboSupportRequest: chipInfo={chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0), chipMode={.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, chipIfaceCombo=[I@f320350, ifaceType=0
02-24 23:00:31.029 1990 2117 D HalDeviceManager: compareIfaceCreationData: val1={chipInfo={chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0), chipModeId=0, interfacesToBeRemovedFirst=[]), val2=null
02-24 23:00:31.029 1990 2117 D HalDeviceManager: new proposal accepted
02-24 23:00:31.030 1990 2117 D HalDeviceManager: {.limits = [{.types = [1], .maxIfaces = 1}]} expands to [[0, 1, 0, 0]]
02-24 23:00:31.030 1990 2117 D HalDeviceManager: canIfaceComboSupportRequest: chipInfo={chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0), chipMode={.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}, chipIfaceCombo=[I@dfd924e, ifaceType=0
02-24 23:00:31.030 1990 2117 D HalDeviceManager: Requested type not supported by combo
02-24 23:00:31.031 1990 2117 D HalDeviceManager: compareIfaceCreationData: val1=null, val2={chipInfo={chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0), chipModeId=0, interfacesToBeRemovedFirst=[])
02-24 23:00:31.031 1990 2117 D HalDeviceManager: executeChipReconfiguration: ifaceCreationData={chipInfo={chipId=0, availableModes=[{.id = 0, .availableCombinations = [{.limits = [{.types = [0], .maxIfaces = 1}, {.types = [2], .maxIfaces = 1}]}]}, {.id = 1, .availableCombinations = [{.limits = [{.types = [1], .maxIfaces = 1}]}]}], currentModeIdValid=false, currentModeId=0, ifaces[1].length=0, ifaces[0].length=0, ifaces[2].length=0, ifaces[3].length=0), chipModeId=0, interfacesToBeRemovedFirst=[]), ifaceType=0
02-24 23:00:31.031 1990 2117 D HalDeviceManager: isModeConfigNeeded=true
02-24 23:00:31.032 1682 1682 E android.hardware.wifi@1.0-service: wifi_load_driver: Start to insmod brcmfmac.ko
02-24 23:00:31.032 1682 1682 E android.hardware.wifi@1.0-service: module_arg= nvram_path=/system/vendor/modules/nvram_awcm390sm.txt config_path=/system/vendor/modules/config_awcm390sm.txt
02-24 23:00:31.032 1682 1682 E android.hardware.wifi@1.0-service: module_path= /system/vendor/modules/brcmfmac.ko
02-24 23:00:31.032 1682 1682 I android.hardware.wifi@1.0-service: Open /system/vendor/modules/brcmfmac.ko succuss.
02-24 23:00:31.076 1682 1682 I android.hardware.wifi@1.0-service: Do finit_module ret = 0
02-24 23:00:31.077 1682 1682 I android.hardware.wifi@1.0-service: wifi_driver_fw_path_param = /sys/module/brcmfmac/parameters/alternative_fw_path
02-24 23:00:31.078 1682 1682 E android.hardware.wifi@1.0-service: Could not read interface state for wlan0 (No such device)
02-24 23:00:31.078 1682 1682 E android.hardware.wifi@1.0-service: Failed to set WiFi interface up
02-24 23:00:31.078 1682 1682 E android.hardware.wifi@1.0-service: Failed to start legacy HAL: UNKNOWN
02-24 23:00:31.079 1990 2101 D HalDeviceManager: onChipReconfigureFailure: status=9 (unknown)
02-24 23:00:31.079 1990 2117 E HalDeviceManager: executeChipReconfiguration: configureChip error: 9 (unknown)
02-24 23:00:31.079 1990 2117 E WifiVendorHal: Failed to create STA Iface. Vendor Hal start failed
02-24 23:00:31.079 1990 2117 D HalDeviceManager: stopWifi
02-24 23:00:32.712 1990 2023 D IpManager.wlan0: interfaceAdded(wlan0)
02-24 23:00:33.336 1990 2023 D IpManager.wlan0: interfaceRemoved(wlan0)
What are we missing to create the wlan0 interface?
Show LessWe are using imx6ul custom board with kernel version 5.4
here are the logs
compat: loading out-of-tree module taints kernel.
[ 48.112816] Loading modules backported from Linux version v5.4.18-2020_0402-0-g392330e
[ 48.136949] Backport generated by backports.git v5.5.11-1-0-gabe05f0
[ 52.381616] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 52.438974] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 52.448004] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 52.456654] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[ 64.488165] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 64.512666] imx-sdma 20ec000.sdma: Falling back to sysfs fallback for: imx/sdma/sdma-imx6q.bin
[ 90.690569] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[ 90.701665] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 90.710733] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 90.721296] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[ 90.731692] mmc0: queuing unknown CIS tuple 0x80 (6 bytes)
[ 90.852696] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 90.882206] usbcore: registered new interface driver brcmfmac
[ 90.893490] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.fsl,imx6ul-14x14-evk.txt failed with error -2
[ 90.918201] brcmfmac mmc0:0001:1: Falling back to sysfs fallback for: brcm/brcmfmac43455-sdio.fsl,imx6ul-14x14-evk.txt
[ 115.688266] cfg80211: failed to load regulatory.db
[ 125.928556] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
[ 152.543901] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
Hi,
I'm using BCM4354 wifi module in our product. For FCC compliance testing I need to put the module in continuous transmission in the following modes - 802.11b, g, n(20MHz), n(40MHz) and ac. By referring the Cypress Wi-Fi CLM Regulatory Manual.pdf I was able to do the same. However, I have few concerns in the testing. Kindly, help me in resolving the below 2 issues.
$ wl chanspec -c 1 b 2 -w 40 -s 1 -> channel-1, operating band-2.4GHz, bandwidth - 40MHz
wl:error -20
Is this module limitation?
Anticipating your quick response.
Regards,
Akash Sekhar
Show LessDear Cypress team,
We are using a Murata Wifi HW module with the BCM43455 (https://www.cypress.com/file/2
We have experienced a lot of issues with this on AVM FritzBox Mesh Networks with many of our devices.
We see that a Beta release of the BCM43455 binary firmware was made addressing the issue.
https://github.com/raspberrypi
When is this planned to become part of an official release?
Thanks a lot in advance!
Best,
Nils
New Contributor II
Contributor
Employee
Employee
Employee
New Contributor II
New Contributor II