Builds for Linksys WHW03 V2 + V1

Build for WHW03 V1 version that has wifi detected, kernel is 4.19.
Will try to port to 5.4.
Only for testing!

Output is squashfs and ext4, since being an eMMC perhaps ext4 is more suited.

Will work to have upgrade/install tools fixed to work with eMMC -- if anyone has a hint, would be much appreciated.

F A N T A S T I C! Great work @flipy!!

It worked great, WiFi is working. Radio 1 and 2 works as expected but I was not able to get radio 0 to work (QCA9888), I mean I can see the radio with iw/ifconfig and drivers loaded but the WiFi network will not come up. I assume that this is the radio usually dedicated to the mesh between the velops, maybe related to this:

[  269.893174] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536

All radios are still raising some issues during boot related to firmware-5/2 and map pages failed:

[    7.753489] firmware ath10k!fwcfg-pci-0000:01:00.0.txt: firmware_loading_store: map pages failed
[    7.916121] firmware ath10k!QCA9888!hw2.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[    7.989832] firmware ath10k!QCA9888!hw2.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[    8.092680] firmware ath10k!QCA9888!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[    8.094753] ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[    8.100704] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[    8.117325] ath10k_pci 0000:01:00.0: firmware ver 10.4b-ct-9888-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 00805a21
[    8.430100] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id 0:23 crc32 8b9267c2
[   10.466491] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[   10.467596] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   10.471928] ath10k_pci 0000:01:00.0: msdu-desc: 2500  skid: 32
[   10.527325] ath10k_pci 0000:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   10.528235] ath10k_pci 0000:01:00.0: wmi print 'free: 117912 iram: 12612 sram: 26276'
[   10.726212] ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   10.889496] ipq4019-pinctrl 1000000.pinctrl: invalid function wcss0_dbg16 in map table
[   10.889564] ipq4019-pinctrl 1000000.pinctrl: invalid function wifi_wci1 in map table
[   11.327109] firmware ath10k!fwcfg-ahb-a000000.wifi.txt: firmware_loading_store: map pages failed
[   11.573005] firmware ath10k!QCA4019!hw1.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   11.674027] firmware ath10k!QCA4019!hw1.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[   11.774897] firmware ath10k!QCA4019!hw1.0!firmware-6.bin: firmware_loading_store: map pages failed
[   11.777112] ath10k_ahb a000000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   11.782798] ath10k_ahb a000000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   11.797629] ath10k_ahb a000000.wifi: firmware ver 10.4b-ct-4019-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 a09ca172
[   11.848674] ath10k_ahb a000000.wifi: board_file api 2 bmi_id 0:20 crc32 91a7a7e9
[   13.157046] ath10k_ahb a000000.wifi: unsupported HTC service id: 1536
[   13.158380] ath10k_ahb a000000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   13.162491] ath10k_ahb a000000.wifi: msdu-desc: 2500  skid: 32
[   13.210708] ath10k_ahb a000000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   13.211823] ath10k_ahb a000000.wifi: wmi print 'free: 56568 iram: 13400 sram: 32520'
[   13.361712] ath10k_ahb a000000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   14.165182] firmware ath10k!fwcfg-ahb-a800000.wifi.txt: firmware_loading_store: map pages failed
[   14.390087] firmware ath10k!QCA4019!hw1.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   14.495321] firmware ath10k!QCA4019!hw1.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[   14.597500] firmware ath10k!QCA4019!hw1.0!firmware-6.bin: firmware_loading_store: map pages failed
[   14.597810] ath10k_ahb a800000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   14.605461] ath10k_ahb a800000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   14.620438] ath10k_ahb a800000.wifi: firmware ver 10.4b-ct-4019-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 a09ca172
[   14.670833] ath10k_ahb a800000.wifi: board_file api 2 bmi_id 0:21 crc32 91a7a7e9
[   15.978535] ath10k_ahb a800000.wifi: unsupported HTC service id: 1536
[   15.979831] ath10k_ahb a800000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   15.983977] ath10k_ahb a800000.wifi: msdu-desc: 2500  skid: 32
[   16.032419] ath10k_ahb a800000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   16.033930] ath10k_ahb a800000.wifi: wmi print 'free: 56568 iram: 13400 sram: 32520'
[   16.173598] ath10k_ahb a800000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1

Doing a speed test on radio 2 raised a kernel error but the speed was sustained with no problems, 200Mbps up/down:

[  250.295187] ------------[ cut here ]------------
[  250.295341] WARNING: CPU: 0 PID: 9 at target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/ath10k-ct-regular/ath10k-ct-2020-03-25-3d173a47/ath10k-5.4/txrx.c:134 ath10k_txrx_tx_unref+0x530/0x700 [ath10k_core]
[  250.298980] Invalid VHT rate, nss: 3  hw_rate: 15 ratecode: 255
[  250.318099] Modules linked in: pppoe ppp_async iptable_nat ipt_MASQUERADE ath10k_pci ath10k_core ath xt_state xt_nat xt_conntrack xt_REDIRECT xt_FLOWOFFLOAD pppox ppp_generic nf_nat_ipv4 nf_nat nf_flow_table_hw nf_flow_table nf_conntrack_rtcache nf_conntrack mac80211 ipt_REJECT cfg80211 xt_time xt_tcpudp xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG slhc nf_reject_ipv4 nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 iptable_mangle iptable_filter ip_tables hwmon crc_ccitt compat nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 leds_pca963x leds_gpio gpio_button_hotplug ext4 mbcache jbd2 crc32c_generic
[  250.361050] CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 4.19.108 #0
[  250.383254] Hardware name: Generic DT based system
[  250.389261] [<c030e298>] (unwind_backtrace) from [<c030aaec>] (show_stack+0x10/0x14)
[  250.394118] [<c030aaec>] (show_stack) from [<c07a84cc>] (dump_stack+0x94/0xa8)
[  250.402015] [<c07a84cc>] (dump_stack) from [<c0320340>] (__warn+0xd4/0xf0)
[  250.409043] [<c0320340>] (__warn) from [<c031ffe8>] (warn_slowpath_fmt+0x38/0x48)
[  250.415977] [<c031ffe8>] (warn_slowpath_fmt) from [<bf32b624>] (ath10k_txrx_tx_unref+0x530/0x700 [ath10k_core])
[  250.423587] [<bf32b624>] (ath10k_txrx_tx_unref [ath10k_core]) from [<bf324ee8>] (ath10k_htt_t2h_msg_handler+0x6f8/0x11a4 [ath10k_core])
[  250.433424] [<bf324ee8>] (ath10k_htt_t2h_msg_handler [ath10k_core]) from [<bf37afbc>] (ath10k_pci_htt_rx_cb+0x1c8/0x218 [ath10k_pci])
[  250.445578] [<bf37afbc>] (ath10k_pci_htt_rx_cb [ath10k_pci]) from [<bf343738>] (ath10k_ce_per_engine_service+0x80/0xd8 [ath10k_core])
[  250.457760] [<bf343738>] (ath10k_ce_per_engine_service [ath10k_core]) from [<bf3437fc>] (ath10k_ce_per_engine_service_any+0x6c/0x98 [ath10k_core])
[  250.469699] [<bf3437fc>] (ath10k_ce_per_engine_service_any [ath10k_core]) from [<bf37cd54>] (ath10k_pci_napi_poll+0x9c/0x13c [ath10k_pci])
[  250.482676] [<bf37cd54>] (ath10k_pci_napi_poll [ath10k_pci]) from [<c06a6270>] (net_rx_action+0x138/0x2fc)
[  250.495075] [<c06a6270>] (net_rx_action) from [<c03021c8>] (__do_softirq+0xe0/0x25c)
[  250.504708] [<c03021c8>] (__do_softirq) from [<c0324008>] (run_ksoftirqd+0x24/0x38)
[  250.512606] [<c0324008>] (run_ksoftirqd) from [<c033e980>] (smpboot_thread_fn+0x198/0x1ac)
[  250.519987] [<c033e980>] (smpboot_thread_fn) from [<c033ba74>] (kthread+0x14c/0x154)
[  250.528318] [<c033ba74>] (kthread) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[  250.536209] Exception stack(0xdf469fb0 to 0xdf469ff8)
[  250.543240] 9fa0:                                     00000000 00000000 00000000 00000000
[  250.548367] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  250.556523] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[  250.564739] ---[ end trace f56aa7474ac15fee ]---

eMMC device is available now and partitions are showed:

[    1.754417] mmc0: new HS200 MMC card at address 0001
[    1.755485] mmcblk0: mmc0:0001 4FPD3R 3.64 GiB 
[    1.758931] mmcblk0boot0: mmc0:0001 4FPD3R partition 1 4.00 MiB
[    1.763044] mmcblk0boot1: mmc0:0001 4FPD3R partition 2 4.00 MiB
[    1.763543] Freeing unused kernel memory: 9216K
[    1.768773] mmcblk0rpmb: mmc0:0001 4FPD3R partition 3 512 KiB, chardev (247:0)
[    1.781084]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19

Full output:

## Booting kernel from FIT Image at 84000000 ...
   Using 'config@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  ARM OpenWrt Linux-4.19.108
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x840000e4
     Data Size:    5200344 Bytes = 5 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x80208000
     Entry Point:  0x80208000
     Hash algo:    crc32
     Hash value:   51b1dac5
     Hash algo:    sha1
     Hash value:   bf240d5bcf403b6ea8a50b08b8030f9f28d37bbd
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Flattened Device Tree from FIT Image at 84000000
   Using 'config@1' configuration
   Trying 'fdt@1' FDT blob subimage
     Description:  ARM OpenWrt linksys_whw03 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x844f5bf4
     Data Size:    17971 Bytes = 17.5 KiB
     Architecture: ARM
     Hash algo:    crc32
     Hash value:   c2f08f7f
     Hash algo:    sha1
     Hash value:   239945423e466307d4e967101256a5ca6280f1f3
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x844f5bf4
   Loading Kernel Image ... OK
OK
   Loading Device Tree to 87068000, end 8706f632 ... OK
eth1 MAC Address from ART is not valid
Using machid 0x8010006 from environment

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.108 (acalvo@gentoo) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13144-c0bcdbef1d)) #0 SMP Sun Apr 5 00:42:49 2020
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Linksys WHW03 (Velop)
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] random: get_random_bytes called from start_kernel+0x7c/0x434 with crng_init=0
[    0.000000] percpu: Embedded 15 pages/cpu s29964 r8192 d23284 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129408
[    0.000000] Kernel command line: console=ttyMSM0,115200n8 clk_ignore_unused
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 500096K/522240K available (4865K kernel code, 174K rwdata, 1328K rodata, 9216K init, 230K bss, 22144K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (5858 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (9216 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 175 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 231 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] arch_timer: cp15 timer(s) running at 48.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xb11fd3bfb, max_idle_ns: 440795203732 ns
[    0.000009] sched_clock: 56 bits at 48MHz, resolution 20ns, wraps every 4398046511096ns
[    0.000023] Switching to timer-based delay loop, resolution 20ns
[    0.000269] Calibrating delay loop (skipped), value calculated using timer frequency.. 96.00 BogoMIPS (lpj=480000)
[    0.000286] pid_max: default: 32768 minimum: 301
[    0.000477] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000494] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001406] CPU: Testing write buffer coherency: ok
[    0.002380] Setting up static identity map for 0x80300000 - 0x80300060
[    0.002546] rcu: Hierarchical SRCU implementation.
[    0.003273] smp: Bringing up secondary CPUs ...
[    0.006252] smp: Brought up 1 node, 4 CPUs
[    0.006270] SMP: Total of 4 processors activated (384.00 BogoMIPS).
[    0.006278] CPU: All CPU(s) started in SVC mode.
[    0.011338] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.011496] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.011521] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.011777] pinctrl core: initialized pinctrl subsystem
[    0.012784] NET: Registered protocol family 16
[    0.013103] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.014273] cpuidle: using governor ladder
[    0.014319] cpuidle: using governor menu
[    0.032946] cryptd: max_cpu_qlen set to 1000
[    0.033723] usbcore: registered new interface driver usbfs
[    0.033784] usbcore: registered new interface driver hub
[    0.033867] usbcore: registered new device driver usb
[    0.033922] pps_core: LinuxPPS API ver. 1 registered
[    0.033931] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.033957] PTP clock support registered
[    0.035393] clocksource: Switched to clocksource arch_sys_counter
[    0.036366] NET: Registered protocol family 2
[    0.037011] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[    0.037053] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.037112] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.037200] TCP: Hash tables configured (established 4096 bind 4096)
[    0.037315] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.037354] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.037595] NET: Registered protocol family 1
[    0.137627] No memory allocated for crashlog
[    0.137824] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.142683] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.142698] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.148659] io scheduler noop registered
[    0.148677] io scheduler deadline registered (default)
[    0.149821] qcom-pcie 40000000.pci: host bridge /soc/pci@40000000 ranges:
[    0.149861] qcom-pcie 40000000.pci:    IO 0x40200000..0x402fffff -> 0x40200000
[    0.149887] qcom-pcie 40000000.pci:   MEM 0x40300000..0x40ffffff -> 0x40300000
[    0.426963] qcom-pcie 40000000.pci: Link up
[    0.427128] qcom-pcie 40000000.pci: PCI host bridge to bus 0000:00
[    0.427149] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.427166] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0x40200000-0x402fffff])
[    0.427179] pci_bus 0000:00: root bus resource [mem 0x40300000-0x40ffffff]
[    0.429131] PCI: bus0: Fast back to back transfers disabled
[    0.432169] PCI: bus1: Fast back to back transfers disabled
[    0.432233] pci 0000:00:00.0: BAR 8: assigned [mem 0x40400000-0x405fffff]
[    0.432250] pci 0000:00:00.0: BAR 0: assigned [mem 0x40300000-0x40300fff 64bit]
[    0.432277] pci 0000:01:00.0: BAR 0: assigned [mem 0x40400000-0x405fffff 64bit]
[    0.432353] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    0.432369] pci 0000:00:00.0:   bridge window [mem 0x40400000-0x405fffff]
[    0.434795] pcieport 0000:00:00.0: AER enabled with IRQ 98
[    0.436521] bam-dma-engine 8e04000.dma: num-channels unspecified in dt
[    0.436540] bam-dma-engine 8e04000.dma: num-ees unspecified in dt
[    0.437774] tcsr 1949000.tcsr: setting wifi_glb_cfg = 41000000
[    0.437858] tcsr 194b000.tcsr: setting usb hs phy mode select = e700e7
[    0.437931] tcsr 1953000.ess_tcsr: setting ess interface select = 0
[    0.438010] tcsr 1957000.tcsr: setting wifi_noc_memtype_m0_m2 = 2222222
[    0.438684] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.439253] msm_serial 78af000.serial: msm_serial: detected port #0
[    0.439298] msm_serial 78af000.serial: uartclk = 1843200
[    0.439349] 78af000.serial: ttyMSM0 at MMIO 0x78af000 (irq = 28, base_baud = 115200) is a MSM
[    0.439380] msm_serial: console setup on port #0
[    1.058588] console [ttyMSM0] enabled
[    1.063484] msm_serial: driver initialized
[    1.071418] loop: module loaded
[    1.072646] spi_qup 78b6000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    1.074556] spi_qup 78b6000.spi: chipselect 0 already in use
[    1.081193] spi_master spi1: spi_device register error /soc/spi@78b6000/em358x@0
[    1.086799] spi_master spi1: Failed to create SPI device for /soc/spi@78b6000/em358x@0
[    1.094914] libphy: ipq40xx_mdio: probed
[    1.174260] ESS reset ok!
[    1.207239] ESS reset ok!
[    1.625181] libphy: Fixed MDIO Bus: probed
[    1.627012] EDMA using MAC@ - using
[    1.627024] fa:fd:ec:37:b4:39
[    1.634028] i2c /dev entries driver
[    1.634932] i2c_qup 78b7000.i2c: using default clock-frequency 100000
[    1.640730] sdhci: Secure Digital Host Controller Interface driver
[    1.644574] sdhci: Copyright(c) Pierre Ossman
[    1.650683] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.655637] OF: /soc/sdhci@7824900: could not find phandle
[    1.661415] sdhci_msm 7824900.sdhci: Linked as a consumer to regulator.1
[    1.697799] mmc0: SDHCI controller on 7824900.sdhci [7824900.sdhci] using ADMA 64-bit
[    1.719545] NET: Registered protocol family 10
[    1.721551] Segment Routing with IPv6
[    1.723020] NET: Registered protocol family 17
[    1.726965] 8021q: 802.1Q VLAN Support v1.8
[    1.731060] Registering SWP/SWPB emulation handler
[    1.742259] hctosys: unable to open rtc device (�
[    1.754417] mmc0: new HS200 MMC card at address 0001
[    1.755485] mmcblk0: mmc0:0001 4FPD3R 3.64 GiB 
[    1.758931] mmcblk0boot0: mmc0:0001 4FPD3R partition 1 4.00 MiB
[    1.763044] mmcblk0boot1: mmc0:0001 4FPD3R partition 2 4.00 MiB
[    1.763543] Freeing unused kernel memory: 9216K
[    1.768773] mmcblk0rpmb: mmc0:0001 4FPD3R partition 3 512 KiB, chardev (247:0)
[    1.781084]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19
[    1.828725] Run /init as init process
[    1.851155] init: Console is alive
[    1.851442] init: - watchdog -
[    1.865070] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    1.885317] gpio-keys gpio-keys: unable to claim gpio 430, err=-16
[    1.885418] gpio-keys: probe of gpio-keys failed with error -16
[    1.891838] leds-gpio: probe of leds failed with error -16
[    1.897128] leds-pca963x 0-0062: could not parse configuration
[    1.902975] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    1.915126] init: - preinit -
mtd_get_mac_ascii: partition devinfo not found!
ip: "" is invalid lladdr
/etc/preinit: line 143: arithmetic syntax error
ip: "" is invalid lladdr
[    2.261176] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    2.666193] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    6.478826] procd: - early -
[    6.478970] procd: - watchdog -
[    7.152449] procd: - watchdog -
[    7.156042] procd: - ubus -
[    7.179507] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.207498] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.208372] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.215782] procd: - init -
Please press Enter to activate this console.
[    7.462360] kmodloader: loading kernel modules from /etc/modules.d/*
[    7.473149] Loading modules backported from Linux version v5.4-rc8-0-gaf42d3466bdc
[    7.473183] Backport generated by backports.git v5.4-rc8-1-0-g368e8c51
[    7.496854] xt_time: kernel timezone is -0000
[    7.499453] urngd: v1.0.2 started.
[    7.531630] PPP generic driver version 2.4.2
[    7.532595] NET: Registered protocol family 24
[    7.552123] ath10k 5.1 driver, optimized for CT firmware, probing pci device: 0x56.
[    7.552857] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[    7.559361] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    7.564190] random: crng init done
[    7.573196] random: 7 urandom warning(s) missed due to ratelimiting
[    7.753489] firmware ath10k!fwcfg-pci-0000:01:00.0.txt: firmware_loading_store: map pages failed
[    7.916121] firmware ath10k!QCA9888!hw2.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[    7.989832] firmware ath10k!QCA9888!hw2.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[    8.092680] firmware ath10k!QCA9888!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[    8.094753] ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[    8.100704] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[    8.117325] ath10k_pci 0000:01:00.0: firmware ver 10.4b-ct-9888-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 00805a21
[    8.430100] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id 0:23 crc32 8b9267c2
[   10.466491] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[   10.467596] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   10.471928] ath10k_pci 0000:01:00.0: msdu-desc: 2500  skid: 32
[   10.527325] ath10k_pci 0000:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   10.528235] ath10k_pci 0000:01:00.0: wmi print 'free: 117912 iram: 12612 sram: 26276'
[   10.726212] ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   10.889496] ipq4019-pinctrl 1000000.pinctrl: invalid function wcss0_dbg16 in map table
[   10.889564] ipq4019-pinctrl 1000000.pinctrl: invalid function wifi_wci1 in map table
[   11.327109] firmware ath10k!fwcfg-ahb-a000000.wifi.txt: firmware_loading_store: map pages failed
[   11.573005] firmware ath10k!QCA4019!hw1.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   11.674027] firmware ath10k!QCA4019!hw1.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[   11.774897] firmware ath10k!QCA4019!hw1.0!firmware-6.bin: firmware_loading_store: map pages failed
[   11.777112] ath10k_ahb a000000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   11.782798] ath10k_ahb a000000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   11.797629] ath10k_ahb a000000.wifi: firmware ver 10.4b-ct-4019-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 a09ca172
[   11.848674] ath10k_ahb a000000.wifi: board_file api 2 bmi_id 0:20 crc32 91a7a7e9
[   13.157046] ath10k_ahb a000000.wifi: unsupported HTC service id: 1536
[   13.158380] ath10k_ahb a000000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   13.162491] ath10k_ahb a000000.wifi: msdu-desc: 2500  skid: 32
[   13.210708] ath10k_ahb a000000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   13.211823] ath10k_ahb a000000.wifi: wmi print 'free: 56568 iram: 13400 sram: 32520'
[   13.361712] ath10k_ahb a000000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   14.165182] firmware ath10k!fwcfg-ahb-a800000.wifi.txt: firmware_loading_store: map pages failed
[   14.390087] firmware ath10k!QCA4019!hw1.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   14.495321] firmware ath10k!QCA4019!hw1.0!ct-firmware-2.bin: firmware_loading_store: map pages failed
[   14.597500] firmware ath10k!QCA4019!hw1.0!firmware-6.bin: firmware_loading_store: map pages failed
[   14.597810] ath10k_ahb a800000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   14.605461] ath10k_ahb a800000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   14.620438] ath10k_ahb a800000.wifi: firmware ver 10.4b-ct-4019-fW-013-b63cea875 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 a09ca172
[   14.670833] ath10k_ahb a800000.wifi: board_file api 2 bmi_id 0:21 crc32 91a7a7e9
[   15.978535] ath10k_ahb a800000.wifi: unsupported HTC service id: 1536
[   15.979831] ath10k_ahb a800000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   15.983977] ath10k_ahb a800000.wifi: msdu-desc: 2500  skid: 32
[   16.032419] ath10k_ahb a800000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   16.033930] ath10k_ahb a800000.wifi: wmi print 'free: 56568 iram: 13400 sram: 32520'
[   16.173598] ath10k_ahb a800000.wifi: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1
[   16.371332] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.421094] ess_edma c080000.edma: eth1: GMAC Link is up with phy_speed=1000
[   24.421993] br-lan: port 1(eth1) entered blocking state
[   24.427320] br-lan: port 1(eth1) entered disabled state
[   24.432612] device eth1 entered promiscuous mode
[   24.440256] br-lan: port 1(eth1) entered blocking state
[   24.442262] br-lan: port 1(eth1) entered forwarding state
[   24.447564] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   24.462808] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   25.436267] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   25.439446] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

New WHW03 v1 build based on kernel 5.4.

Corrected device tree along with kernel bump.

Still for testing only as sysupgrade most likely will fail or corrupt some critical partitions.

@flipy, pretty stable for me, wlan1/2 working properly, good throughput, no kernel dump this time for the same high speeds as well, 200Mbps up/down.

Wlan0 still not comming up, my attempts to get it up resulted in wlan1/2 not working properly, if I enable wlan0, wlan1/2 will not come up. When trying to bring wlan0 up got this:

[ 1677.592432] ath10k_pci 0000:01:00.0: peer-unmap-event: unknown peer id 0
[ 1680.979383] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[ 1680.979662] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[ 1680.984900] ath10k_pci 0000:01:00.0: msdu-desc: 2500  skid: 32
[ 1681.040603] ath10k_pci 0000:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[ 1681.044415] ath10k_pci 0000:01:00.0: wmi print 'free: 114524 iram: 12628 sram: 29508'
[ 1681.375185] ath10k_pci 0000:01:00.0: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4
[ 1681.475085] br-lan: port 2(wlan0) entered blocking state
[ 1681.475170] br-lan: port 2(wlan0) entered disabled state
[ 1681.480463] device wlan0 entered promiscuous mode
[ 1708.228603] ath10k_pci 0000:01:00.0: mac-vif-chan had error in htt_rx_h_vdev_channel, peer-id: 0  vdev-id: 0 peer-addr: 12:34:56:78:90:12.

Found similar problem on this thread https://forum.openwrt.org/t/ipq806x-r7500v2-tue-feb-25-snapshot-via-imagebuilder-wifi-inoperable-ath10k-ct-htt-firmware/56357/5

eMMC, serial, switch, everything working as expected and as on the previous firmware, all good. LuCi is installed and working well on this build.

Will do more tests and report in the coming days.

I've been using it for 2 days now and it proved to be stable, using on a regular basis, my daughter having online classes for 3/4h a day just with one issue where the network went down (wifi) and putting the wifi password again didn't solved, tried 2 times before it worked. The only think that was reported on the serial at that time was:

[155716.615038] ath10k_ahb a000000.wifi: unsupported HTC service id: 1536
[155716.615422] ath10k_ahb a000000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[155716.620478] ath10k_ahb a000000.wifi: msdu-desc: 2500  skid: 32
[155716.668416] ath10k_ahb a000000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[155716.671728] ath10k_ahb a000000.wifi: wmi print 'free: 53204 iram: 13416 sram: 35752'
[155716.997681] ath10k_ahb a000000.wifi: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4
[155717.014731] br-lan: port 2(wlan1) entered blocking state
[155717.014777] br-lan: port 2(wlan1) entered disabled state
[155717.019551] device wlan1 entered promiscuous mode
[155717.425982] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[155717.428307] br-lan: port 2(wlan1) entered blocking state
[155717.431709] br-lan: port 2(wlan1) entered forwarding state
[155718.913690] ath10k_ahb a800000.wifi: unsupported HTC service id: 1536
[155718.913945] ath10k_ahb a800000.wifi: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[155718.919176] ath10k_ahb a800000.wifi: msdu-desc: 2500  skid: 32
[155718.967672] ath10k_ahb a800000.wifi: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[155718.971434] ath10k_ahb a800000.wifi: wmi print 'free: 53204 iram: 13416 sram: 35752'
[155719.286609] ath10k_ahb a800000.wifi: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4
[155719.301034] br-lan: port 3(wlan2) entered blocking state
[155719.301115] br-lan: port 3(wlan2) entered disabled state
[155719.306608] device wlan2 entered promiscuous mode
[155720.033138] IPv6: ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready
[155720.033933] br-lan: port 3(wlan2) entered blocking state
[155720.038738] br-lan: port 3(wlan2) entered forwarding state

And I've found this on the logs at the time the problem happened, of course this could be client side related:

Tue Jun  2 13:50:25 2020 daemon.notice hostapd: wlan2: AP-STA-DISCONNECTED c4:d9:87:04:ab:78
Tue Jun  2 13:50:25 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: authenticated
Tue Jun  2 13:50:25 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: associated (aid 1)
Tue Jun  2 13:50:26 2020 daemon.notice hostapd: wlan2: AP-STA-CONNECTED c4:d9:87:04:ab:78
Tue Jun  2 13:50:26 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 WPA: pairwise key handshake completed (RSN)
Tue Jun  2 13:56:09 2020 daemon.notice hostapd: wlan2: AP-STA-DISCONNECTED c4:d9:87:04:ab:78
Tue Jun  2 13:56:09 2020 daemon.notice hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: did not acknowledge authentication response
Tue Jun  2 13:56:09 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: associated (aid 1)
Tue Jun  2 13:56:11 2020 daemon.notice hostapd: wlan2: AP-STA-CONNECTED c4:d9:87:04:ab:78
Tue Jun  2 13:56:11 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 WPA: pairwise key handshake completed (RSN)
Tue Jun  2 14:11:27 2020 daemon.notice hostapd: wlan2: AP-STA-DISCONNECTED c4:d9:87:04:ab:78
Tue Jun  2 14:11:27 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: authenticated
Tue Jun  2 14:11:27 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: associated (aid 1)
Tue Jun  2 14:11:29 2020 daemon.notice hostapd: wlan2: AP-STA-CONNECTED c4:d9:87:04:ab:78
Tue Jun  2 14:11:29 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 WPA: pairwise key handshake completed (RSN)
Tue Jun  2 14:11:51 2020 daemon.notice hostapd: wlan2: AP-STA-DISCONNECTED c4:d9:87:04:ab:78
Tue Jun  2 14:11:51 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: authenticated
Tue Jun  2 14:11:51 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: associated (aid 1)
Tue Jun  2 14:12:00 2020 daemon.info hostapd: wlan2: STA c4:d9:87:04:ab:78 IEEE 802.11: deauthenticated due to local deauth request

And a little bit more on the wlan0 issue:

Mon Jun  1 19:06:34 2020 daemon.notice hostapd: ACS: Automatic channel selection started, this may take a bit
Mon Jun  1 19:06:34 2020 daemon.err hostapd: ACS: No available channels found
Mon Jun  1 19:06:34 2020 daemon.warn hostapd: wlan0: IEEE 802.11 Configured channel (0) or frequency (0) not found from the channel list of the current mode (2) IEEE 802.11a
Mon Jun  1 19:06:34 2020 daemon.warn hostapd: wlan0: IEEE 802.11 Hardware does not support configured channel
Mon Jun  1 19:06:34 2020 daemon.err hostapd: Could not select hw_mode and channel. (-3)
Mon Jun  1 19:06:34 2020 daemon.notice hostapd: wlan0: interface state UNINITIALIZED->DISABLED
Mon Jun  1 19:06:34 2020 daemon.notice hostapd: wlan0: AP-DISABLED
Mon Jun  1 19:06:34 2020 daemon.err hostapd: wlan0: Unable to setup interface.
Mon Jun  1 19:06:34 2020 daemon.notice hostapd: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
Mon Jun  1 19:06:34 2020 kern.info kernel: [109320.338453] device wlan0 left promiscuous mode
Mon Jun  1 19:06:34 2020 kern.info kernel: [109320.340094] br-lan: port 2(wlan0) entered disabled state
Mon Jun  1 19:06:34 2020 kern.warn kernel: [109320.407724] ath10k_pci 0000:01:00.0: peer-unmap-event: unknown peer id 0
Mon Jun  1 19:06:34 2020 daemon.notice hostapd: wlan0: CTRL-EVENT-TERMINATING
Mon Jun  1 19:06:34 2020 daemon.err hostapd: hostapd_free_hapd_data: Interface wlan0 wasn't started
Mon Jun  1 19:06:34 2020 daemon.notice netifd: radio0 (17325): Command failed: Invalid argument
Mon Jun  1 19:06:34 2020 daemon.notice netifd: radio0 (17325): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process  path (/proc/exe)
Mon Jun  1 19:06:34 2020 daemon.notice netifd: radio0 (17325): Command failed: Invalid argument

Find here a new build for WHW03 v1.

Do let me know if it proves to be more stable -- it is base on a recent commit from master, so once they create the new stable branch I'll switch the port.

Still working to figure out how to upgrade/install the build, and currently looking at ext4 builds.
There are few devices that have only eMMC.

Changelog:

  • correctly load data from devinfo partition, such as hw base MAC address
  • set up MACs for all interfaces (eth and wlan)
  • configure u-boot tools (although I'd recommend not to tinker with them unless necessary)

First thing I've noticed is that interfaces eth0/1 got switched, no issue for me but just as FYI. On previous version eth0 was WAN and eth1 was LAN, on this one is the oposite, just fixed my config and it is running fine.

I was able to make all the radios work now. For wlan0 (mesh radio) I obviously had to use one of the channels from 100-161 and it went up as AP. I was even able to make it connect as client to the other velops on the network and use is was WAN but it was tricky, I had to configure wlan0, disable all radios, enable wlan2 than 1 than 0 otherwise if I put 0 up, 1 and 2 will disable.

On the file format, think that ext4 is best, that's was is being used for the eMMC root partition orinally on the velop, right?

I'll take a look on the other similar threads with eMMC devices and will see if I get any ideas, think will be difficult as you're clearly more expert than me on that.

Will test it for a couple more days and will report.

@flipy, do you think it is worth adding an entry into OpenWRT TOH so see if there are other people with knowledge like you interested in helping on this specific case of the eMMC? If worth, I can gather the information and include there, just let me know.

I've only tested fw_printenv so far and it properly shows the env variables I got from U-boot. Was wondering if I could change one of the boot parameters so I could make them tftp by default and get the other 2 devices running elsewhere at home.

Also, trying to mount the ext4 partitions was not working this time, kmod-fs-ext4 wasn't compatible with the built kernel but understand it is because you're building on the latest master branch.

Following with interest... I also have a WHW03 v1, and would love to put OpenWRT on it. @flipy, Can this be done with just tftp type access, or what do I have to do to load these builds?

Right now it is only usable thru TFTP and loading an initramfs image, as I am still working on the install/upgrade process.

I have to say that seems to be stable enough, although @gabriel.hahmann did more testing than I could.

Great, thanks. No problem with tftp - I just put "openwrt-ipq40xx-generic-linksys_whw03-initramfs-fit-zImage.itb" to the router, or openwrt-ipq40xx-generic-linksys_whw03-squashfs-factory.bin ?

Apologies, I should have been more clear.
Although TFTP is the way to send an image to the device, it does require serial access to it and you need to open the device and hook/solder connectors to it.

New build for whw03 v1.
The major change is the ability to use sysupgrade and install it on the device, with some caveats and serial access required.
As always, build for development only -- it is full of tools I've been using to debug/test the install process.

Install procedure:

  1. Pause u-boot, and load bootargs from an existing variable.
    For instance: set bootargs $partbootargs2.
  2. Load TFTP image and boot.
  3. Copy the sysupgrade file to a temporary directory.
  4. Run sysupgrade -n sysupgrade.bin.

Warning: since the install logic will install on the inactive partition, it is recommended to always force the install process on the same partition -- by using the same bootargs.

Caveats:

  • not possible to install from factory yet, I need to understand how Linksys applies a magic header to their firmware files
  • the boot count is not being reset upon boot, which means that even if it successfully boots openwrt upon next reboot it will fallback to the other partition

Note: this version has a hook to bridge both ethernet ports and enable DHCP on them upon first boot

New build for WHW03 v1 that works from factory.
Only tested that it flashes and boots OpenWRT.

Removed testing tools as well as hook to bridge ethernet ports.

@flipy @davideshay the build seems very stable so far, 5 days uptime, no glitches, no downtime, no problems so far.

The only erros I see on dmesg are related to the WiFi ath10k mod, they show up from time to time, this for the 11bgn radio:

[ 4095.368717] ath10k_ahb a000000.wifi: unsupported HTC service id: 1536
[ 4095.745111] ath10k_ahb a000000.wifi: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4

And this one :

[ 4193.268999] ath10k_ahb a800000.wifi: Invalid VHT mcs 15 peer stats
[ 4274.701649] ath10k_ahb a800000.wifi: htt tx: fixing invalid VHT TX rate code 0xff
[ 4275.603288] ath10k_ahb a800000.wifi: wmi: fixing invalid VHT TX rate code 0xff

But this is not affecting the navigation, video conferences, etc, so maybe just a minor issue.

That's awesome @flipy, great work! Mine was properly installed and is working fine!

Just in case somebody else need it, I followed the procedure on https://www.linksys.com/us/support-article/?articleNum=274497 to upgrade the firmware and used the file openwrt-ipq40xx-generic-linksys_whw03-squashfs-factory.bin

I have configured the wifi interfaces, radio1/2, installed a couple packages, rebooted and everything was still there and working fine.

I couldnt get LuCi but assuming that's because of the difference between available packages/kernel and the branch your developing:

Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci:
 * 	kernel (= 5.4.43-1-37761bfffe8b62214933bbf55c652828)
 * opkg_install_cmd: Cannot install package luci.

After one reboot, for some reason I lost access to the system and realized it was booting the original Linksys firmware again. Is there any way to get back to the openwrt I configured or do I need to reflash it with your firmware?

Just wondering what triggered it to boot the other partition.

Note: although install from factory and sysupgrade both work, I have not tested yet how to revert back to stock firmware.
Hence the recommendation is to always keep a Linksys firmware installed and work from there -- if doing an upgrade it will require to make a backup and restore afterwards.

Given that the bootcount it's not reset to 0 upon OpenWRT start, after some tries it will fallback to the other partition.
If you have serial access, the easiest way is to change U-Boot variable boot_part to the other partition.

I am working to rewrite the mtd reset_bc to work on the eMMC partition, but cannot give an ETA as of yet.

You could use the flag -F to force the installation, since the mismatch will not affect functionality.

Regarding issues, this one I've seen some references, I'll do some research.

New build for WHW03 V1.
Boot count will get reset to zero upon boot.
Added the possibility to check the current boot count by issuing mtd getbc_blk /dev/mmcblk0p12.
Also added LuCi to default image.

I'd recommend to revert back to stock before installing on the same partition, and then use sysupgrade to upgrade instead of flashing from factory.

To revert back to factory, here's the linksys code:

if [ "$BootPart" == "1" ]; then
                KERNEL_BLKDEV="mmcblk0p16"
                FIRMWARE_BLKDEV="mmcblk0p17"
        else
                KERNEL_BLKDEV="mmcblk0p14"
                FIRMWARE_BLKDEV="mmcblk0p15"
        fi

        Debug "Writing image: $FirmwareImage $KERNEL_BLKDEV .."

        dd if=$FirmwareImage of=/dev/$KERNEL_BLKDEV bs=4M count=1
        dd if=$FirmwareImage of=/dev/$FIRMWARE_BLKDEV bs=4M skip=2

Note: Looks like after a successful flash/upgrade, it won't change the boot partition and the previous version will be booted.
Also working into implementing the standard way to flash factory images on the device.

@flipy, sorry for my absence, doing some tests here.

I decided to give it a try and replace all the 3 velops at home with the previous firmware you provide here:

So far everything working very well!

Would like to give a try on the latest one you provided, would you mind uploading it again, it expired, sorry for the inconvenience.

Don't know exactly what I need to do with the linksys code you provided, should I run it on the regular OpenWRT shell?

Not a problem! Since you already got your setup working, there is no rush to install new versions.
I'll work to clean-up the install process.

About the code snipped, it's just to revert back to factory if necessary -- although it will be included in the next release to follow common Linksys procedures already bundled in other similar devices.