i got one of these things and sort of managed to get openwrt running on it
well, pretty much everything works, though it seems the onboard lan ports have some limitations like:
[48889.626002] starfive-eth-plat 16040000.ethernet eth1: Only single VLAN ID supported
[49063.485183] starfive-eth-plat 16030000.ethernet eth0: Only single VLAN ID supported
however, the USB ports work so i'm using a USB network adapter currently
it actually seems quite stable and runs wireguard fine at least up to 100mbits/s which is as fast as my internet will go
Linux version 5.15.102 (alarm@alarm) (riscv64-openwrt-linux-gnu-gcc (OpenWrt GCC 12.2.0 r22273+40-bf261073dc) 12.2.0, GNU ld (GNU Binutils) 2.40.0) #0 SMP Tue Mar 14 00:45:42 2023
[ 6.851960] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
[ 7.033122] raid6: int64x8 gen() 872 MB/s
[ 7.203122] raid6: int64x8 xor() 524 MB/s
[ 7.373128] raid6: int64x4 gen() 1444 MB/s
[ 7.543135] raid6: int64x4 xor() 690 MB/s
[ 7.713123] raid6: int64x2 gen() 1350 MB/s
[ 7.883130] raid6: int64x2 xor() 720 MB/s
[ 8.053121] raid6: int64x1 gen() 1216 MB/s
[ 8.223134] raid6: int64x1 xor() 622 MB/s
[ 8.227397] raid6: using algorithm int64x4 gen() 1444 MB/s
[ 8.232874] raid6: .... xor() 690 MB/s, rmw enabled
[ 8.237751] raid6: using intx1 recovery algorithm
[ 8.242819] xor: measuring software checksum speed
[ 8.252459] 8regs : 2032 MB/sec
[ 8.261757] 8regs_prefetch : 1989 MB/sec
[ 8.268902] 32regs : 3526 MB/sec
[ 8.276061] 32regs_prefetch : 3509 MB/sec
[ 8.280410] xor: using function: 32regs (3526 MB/sec)
It looks like crypto acceleration isn't working, but this is an idea of the raw performance, looks like there are some optimizations to go there:
root@Rashemen:~# openssl speed aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 4693504 aes-128-cbc's in 2.99s
Doing aes-128-cbc for 3s on 64 size blocks: 1551624 aes-128-cbc's in 2.99s
Doing aes-128-cbc for 3s on 256 size blocks: 422794 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 108176 aes-128-cbc's in 2.99s
Doing aes-128-cbc for 3s on 8192 size blocks: 13606 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 16384 size blocks: 6785 aes-128-cbc's in 2.98s
version: 3.0.8
built on: Tue Mar 14 00:45:42 2023 UTC
options: bn(64,64)
compiler: riscv64-openwrt-linux-gnu-gcc -fPIC -pthread -Wall -O3 -pipe -march=rv64gc_zba_zbb -mtune=sifive-u74 -mabi=lp64d -fno-caller-saves -fno-plt -fhonour-copts -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -DPIC -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
CPUINFO: N/A
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 25115.74k 33212.02k 36078.42k 37047.57k 37153.45k 37303.84k
root@Rashemen:/# cat /proc/cpuinfo
processor : 0
hart : 3
isa : rv64imafdc
mmu : sv39
isa-ext :
uarch : sifive,u74-mc
processor : 1
hart : 1
isa : rv64imafdc
mmu : sv39
isa-ext :
uarch : sifive,u74-mc
processor : 2
hart : 2
isa : rv64imafdc
mmu : sv39
isa-ext :
uarch : sifive,u74-mc
processor : 3
hart : 4
isa : rv64imafdc
mmu : sv39
isa-ext :
uarch : sifive,u74-mc
root@Rashemen:/# cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_available_frequen
cies
375000 500000 750000 1500000
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 2: Dev 2, If 0, Class=, Driver=r8152, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=, Driver=hub/4p, 480M