Wifi-driver is now merged to 4.18-rc1:
https://github.com/frank-w/BPI-R2-4.14/tree/4.18-wlan
it will be great if somebody can test it
wmt-tools including my script: https://drive.google.com/open?id=1MJxfHCpR-ph5YJu-_yMTCH5YG9rL6HHY
seems like there is anything missing again (crash on running wifi.sh):
root@bpi-r2-ubuntu:~# wifi.sh
+ set +e
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+ DAEMON=/dev/null
+ NAME=wifi
+ DESC='Load MediaTek MT6625L firmware wifi & BT'
+ echo 4
+ dmesg -D
+ [[ ! -e /dev/wmtWifi ]]
+ echo 'wifidev does not exist...create it...'
wifidev does not exist...create it...
+ [[ -x /usr/bin/wmt_loader ]]
+ /usr/bin/wmt_loader
+ sleep 3
+ [[ -c /dev/stpwmt ]]
+ sleep 5
+ /usr/bin/stp_uart_launcher -p /etc/firmware
[ 26.339063] Internal error: Oops: 805 [#1] SMP ARM
[ 26.343892] Modules linked in: mt7530 dsa_core phylink bridge mtk_thermal mt6577_auxadc thermal_sys spi_mt65xx pwm_mediatek ip
_tables x_tables ipv6
[ 26.357190] CPU: 3 PID: 370 Comm: mtk_wmtd Not tainted 4.18.0-rc1-bpi-r2-wlan #18
[ 26.364621] Hardware name: Mediatek Cortex-A7 (Device Tree)
[ 26.370169] PC is at hal_btif_hw_init+0x34/0x160
[ 26.374753] LR is at _btif_init+0xd4/0x4d4
[ 26.378816] pc : [<c05c17a0>] lr : [<c05ba078>] psr: a00f0013
[ 26.385032] sp : db43fcc8 ip : db43fce8 fp : db43fce4
[ 26.390214] r10: 00000000 r9 : c0e57280 r8 : 00000000
[ 26.395397] r7 : 00000000 r6 : 00000000 r5 : c0e5724c r4 : 00000000
[ 26.401871] r3 : def075c0 r2 : 00000000 r1 : 600f0013 r0 : c0e5724c
[ 26.408349] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 26.415430] Control: 10c5387d Table: 9c54c06a DAC: 00000051
[ 26.421132] Process mtk_wmtd (pid: 370, stack limit = 0xe473083a)
[ 26.427178] Stack: (0xdb43fcc8 to 0xdb440000)
[ 26.431503] fcc0: c0e56ed0 c0e56edc c0e5724c 00000000 db43fd1c db43fce8
[ 26.439622] fce0: c05ba078 c05c1778 db43fd24 db43fcf8 c0260db4 c0e56ed0 c0e56edc c0e56ed0
[ 26.447739] fd00: 00000000 c0f281f0 e2967004 00000000 db43fd3c db43fd20 c05bcf1c c05b9fb0
[ 26.455856] fd20: e2967000 c0e570e0 c0e56ed0 c0afb084 db43fd7c db43fd40 c05be158 c05bcedc
[ 26.463972] fd40: df7dd440 8040003c 1ea3b000 e296700c dc169480 c0e04c48 db43fe6c db43fe68
[ 26.472094] fd60: c0e04c48 00000000 00000000 00000004 db43fd94 db43fd80 c04f3e5c c05be090
[ 26.480213] fd80: c0e04c48 db43fe6c db43fda4 db43fd98 c04ef1bc c04f3e3c db43fdbc db43fda8
[ 26.488335] fda0: c04dd01c c04ef1b0 c0e04c48 db43fe6c db43fdcc db43fdc0 c04dd354 c04dd010
[ 26.496455] fdc0: db43fe54 db43fdd0 c04d96ec c04dd31c c093a110 e28c7000 db43fdfc db43fde8
[ 26.504576] fde0: 00000004 00000000 00000000 c093a488 db43fe54 db43fe00 c04e3d3c c04fcd50
[ 26.512698] fe00: c04dd354 c04dd20c c0e04c48 c0eee924 c093a120 c0af5e3c e28c7000 c0af600c
[ 26.520818] fe20: 00000000 cbdec846 00000001 00000002 db43fe6c c0eee398 c0e04c48 c0eee9d0
[ 26.528939] fe40: c0af18fc c0eef0f0 db43fe9c db43fe58 c04db238 c04d969c 00000000 c0eee968
[ 26.537059] fe60: db18e700 c090291c 00000000 00000000 c08e60f4 cbdec846 00000002 c0939874
[ 26.545178] fe80: c0af1924 c0f30ff8 c0eee398 c0af18fc db43fee4 db43fea0 c04db8a0 c04db1dc
[ 26.553298] fea0: c0e04c48 c0af0614 db43fef4 00000000 00000000 cbdec846 00000000 c0eee398
[ 26.561418] fec0: 00000009 c0eee94c c0eef0f0 c04e0664 c0f30ff8 c0eee968 db43ff14 db43fee8
[ 26.569539] fee0: c04dba28 c04db764 db43ff34 db43fef8 c04f1608 c0eef0f0 c0eee924 c0eee94c
[ 26.577658] ff00: 00000000 c04e0664 db43ff24 db43ff18 c04d9604 c04db9d8 db43ff34 db43ff28
[ 26.585778] ff20: c04d9650 c04d95dc db43ff74 db43ff38 c04e2da8 c04d9630 c0af5944 c0af59b0
[ 26.593897] ff40: c0af596c 00000000 dc54789c dc547880 dc2aa840 00000000 db43e000 c0eee924
[ 26.602017] ff60: dc54789c db443d94 db43ffac db43ff78 c014a1e8 c04e2c14 00000000 c04e2c08
[ 26.610136] ff80: db43ffac dc2aa840 c014a0a8 00000000 00000000 00000000 00000000 00000000
[ 26.618256] ffa0: 00000000 db43ffb0 c01010e8 c014a0b4 00000000 00000000 00000000 00000000
[ 26.626376] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 26.634495] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 26.642632] [<c05c17a0>] (hal_btif_hw_init) from [<c05ba078>] (_btif_init+0xd4/0x4d4)
[ 26.650413] [<c05ba078>] (_btif_init) from [<c05bcf1c>] (btif_open+0x4c/0xd8)
[ 26.657499] [<c05bcf1c>] (btif_open) from [<c05be158>] (mtk_wcn_btif_open+0xd4/0x344)
[ 26.665278] [<c05be158>] (mtk_wcn_btif_open) from [<c04f3e5c>] (mtk_wcn_consys_stp_btif_open+0x2c/0xbc)
[ 26.674612] [<c04f3e5c>] (mtk_wcn_consys_stp_btif_open) from [<c04ef1bc>] (mtk_wcn_stp_open_btif+0x18/0x1c)
[ 26.684291] [<c04ef1bc>] (mtk_wcn_stp_open_btif) from [<c04dd01c>] (wmt_ctrl_stp_open+0x18/0x104)
[ 26.693105] [<c04dd01c>] (wmt_ctrl_stp_open) from [<c04dd354>] (wmt_ctrl+0x44/0xc0)
[ 26.700712] [<c04dd354>] (wmt_ctrl) from [<c04d96ec>] (wmt_core_ctrl+0x5c/0xe8)
[ 26.707974] [<c04d96ec>] (wmt_core_ctrl) from [<c04db238>] (wmt_core_stp_init+0x68/0x558)
[ 26.716098] [<c04db238>] (wmt_core_stp_init) from [<c04db8a0>] (opfunc_pwr_on+0x148/0x274)
[ 26.724307] [<c04db8a0>] (opfunc_pwr_on) from [<c04dba28>] (opfunc_func_on+0x5c/0x340)
[ 26.732172] [<c04dba28>] (opfunc_func_on) from [<c04d9604>] (wmt_core_opid_handler+0x34/0x54)
[ 26.740639] [<c04d9604>] (wmt_core_opid_handler) from [<c04d9650>] (wmt_core_opid+0x2c/0x6c)
[ 26.749020] [<c04d9650>] (wmt_core_opid) from [<c04e2da8>] (wmtd_thread+0x1a0/0x254)
[ 26.756715] [<c04e2da8>] (wmtd_thread) from [<c014a1e8>] (kthread+0x140/0x170)
[ 26.763892] [<c014a1e8>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[ 26.771060] Exception stack(0xdb43ffb0 to 0xdb43fff8)
[ 26.776073] ffa0: 00000000 00000000 00000000 00000000
[ 26.784192] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 26.792310] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 26.798878] Code: e3a06000 13a02000 15832004 15832000 (e584600c)
[ 26.805001] ---[ end trace 8253cff6fee568cc ]---
+ [[ -c /dev/wmtWifi ]]
++ pidof hostapd
+ [[ -n '' ]]
++ ip a
++ grep ap0
+ [[ -n '' ]]
[ 31.302205] [MTK-WIFI] WIFI_open: WIFI_open: major 155 minor 0 (pid 363)
+ echo A
[ 31.310091] [MTK-WIFI] WIFI_write: WIFI_write A
[ 31.310091]
[ 31.316842] [WMT-PLAT][W]wmt_plat_wake_lock_ctrl:WMT-PLAT: wakelock status(1), counter(2)
^C[ 48.448699] [WMT-LIB][E]DISABLE_PSM_MONITOR(142):--->lock psm_lock failed, ret=-4
sig_term...
[ 48.456432] [WMT-EXP][E]mtk_wcn_wmt_func_ctrl(112):wake up failed,OPID(3) type(3) abort
[ 48.465878] [WMT-PLAT][W]wmt_plat_wake_lock_ctrl:WMT-PLAT: wakelock status(1), counter(1)
[ 48.474178] [MTK-WIFI] WIFI_write: WMT turn on WIFI fail!
[ 48.479880] [MTK-WIFI] WIFI_close: WIFI_close: major 155 minor 0 (pid 363)
dmesg with some debug-infos:
4.18-wlan-dmesg.txt (55,1 KB)
This seems to be a hint:
MTK-BTIF[E]_btif_set_default_setting(220):get btif device node fail
[ 0.764051] MTK-BTIF[E]_btif_set_default_setting(225):get interrupt flag from DTS fail
[ 0.771933] MTK-BTIF[E]_btif_set_default_setting(232):get register phy base from DTS fail
this problem is here:
drivers/misc/mediatek/btif/common/btif_plat.c:212 node = of_find_compatible_node(NULL, NULL, "mediatek,btif");
after change the compatible-string of btif-node (add “mediatek,btif”) i got this:
[ 0.756544] MTK-BTIF[E]hal_btif_clk_get_and_prepare(285):[CCF]cannot get clk.
this depends on this line:
drivers/misc/mediatek/btif/common/btif_plat.c:283 clk_btif = devm_clk_get(&pdev->dev, "btifc");
here i also fixed btif-node in dtsi:
clocks = <&pericfg CLK_PERI_BTIF>, <&pericfg CLK_PERI_AP_DMA>;
clock-names = "btifc", "apdmac";
both btif-problems can be also fixed in source (compatible-string “mediatek,btif” to “mediatek,mtk-btif” and clockname “btifc” to “main”)…maybe this is the better way, but finally i got the ap0-device:
9: ap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:08:22:30:01:fc brd ff:ff:ff:ff:ff:ff
inet 192.168.10.1/24 scope global ap0
valid_lft forever preferred_lft forever
seems like patching code instead of dtsi does not work or the additional clock “apdmac” is needed too
+ echo A
/usr/local/sbin/wifi.sh: line 64: echo: write error: Input/output error
4.18-wifi.patch (2,5 KB)
had to patch struct apbtif_of_ids[] in drivers/misc/mediatek/btif/common/mtk_btif.c too…now it works with default names (compatible/clock) of btif-node in mt7623.dtsi