CYW43438 integration with iMX286 and Kernel 2.X

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

cross mob
mineronarrow
Level 2
Level 2
Distributor - Arrow(GC)
10 questions asked 25 sign-ins 10 replies posted

Hi All,

I am seeking guidance to integrate with iMX286 and Kernel 2.X, understanding backport will be required.

The original design was with another chipset supplier, and that solution will be EOL. We are hoping to swap to CYW43438 based solution, without changing the host MPU, and kernel version.

 I already checked with local Cypress support, and was advised to check with global community as well.

Also, is there manufacturing testing (MFG) firmware available for FCC testing? 

Thanks,

 

 

0 Likes
1 Solution
Zhengbao_Zhang
Moderator
Moderator
Moderator
250 sign-ins First comment on KBA 10 questions asked

Hello:

  For how to compile the fmac backport driver, we have a README file along with the release .

#### Build the cypress driver/backports modules
```bash
#1. Untar the Cypress backports package
tar zxvf cypress-backports-*.tar.gz
cd v4.12-backports
#2. (Native) compile local tools and generate .config (in a new terminal
# without sourcing Yoctol toolchain settings)
bash
MY_KERNEL=<the 4.1.15 kernel path>
make KLIB=$MY_KERNEL KLIB_BUILD=$MY_KERNEL defconfig-brcmfmac
#3. (Cross) compile kernel modules
source /opt/poky/1.8/environment-setup-cortexa7hf-vfp-neon-poky-linux-gnueabi
make KLIB=$MY_KERNEL KLIB_BUILD=$MY_KERNEL modules
#4. The kernel modules are available here
# compat/compat.ko
# net/wireless/cfg80211.ko
# drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
# drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko

View solution in original post

0 Likes
13 Replies
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi Mineronarrow,

Your Cypress driver Cypress Linux WiFi Driver Release (FMAC) [2020-09-25] Yes?/No?

you can ask your wifi-module supplier
how to porting wifi driver and Which get manufacturing test (MFG) firmware can be used for FCC testing?

0 Likes
mineronarrow
Level 2
Level 2
Distributor - Arrow(GC)
10 questions asked 25 sign-ins 10 replies posted

Hi DS_Lin,

 

Thanks. 

Yes. We use this version.

https://community.cypress.com/t5/Resource-Library/Cypress-Linux-WiFi-Driver-Release-FMAC-2020-09-25/...

 

For the FCC test firmware, should I get it from Cypress? The module supplier had provided hcd and nvram file to me.

Cypress should provide me the MFG firmware, correct? 

 

 

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi Mineronarrow,

For the MFG firmware,
you can ask your module supplier ==>module supplier ask Cypress

0 Likes
mineronarrow
Level 2
Level 2
Distributor - Arrow(GC)
10 questions asked 25 sign-ins 10 replies posted

Hi DS_Lin,

Thanks for the reply. I downloaded "cypress-backports-v5.4.18-2020_0925-module-src.tar" version.

In the sdio.c file, it does not have the chip "43438".  Can you please suggest? 

BRCMF_FW_DEF(43143, "brcmfmac43143-sdio");
BRCMF_FW_DEF(43241B0, "brcmfmac43241b0-sdio");
BRCMF_FW_DEF(43241B4, "brcmfmac43241b4-sdio");
BRCMF_FW_DEF(43241B5, "brcmfmac43241b5-sdio");
BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
BRCMF_FW_DEF(4330, "brcmfmac4330-sdio");
BRCMF_FW_DEF(4334, "brcmfmac4334-sdio");
CY_FW_DEF(43340, "cyfmac43340-sdio");
BRCMF_FW_DEF(4335, "brcmfmac4335-sdio");
CY_FW_DEF(43362, "cyfmac43362-sdio");
CY_FW_DEF(4339, "cyfmac4339-sdio");
BRCMF_FW_DEF(43430A0, "brcmfmac43430a0-sdio");
/* Note the names are not postfixed with a1 for backward compatibility */
CY_FW_DEF(43430A1, "cyfmac43430-sdio");
CY_FW_DEF(43455, "cyfmac43455-sdio");
BRCMF_FW_DEF(43456, "brcmfmac43456-sdio");
CY_FW_DEF(4354, "cyfmac4354-sdio");
CY_FW_DEF(4356, "cyfmac4356-sdio");
CY_FW_DEF(4359, "cyfmac4359-sdio");
CY_FW_DEF(4373, "cyfmac4373-sdio");
CY_FW_DEF(43012, "cyfmac43012-sdio");

static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
BRCMF_FW_ENTRY(BRCM_CC_43143_CHIP_ID, 0xFFFFFFFF, 43143),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x00000020, 43241B4),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0xFFFFFFC0, 43241B5),
BRCMF_FW_ENTRY(BRCM_CC_4329_CHIP_ID, 0xFFFFFFFF, 4329),
BRCMF_FW_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330),
BRCMF_FW_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334),
BRCMF_FW_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340),
BRCMF_FW_ENTRY(BRCM_CC_43341_CHIP_ID, 0xFFFFFFFF, 43340),
BRCMF_FW_ENTRY(BRCM_CC_4335_CHIP_ID, 0xFFFFFFFF, 4335),
BRCMF_FW_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362),
BRCMF_FW_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339),
BRCMF_FW_ENTRY(BRCM_CC_43430_CHIP_ID, 0x00000001, 43430A0),
BRCMF_FW_ENTRY(BRCM_CC_43430_CHIP_ID, 0xFFFFFFFE, 43430A1),
BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0x00000200, 43456),
BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0xFFFFFDC0, 43455),
BRCMF_FW_ENTRY(BRCM_CC_4354_CHIP_ID, 0xFFFFFFFF, 4354),
BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
};

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi Mineronarrow,

I could not provide MFG FW for brcmfmac on iMX286 here.

Could you create MyCase technical support?

Then ask to provide MFG FW for brcmfmac on iMX286

I think there are more recent MFG FW release versions.

1. Please visit MyCases site below.

https://www.cypress.com/mycases

2.Please select MyCases

DS_Lin_0-1620190613990.png

 

 

3.Please select Technical Support, then you can create new MyCases.

If your account does not has Technical Support,

please report it on following link.

https://www.cypress.com/webform/website-support

DS_Lin_1-1620190613995.png

 

Br,
DS

0 Likes
ErZo_4003261
Level 1
Level 1
Distributor - Arrow(GC)
10 sign-ins 5 replies posted 5 sign-ins

Hi DS_Lin,

The module supplier had replied me they have the MFG firmware already.

Now, the question is now on the backporting.   

Thanks for the reply. I downloaded "cypress-backports-v5.4.18-2020_0925-module-src.tar" version.

In the sdio.c file, it does not have the chip "43438".  Can you please suggest? 

BRCMF_FW_DEF(43143, "brcmfmac43143-sdio");
BRCMF_FW_DEF(43241B0, "brcmfmac43241b0-sdio");
BRCMF_FW_DEF(43241B4, "brcmfmac43241b4-sdio");
BRCMF_FW_DEF(43241B5, "brcmfmac43241b5-sdio");
BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
BRCMF_FW_DEF(4330, "brcmfmac4330-sdio");
BRCMF_FW_DEF(4334, "brcmfmac4334-sdio");
CY_FW_DEF(43340, "cyfmac43340-sdio");
BRCMF_FW_DEF(4335, "brcmfmac4335-sdio");
CY_FW_DEF(43362, "cyfmac43362-sdio");
CY_FW_DEF(4339, "cyfmac4339-sdio");
BRCMF_FW_DEF(43430A0, "brcmfmac43430a0-sdio");
/* Note the names are not postfixed with a1 for backward compatibility */
CY_FW_DEF(43430A1, "cyfmac43430-sdio");
CY_FW_DEF(43455, "cyfmac43455-sdio");
BRCMF_FW_DEF(43456, "brcmfmac43456-sdio");
CY_FW_DEF(4354, "cyfmac4354-sdio");
CY_FW_DEF(4356, "cyfmac4356-sdio");
CY_FW_DEF(4359, "cyfmac4359-sdio");
CY_FW_DEF(4373, "cyfmac4373-sdio");
CY_FW_DEF(43012, "cyfmac43012-sdio");

static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
BRCMF_FW_ENTRY(BRCM_CC_43143_CHIP_ID, 0xFFFFFFFF, 43143),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x00000020, 43241B4),
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0xFFFFFFC0, 43241B5),
BRCMF_FW_ENTRY(BRCM_CC_4329_CHIP_ID, 0xFFFFFFFF, 4329),
BRCMF_FW_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330),
BRCMF_FW_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334),
BRCMF_FW_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340),
BRCMF_FW_ENTRY(BRCM_CC_43341_CHIP_ID, 0xFFFFFFFF, 43340),
BRCMF_FW_ENTRY(BRCM_CC_4335_CHIP_ID, 0xFFFFFFFF, 4335),
BRCMF_FW_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362),
BRCMF_FW_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339),
BRCMF_FW_ENTRY(BRCM_CC_43430_CHIP_ID, 0x00000001, 43430A0),
BRCMF_FW_ENTRY(BRCM_CC_43430_CHIP_ID, 0xFFFFFFFE, 43430A1),
BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0x00000200, 43456),
BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0xFFFFFDC0, 43455),
BRCMF_FW_ENTRY(BRCM_CC_4354_CHIP_ID, 0xFFFFFFFF, 4354),
BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
};

 

I will submit a case in my case tech support as well. 

 

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi ErZo,

You can try add the following into sdio.c and rename mfg fw cyfmac43438-sdio

CY_FW_DEF(43438, "cyfmac43438-sdio");

static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {

..

BRCMF_FW_ENTRY(CY_CC_43438_CHIP_ID, 0xFFFFFFFF, 43438)

..

};

Br,
DS

 

 

 

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi ErZo,

Do you have create a support request according to the precise instructions
How add the chip "43438" into sdio.c

I try add 4348 chip sdio.c have error
cypress-fmac-v5.4.18-2021_0114/cypress-backports-v5.4.18-2021_0114-module-src/v5.4.18-backports/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:663:24: error: ‘CY_CC_43438_CHIP_ID’ undeclared here (not in a function); did you mean ‘CY_CC_4373_CHIP_ID’?
BRCMF_FW_ENTRY(CY_CC_43438_CHIP_ID, 0xFFFFFFFF, 43438)
^
cypress-fmac-v5.4.18-2021_0114/cypress-backports-v5.4.18-2021_0114-module-src/v5.4.18-backports/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h:43:4: note: in definition of macro ‘BRCMF_FW_ENTRY’
{ chipid, mask, BRCM_ ## name ## _FIRMWARE_BASENAME }

So I think it was not define CY43438 watermark expressed in number of words //sdio.c :142

Br,
DS

0 Likes
mineronarrow
Level 2
Level 2
Distributor - Arrow(GC)
10 questions asked 25 sign-ins 10 replies posted

Hi DS_Lin,

Thanks for the follow up. I am submitting the case now.

Thanks,

 

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

Hi Mineronarrow,

You're welcome, if you get a solution, I hope you can share it with everyone .
Thank you for submitting the case.

Br,
DS

0 Likes
mineronarrow
Level 2
Level 2
Distributor - Arrow(GC)
10 questions asked 25 sign-ins 10 replies posted

Hi DS_Lin,

I got reply from my case already. I will let the developer to try and make sure it works first before posting it here. 

Thanks for your advice.

 

0 Likes
DS_Lin
Level 5
Level 5
Distributor - Zenitron(GC)
First comment on blog 100 sign-ins 50 replies posted

😁😁😁😁😁

0 Likes
Zhengbao_Zhang
Moderator
Moderator
Moderator
250 sign-ins First comment on KBA 10 questions asked

Hello:

  For how to compile the fmac backport driver, we have a README file along with the release .

#### Build the cypress driver/backports modules
```bash
#1. Untar the Cypress backports package
tar zxvf cypress-backports-*.tar.gz
cd v4.12-backports
#2. (Native) compile local tools and generate .config (in a new terminal
# without sourcing Yoctol toolchain settings)
bash
MY_KERNEL=<the 4.1.15 kernel path>
make KLIB=$MY_KERNEL KLIB_BUILD=$MY_KERNEL defconfig-brcmfmac
#3. (Cross) compile kernel modules
source /opt/poky/1.8/environment-setup-cortexa7hf-vfp-neon-poky-linux-gnueabi
make KLIB=$MY_KERNEL KLIB_BUILD=$MY_KERNEL modules
#4. The kernel modules are available here
# compat/compat.ko
# net/wireless/cfg80211.ko
# drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
# drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko

0 Likes