4 Replies Latest reply on Aug 27, 2018 10:27 PM by selac_3583116

    Murata 1FX with Linux on Compute Module

      We are working on a system that uses a Raspberry Pi Compute Module 3 as a base. We have the LBWA1KL1FX development kit (i.e. the 1FX module), and through some hardware modifications to the kit (to attach jumper leads) we have been able to successfully connect the kit to the Compute Module IO board and use Raspbian to connect to a Wi-Fi network. We chose the 1FX because it uses a very similar Cypress part to that in the Raspberry Pi 3, and thought the software support would be better than with a different manufacturer.

       

      Wi-Fi works OK with the development kit and the CMIO board (under Raspbian Linux), it is able to connect and use Wi-Fi without issue  - although I did find that I needed to create a small patch to the Linux kernel: brcmfmac: Add support for bcm43364 wireless chipset - Patchwork

       

      Now we have created our own PCB which uses the Compute Module, and a 1FX chip - but we are not able to get the WiFi connection to work. Raspbian is able to see the Wi-Fi adapter wlan0 but is not able to scan for any networks or make any connection. I was not able to use the same config txt file as with the Compute Module, but I found a config file that does at least have the wlan0 interface show up: http://jwrdegoede.danny.cz/brcm-firmware/brcmfmac43430-sdio.txt.ap6210

       

      I see error like this in dmesg:

       

      [   49.219503] brcmfmac: brcmf_sdio_bus_sleep: error while changing bus sleep state -110

      [   49.219556] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame

      [   49.223479] brcmfmac: brcmf_sdiod_regrw_helper: failed to write data F1@0x1000d, err: -110

      [   49.227568] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.231444] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.235535] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.239622] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.243475] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.247565] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.247609] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame

      [   49.251438] brcmfmac: brcmf_sdiod_regrw_helper: failed to write data F1@0x1000d, err: -110

      [   49.255535] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.259620] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.263902] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.267990] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.271472] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.275585] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.275633] brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame

      [   49.279740] brcmfmac: brcmf_sdiod_regrw_helper: failed to write data F1@0x1000d, err: -110

      [   49.283499] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.287587] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.291452] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.295563] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.299649] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x1001a, err: -110

      [   49.303486] brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x10019, err: -110

      [   49.303500] brcmfmac: brcmf_sdio_dpc: failed backplane access over SDIO, halting operation

      [   49.303515] brcmfmac: brcmf_do_escan: error (-110)

      [   49.303520] brcmfmac: brcmf_cfg80211_scan: scan error (-110)

       

       

      I could not find any documentation on what the config txt file is supposed to contain - could someone point me in the right direction?

       

      Is there anything in particular that needs to be done to get the 1FX with the CYW43364 to work under Linux?

        • 1. Re: Murata 1FX with Linux on Compute Module
          VinayakS_26

          Hi,

           

          How are you trying to scan for networks?Is it using wl commands?

          Was there a difference in MAC address mentioned in the two config.txt files?

          Where did you get the initial config.txt? Have you tried contacting Murata for the nvram/config.txt file.

           

          -Vinayak

          1 of 1 people found this helpful
          • 2. Re: Murata 1FX with Linux on Compute Module

            Thanks Vinayak,

             

            I am using this command: sudo iwlist wlan0 scan

             

            I got the initial config txt file from Raspbian, from GitHub: https://github.com/RPi-Distro/firmware-nonfree/blob/3f15768b68c30e09dbd5647a66fdc41dbac612b4/brcm80211/brcm/brcmfmac43430-sdio.txt

            firmware-nonfree/brcmfmac43430-sdio.txt at 3f15768b68c30e09dbd5647a66fdc41dbac612b4 · RPi-Distro/firmware-nonfree · GitH…

             

            This file seems to work OK with the dev kit, but not with the part on our PCB.

             

            I haven't got the config file from Murata, is it something that only they can provide? Is there documentation on what the options mean?

            • 3. Re: Murata 1FX with Linux on Compute Module
              VinayakS_26

              Hi selac_3583116

               

              Could you check whether the CONFIG_NET_SCHED in disabled in your kernel config file.

              Also have you tried scanning with wpa_supplicant. There can be a chance that wpa_supplicant might be scanning in the background as a daemon. Try killing the wpa_supplicant and then scan for devices.

               

              Ideally Murata should provide the config.txt. You could contact their sales for details on getting the file though the documentation for the file is not public.

              -Vinayak

              1 of 1 people found this helpful
              • 4. Re: Murata 1FX with Linux on Compute Module

                After some discussion with Murata, they were not able to provide documentation of what exactly the various txt file parameters meant. However, I was able to obtain a nvram.txt file and could make the module work. It still needed modification though, the provided one had a line "boardflags3=0x08000000" which caused problems, but removing this line seems to fix my issue. I'm not sure what the line actually does, because there is no documentation, so I hope it's not something important.

                 

                For future reference, for anyone else who is trying to get the Murata 1FX working under Raspbian on the Raspberry Pi Compute Module 3, this is the configuration NVRAM file that works for me:

                 

                 

                # 2.4 GHz, 20 MHz BW mode

                manfid=0x2d0

                prodid=0x0726

                vendid=0x14e4

                devid=0x43e2

                boardtype=0x0726

                boardrev=0x1202

                boardnum=22

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

                sromrev=11

                boardflags=0x00404201

                xtalfreq=37400

                nocrc=1

                ag0=0

                aa2g=1

                ccode=ALL

                #pa0itssit=0x20

                extpagain2g=0

                pa2ga0=-145,6667,-751

                AvVmid_c0=0x0,0xc8

                cckpwroffset0=2

                maxp2ga0=74

                #txpwrbckof=6

                cckbw202gpo=0

                legofdmbw202gpo=0x88888888

                mcsbw202gpo=0xaaaaaaaa

                propbw202gpo=0xdd

                ofdmdigfilttype=18

                ofdmdigfilttypebe=18

                papdmode=1

                papdvalidtest=1

                pacalidx2g=48

                papdepsoffset=-22

                papdendidx=58

                il0macaddr=00:90:4c:c5:12:38

                wl0id=0x431b

                muxenab=0x10

                #BT COEX deferral limit setting

                #btc_params 8 45000

                #btc_params 10 20000

                #spurconfig=0x3