Dynalink DL-WRX36 Askey RT5010W IPQ8074 OpenWrt support

The usb3 performance of the dynalink is incredible!

I just connected an ancient external usb3 hdd:
reading and writing via samba4 with max wifi speed (close to 1 Gigabit/sec)!

this thing will replace my old synology NAS

2 Likes

I have been trying to refresh the build with the latest master but having trouble with ath11k starting ..basically get everything started apart from ath11k

I am getting the following

[    9.207566] ath11k c000000.wifi: ipq8074 hw2.0
[    9.784091] ath11k c000000.wifi: failed to boot the remote processor Q6
[    9.789187] ath11k c000000.wifi: failed to power up :-12
[    9.815897] ath11k c000000.wifi: failed to create soc core: -12
[    9.815939] ath11k c000000.wifi: failed to init core: -12
[    9.820759] ath11k: probe of c000000.wifi failed with error -12

any clues on what is hapening? 

Are you sure that ath11k-firmware is part of your image?

Is the remoteproc even powered up?

I pushed a branch with fixed port ordering and partition switching/bootcount in case you want to use it. This is based off robimarko's ipq8074-5.15-pr branch rather than the dynalink one.

4 Likes

you are absolutely right i forgot the most elementary thing :wink: thank you again

Is sysupgrade working with your branch and could you share your fw_printenv?

Yes it is.

root@OpenWrt_dl-wrx36:~# fw_printenv 
active=1
baudrate=115200
bootargs=console=ttyMSM0,115200n8 ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
bootcmd=run bootcounter && run setup && run bootlinux
bootcounter=if test $bootcount = 0; then setenv bootcount 1 && saveenv; elif test $bootcount = 1; then setenv bootcount 2 && saveenv; elif test $bootcount = 2; then setenv bootcount 3 && saveenv; elif test $bootcount = 3; then run chpart && setenv bootcount 4 && saveenv; elif test $bootcount = 4; then setenv bootcount 5 && saveenv; elif test $bootcount = 5; then setenv bootcount 6 && saveenv; elif test $bootcount = 6; then setenv active recovery && setenv bootcount 0 && saveenv && reset; fi
bootdelay=2
bootlinux=ubi read 0x44000000 kernel 0x80000000 && bootm 0x44000000#config@rt5010w-d350-rev0
chpart=if test $active = 0; then setenv active 1;  elif test $active = 1; then setenv active 0; fi
eth1addr=a4:97:33:df:ad:37
eth2addr=a4:97:33:df:ad:37
eth3addr=a4:97:33:df:ad:37
eth4addr=a4:97:33:df:ad:37
ethact=eth0
ethaddr=a4:97:33:df:ad:36
factoryimg=openwrt-ipq807x-generic-dynalink_dl-wrx36-squashfs-nand-factory.ubi
fdt_high=0x4A400000
fdtcontroladdr=4a971480
fileaddr=44000000
flash_type=2
ipaddr=192.168.1.250
machid=8850105
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1),
serverip=192.168.1.10
setup=if test $active = 0; then ubi part fs; elif test $active = 1; then ubi part fs_1; elif test $active = recovery; then run tftprecover; fi
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000
tftprecover=sleep 5 && setenv serverip 192.168.1.10 && setenv ipaddr 192.168.1.250 && tftpboot 0x44000000 ${factoryimg} && imxtract 0x44000000 ubi; nand device 0 && nand erase 0x1000000 0x6100000 && nand write $fileaddr 0x1000000 $filesize && nand erase 0x7a00000 0x6100000 && nand write $fileaddr 0x7a00000 $filesize && setenv active 0 && saveenv && reset
ubiflash=nand device 0 && nand erase 0x1000000 0x6100000 && nand write $fileaddr 0x1000000 $filesize && nand erase 0x7a00000 0x6100000 && nand write $fileaddr 0x7a00000 $filesize && setenv active 0 && saveenv && reset
bootcount=0
1 Like

fantastic thx!

did you set the env's with your script from above? Its quite extensive to do it all by hand :smiley:

yes of course, but you need to do it from the Askey stock QDSK OS or an existing OpenWrt installation, not from u-boot.

1 Like

let me also add it to my repo.

A couple of things I have done was to use the 1G profile for ath11k and removed the gro patch from nss-dp

no impact on memory and wifi performance improved
image

Does anyone know how to check the number of vdevs & peers which should have increased with the 1G profile? I looked everywhere on /sys & can't find it

is your gist of the uboot script the latest? https://gist.github.com/clayface/cc2ef80b845f826d29889fa546195d16

Yes it is, but please can you test with UART available if you can. Secondly this enables recovery which you might not want or need to do (though would appreciate if you can also test this). To avoid tftp recovery, change the active variable to "0" or "1" instead of "recovery".

1 Like

Hi, I have a question. I see you also have a repo with ipq807x (and e.g. Redmi AX6). Is it any different to robimarko's repository? Are your projects two parallel, unrelated projects? Or do you merge from each other and are you at about the same stage?

Thanks a lot.

i think the AX6 is based out of a different board ... not qualcomm ipq807x build... mediatek?

it will be merged on the mainstream (master) once there is a PR accepted... it is not the case at this stage

sysupgrade is not working with your branch. The system is still using mtd18 instead of mtd20 ... no idea what I am doing wrong?

This is my fw_printenv output:

root@OpenWrt:~# fw_printenv
active=0
baudrate=115200
bootargs=console=ttyMSM0,115200n8 ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
bootcmd=run bootcounter && run setup && run bootlinux
bootcounter=if test $bootcount = 0; then setenv bootcount 1 && saveenv; elif test $bootcount = 1; then setenv bootcount 2 && saveenv; elif test $bootcount = 2; then setenv bootcount 3 && saveenv; elif test $bootcount = 3; then run chpart && setenv bootcount 4 && saveenv; elif test $bootcount = 4; then setenv bootcount 5 && saveenv; elif test $bootcount = 5; then setenv bootcount 6 && saveenv; elif test $bootcount = 6; then setenv active recovery && setenv bootcount 0 && saveenv && reset; fi
bootdelay=2
bootlinux=ubi read 0x44000000 kernel 0x80000000 && bootm 0x44000000#config@rt5010w-d350-rev0
chpart=if test $active = 0; then setenv active 1;  elif test $active = 1; then setenv active 0; fi
eth1addr=a4:97:33:df:9a:5f
eth2addr=a4:97:33:df:9a:5f
eth3addr=a4:97:33:df:9a:5f
eth4addr=a4:97:33:df:9a:5f
ethaddr=a4:97:33:df:9a:5e
factoryimg=openwrt-ipq807x-generic-dynalink_dl-wrx36-squashfs-nand-factory.ubi
fdt_high=0x4A400000
fdtcontroladdr=4a971480
flash_type=2
ipaddr=192.168.10.10
machid=8850105
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1),
netmask=255.255.255.0
serverip=192.168.10.1
setpartfs=ubi part fs;ubi read 0x44000000 kernel 0x80000000
setpartfs1=ubi part fs_1;ubi read 0x44000000 kernel 0x80000000
setup=if test $active = 0; then ubi part fs; elif test $active = 1; then ubi part fs_1; elif test $active = recovery; then run tftprecover; fi
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000
tftprecover=sleep 5 && setenv serverip 192.168.1.10 && setenv ipaddr 192.168.1.250 && tftpboot 0x44000000 ${factoryimg} && nand device 0 && nand erase 0x1000000 0x6100000 && nand write $fileaddr 0x1000000 $filesize && nand erase 0x7a00000 0x6100000 && nand write $fileaddr 0x7a00000 $filesize && setenv active 0 && saveenv && reset
bootcount=0

if you have UART are you able to show the output from the time you issue sysupgrade to the kernel boot ?

root@OpenWrt:/# [ 1610.711818] device wlan0 left promiscuous mode
[ 1610.711955] br-lan: port 5(wlan0) entered disabled state
Watchdog handover: fd=3
- watchdog -
Watchdog did not previously reset the system
[ 1610.839094] device wlan1 left promiscuous mode
[ 1610.839219] br-lan: port 6(wlan1) entered disabled state
Sun Jul  3 17:17:47 UTC 2022 upgrade: Sending TERM to remaining processes ...
Sun Jul  3 17:17:47 UTC 2022 upgrade: Sending signal TERM to hostapd (1681)
Sun Jul  3 17:17:47 UTC 2022 upgrade: Sending signal TERM to hostapd (1727)
Sun Jul  3 17:17:47 UTC 2022 upgrade: Sending signal TERM to odhcp6c (9903)
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending KILL to remaining processes ...
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending signal KILL to hostapd (1681)
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:51 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Sending signal KILL to hostapd (1727)
Sun Jul  3 17:17:52 UTC 2022 upgrade: Failed to kill all processes.
sysupgrade aborted with return code: 256
[ 1615.585178] sd 0:0:0:0: [sda] Synchronizing SCSI cach
Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.3.1-00163

Its probably the same problem the Xiaomi router suffer from ...