2 Replies Latest reply on Dec 2, 2020 4:57 AM by YuxianL_01

    Porting AP6236/CYW4343/BCM4343 WiFi module to imx6ull platform(BSP_YOCTO)

    prkh_4809306

      Hi guys,

      I would like to install the driver of AP6236(CYW4343/BCM4343) Wi-Fi module to my iMX6ULL14x14EVK using Yocto's bitbake command , but since I am new to this, I don't know how to do it.

       

      So far,

      (1)I managed to create the simplest OS image using the command  "bitbake core-image-base" and deployed the image to my target board, however when I power up the board, I am not able bring up the wlan up option.

      Getting following error..

       

      root@imx6ull14x14evk:~# ifconfig wlan0 up
      dhd_open: Enter 8851d000
      dhd_open : no mutex held. set lock

      Dongle Host Driver, version 1.579.77.41.16 (r-20190511-2)
      wl_android_wifi_on in 1
      wl_android_wifi_on in 2: g_wifi_on=0
      ======== PULL WL_REG_ON HIGH! ========
      mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
      mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
      mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
      mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
      mmc0: queuing unknown CIS tuple 0x81 (9 bytes)
      sdioh_start: set sd_f2_blocksize 256


      dhd_bus_devreset: == WLAN ON ==
      F1 signature read @0x18000000=0x1542a9a6
      F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x2 pkg:0x4
      DHD: dongle ram size is set to 524288(orig 524288) at 0x0
      dhd_bus_set_default_min_res_mask: Unhandled chip id
      [dhd] dhd_conf_read_config : Ignore config file /lib/firmware/bcm/AP6236/Wi-Fi/config.txt
      [dhd] dhd_conf_set_path_params : Final fw_path=/lib/firmware/bcm/AP6236/Wi-Fi/fw_bcm43436b0.bin
      [dhd] dhd_conf_set_path_params : Final nv_path=/lib/firmware/bcm/AP6236/Wi-Fi/nvram_ap6236.txt
      [dhd] dhd_conf_set_path_params : Final clm_path=/lib/firmware/bcm/AP6236/Wi-Fi/clm_bcm43436b0.blob
      [dhd] dhd_conf_set_path_params : Final conf_path=/lib/firmware/bcm/AP6236/Wi-Fi/config.txt
      dhdsdio_download_code_file: Open firmware file failed /lib/firmware/bcm/AP6236/Wi-Fi/fw_bcm43436b0.bin
      _dhdsdio_download_firmware: dongle image file download failed
      dhd_bus_devreset Failed to download binary to the dongle
      dhd_net_bus_devreset: dhd_bus_devreset: -35
      dhd_wl_ioctl: returning as busstate=0
      dhd_net_bus_devreset: dhd_bus_devreset: -35
      ======== PULL WL_REG_ON LOW! ========
      wl_android_wifi_on: Failed
      dhd_open : wl_android_wifi_on failed (-35)
      dhd_stop: Enter 8851d000
      wl_android_wifi_off in 1
      wl_android_wifi_off in 2: g_wifi_on=0, on_failure=1
      dhd_wl_ioctl: returning as busstate=0
      dhd_net_bus_devreset: dhd_bus_devreset: -35
      ======== PULL WL_REG_ON LOW! ========
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 404 at /home/teju/ebf_yocto/build/tmp/work-shared/imx6ull14x14evk/kernel-source/drivers/regulator/core.c:2040 _regulator_disable+0xf8/0x164()
      unbalanced disables for wlan-en-gpio
      Modules linked in: evbug
      CPU: 0 PID: 404 Comm: ifconfig Tainted: G W 4.1.15-2.1.0+g30278ab #1
      Hardware name: Freescale i.MX6 Ultralite (Device Tree)
      [<80015db8>] (unwind_backtrace) from [<8001275c>] (show_stack+0x10/0x14)
      [<8001275c>] (show_stack) from [<80845050>] (dump_stack+0x84/0xc4)
      [<80845050>] (dump_stack) from [<80036ba8>] (warn_slowpath_common+0x80/0xb0)
      [<80036ba8>] (warn_slowpath_common) from [<80036c08>] (warn_slowpath_fmt+0x30/0x40)
      [<80036c08>] (warn_slowpath_fmt) from [<803353e4>] (_regulator_disable+0xf8/0x164)
      [<803353e4>] (_regulator_disable) from [<80335480>] (regulator_disable+0x30/0x6c)
      [<80335480>] (regulator_disable) from [<8046f6ac>] (wifi_platform_set_power+0x7c/0xe4)
      [<8046f6ac>] (wifi_platform_set_power) from [<8047fc1c>] (wl_android_wifi_off+0xa0/0xf0)
      [<8047fc1c>] (wl_android_wifi_off) from [<8046be24>] (dhd_stop+0x16c/0x29c)
      [<8046be24>] (dhd_stop) from [<8046cef0>] (dhd_open+0x17c/0x3d0)
      [<8046cef0>] (dhd_open) from [<806b5a98>] (__dev_open+0xa8/0x10c)
      [<806b5a98>] (_dev_open) from [<806b5d1c>] (_dev_change_flags+0x94/0x144)
      [<806b5d1c>] (__dev_change_flags) from [<806b5de4>] (dev_change_flags+0x18/0x48)
      [<806b5de4>] (dev_change_flags) from [<80715e68>] (devinet_ioctl+0x664/0x738)
      [<80715e68>] (devinet_ioctl) from [<8069cb14>] (sock_ioctl+0x1bc/0x290)
      [<8069cb14>] (sock_ioctl) from [<800fbfbc>] (do_vfs_ioctl+0x3e8/0x608)
      [<800fbfbc>] (do_vfs_ioctl) from [<800fc210>] (SyS_ioctl+0x34/0x5c)
      [<800fc210>] (SyS_ioctl) from [<8000f4c0>] (ret_fast_syscall+0x0/0x3c)
      ---[ end trace efc97e1b4bfd862b ]---
      wifi_platform_set_power: regulator enable/disable failedwl_android_wifi_off out
      dhd_stop: Exit
      dhd_open : the lock is released.
      dhd_open: Exit ret=-1
      ifconfig: SIOCSIFFLAGS: Operation not permitted

      (2) Also I have run the menuconfig tool on the bitbake environment:

      bitbake linux-imx -c menuconfig

      Enabled the necessary options like below image..

      netwk sup image.png

      (3) We are also having AP3626 firmware files fw_bcm43436b0.bin and nvram_ap6236.txt

      but please guide us in this process, where should I add these files in order to bring up wlan up??

      Any porting guide available for this??

       

      Note: Using kernel version 4.1.15

       

      Many thanks in advance...