AW-CM256SM (CYW43455) on SDIO using a Raspberry Pi 4b

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

cross mob
lock attach
Attachments are accessible only for community members.
MaDi_4746751
Level 1
Level 1
Welcome! 5 replies posted First question asked

Hello,

I'm trying to create a test platform for a module that uses the AzureWave AW-CM256SM (which is based on the CYW43455) on the Raspberry Pi 4b. I have added an existing device tree overlay to enable SDIO on GPIO pins 22-27. It appears the module is being detected (sdio) but it fails to initialize. I have attached several outputs for your review. Since the brcmfmac driver for the 43455 was already installed, I have not made any driver changes. Please provide guidance on possible causes and next steps. My linux knowledge is limited so please provide a verbose answer.

Best regards,

Mark

0 Likes
1 Solution

Hello:

Since SDIO interface was detected successfully , but timeout in the logs.

I found a Raspberry tuning record from internet , you can have a reference .

I think you didn't need to modify anything other , only SDIO interface configuration and hardware need to be careful.

https://www.raspberrypi.org/forums/viewtopic.php?t=245225

View solution in original post

11 Replies
Zhengbao_Zhang
Moderator
Moderator
Moderator
250 sign-ins First comment on KBA 10 questions asked

Hello:

Would you please check if brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt exists in the directory /lib/firmware/brcm/  ?

[    8.112856] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2

Hello,

The brcm/brcmfmac43455-sdio file is present. It's my understanding the 43455 part has been used since the 3B model.

The -2 error is benign since when I do not used the SDIO dtoverlay which enables the internal WiFi part, I still see the -2 error but the internal WiFi component works.

I'm have not seen any device tree files with the ".raspberrypi,4-model-b.txt" extension. I'm assuming that is an error.

Best regards,

Mark

# Cloned from bcm94345wlpagb_p2xx.txt

NVRAMRev=$Rev: 498373 $

sromrev=11

vendid=0x14e4

devid=0x43ab

manfid=0x2d0

prodid=0x06e4

#macaddr=00:90:4c:c5:12:38

macaddr=b8:27:eb:74:f2:6c

nocrc=1

boardtype=0x6e4

boardrev=0x1304

#XTAL 37.4MHz

xtalfreq=37400

btc_mode=1

#------------------------------------------------------

#boardflags: 5GHz eTR switch by default

#            2.4GHz eTR switch by default

#            bit1 for btcoex

boardflags=0x00480201

boardflags2=0x40800000

boardflags3=0x44200100

phycal_tempdelta=15

rxchain=1

txchain=1

aa2g=1

aa5g=1

tssipos5g=1

tssipos2g=1

femctrl=0

AvVmid_c0=1,165,2,100,2,100,2,100,2,100

pa2ga0=-129,6525,-718

pa2ga1=-149,4408,-601

pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818

pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575

itrsw=1

pdoffsetcckma0=2

pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0

pdoffset2g40ma0=16

pdoffset40ma0=0x8888

pdoffset80ma0=0x8888

extpagain5g=2

extpagain2g=2

tworangetssi2g=1

tworangetssi5g=1

# LTECX flags

# WCI2

ltecxmux=0

ltecxpadnum=0x0504

ltecxfnsel=0x22

ltecxgcigpio=0x32

maxp2ga0=80

ofdmlrbw202gpo=0x0022

dot11agofdmhrbw202gpo=0x4442

mcsbw202gpo=0x98444422

mcsbw402gpo=0x98444422

maxp5ga0=82,82,82,82

mcsbw205glpo=0xb9555000

mcsbw205gmpo=0xb9555000

mcsbw205ghpo=0xb9555000

mcsbw405glpo=0xb9555000

mcsbw405gmpo=0xb9555000

mcsbw405ghpo=0xb9555000

mcsbw805glpo=0xb9555000

mcsbw805gmpo=0xb9555000

mcsbw805ghpo=0xb9555000

swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff

swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe

swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3

swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3

vcodivmode=1

deadman_to=481500000

ed_thresh2g=-54

ed_thresh5g=-54

eu_edthresh2g=-54

eu_edthresh5g=-54

ldo1=4

rawtempsense=0x1ff

cckPwrIdxCorr=3

cckTssiDelay=150

ofdmTssiDelay=150

txpwr2gAdcScale=1

txpwr5gAdcScale=1

dot11b_opts=0x3aa85

cbfilttype=1

fdsslevel_ch11=6

# Improved Bluetooth coexistence parameters from Cypress

btc_mode=1

btc_params8=0x4e20

btc_params1=0x7530

btc_params50=0x972c

0 Likes

Hello:

    So I can image the board of your tested,   the internal wifi module is still a 43455 or 4356 module , is that right ?   then you disconnect the internal module,  flying the interface to AW-CM256SM . if so , please check:

1.  the NVRAM is released from Azurewave ?

2.  if the SDIO interface is configured correctly after the switch , like pull-up resistor .

0 Likes

Hello,

The internal wifi is disconnected by using the sdio dtoverlay in /boot/config.txt.

The device tree overlay enables gpio 22-27 as an sdio interface.

I have confirmed the sdio interface configuration.

I have pulled high the wifi enable pin on the AW-CM256SM.

Best regards,

Mark

0 Likes

Would you please share the internal chip Nvram ?   and what is the INT mode of AW256 ?  sdio: inband , or GPIO INT,  OOB .

0 Likes

Hello,

I shared the NVRAM contents in a previous post.

I'm not sure about the interrupt mode.

Please provide directions for obtaining the information you are requesting.

Best regards,

Mark

Here is /proc/interrupts

pi@raspberrypi:~ $ cat /proc/interrupts

           CPU0       CPU1       CPU2       CPU3      

17:        108          0          0          0     GICv2  99 Level     timer

18:          0          0          0          0     GICv2  29 Level     arch_timer

19:   22148310    3736479    3500825    3998961     GICv2  30 Level     arch_timer

26:    6352278          0          0          0     GICv2  65 Level     fe00b880.mailbox

29:       6783          0          0          0     GICv2 153 Level     uart-pl011

32:      46509          0          0          0     GICv2 114 Level     DMA IRQ

39:         59          0          0          0     GICv2  66 Level     VCHIQ doorbell

40:   31293899          0          0          0     GICv2 158 Level     mmc1, mmc0

41:   27828936          0          0          0     GICv2 144 Level     vc4 firmware kms

42:          0          0          0          0     GICv2  48 Level     arm-pmu

43:          0          0          0          0     GICv2  49 Level     arm-pmu

44:          0          0          0          0     GICv2  50 Level     arm-pmu

45:          0          0          0          0     GICv2  51 Level     arm-pmu

47:     891720          0          0          0     GICv2 189 Level     eth0

48:          0          0          0          0     GICv2 190 Level     eth0

54:     423729          0          0          0     GICv2 106 Level     v3d

55:          0          0          0          0     GICv2 175 Level     PCIe PME, aerdrv

56:    1937214          0          0          0  BRCM STB PCIe MSI 524288 Edge      xhci_hcd

IPI0:          0          0          0          0  CPU wakeup interrupts

IPI1:          0          0          0          0  Timer broadcast interrupts

IPI2:    1874602    4460050    3935149    5495644  Rescheduling interrupts

IPI3:     136522      62609      63610     144154  Function call interrupts

IPI4:          0          0          0          0  CPU stop interrupts

IPI5:    1556197     633374     615923     674454  IRQ work interrupts

IPI6:          0          0          0          0  completion interrupts

Err:          0

0 Likes

It is strange that the Nvram doesn't provide INT setting.

This is for SDIO in-band interrupt.

sd_gpout=1

sd_oobonly=1

sd_gpval=1

sd_gpdc=0

If the module connected with the INT pin , assume it is GPIO0 from module.

muxenb=0x10

Hello,

I'm not sure what to do with the information you provided.

The files I have are from the standard Raspberry distro which provide the brcmfmac driver supporting the 43455 which the AW-CM256SM is based on. Are you saying the existing files are not correct?

Best regards,

Mark

0 Likes

Would you please share more dts info in this platform especially for wifi part ?

0 Likes
lock attach
Attachments are accessible only for community members.

Hello,

I'm not sure if these files will be helpful but this is what I found.

I didn't file a DTS file related to WiFi.

Best regards,

Mark

0 Likes

Hello:

Since SDIO interface was detected successfully , but timeout in the logs.

I found a Raspberry tuning record from internet , you can have a reference .

I think you didn't need to modify anything other , only SDIO interface configuration and hardware need to be careful.

https://www.raspberrypi.org/forums/viewtopic.php?t=245225