Adding OpenWrt support for Xiaomi AX3600 (Part 1)

@dchard NEON versions are used for sure:

root@OpenWrt:/# cat /proc/crypto 
name         : xchacha12
driver       : xchacha12-neon
module       : chacha_neon
priority     : 300
refcnt       : 1
selftest     : passed
internal     : no
type         : skcipher
async        : no
blocksize    : 1
min keysize  : 32
max keysize  : 32
ivsize       : 32
chunksize    : 64
walksize     : 320

name         : xchacha20
driver       : xchacha20-neon
module       : chacha_neon
priority     : 300
refcnt       : 1
selftest     : passed
internal     : no
type         : skcipher
async        : no
blocksize    : 1
min keysize  : 32
max keysize  : 32
ivsize       : 32
chunksize    : 64
walksize     : 320

name         : chacha20
driver       : chacha20-neon
module       : chacha_neon
priority     : 300
refcnt       : 1
selftest     : passed
internal     : no
type         : skcipher
async        : no
blocksize    : 1
min keysize  : 32
max keysize  : 32
ivsize       : 16
chunksize    : 64
walksize     : 320

name         : poly1305
driver       : poly1305-neon
module       : poly1305_neon
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : shash
blocksize    : 16
digestsize   : 16
1 Like

I'm trying to unbrick with uart seral port but i cant stop autoboot.


When i press enter nothing happens. Continue to autoboot!
I'am doing something wrong?

That benchmark tool will be installable, once cotequeiroz' PR hits master: [RFT] wolfssl: enable CPU crypto instructions (#9738)

It has a commit:

wolfssl: add benchmark utility

This packages the wolfssl benchmark utility.

Thank you.

Looks the same on my end:

cat /proc/crypto |grep neon
driver       : xchacha12-neon
module       : chacha_neon
driver       : xchacha20-neon
module       : chacha_neon
driver       : chacha20-neon
module       : chacha_neon
driver       : poly1305-neon
module       : poly1305_neon
driver       : sha224-arm64-neon
driver       : sha256-arm64-neon
1 Like

I agree. Just suggestion. I would like to share my test result of openvpn dco in the kernel space.
AES-256-GCM is used.

Without CE:

tony@tony-vm-18:~$ iperf3  -c 10.8.0.2 
Connecting to host 10.8.0.2, port 5201
[  4] local 192.168.1.10 port 48692 connected to 10.8.0.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  25.2 MBytes   211 Mbits/sec    0   1.10 MBytes       
[  4]   1.00-2.00   sec  22.0 MBytes   184 Mbits/sec    0   2.19 MBytes       
[  4]   2.00-3.00   sec  21.9 MBytes   183 Mbits/sec    0   3.00 MBytes       
[  4]   3.00-4.00   sec  21.9 MBytes   184 Mbits/sec    0   3.00 MBytes       
[  4]   4.00-5.00   sec  21.9 MBytes   184 Mbits/sec    0   3.00 MBytes       
[  4]   5.00-6.00   sec  22.0 MBytes   184 Mbits/sec    0   3.00 MBytes       
[  4]   6.00-7.00   sec  21.9 MBytes   184 Mbits/sec    0   3.00 MBytes       
[  4]   7.00-8.00   sec  22.0 MBytes   184 Mbits/sec    0   3.00 MBytes       
[  4]   8.00-9.00   sec  21.9 MBytes   183 Mbits/sec    0   3.00 MBytes       
[  4]   9.00-10.00  sec  22.0 MBytes   184 Mbits/sec    0   3.00 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   223 MBytes   187 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   222 MBytes   186 Mbits/sec                  receiver

iperf Done.
tony@tony-vm-18:~$ iperf3  -c 10.8.0.2 -R
Connecting to host 10.8.0.2, port 5201
Reverse mode, remote host 10.8.0.2 is sending
[  4] local 192.168.1.10 port 48696 connected to 10.8.0.2 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  14.2 MBytes   119 Mbits/sec                  
[  4]   1.00-2.00   sec  12.4 MBytes   103 Mbits/sec                  
[  4]   2.00-3.00   sec  15.4 MBytes   130 Mbits/sec                  
[  4]   3.00-4.00   sec  14.3 MBytes   120 Mbits/sec                  
[  4]   4.00-5.00   sec  14.3 MBytes   120 Mbits/sec                  
[  4]   5.00-6.00   sec  14.2 MBytes   119 Mbits/sec                  
[  4]   6.00-7.00   sec  14.4 MBytes   121 Mbits/sec                  
[  4]   7.00-8.00   sec  14.3 MBytes   120 Mbits/sec                  
[  4]   8.00-9.00   sec  14.2 MBytes   119 Mbits/sec                  
[  4]   9.00-10.00  sec  14.3 MBytes   120 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   145 MBytes   121 Mbits/sec   54             sender
[  4]   0.00-10.00  sec   143 MBytes   120 Mbits/sec                  receiver

iperf Done.

Enable CE:

tony@tony-vm-18:~$ iperf3  -c 10.8.0.2                                                                                                                                   
Connecting to host 10.8.0.2, port 5201                                                                                                                                                                             
[  4] local 192.168.1.10 port 48684 connected to 10.8.0.2 port 5201                                                                                                                                                
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd                                                                                                                                                   
[  4]   0.00-1.00   sec  87.1 MBytes   730 Mbits/sec    0   3.00 MBytes
[  4]   1.00-2.00   sec  85.8 MBytes   720 Mbits/sec    0   3.15 MBytes
[  4]   2.00-3.00   sec  85.4 MBytes   717 Mbits/sec   94   2.32 MBytes
[  4]   3.00-4.00   sec  85.0 MBytes   713 Mbits/sec    0   2.52 MBytes
[  4]   4.00-5.00   sec  85.5 MBytes   717 Mbits/sec    0   2.68 MBytes
[  4]   5.00-6.00   sec  85.7 MBytes   719 Mbits/sec    0   2.81 MBytes
[  4]   6.00-7.00   sec  85.3 MBytes   716 Mbits/sec    0   2.91 MBytes
[  4]   7.00-8.00   sec  86.0 MBytes   721 Mbits/sec    0   2.99 MBytes
[  4]   8.00-9.00   sec  85.8 MBytes   720 Mbits/sec    0   3.00 MBytes
[  4]   9.00-10.00  sec  85.2 MBytes   715 Mbits/sec  347   2.15 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   857 MBytes   719 Mbits/sec  441             sender
[  4]   0.00-10.00  sec   855 MBytes   717 Mbits/sec                  receiver

iperf Done.

tony@tony-vm-18:~$ iperf3  -c 10.8.0.2 -R                                                                                                                                
Connecting to host 10.8.0.2, port 5201                                                                                                                                                                             
Reverse mode, remote host 10.8.0.2 is sending                                                                                                                                                                      
[  4] local 192.168.1.10 port 48680 connected to 10.8.0.2 port 5201                                                                                                                                                
[ ID] Interval           Transfer     Bandwidth                                                                                                                                                                    
[  4]   0.00-1.00   sec  38.3 MBytes   321 Mbits/sec                                                                                                                                                               
[  4]   1.00-2.00   sec  40.6 MBytes   341 Mbits/sec                                                                                                                                                               
[  4]   2.00-3.00   sec  40.7 MBytes   341 Mbits/sec                                                                                                                                                               
[  4]   3.00-4.00   sec  40.7 MBytes   341 Mbits/sec                                                                                                                                                               
[  4]   4.00-5.00   sec  40.6 MBytes   340 Mbits/sec                                                                                                                                                               
[  4]   5.00-6.00   sec  40.8 MBytes   342 Mbits/sec                                                                                                                                                               
[  4]   6.00-7.00   sec  40.7 MBytes   342 Mbits/sec                                                                                                                                                               
[  4]   7.00-8.00   sec  40.6 MBytes   341 Mbits/sec                                                                                                                                                               
[  4]   8.00-9.00   sec  40.7 MBytes   341 Mbits/sec                                                                                                                                                               
[  4]   9.00-10.00  sec  40.7 MBytes   341 Mbits/sec                                                                                                                                                               
- - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                  
[ ID] Interval           Transfer     Bandwidth       Retr                                                                                                                                                         
[  4]   0.00-10.00  sec   408 MBytes   342 Mbits/sec   59             sender                                                                                                                                       
[  4]   0.00-10.00  sec   406 MBytes   340 Mbits/sec                  receiver                                                                                                                                     
                                                                                                                                                                                                                   
iperf Done.                                  

This proves CE works and encryption is faster than decryption.

@robimarko when are you planning to submit AX3600 to snapshot? concern here is your bandwith to maintain your repo with all other changes going on snapshot

Honestly, no ETA since there is still stuff to fixup and a ton to upstream.

@RobertP As predicted QCA knows that AHB+PCI does not work:
http://lists.infradead.org/pipermail/ath11k/2022-April/003017.html

2 Likes

All the robimarko code is published at GitHub. You have the link in the wiki. Stop doing this kind of comments. If you want it at openwrt faster, do it yourself with your own code.

1 Like

I don't get what you want?
What's the point of me making a PR with half-assed code that then will need fixup anyway.

So its way smarter to upstream whats upstreamable to mainline kernel, but the issue is time or more precisely lack of it cause I gotta make sure it works on the newest kernel first and that its up to date and only then submit it.

5 Likes

my god lately this topic has becoming toxic more and more... wth is happening here... pls chillup we are doing our best for real. And also it's all FREE.

14 Likes

To put it mildly, a lot of stuff needs to get upstreamed to the kernel, so everything from GCC clocks, APSS clocks, tsens, voltage regulators, etc.
CPR needs to be cleaned up, this is just a patched QSDK driver and it's horrible, SSDK and NSS-DP probably need cleanup as well to get them into OpenWrt, etc.

5 Likes

thank you :slight_smile: peace pls

yeah it feels one has to take qcom with a pinch of salt for awhile...contemplating the tlink TL-XTR10890 and checking their firmware we are on the same situation as this device and the ax9000 xiaomi

Check out supercop: https://bench.cr.yp.to/supercop.html

What I recommend everyone with a slight bit of sense to do is to flag all this nonsense as off topic or inappropriate. Probably a couple flags will get this crap removed by the algo...

You can't pressure unpaid volunteers, if you do, chances are they throw the towel in your face. It's an awful lot of work, and a lot has already happened thanks to the efforts spent by those you are bullying now, 'are we there yet' won't make that any faster, on the contrary.

2 Likes

I have a question about a problem i have with the latest build from robimarko. I use the ax3600 as AP. when i configure lan1 as br-lan and connect the router with my modem all works. Wifi speed is fabulous. When i reboot the router and install it in another room trying to connect to wifi or ping at adress timeout its a known bug?when i install again in the same place when it worked the router cannot give dhcp etc....

It's not clear to me who is the router or how it is connected to what?
Do you use ax3600 as a wired AP?
Maybe you have more than one DHCP server in your LAN.

Hello sqrwv when i configure first time ax3600 as AP and activate wifi radio 0 and radio 1 all working good. When i reboot the ax3600 and try to connect to wifi or ping the router from a wired computer of the network cant .

I configure it as AP . the main modem of ISP have the dhcp of the whole network with 192.168.1. 1.

The ax3600 as AP set at 192.168.1.254. with no dhcp at v4 or v6.

My problem is that when i configure for first time the wifi working well . When i restart the router and try to login after 10 mins the router went down. I see the ssid. But i cant connect to them.