cyw4339 murata driver

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
LiYa_296301
Level 3
Level 3
Welcome! 25 replies posted 10 replies posted

We now used cyw4339 and cyw43455, from murata,

driver:

https://github.com/murata-wireless/cyw-fmac/archive/cyw-fmac-imx-morty-manda_r1.0.tar.gz

fw:

GitHub - murata-wireless/cyw-fmac-fw

nvram:

GitHub - murata-wireless/cyw-fmac-nvram

can't find clm_blob file for cyw4339, cyw43455 have clm_blob file

Driver for two kinds of chip often print "brcmfmac: brcmf_parse_vndr_ies: invalid vndr ie. length is too small 4", but seems there isn't problem. Will it have some potential issues?

And also how to check if dfs enable/disable with wl?

0 Likes
1 Solution

Hello:

  please check below instructions I extracted from the address:

https://www.prowesswireless.com/single-post/2016/05/28/DFS-80211h

I think it explains the Master and STA role in DFS clearly .

and if your product already passed the lab test for DFS, it should have no problem for your concerns.

4.5 DFS Operating modes

The WLAN devices will operate in either Master (AP) or Slave (STA) devices. WLAN devices operating as a Slave (STA) shall only operate in a network controlled by a WLAN device operating as a Master (AP).

The operational behavior and individual DFS requirements that are associated with master and slave devices are as follows

4.5.1 Role of Master device

  • Master device should have radar detection functionality in order to detect radar signal on operating channel.
  • A DFS capable master device will start operations only on Non – radar detected channels which will become operating channel.
  • Master device should continuously monitor that operating channel for the presence of radar signal .This operation is called In-service monitoring(ISM).
  • If radar frequency is detected on operating channel the master device should move to another non-radar detected channel by advertising its channel switch operation to its associated STAs by including C.S.A element in its  beacon frames.
  • Master device should perform Channel availability check on off channel (if it is DFS channel) to verify if any radars are operating on that channel before switching.
  • If no radar is detected during CAC period of time then that channel will become available channel or operating channel.
  • The radar detected  channel will become unavailable channel or unusable channel for a Non occupancy period(NOP) of time .
  • Continuous monitoring for the detection of radar signals  will be done on operating channel called as In service monitoring .
  • If radar is detected during this process it follows the same procedure as mentioned above
  • Most of the DFS operation is carried out by master device, Slave functionality is to monitor Master device .
  • The prime function of Slave device is that it should not transmit any frames once after radar signal  is detected on the operating channel.
  • It should not resume any frames on the radar detected channel .
  • Slave should monitor to Master device for proper signal to start transmit operation.
  • Slave should listen to the beacon frames of AP for channel switch operation and Transmit operation.
  • C.S.A element in beacons plays key role Slave device operation.

View solution in original post

43 Replies
BiCh_3977566
Level 1
Level 1
10 sign-ins 5 sign-ins Welcome!

Hi user_15783651

cyw4339, Murata type 1CK module is not recommended for new designs. ​Is it already on your product already? Or you are going to adopt this module?

As for the wield print message, can you share more information?

What is your target?

How you built your image?

What's the Kernel Version?

What's the fmac firmware version, i.e. manda, mothra, battra, or orga?

What is your command log?

0 Likes
LiYa_296301
Level 3
Level 3
Welcome! 25 replies posted 10 replies posted

I used two kinds of chip, they are cyw4399 zp and cyw43455 1MW, murata have confirmed that all still on product.

My target is xilinx zynq platform, we downloads kernel from xilinx github, tag "xilinx-v2017.4"​, kernel version is: 4.9.0-xilinx

https://github.com/Xilinx/linux-xlnx/archive/xilinx-v2017.4.tar.gz

fmac driver is downloaded from murata github, tag "imx-morty-manda_r1.0", I think it should be manda:

https://github.com/murata-wireless/cyw-fmac/archive/imx-morty-manda_r1.0.tar.gz

I also tried fmac driver "cypress-fmac-v4.14.77-2019_0503.zip" download from here, have same problem.

I started with wpa_supplicant, the wpa_supplicant.conf is

network={

  disabled=2

  ssid="DIRECT-ssid-zed"

  mode=3

  key_mgmt=WPA-PSK

  #proto=RSN

  #pairwise=CCMP

  psk="12345670"

}

then used the following step

    start-stop-daemon -S -q -x wpa_supplicant -- -ts -B -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf

    wpa_cli p2p_group_add persistent=0 freq=5 vht > /dev/null

0 Likes
LiYa_296301
Level 3
Level 3
Welcome! 25 replies posted 10 replies posted

bill.chen_3977566

any update?

Is p2p support dfs feature?

0 Likes

Hello:

   All the wifi products will support DFS function if 5G band is adopted, it did not depends on if it is sta, AP, or P2P.  Do you find your product is not running DFS when doing the test in the lab ?

you can have a check with the command :

wl dfs_status to check if the return value is normal.

Thanks,

That is my serial output

pastedImage_1.png

I guess DFS disabled.

The result of "iw reg get" and "wl country" is not same, why?

when I use "wpa_cli p2p_group_add persistent=0 freq=5500 vht > /dev/null" to set channel to 100. it can't work. This is wpa_supplicant log

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=2): 24 2c

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 117                                  

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=2): 28 30                                   

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 124                

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=4): 95 99 9d a1                             

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 125

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=5): 95 99 9d a1 a5

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 126

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=2): 95 9d

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 127

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=2): 99 a1

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 128

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=4): 24 28 2c 30

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Add operating class 130                             

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Channels - hexdump(len=4): 24 28 2c 30   

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: Update channel list                        

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11 115:36,40,44,48 116:36,44 117:40,48 124:149,153,157,161 125:149,153,157,161,165 126:149,157 127:153,161 128:36,40,44,48 130:36,40,44,

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: P2P: cli_channels:                                                                      

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[746]: Daemonize..                      

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: RTM_NEWLINK: ifi_index=4 ifname=wlan0 operstate=0 linkmode=0 ifi_family=0 ifi_flags=0x1043 ([UP][RUNNING])

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: RTM_NEWLINK: ifi_index=4 ifname=wlan0 operstate=2 linkmode=0 ifi_family=0 ifi_flags=0x1003 ([UP])

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: RTM_NEWLINK: ifi_index=4 ifname=wlan0 operstate=2 linkmode=1 ifi_family=0 ifi_flags=0x1003 ([UP])

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: p2p-dev-wlan0: Control interface command 'SET_NETWORK [REMOVED]'    

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: CTRL_IFACE: SET_NETWORK id=0 name='ssid'                                         

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: p2p-dev-wlan0: Control interface command 'P2P_GROUP_ADD persistent=0 freq=5500 vht'

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: P2P: Stopping find

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: P2P: Clear timeout (state=IDLE)               

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: P2P: State IDLE -> IDLE                         

Jan  1 00:00:04 buildroot daemon.debug wpa_supplicant[754]: P2P: The forced channel for GO (5500 MHz) is not supported for P2P uses

0 Likes

Hello:

    We have the newest driver and firmware release in this link, you can get the 43455 firmware and clm image for a try .

Cypress Linux WiFi Driver Release (FMAC) [2019-05-08]

Yes, I try the newest driver and firmware, No any difference. I also checked the driver/firmware with murata's, they are totally same.

When I run wl dfs_status in two kinds of chip:

cyw4339: still return error -23

cyw43455: state IDLE time elapsed 0ms radar channel cleared by dfs none

here is the log when I start driver for cyw43455:

brcmutil: loading out-of-tree module taints kernel.

Loading modules backported from Linux version v4.14.52-manda-RTM-0-g897c6ce

Backport generated by backports.git v4.14-rc2-1-70-g694b78f

brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006

# usbcore: registered new interface driver brcmfmac

brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Sep 21 2018 04:08:34 version 7.45.173 (r707987 CY) FWID 01-d2799ea2

0 Likes

I made a mistake in last reply, which used v4.14.52 cypress released in 2018.

When I run wl dfs_status in two kinds of chip:

cyw4339: still return error -23

cyw43455: state IDLE time elapsed 0ms radar channel cleared by dfs none

here is the right log output(still use txt from murata due to no any txt file in the package):

brcmutil: loading out-of-tree module taints kernel.

Loading modules backported from Linux version v4.14.77-2019_0503-0-g1dfe0a6

Backport generated by backports.git v4.14-rc2-1-70-g694b78f

brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac4339-sdio.bin for chip 0x004339(17209) rev 0x000002

usbcore: registered new interface driver brcmfmac

brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4339-sdio.clm_blob failed with error -2

brcmfmac: brcmf_c_process_clm_blob: no clm_blob available(err=-2), device may have limited channels available

brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: May  2 2019 12:09:40 version 6.37.39.111 (r714235 CY)

0 Likes

Hello:

brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac4339-sdio.clm_blob failed with error -2

Did you copy the clm file together for the test ?

There is no clm_blob file in the package. do you have it?

Murata have no clm_blob for cyw4339

Cypress package have no clm_blob for cyw4399

0 Likes

Yes, I check the readme file,  unfortunately 4339 is not supported in the list.

From my personal side , if you can switch to 43455 for the 11ac support  and DFS?

Supported Features

-----------------

* Concurrent APSTA

* P2P

* Out-of-band (OOB) interrupt

* CLM download (43455/4343w/4354/4356/43012/89342/89359/4373)

* Wake on Wireless LAN

* Voice enterprise (43455)

* PMF

* WPA3 (43455)

* RSDB (89342/89359)

* Thermal throttling (4343w)

* Fast roaming (89342)

So cyw4339 can't support dfs feature?

We have some product use cyw4339.

0 Likes

@Bill ,  Would you please help to check if Murata has a firmware to support 4339 dfs feature without newest CLM mode ?   now I can't find the support from formal linux release package.

0 Likes

Adding bill.chen_3977566​ and skerr_1713761​ from Murata.

0 Likes

Is the output showing dfs enabled?

# iw reg get

global

country 00: DFS-UNSET

        (2402 - 2472 @ 40), (6, 20), (N/A)

        (2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN

        (2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN

        (5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN

        (5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN

        (5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN

        (5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN

        (57240 - 63720 @ 2160), (N/A, 0), (N/A)

# wl dfs_status

state IDLE time elapsed 0ms radar channel cleared by dfs none

# wl country

US (US/0) UNITED STATES

Here is my cyw43455 output log:

brcmutil: loading out-of-tree module taints kernel.

Loading modules backported from Linux version v4.14.77-2019_0503-0-g1dfe0a6

Backport generated by backports.git v4.14-rc2-1-70-g694b78f

brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006

usbcore: registered new interface driver brcmfmac

brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: May  2 2019 02:46:17 version 7.45.189 (r714228 CY) FWID 01-e1db26e2

0 Likes

Hello:

   yes, your answer is right.

0 Likes

How to enable my chip work in radar channel?

Currently I use "wpa_cli p2p_group_add persistent=0 freq=5 vht > /dev/null" to enable p2p go mode

but the chip never run in radar channel, it always run in 36-48?

0 Likes

No  any one have experience for that?

0 Likes

p2p_group_add [persistent|persistent=<network id>] [freq=<freq in MHz>]

[ht40] [vht] [he]

Set up a P2P group owner manually (i.e., without group owner

negotiation with a specific peer). This is also known as autonomous

GO. Optional persistent=<network id> can be used to specify restart of

a persistent group. Optional freq=<freq in MHz> can be used to force

the GO to be started on a specific frequency. Special freq=2 or freq=5

options can be used to request the best 2.4 GHz or 5 GHz band channel

to be selected automatically.

0 Likes

My question is:

How to enable my chip work in radar channel?

but the chip never run in radar channel, it always run in 36-48?

0 Likes

From the comments:

   you need to set freq into a specific frequency like 5180...,  freq =5 will select channel automatically .

so will run in 36-48 .

Optional freq=<freq in MHz> can be used to force

the GO to be started on a specific frequency. Special freq=2 or freq=5

options can be used to request the best 2.4 GHz or 5 GHz band channel

to be selected automatically

I think about SoftAP DFS:

Driver/wifi chip should keep scanning available channels, select a set of available channels to work, when a radar is using a particular channel that chip is currently in use, driver/wifi chip should switch to another available dfs channel.

Should my application do all this works instead of driver/wifi chip?

0 Likes

Should my application do all this works instead of driver/wifi chip?

No,DFS is not decided by your application .  Most of the work should be done inside the chip.

0 Likes

So my question is how to enable or set chip to do DFS?

0 Likes

Normally when I started DFS feature, in most cases, there is no radar use any channel, so the chip should work in radar channel, but now I found the chip never worked in radar channel.

How to do it? Any eperience?

0 Likes

STA channel is depending on the AP side.

Softap will have a conf file, or  can set the channel to specific one by using wpa_cli ,hostapd.

I shared some experience on hostapd.conf,  but I do not know how to use iw to set a specific channel and bring up one softap.

interface=wlan0

driver=nl80211

ctrl_interface=/data/misc/wifi/sockets

ssid=hostap_test

channel=1

wpa_key_mgmt=NONE

interworking=1

# Access Network Type

access_network_type=15

0 Likes

So need I specified a special dfs channel when starting? How do I know the channel I specified is available?

Do driver/chip have no feature to select a available dfs channel when starting?

0 Likes

Before an AP starts to operate at a DFS channel, it will check for radar signals for about a minute. This is known as CAC (Channel Availability Check). It also checks periodically during operation (In-Service Monitoring). It is the duty of the AP to notify the STAs when a channel must be switched due to radar activity detected (by sending a Channel Switch Announcement frame). The AP usually switches channel within 10 seconds of detecting a radar conflict. If the STA supports CSA, it will switch to the new channel, otherwise, it must go through the standard AP probe and association routine again.

The following steps are mentioned in the Cypress Wi-Fi regulatory manual for DFS testing (https://www.cypress.com/file/453451 😞

Command
Notes                              
wl down

This command can also be used to reset the blacklisted DFS channels, but it is also used to set the radio to standby mode

wl ap 1Will enable softAP mode
wl mpc 0Disables the minimum power consumption
wl country US/0Use US/0 for FCC, BE/4 for EU, JP/972 for Japan
wl band aSet the radio to only operated in 5GHz band
wl mimo_bw_cap 1To enable 40 and 80 MHz
wl dfs_preism 1To enable and disable the CAC (60sec). 0 = disable, 1 = enable
wl spect 1To enable 802.11H for DFS testing
wl txchain 3Test SISO by using 1. If using MIMO 3, then connect both RF ports.
wl chanspec 100/20

Controls the operating channel of radio. For 40 use wl chanspec 100/40 and for 80 use wl chanspec 100/80

wl upTurn on the radio
wl radar 1Enable radar detection
wl ssid DFS_APSets the SSID to identify the radio as DFS_AP
wl statusShows the Access Point (softAP) information of channel.
wl dfs_ism_monitor 0

To enable and disable the channel from moving when radar signal is detected. 0 = enable, 1 = disable

wl chan_info

To show radar sensitive, passive and temporary out of service for 30min after radar signal detected on any of the DFS channels.

Hopefully this helps.

Thanks.

I think you misunderstand my meaning. The  chip work in SOFTAP. I agree STA channel is depending on the AP side, so I am not talking about station, I am always focus on AP side.

My question is when the chip work as softap

Need I specified a special dfs channel when starting SOFTAP? How do I know the channel I specified is available?

Do driver/chip have no feature to select a available dfs channel when starting SOFTAP?

0 Likes

hello:

    if we use host_apd to start a softap , it has parameter in the conf file to set the channel.

so please update your command list on how to bring up the softap in your environment, we will have a study about how to set the channel in your setting.   and by the way did your product ever pass some certification by using wl tool ?

Yes, I know there is a setting to set channel in hostapd.conf, but I think that it will be better if driver can select a available channel. So I just want to know if driver have the feature? In other word, I don't want to specified a channel in hostapd.conf, I hope driver select a available channel for me according to country code and radar status, because it is difficult to specifying a channel when starting softap, we have to search dfs channel list according to country code.

Out product is still on R&D, so far have no any wifi certification testing.

0 Likes

Unfortunately , we didn't recommend customer to modify the channel setting from the driver layer directly .

if you really want to , please find this function if you are DHD based:

wl_cfg80211_set_channel(struct wiphy *wiphy, struct net_device *dev,

struct ieee80211_channel *chan,

enum nl80211_channel_type channel_type)

err = wldev_ioctl(dev, WLC_SET_CHANNEL,

&_chan, sizeof(_chan), true);

0 Likes

I agree you, it isn't good idea to change driver layer, which may have potential issue.

If nvram file or clm_blob file have no any this config item, we have to chose a channel stead of driver select a channel.

0 Likes

Thank you for your replying.

Is there a tool to simulate a radar detected? because we have no device to simulate a radar signal, do wl have any command to tell driver a radar comming?

0 Likes

Hello:

   I think that needs a signal generator and attenuation device which can get the signal strength you want.

Maybe you can raise help to your module maker or distributor.

0 Likes

Or when driver detected a radar signal, which channel driver will move to? channel 36 or others?

0 Likes

I  know it is necessary to scan 1 minute when starting dfs channel, but for some channels, it is 10 minutes, it is too long for my device, I want to exclude those channels needed 10 minutes delay.

So I want to know which channel driver/chip will move to when a radar signal detected.

0 Likes

Hello:

  please check below instructions I extracted from the address:

https://www.prowesswireless.com/single-post/2016/05/28/DFS-80211h

I think it explains the Master and STA role in DFS clearly .

and if your product already passed the lab test for DFS, it should have no problem for your concerns.

4.5 DFS Operating modes

The WLAN devices will operate in either Master (AP) or Slave (STA) devices. WLAN devices operating as a Slave (STA) shall only operate in a network controlled by a WLAN device operating as a Master (AP).

The operational behavior and individual DFS requirements that are associated with master and slave devices are as follows

4.5.1 Role of Master device

  • Master device should have radar detection functionality in order to detect radar signal on operating channel.
  • A DFS capable master device will start operations only on Non – radar detected channels which will become operating channel.
  • Master device should continuously monitor that operating channel for the presence of radar signal .This operation is called In-service monitoring(ISM).
  • If radar frequency is detected on operating channel the master device should move to another non-radar detected channel by advertising its channel switch operation to its associated STAs by including C.S.A element in its  beacon frames.
  • Master device should perform Channel availability check on off channel (if it is DFS channel) to verify if any radars are operating on that channel before switching.
  • If no radar is detected during CAC period of time then that channel will become available channel or operating channel.
  • The radar detected  channel will become unavailable channel or unusable channel for a Non occupancy period(NOP) of time .
  • Continuous monitoring for the detection of radar signals  will be done on operating channel called as In service monitoring .
  • If radar is detected during this process it follows the same procedure as mentioned above
  • Most of the DFS operation is carried out by master device, Slave functionality is to monitor Master device .
  • The prime function of Slave device is that it should not transmit any frames once after radar signal  is detected on the operating channel.
  • It should not resume any frames on the radar detected channel .
  • Slave should monitor to Master device for proper signal to start transmit operation.
  • Slave should listen to the beacon frames of AP for channel switch operation and Transmit operation.
  • C.S.A element in beacons plays key role Slave device operation.