1 2 Previous Next 15 Replies Latest reply on Apr 29, 2020 5:19 AM by ChSi_4659482

    Unable to test CYW43438 on any OS over SDIO

    ChSi_4659482

      Hello VinayakS_26, ZhengbaoZ_96,

       

      After reading various discussions and posts, I think you are the best guys to resolve my issue.

       

      I have a CYW43438 SDIO based module and I want to test it's WiFi & Bluetooth function.

      I have tried Windows, Ubuntu & Fedora environments to test the module but it does not load up on any of the OS.

       

      Test on Windows 10 OS:

      Based on section "Driver Installation" of "OTP Programming and NVRAM Development Process for SDIO Embedded WLAN Devices" guide, I have put the nvram.txt in system32/drivers directory and restarted the system. But windows did not detect the module. Although it was mentioned to use Windows XP but I think it should work on Windows 10 as well?

       

      Test on Linux based OS:

      In the linux systems (Fedora 19 & Ubuntu 18.04/14.04, I get the following messages (dmesg output) when I insert into the SDIO (over PCIe) slot.

      [   11.383887] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)

      [   11.387127] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

      [   11.390315] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

      [   11.396013] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)

      [   11.561398] mmc0: new high speed SDIO card at address 0001

       

      bcma & b43 modules are already loaded but nothing shows up in ifconfig -a.  And when I execute wl utility, I get the below error probably because module failed to load:

      ./wl: wl driver adapter not found

       

      Can you please help me on this?

       

      Please let me know in case of any information required.

       

        • 1. Re: Unable to test CYW43438 on any OS over SDIO
          ZhengbaoZ_96

          Hello:

           

             My opinion is  to run the module in Ubuntu 14.04 , I will have a try and show you the process before sharing my files to you .

          • 2. Re: Unable to test CYW43438 on any OS over SDIO
            ChSi_4659482

            Thanks ZhengbaoZ_96 for your reply.

            I will check it on Ubuntu 14.04 only after getting the process details and files from you.

            • 3. Re: Unable to test CYW43438 on any OS over SDIO
              ZhengbaoZ_96

              Hello:

                I am using a PC ubuntu to bring up 43438.

              NVRAM is using an in-band interrupt define.

               

              modprobe cfg80211

              insmod cywdhd.ko firmware_path=cyw43438-7.46.58.26.bin nvram_path=bcm943438wlpth_26MHz.txt

               

              here is the log:

               

              ifconfig wlan1 up

              root@test# dmesg

              [  676.537503] CFG80211-DEBUG) wl_cfg80211_netdev_notifier_call :Enter

              [  676.544800] CFG80211-DEBUG) wl_cfg80211_up :In

              [  676.545225] CFG80211-TRACE) wl_cfg80211_up :WLC_GET_VERSION=2

              [  676.545235] CFG80211-TRACE) wl_cfg80211_attach_post :In

              [  676.546150] CFG80211-DEBUG) __wl_cfg80211_up :In

              [  676.546158] CFG80211-TRACE) dhd_config_dongle :In

              [  676.546623] MACEVENT: WLC_E_IF 54, MAC 02:13:42:63:74:a5, status 0, reason 0, auth 0

              [  676.546632] CFG80211-DEBUG) wl_cfg80211_event :event_type (54):WLC_E_IF

              [  676.549125] CFG80211-ERROR) wl_update_wiphybands : error reading vhtmode (-23)

              [  676.559281] CFG80211-DEBUG) wl_create_event_handler :Enter

              [  676.559372] wl_create_event_handler(): thread:wl_event_handler:c04 started

              [  676.559380] CFG80211-ERROR) wl_event_handler : tsk Enter, tsk = 0xffff8800aa521a80

              [  676.560229] CFG80211-DEBUG) wl_cfg80211_set_power_mgmt :Enter

              [  676.560236] CFG80211-DEBUG) wl_cfg80211_netdev_notifier_call :Enter

              root@test# wl ver

              wl0: Apr 11 2019 03:12:59 version 7.46.58.26 (r713879 CY) FWID

               

              and make sure you can see mmc log after your sdio interface connected.

              and the attached firmware is only for test , do not use it for any other purposes.

              Attached cywdhd.ko was compiled in my PC ubuntu 64bit, but have possibility that it is not compatible with your system .

              2 of 2 people found this helpful
              • 4. Re: Unable to test CYW43438 on any OS over SDIO
                ChSi_4659482

                Hello ZhengbaoZ_96,

                 

                Thanks for your response and files.


                I did the process as mentioned by you but got the following error:

                 

                [  74.508183] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)

                [  74.509984] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

                [  74.511758] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

                [  74.514906] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)

                [  74.655795] mmc0: new SDIO card at address 0001

                [  74.730546] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.

                [  74.730551] brcmf_sdiod_regrw_helper: failed to write data F1@0x0c010, err: -84

                [  74.735510] brcmf_sdiod_regrw_helper: failed to read data F1@0x0c040, err: -84

                [  74.738513] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.

                [  74.740997] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.

                [  74.741108] brcmf_sdiod_regrw_helper: failed to write data F1@0x0c010, err: -84

                [  74.746258] brcmf_sdiod_regrw_helper: failed to read data F1@0x0c040, err: -84

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

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

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

                [  377.406174] cywdhd: module verification failed: signature and/or required key missing - tainting kernel

                [  377.410515] dhd_module_init in

                [  377.410555] no wifi platform data, skip

                [  377.410565] DHD wifi platform data is required for Android build

                [  377.410567] DHD registeing bus directly

                [  377.418144] F1 signature read @0x18000000=0xffffffff

                [  377.421082] dhdsdio_probe_attach: si_attach failed!

                [  377.421085] dhdsdio_probe: dhdsdio_probe_attach failed

                [  377.423647] bcmsdh_sdmmc: probe of mmc0:0001:2 failed with error -12

                [  377.423690] dhd_module_init out

                 

                I setup the same environment as yours to make sure that cywdhd.ko gets loaded.

                singhc@singhcNB:~/Downloads$ uname -a

                Linux singhcNB 4.2.0-34-generic #39~14.04.1-Ubuntu SMP Fri Mar 11 11:38:02 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

                 

                I am not sure if its due to the fact that the driver is compiled on your system. In such case, can you please share the files and the procedure to compile it in my environment?

                 

                Regards,

                Charan

                • 5. Re: Unable to test CYW43438 on any OS over SDIO
                  ZhengbaoZ_96

                  No, I think it is due to SDIO interface,   Would you please check if your SDIO interface is stable ?

                  • 6. Re: Unable to test CYW43438 on any OS over SDIO
                    ZhengbaoZ_96

                       I remember something,  before using my cywdhd, please rmmod all the fmac driver in advance .

                    • 7. Re: Unable to test CYW43438 on any OS over SDIO
                      ChSi_4659482

                      Hello,

                       

                      I removed the all the brcmfmac/brcmsmac modules but still its not working.

                       

                      Error logs:

                      [12838.849623] dhd_module_init in

                      [12838.849662] no wifi platform data, skip

                      [12838.849672] DHD wifi platform data is required for Android build

                      [12838.849674] DHD registeing bus directly

                      [12838.850058] bcmsdh_sdmmc: probe of mmc0:0001:1 failed with error -110

                      [12838.850420] bcmsdh_sdmmc: probe of mmc0:0001:2 failed with error -110

                      [12838.850459] dhd_module_init out

                       

                      Also attaching lsmod output.

                      • 8. Re: Unable to test CYW43438 on any OS over SDIO
                        ZhengbaoZ_96

                        need a reset for SDIO interface,  it is better to move brcmfmac to other position in case of the auto-start.

                        then have a reset, insert your board,  insmod the driver.

                        • 9. Re: Unable to test CYW43438 on any OS over SDIO
                          ChSi_4659482

                          I did the above process but still getting the same error.

                           

                          I was going through other people's experiences with this product and have the following queries:

                          1. How is DHD different from brcmfmac driver? As per my finding, brcmfmac has replaced DHD in newer linux kernels?

                          2. How to compile DHD driver for my system? Where can i find the files?

                           

                          On Ubuntu 16.04 & 18.04, I get the below error with brcmfmac module loaded:

                          [  197.008582] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1

                          [  197.008791] usbcore: registered new interface driver brcmfmac

                          [  209.684497] mmc0: Timeout waiting for hardware interrupt.

                          [  209.684502] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========

                          [  209.684509] mmc0: sdhci: Sys addr:  0xc7dae280 | Version:  0x0000ad01

                          [  209.684516] mmc0: sdhci: Blk size:  0x00007040 | Blk cnt:  0x0000000a

                          [  209.684523] mmc0: sdhci: Argument:  0x9dfae80a | Trn mode: 0x00000023

                          [  209.684529] mmc0: sdhci: Present:  0x01f70106 | Host ctl: 0x00000003

                          [  209.684536] mmc0: sdhci: Power:    0x0000000f | Blk gap:  0x00000000

                          [  209.684542] mmc0: sdhci: Wake-up:  0x00000000 | Clock:    0x00004007

                          [  209.684548] mmc0: sdhci: Timeout:  0x0000000d | Int stat: 0x00000000

                          [  209.684555] mmc0: sdhci: Int enab:  0x02ff008b | Sig enab: 0x02ff008b

                          [  209.684561] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000

                          [  209.684567] mmc0: sdhci: Caps:      0x054032b2 | Caps_1:  0x00000007

                          [  209.684573] mmc0: sdhci: Cmd:      0x0000353a | Max curr: 0x00000000

                          [  209.684579] mmc0: sdhci: Resp[0]:  0x00001000 | Resp[1]:  0x00000000

                          [  209.684586] mmc0: sdhci: Resp[2]:  0x00000000 | Resp[3]:  0x00000000

                          [  209.684590] mmc0: sdhci: Host ctl2: 0x00000000

                          [  209.684591] mmc0: sdhci: ==============================

                          ==============
                          [  209.684640] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed
                          [  209.684646] brcmfmac: brcmf_sdio_download_nvram: error -110 on writing 652 nvram bytes at 0x0007fd74
                          [  209.684648] brcmfmac: brcmf_sdio_download_firmware: dongle nvram file download failed
                          [  209.684971] brcmfmac: brcmf_sdio_htclk: Failed access turning clock off: -5
                          [  209.687367] brcmfmac: brcmf_sdio_htclk: HT Avail request error: -5

                          I have attached the bin file & nvram txt file for your reference.

                           

                          I have attached the bin & nvram txt file (which I placed in /lib/firmware/brcm/) for your reference.

                          • 10. Re: Unable to test CYW43438 on any OS over SDIO
                            ZhengbaoZ_96

                            I am still doubting your hardware configuration,   You can find a PC with SDIO 2.0 firstly to verify the board.

                            fmac and dhd all can support the debug, dhd is not released officially , so I can only give you ko file.

                            and better to find a reference board to verify your board also , make sure there has no hardware issue.

                            looks basic communication has problems.

                            [  209.684640] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed

                            [  209.684646] brcmfmac: brcmf_sdio_download_nvram: error -110 on writing 652 nvram bytes at 0x0007fd74

                            [  209.684648] brcmfmac: brcmf_sdio_download_firmware: dongle nvram file download failed

                            [  209.684971] brcmfmac: brcmf_sdio_htclk: Failed access turning clock off: -5

                            [  209.687367] brcmfmac: brcmf_sdio_htclk: HT Avail request error: -5

                            1 of 1 people found this helpful
                            • 11. Re: Unable to test CYW43438 on any OS over SDIO
                              ChSi_4659482

                              Hello ZhengbaoZ_96,

                               

                              With the same hardware spec, I flashed different versions of Ubuntu and have the following observations:

                               

                              1. Ubuntu 14.04.6: CYW43438 SDIO based module successfully detected using brcmfmac driver (supplied as part of official Ubuntu release).

                              Also wlan interface up and running.

                               

                              2. Ubuntu 16.04.6 (32-bit & 64-bit) & 18.04.4 LTS: On these different Ubuntu versions, brcmfmac driver failed to load the module. Refer error in above post.

                               

                              So its indeed not a hardware issue.

                               

                              Now if I want to really integrate with my embedded platform with linux probably running kernel 4.x, it will be really a task to make it work.

                              I checked the following link which contains the package which we can compile for our linux kernel. Do you think its the right way to do it? Or you want us to stick to DHD driver.

                               

                              Cypress Linux WiFi Driver Release (FMAC) [2020-04-02]

                              • 12. Re: Unable to test CYW43438 on any OS over SDIO
                                ZhengbaoZ_96

                                Hello:

                                 

                                I think fullmac is good enough .  For 16.04 and above you need to copy firmware and nvram into /lib/firmware/brcm/ .

                                You can have a try with the attached also in 16.04 or 18 version.

                                1 of 1 people found this helpful
                                • 13. Re: Unable to test CYW43438 on any OS over SDIO
                                  ChSi_4659482

                                  I tried the above firmware in Ubuntu 18.04.4 and nothing happened, no wlan interface showed up.

                                   

                                  [10414.393710] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)

                                  [10414.395454] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

                                  [10414.397213] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

                                  [10414.400580] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)

                                  [10414.538931] mmc0: new SDIO card at address 0001

                                  [10414.643296] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1

                                  [10414.643411] usbcore: registered new interface driver brcmfmac

                                  [10417.953688] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

                                  [10418.960108] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

                                   

                                   

                                  Regards

                                  • 14. Re: Unable to test CYW43438 on any OS over SDIO
                                    ZhengbaoZ_96

                                    Are you using a 4343 module in your board ?  if it is a module, I think you need to get the correct NV from module maker if hardware has already been confirmed ok.

                                    1 2 Previous Next