Sunvell T95K Pro WiFi

I have been trying for several months to get CoreELEC to run on a Sunvell T95K Pro 2/16 GB Android TV Box to no avail. Today, I decided to give it another try using the device_trees/gxm_q201_2g_1gbit.dtb file. The T95K Pro boots up OK and I can SSH into the device connected to my LAN through its RJ45 port. The problem I am facing is trying to configure the WiFi. My understanding is this device uses AP6636 WiFi chip and is not supported. As such, the output from ifconfig reveals no wifi interface and that makes sense. However, when I did a dmesg dump, I noticed the Linux kernel loaded the dhd (Dongle Host Driver generic wifi adapter) module (see below for the excerpt w.r.t DHD). TBH, I have no idea if this DHD tries to configure WiFi or not. I just hope this information will interest some of you to investigate.

[ 0.347847@2] pwm: probe ok
[ 0.348193@2] wifi: power_on_pin_OD = 0;
[ 0.348212@2] aml_wifi wifi.36: [wifi_dev_probe] no power_on_pin2
[ 0.348250@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm phandle val=33;pwm-channel1=4;pwm-channel2=12
[ 0.348265@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config1[0] = 30541
[ 0.348278@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config2[0] = 30518
[ 0.348291@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config1[1] = 15270
[ 0.348303@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config2[1] = 15259
[ 0.348316@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config1[2] = 6
[ 0.348328@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] pwm_config2[2] = 9
[ 0.348341@2] aml_wifi wifi.36: [pwm_double_channel_conf_dt] wifi pwm dt ok
[ 0.348366@2] aml_wifi wifi.36: [pwm_double_channel_conf] wifi pwm conf ok
[ 0.348420@2] aml_wifi wifi.36: [wifi_dev_probe] dhd_static_buf setup
[ 0.348501@2] Wifi: bcmdhd_init_wlan_mem: bcmdhd_init_wlan_mem: WIFI MEM Allocated
[ 0.348514@2] aml_wifi wifi.36: [wifi_dev_probe] interrupt_pin=241
[ 0.348526@2] aml_wifi wifi.36: [wifi_dev_probe] irq_num=100, irq_trigger_type=1
[ 0.348538@2] aml_wifi wifi.36: [wifi_dev_probe] power_on_pin=240
[ 0.348548@2] aml_wifi wifi.36: [wifi_dev_probe] clock_32k_pin=0
[ 0.348841@0] aml_wifi wifi.36: [wifi_setup_dt] wifi_setup_dt
[ 0.348883@0] aml_wifi wifi.36: [wifi_setup_dt] interrupt_pin(241)
[ 0.348902@0] aml_wifi wifi.36: [wifi_setup_dt] power_on_pin(240)
[ 0.349100@2] Unpacking initramfs...
...
[ 24.041894@2] dhd_module_init: in
[ 24.041922@2] ======== bcm_wlan_set_plat_data ========
[ 24.041926@2] host_oob_irq: 100
[ 24.041929@2] host_oob_irq_flags=0x414
[ 24.041933@2] dhd_wifi_platform_load: Enter
[ 24.041953@2] Power-up adapter 'DHD generic adapter'
[ 24.041957@2] wifi_platform_set_power = 1
[ 24.041961@2] ======== PULL WL_REG_ON HIGH! ========
[ 24.041989@2] aml_wifi wifi.36: [extern_wifi_set_enable] WIFI  Disable! 240
[ 24.041993@0] [aml_sd_emmc_irq] sdio: resp_timeout,vstat:0xa3ff2800,virqc:3fff
[ 24.042021@6] [aml_host_bus_fsm_show] sdio: err: wait for irq service, bus_fsm:0x8
[ 24.042021@6] aml_sd_emmc_data_thread 2639 sdio: cmd:52
[ 24.242048@2] aml_wifi wifi.36: [extern_wifi_set_enable] WIFI  Enable! 240
[ 24.748141@2] wifi_platform_bus_enumerate device present 1
[ 24.748155@2] ======== Card detection to detect SDIO card! ========
[ 24.748162@2] sdio_reset_comm():
[ 24.775985@7] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[ 24.778553@7] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[ 24.781114@7] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[ 24.785712@7] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[ 24.791347@4] sdio: queuing unknown CIS tuple 0x81 (9 bytes)
[ 24.877134@4] sdio: clk 200000000 SDR mode tuning start
[ 24.877387@4] sdio: rx_tuning_result[0] = 10
[ 24.877628@4] sdio: rx_tuning_result[1] = 10
[ 24.877868@4] sdio: rx_tuning_result[2] = 10
[ 24.878114@7] sdio: rx_tuning_result[3] = 10
[ 24.878148@7] sdio: best_win_start =0, best_win_size =4
[ 24.878155@7] sdio: sd_emmc_regs->gclock=0x1000245,sd_emmc_regs->gadjust=0x22000
[ 24.878162@7] sdio: gclock =0x1000245, gdelay=0x0, gadjust=0x22000
[ 24.878168@7] [sdio_reinit] finish
[ 24.894721@7] bcmsdh_register: register client driver
[ 24.894833@7] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
[ 24.894903@7] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
[ 24.894910@7] bus num (host idx)=0, slot num (rca)=1
[ 24.894915@7] found adapter info 'DHD generic adapter'
[ 24.894969@7] sdioh_attach: set sd_f2_blocksize 256
[ 24.895281@7] dhdsdio_probe : no mutex held. set lock
[ 24.895397@7] F1 signature read @0x18000000=0x15264345
[ 24.898627@4] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x6 pkg:0x2
[ 24.899266@4] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000
[ 24.899348@4] wifi_platform_get_mac_addr
[ 24.899354@4] ======== bcm_wlan_get_mac_address ========
[ 24.899358@4] custom wifi mac is not set
[ 24.899370@4] dhd_conf_set_chiprev: chip=0x4345, chiprev=6
[ 24.899423@4] dhd_conf_set_conf_path_by_nv_path: config_path=/usr/lib/firmware/brcm/config.txt
[ 24.899632@4] dhd_os_open_image: /usr/lib/firmware/brcm/config.txt (399 bytes) open success
[ 24.909264@4] dhd_conf_read_nv_by_chip: nv_by_chip_count=12
[ 24.909279@4] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=0, name=nvram_ap6181.txt
[ 24.909286@4] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=1, name=nvram_ap6210.txt
[ 24.909292@4] dhd_conf_read_nv_by_chip: chip=0xa9a6, chiprev=0, name=nvram_ap6212.txt
[ 24.909298@4] dhd_conf_read_nv_by_chip: chip=0xa9a6, chiprev=1, name=nvram_ap6212a.txt
[ 24.909304@4] dhd_conf_read_nv_by_chip: chip=0x4345, chiprev=6, name=nvram_ap6255.txt
[ 24.909310@4] dhd_conf_read_nv_by_chip: chip=0x4330, chiprev=4, name=nvram_ap6330.txt
[ 24.909316@4] dhd_conf_read_nv_by_chip: chip=0x4339, chiprev=1, name=nvram_ap6335.txt
[ 24.909322@4] dhd_conf_read_nv_by_chip: chip=0x4354, chiprev=2, name=nvram_ap6356.txt
[ 24.909327@4] dhd_conf_read_nv_by_chip: chip=0x4335, chiprev=1, name=nvram_bcm4335.txt
[ 24.909333@4] dhd_conf_read_nv_by_chip: chip=0xa94c, chiprev=2, name=nvram_ap6234.txt
[ 24.909339@4] dhd_conf_read_nv_by_chip: chip=0x4359, chiprev=9, name=nvram_ap6359sa.txt
[ 24.909345@4] dhd_conf_read_nv_by_chip: chip=0x4334, chiprev=3, name=nvram_bcm4334.txt
[ 24.909436@4] dhd_conf_read_config: mimo_bw_cap = 1
[ 24.909880@4] dhd_conf_read_config: bcn_timeout = 20
[ 24.910040@4] dhd_conf_read_config: kso_enable = 0
[ 24.910495@4] dhd_conf_read_config: PM = 0
[ 24.911392@4] wl_create_event_handler(): thread:wl_event_handler:b2d started
[ 24.911403@3] tsk Enter, tsk = 0xffffff8001be98d0
[ 24.911667@4] dhd_attach(): thread:dhd_watchdog_thread:b2f started
[ 24.911710@4] dhd_attach(): thread:dhd_dpc:b30 started
[ 24.911759@4] dhd_attach(): thread:dhd_rxf:b31 started
[ 24.911771@4] dhd_deferred_work_init: work queue initialized  
[ 24.922865@5] Dongle Host Driver, version 1.363.59.144.2.git (r)
[ 24.923731@5] Register interface [wlan0]  MAC: cc:b8:a8:1e:1e:d0
[ 24.923731@5]  
[ 24.923768@3] wl_event_handler: was terminated
[ 24.923793@5] wl_destroy_event_handler(): thread:wl_event_handler:b2d terminated OK
[ 24.923802@5] dhd_wl_ioctl: returning as busstate=0
[ 24.923872@5] bcmsdh_oob_intr_unregister: Enter
[ 24.923878@5] bcmsdh_oob_intr_unregister: irq is not registered
[ 24.923889@5] dhd_txglom_enable: enable 0
[ 24.923895@5] dhd_conf_set_txglom_params: swtxglom=0, txglom_ext=0
[ 24.923900@5] dhd_conf_set_txglom_params: txglom_bucket_size=0
[ 24.923905@5] dhd_conf_set_txglom_params: txglomsize=0, deferred_tx_len=0, bus_txglom=-1
[ 24.923910@5] dhd_conf_set_txglom_params: tx_in_rx=1, tx_max_offset=0
[ 24.923916@5] sdioh_set_mode: set txglom_mode to multi-desc
[ 24.923921@5] dhd_bus_devreset:  WLAN OFF DONE
[ 24.923970@5] wifi_platform_set_power = 0
[ 24.923975@5] ======== PULL WL_REG_ON LOW! ========
[ 24.923981@5] dhdsdio_probe : the lock is released.
[ 24.924144@5] dhd_module_init: Exit err=0
[ 25.094972@1] meson_uart c11084c0.serial: ttyS1 use xtal(8M) 24000000 change 0 to 9600
[ 25.095032@1] meson_uart c11084c0.serial: ttyS1 use xtal(8M) 24000000 change 9600 to 9600
[ 25.095053@1] meson_uart c11084c0.serial: ttyS1 use xtal(8M) 24000000 change 9600 to 115200
[ 25.396250@3] 8021q: 802.1Q VLAN Support v1.8
[ 25.451429@6] dhd_open: Enter ffffffc053cd9800
[ 25.451450@6]  
[ 25.451450@6] Dongle Host Driver, version 1.363.59.144.2.git (r)
[ 25.451458@6] wl_android_wifi_on in 1
[ 25.451463@6] wl_android_wifi_on in 2: g_wifi_on=0
[ 25.451469@6] wifi_platform_set_power = 1
[ 25.451474@6] ======== PULL WL_REG_ON HIGH! ========
[ 25.451502@6] aml_wifi wifi.36: [extern_wifi_set_enable] WIFI  Disable! 240
[ 25.651560@6] aml_wifi wifi.36: [extern_wifi_set_enable] WIFI  Enable! 240
[ 26.158124@6] sdio_reset_comm():
[ 26.185945@7] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[ 26.188521@7] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[ 26.191084@7] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[ 26.195707@7] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[ 26.201361@4] sdio: queuing unknown CIS tuple 0x81 (9 bytes)
[ 26.287462@4] sdio: clk 200000000 SDR mode tuning start
[ 26.287723@4] sdio: rx_tuning_result[0] = 10
[ 26.287957@4] sdio: rx_tuning_result[1] = 10
[ 26.288244@5] sdio: rx_tuning_result[2] = 10
[ 26.288478@5] sdio: rx_tuning_result[3] = 10
[ 26.288510@5] sdio: best_win_start =0, best_win_size =4
[ 26.288516@5] sdio: sd_emmc_regs->gclock=0x1000245,sd_emmc_regs->gadjust=0x22000
[ 26.288525@5] sdio: gclock =0x1000245, gdelay=0x0, gadjust=0x22000
[ 26.288578@5] sdioh_start: set sd_f2_blocksize 256
[ 26.288924@5]  
[ 26.288924@5]  
[ 26.288924@5] dhd_bus_devreset: == WLAN ON ==
[ 26.289033@5] F1 signature read @0x18000000=0x15264345
[ 26.292082@5] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x6 pkg:0x2
[ 26.292713@5] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000
[ 26.293036@5] dhd_os_open_image: /usr/lib/firmware/brcm/config.txt (399 bytes) open success
[ 26.293564@5] dhd_conf_read_nv_by_chip: nv_by_chip_count=12
[ 26.293571@5] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=0, name=nvram_ap6181.txt
[ 26.293577@5] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=1, name=nvram_ap6210.txt
[ 26.293583@5] dhd_conf_read_nv_by_chip: chip=0xa9a6, chiprev=0, name=nvram_ap6212.txt
[ 26.293589@5] dhd_conf_read_nv_by_chip: chip=0xa9a6, chiprev=1, name=nvram_ap6212a.txt
[ 26.293595@5] dhd_conf_read_nv_by_chip: chip=0x4345, chiprev=6, name=nvram_ap6255.txt
[ 26.293601@5] dhd_conf_read_nv_by_chip: chip=0x4330, chiprev=4, name=nvram_ap6330.txt
[ 26.293607@5] dhd_conf_read_nv_by_chip: chip=0x4339, chiprev=1, name=nvram_ap6335.txt
[ 26.293613@5] dhd_conf_read_nv_by_chip: chip=0x4354, chiprev=2, name=nvram_ap6356.txt
[ 26.293619@5] dhd_conf_read_nv_by_chip: chip=0x4335, chiprev=1, name=nvram_bcm4335.txt
[ 26.293624@5] dhd_conf_read_nv_by_chip: chip=0xa94c, chiprev=2, name=nvram_ap6234.txt
[ 26.293630@5] dhd_conf_read_nv_by_chip: chip=0x4359, chiprev=9, name=nvram_ap6359sa.txt
[ 26.293636@5] dhd_conf_read_nv_by_chip: chip=0x4334, chiprev=3, name=nvram_bcm4334.txt
[ 26.293727@5] dhd_conf_read_config: mimo_bw_cap = 1
[ 26.294170@5] dhd_conf_read_config: bcn_timeout = 20
[ 26.294329@5] dhd_conf_read_config: kso_enable = 0
[ 26.294785@5] dhd_conf_read_config: PM = 0
[ 26.295027@5] dhd_conf_set_fw_name_by_chip: firmware_path=/usr/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[ 26.295034@5] dhd_conf_set_nv_name_by_chip: nvram_path=/usr/lib/firmware/brcm/nvram_ap6255.txt
[ 26.295041@5] dhdsdio_download_firmware: set use_rxchain 0
[ 26.295046@5] dhdsdio_download_firmware: set txglomsize 36
[ 26.295050@5] Final fw_path=/usr/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[ 26.295054@5] Final nv_path=/usr/lib/firmware/brcm/nvram_ap6255.txt
[ 26.295058@5] Final conf_path=/usr/lib/firmware/brcm/config.txt
[ 26.295567@5] dhd_os_open_image: /usr/lib/firmware/brcm/fw_bcm43455c0_ag.bin (483181 bytes) open success
[ 26.354344@5] dhd_os_open_image: /usr/lib/firmware/brcm/nvram_ap6255.txt (1644 bytes) open success
[ 26.362522@5] NVRAM version: AP6255_NVRAM_V1.0_29052015
[ 26.363132@3] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[ 27.388157@7] dhdsdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 27.388171@7] dhd_bus_init: clock state is wrong. state = 1
[ 28.388143@5] dhdsdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 28.388389@5] dhd_net_bus_devreset: dhd_bus_devreset: -1
[ 28.388398@5] dhd_wl_ioctl: returning as busstate=0
[ 28.388404@5] dhd_net_bus_devreset: dhd_bus_devreset: -35
[ 28.388457@5] wifi_platform_set_power = 0
[ 28.388463@5] ======== PULL WL_REG_ON LOW! ========
[ 28.388467@5] wl_android_wifi_on: Failed
[ 28.388473@5] dhd_open : wl_android_wifi_on failed (-1)
[ 28.388479@5] dhd_stop: Enter ffffffc053cd9800
[ 28.388484@5] wl_android_wifi_off in 1
[ 28.388489@5] wl_android_wifi_off in 2: g_wifi_on=0, on_failure=1
[ 28.388494@5] dhd_wl_ioctl: returning as busstate=0
[ 28.388499@5] dhd_net_bus_devreset: dhd_bus_devreset: -35
[ 28.388545@5] wifi_platform_set_power = 0
[ 28.388549@5] ======== PULL WL_REG_ON LOW! ========
[ 28.388553@5] wl_android_wifi_off out
[ 28.568113@6] dhd_stop: Exit
[ 28.568129@6] dhd_open: Exit ret=-1
[ 28.756534@2] codec:vdec_create instance ffffff800474a000, total 1