More interesting is bootlog with messages from my patch above in 4.19. I guess problem with sgmii-setup is similar…throughput is terrible…only 100mbit/s or have you only 100mbit-client for iperf?
I see that port 6 is also only 1000mbit, sgmii should be 2.5gbit/s,but maybe only reporting is wrong…or dts…afair it was defined as sgmii with speed 1000 in openwrt
root@bpi-r64:~# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 2500baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 2500baseX/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 2500Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
btw. my iperf3 over lan-port (sgmii-lane) looks like this:
root@bpi-r64:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 2e:c2:ec:3b:f4:8e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.19/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether aa:6c:e2:0a:1d:2c brd ff:ff:ff:ff:ff:ff
root@bpi-r64:~# iperf3 -c 192.168.0.21 -R -i 0
Connecting to host 192.168.0.21, port 5201
Reverse mode, remote host 192.168.0.21 is sending
[ 5] local 192.168.0.19 port 56164 connected to 192.168.0.21 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver
iperf Done.
root@bpi-r64:~# iperf3 -c 192.168.0.21 -i 0
Connecting to host 192.168.0.21, port 5201
[ 5] local 192.168.0.19 port 56168 connected to 192.168.0.21 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 680 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec receiver
iperf Done.
root@bpi-r64:~#
tried to getting bluetooth to work (in 5.4-r64-rc) like i’ve done here, but no success yet:
root@bpi-r64:~# cat /sys/firmware/devicetree/base/serial@1100c000/bluetooth/status
okayroot@bpi-r64:~# ls /lib/firmware/mediatek/
mt7622pr2h.bin
root@bpi-r64:~#
root@bpi-r64:~# dmesg | grep -i hci
[ 0.118222] Bluetooth: HCI device and connection manager initialized
[ 0.118233] Bluetooth: HCI socket layer initialized
[ 3.960775] xhci-mtk 1a0c0000.usb: xHCI Host Controller
[ 3.966023] xhci-mtk 1a0c0000.usb: new USB bus registered, assigned bus number 1
[ 3.975053] xhci-mtk 1a0c0000.usb: hcc params 0x01403198 hci version 0x96 quirks 0x0000000000210010
[ 3.984136] xhci-mtk 1a0c0000.usb: irq 129, io mem 0x1a0c0000
[ 3.998676] xhci-mtk 1a0c0000.usb: xHCI Host Controller
[ 4.003914] xhci-mtk 1a0c0000.usb: new USB bus registered, assigned bus number 2
[ 4.011319] xhci-mtk 1a0c0000.usb: Host supports USB 3.0 SuperSpeed
root@bpi-r64:~# dmesg | grep -i bluetooth
[ 0.118192] Bluetooth: Core ver 2.22
[ 0.118222] Bluetooth: HCI device and connection manager initialized
[ 0.118233] Bluetooth: HCI socket layer initialized
[ 0.118241] Bluetooth: L2CAP socket layer initialized
[ 0.118256] Bluetooth: SCO socket layer initialized
[ 1.338827] Bluetooth: RFCOMM TTY layer initialized
[ 1.343745] Bluetooth: RFCOMM socket layer initialized
[ 1.349031] Bluetooth: RFCOMM ver 1.11
[ 1.352927] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.358390] Bluetooth: BNEP filters: protocol multicast
[ 1.363770] Bluetooth: BNEP socket layer initialized
[ 1.368766] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.374721] Bluetooth: HIDP socket layer initialized
root@bpi-r64:~#
root@bpi-r64:~# bluetoothctl
Agent registered
[bluetooth]# power on
No default controller available
[bluetooth]#
seems like the driver is named CONFIG_BT_MTKUART, after changing that to y (from m) i see more info (loading over tftp, so before no module available):
[ 1.264907] bluetooth hci0: Direct firmware load for mediatek/mt7622pr2h.bin failed with error -2
[ 1.273827] Bluetooth: hci0: Failed to load firmware file (-2)
i still have the firmware-file in same place
root@bpi-r64:~# ls -l /lib/firmware/mediatek/mt7622pr2h.bin
-rw-r--r-- 1 root root 78158 Oct 21 13:25 /lib/firmware/mediatek/mt7622pr2h.bin
root@bpi-r64:~#
i guess driver (when builtin) tries to load firmware before rootfs is mounted (here i have 1s boottime,in the other linked thread it is 14 sec and loaded as module)…
now i have this again:
[ 21.218564] Bluetooth: hci0: Execution of wmt command timed out
[ 21.224502] Bluetooth: hci0: Failed to query firmware status (-110)
also after doing some hciconfig hci0 down/up…had also applied the msleep-patch (mtk-scpsys.c)
good news, on Patchwork/Mailinglist there was a DSA-driver for mt7531 released…i added it to this branch and made a quick test:
details
root@bpi-r64:~# uname -a
Linux bpi-r64 5.5.0-rc1-bpi-r64-netnext #9 SMP PREEMPT Tue Dec 10 11:59:07 CET 2019 aarch64 GNU/Linux
root@bpi-r64:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether b6:2e:63:86:9e:98 brd ff:ff:ff:ff:ff:ff
4: wan@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
5: lan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.19/24 scope global lan0
valid_lft forever preferred_lft forever
6: lan1@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
7: lan2@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
8: lan3@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 12:9b:2c:56:cd:f0 brd ff:ff:ff:ff:ff:ff
root@bpi-r64:~# ping -c4 192.168.0.10
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=64 time=0.498 ms
64 bytes from 192.168.0.10: icmp_seq=2 ttl=64 time=0.371 ms
64 bytes from 192.168.0.10: icmp_seq=3 ttl=64 time=0.487 ms
64 bytes from 192.168.0.10: icmp_seq=4 ttl=64 time=0.458 ms
--- 192.168.0.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 81ms
rtt min/avg/max/mdev = 0.371/0.453/0.498/0.054 ms
root@bpi-r64:~#
root@bpi-r64:~# iperf3 -c 192.168.0.21
Connecting to host 192.168.0.21, port 5201
[ 5] local 192.168.0.19 port 56412 connected to 192.168.0.21 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 114 MBytes 957 Mbits/sec 0 1003 KBytes
[ 5] 1.00-2.00 sec 113 MBytes 944 Mbits/sec 0 1.08 MBytes
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0 1.08 MBytes
[ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec 0 1.08 MBytes
[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec 0 1.08 MBytes
[ 5] 5.00-6.00 sec 112 MBytes 944 Mbits/sec 0 1.21 MBytes
[ 5] 6.00-7.00 sec 112 MBytes 944 Mbits/sec 0 1.27 MBytes
[ 5] 7.00-8.00 sec 112 MBytes 943 Mbits/sec 0 1.27 MBytes
[ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec 0 1.27 MBytes
[ 5] 9.00-10.00 sec 112 MBytes 944 Mbits/sec 0 1.27 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver
iperf Done.
root@bpi-r64:~# iperf3 -c 192.168.0.21 -R
Connecting to host 192.168.0.21, port 5201
Reverse mode, remote host 192.168.0.21 is sending
[ 5] local 192.168.0.19 port 56416 connected to 192.168.0.21 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 941 Mbits/sec
[ 5] 1.00-2.00 sec 111 MBytes 932 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 938 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 941 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 941 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 938 Mbits/sec
[ 5] 7.00-8.00 sec 112 MBytes 941 Mbits/sec
[ 5] 8.00-9.00 sec 112 MBytes 937 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec 617 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec receiver
iperf Done.
root@bpi-r64:~#
have managed to backport to 5.4:
i added the timeout-loop (waiting for MT7531_SGMII_LINK_STATUS) from the other mt7531-phy-driver, but the driver seem to have same SGMII-timeout if loaded from local storage…
this loop seems to break functionality if sgmii is not initialized before (uboot tftp). I have reverted it and it works again. Retransmitts were caused by my local switch config (flowcontrol is disabled by default…after set to autonegotiate/on on both ports no retransmitts happen)
I tested your image with kernel 5.4+buster and wanted to get internet via Wifi (client mode!) for BPI-R64,
but failed.
Is it possible to fix that?
I dont have /dev/rfkill, by the way, maybe that is the root cause.
The same command at my computer x86 works (I get connection via Wifi).
root@bpi-r64:~# wpa_supplicant -i wlan0 -c <(wpa_passphrase catbo passphrase)
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
wlan0: SME: Trying to authenticate with cc:2d:21:14:60:81 (SSID='catbo' freq=2437 MHz)
nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
wlan0: SME: Trying to authenticate with cc:2d:21:14:60:81 (SSID='catbo' freq=2437 MHz)
nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
wlan0: SME: Trying to authenticate with cc:2d:21:14:60:81 (SSID='catbo' freq=2437 MHz)
nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
wlan0: SME: Trying to authenticate with cc:2d:21:14:60:81 (SSID='catbo' freq=2437 MHz)
wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="catbo" auth_failures=1 duration=10 reason=CONN_FAILED
nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
^Cnl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
nl80211: Failed to set IPv6 unicast in multicast filter
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
wlan0: CTRL-EVENT-TERMINATING
root@bpi-r64:~#
dmesg at the same time:
[104448.297511] wlan0: authenticate with cc:2d:21:14:60:81
[104448.349616] wlan0: send auth to cc:2d:21:14:60:81 (try 1/3)
[104448.361821] wlan0: send auth to cc:2d:21:14:60:81 (try 2/3)
[104448.373934] wlan0: send auth to cc:2d:21:14:60:81 (try 3/3)
[104448.386182] wlan0: authentication with cc:2d:21:14:60:81 timed out
[104452.541424] wlan0: authenticate with cc:2d:21:14:60:81
[104452.593539] wlan0: send auth to cc:2d:21:14:60:81 (try 1/3)
[104452.605874] wlan0: send auth to cc:2d:21:14:60:81 (try 2/3)
[104452.617989] wlan0: send auth to cc:2d:21:14:60:81 (try 3/3)
[104452.630210] wlan0: authentication with cc:2d:21:14:60:81 timed out
[104457.185530] wlan0: authenticate with cc:2d:21:14:60:81
[104457.237700] wlan0: send auth to cc:2d:21:14:60:81 (try 1/3)
[104457.249998] wlan0: send auth to cc:2d:21:14:60:81 (try 2/3)
[104457.262245] wlan0: send auth to cc:2d:21:14:60:81 (try 3/3)
[104457.274466] wlan0: authentication with cc:2d:21:14:60:81 timed out
[104462.333487] wlan0: authenticate with cc:2d:21:14:60:81
[104462.385575] wlan0: send auth to cc:2d:21:14:60:81 (try 1/3)
[104462.397729] wlan0: send auth to cc:2d:21:14:60:81 (try 2/3)
[104462.410166] wlan0: send auth to cc:2d:21:14:60:81 (try 3/3)
[104462.422325] wlan0: authentication with cc:2d:21:14:60:81 timed out
Finally I managed to build and test 5.4-main branch, and with dkms built wireguard too.
sa@bpi-r64:~$ sudo ip link add dev wg0 type wireguard
sa@bpi-r64:~$ sudo wg
interface: wg0
Client tools I got from Debian testing, but wireguard.ko requires building. For convenience I used fpm to build linux-headers deb, and after recompling fixdep/modpost I got success, but it is long and errorprone.
After all I found another way to build:
ARCH=arm64 CROSS_COMPILE='ccache aarch64-linux-gnu-' make bindeb-pkg
and got almost at once
$ ls -1 *.deb
linux-headers-5.4.0-bpi-r64+_5.4.0-bpi-r64+-4_arm64.deb
linux-image-5.4.0-bpi-r64+_5.4.0-bpi-r64+-4_arm64.deb
linux-libc-dev_5.4.0-bpi-r64+-4_arm64.deb
At least linux-headers (the main target as it is needed for dkms) is usable.
I think, after tweaking, it would be nice to put linux-headers.deb along other artifacts to https://github.com/frank-w/BPI-R2-4.14/releases with CI.
I mean if it is source or target for deb creation…
afair buildeb does not work for crosscompile (binary package). can you give example for adding it to build.sh (function deb already contains versionstring)?