4 Replies Latest reply on Sep 17, 2019 5:19 AM by GauravS_31

    cyw43455 module, linux, cannot connect to certain router

    UGMa_1529436

      We are using ap6255 (cyw43455) in our product, which is a NAS device. We call it a pocket drive.

       

      The device is based on Rockchip RK3328 arm soc, with ap6255 as the wifi module, running latest Debian on mainline kernel (5.2.x).

       

      Now the product begins shipping and some early customers cannot connect the device to their home router.

       

      I have an Huawei Honor AC1200 router in office, with 2.4G and 5G bands. The device connects to 2.4G without any problem, but it cannot connect to the 5G band. I am quite sure that it is not related to the selected channel, because it could connect to a Xiaomi router, a Netgear router and an Asus router configured at the same channel.

       

      The symptom is not uncommon when googling on Internet. Many people encountered the same problem with their Pi 3B board.

       

      In wpa_supplicant log:

       

      > wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16

       

      It is weird the bssid is all zeros. status_code 16 says the reason is a timeout but I don't know whether the timeout is determined by driver, cfg80211 framework, or the module firmware. The router has been reset and tried many times, with all unneccessary features turned off, such as automatic/adaptive channel selection, wmm disabled, etc.

       

      I am going to turn on the debug info of brcmfmac module and looking into the cfg80211 code. More information will be provided if I found something weired.

       

      Any clues or advices are appreciated, especially how to tune the timeout duration.

       

      We have tested the latest firmware (4.14.77), the previous version (4.14.52), as well as the firmware in linux firmware repo. All shows the same symptom. The txt file could be found here:

       

      rockbian/brcmfmac43455-sdio.txt.rockchip at master · aidingnan/rockbian · GitHub

       

      Also, If the problem is likely related to hardware, such as the crystal precision or power supply, please let us know. Up to now we didn't find any hints indicating it is a hardware problem. For all devices cannot connect to the same band of the same router. Not some devices can while others cannot. And our computers and mobile phones have no trouble connecting to the same router.

        • 1. Re: cyw43455 module, linux, cannot connect to certain router
          UGMa_1529436

          Now the kernel debug info seems OK. And my new question: what is the suggested way to disable firmware supplicant feature (fwsup)? I'd like to see if wpa_supplicant has the same problem.

          • 2. Re: cyw43455 module, linux, cannot connect to certain router
            UGMa_1529436

            [  458.469463] brcmfmac: brcmf_cfg80211_connect ie (00000000cb68616d), ie_len (44)

            [  458.469476] brcmfmac: brcmf_set_wpa_version setting wpa_auth to 0xc0

            [  458.469933] brcmfmac: brcmf_set_auth_type open system

            [  458.470351] brcmfmac: brcmf_set_wsec_mode pval (4) gval (2)

            [  458.471680] brcmfmac: brcmf_set_key_mgmt setting wpa_auth to 128

            [  458.472071] brcmfmac: brcmf_set_sharedkey key len (0)

            [  458.472086] brcmfmac: brcmf_cfg80211_connect SSID "HUAWEI_5G", len (9)

            [  461.285594] brcmfmac: brcmf_is_nonetwork Processing connecting & no network found

            [  461.285637] brcmfmac: brcmf_bss_connect_done Report connect result - connection failed

             

            I tried to disable fwsup by commenting out

             

            // brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_FWSUP, "sup_wpa");

             

            in feature.c, function brcmf_feat_attach()

             

            now in debugfs there is no fwsup and in kernel debug info, no PSK offloading message any more. But the problem is not solved. Any suggestions?

            • 3. Re: cyw43455 module, linux, cannot connect to certain router
              UGMa_1529436

              Now the good news here. The device can connect to the router on channels near 5250MHz frequency, say channel 48. So this is not a software or firmware related issue. I will check the datasheet and re-examine the crystal frequency on board.

               

              Any recommendation on the crystal part is appreciated.

              • 4. Re: cyw43455 module, linux, cannot connect to certain router
                GauravS_31

                It is possible that the channel on which the STA is trying to join the AP is disabled in the Huawei AP but enabled in the other APs which could explain the behaviour. Ensure that the STA is joining on a channel supported by the AP.