Builds for Linksys WHW03 V2 + V1

nevermind, from that state it was a question of applying some uncomfortable amount of force. i'm in.

Quick question, is there a simple way to dump the original firmware (it is possibly different from plain stock, as it is labelled with the initials of my ISP, about shows: "WHW03CF firmware version: 2.1.18.212642").

I'd much rather having way to restore the original fw before switching the device to OpenWrt :slight_smile:

Hi eveyone. I've been using @ej5921 build so far, which worked great, but wanted to install the official 23.03.2 and couldn't get it to flash. Ticked "Force Flash" and tried even multiple builds but to no avail. Is there any other way to flash and override that build? Tried to SCP the .bin to /tmp and sysupgrade from there but the only thing it does is reboot.

From my findings, it's all a bit too convoluted, with ubiformat, squashfs, fw_setenv, mtd amongst other tools and I don't really want to brick my router just yet.
A fw_printenv returns:

Warning: Bad CRC, using default environment
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=5
baudrate=115200

And a cat /proc/mtd returns:

dev:    size   erasesize  name
mtd0: 00100000 00020000 "SBL1"
mtd1: 00100000 00020000 "MIBIB"
mtd2: 00100000 00020000 "QSEE"
mtd3: 00080000 00020000 "CDT"
mtd4: 00200000 00020000 "APPSBL"
mtd5: 00080000 00020000 "ART"
mtd6: 00080000 00020000 "u_env"
mtd7: 00040000 00020000 "s_env"
mtd8: 00040000 00020000 "devinfo"
mtd9: 0a100000 00020000 "kernel"
mtd10: 09b00000 00020000 "rootfs"
mtd11: 0a100000 00020000 "alt_kernel"
mtd12: 09b00000 00020000 "alt_rootfs"
mtd13: 00200000 00020000 "sysdiag"
mtd14: 0b500000 00020000 "syscfg"

with mtd10 being the active partition.

Ok, I've finally figured out the "magic sauce". I needed to change the the bugged etc/fw_env.config from mtd7 0x0 0x40000 0x20000 to mtd6 0x0 0x80000 0x20000

i have both devices now, and had a bit of time.

V2 hardware: i made a PR to fix the reduced channel ranges:

those wanting an unofficial build with extended channels, it's here:

V1 hardware: i'm working on an official port.

3 Likes

Hello,

Stupid question on my side: is the A03v2 striclty identical to the WHW03v2 an can the WHW03 image be flashed to it ?

According to https://techinfodepot.shoutwiki.com/wiki/Linksys_Velop_(WHW03_V2) they are electricaly an mecahnically identical.

And linksys support for WHW03 says that the firmwares are for WHW03v2 are also for A03v2...

Product:                Linksys WHW03 V2 / A03 V2 (Velop, Tri-Band)
Classification:         Firmware Release Notes

===========================================================================

IMPORTANT:
- DO NOT power cycle the router during the firmware upgrade process.
- This firmware is only compatible with WHW03/A03 hardware version 2 
  (WHW03 V2/A03 V2).  It is *not* compatible with WHW03/A03 hardware 
  version 1 (WHW03 V1/A03 V1).

If necessary to answer the question, and someone is willing to guide me, I can via serial connection (I have the usb serial connector to set up serial port connection), help check if A03 is identical or not to WHW03v2 and/or compatible with WHW03v2 openwrt images

WHW03 V1 is finally merged!
https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=ipq40xx%2Fgeneric&id=linksys_whw03

but...

no BDFs (board files) are included for now. i need some help with that here...

it seems you are right:
https://downloads.linksys.com/support/assets/releasenotes/WHW03v2_A03v2_Velop_Customer_Release_Notes_2.1.19.209783.txt

i can help you. could you please post a complete bootlog somewhere? (not here, a github gist, or some pastebin). please make sure you upgrade to the latest firmware before obtaining the bootlog:

You need to create two board files:

  • board-linksys_whw03v1.qca4019
[
    {
        "names": [
            "bus=ahb,bmi-chip-id=0,bmi-board-id=20,variant=linksys-whw03v1"
        ],
        "data": "bus=ahb,bmi-chip-id=0,bmi-board-id=20,variant=linksys-whw03v1.bin"
    },
    {
        "names": [
            "bus=ahb,bmi-chip-id=0,bmi-board-id=21,variant=linksys-whw03v1"
        ],
        "data": "bus=ahb,bmi-chip-id=0,bmi-board-id=21,variant=linksys-whw03v1.bin"
    }
]   
  • board-linksys_whw03v1.qca9888
[
    {
        "names": [
            "bus=pci,bmi-chip-id=0,bmi-board-id=23,variant=linksys-whw03v1"
        ],
        "data": "bus=pci,bmi-chip-id=0,bmi-board-id=23,variant=linksys-whw03v1.bin"
    }
]

I'm not sure if the board ids for v1 are the same as for v2.

BDFs can be found in OEM firmware at the following path:

  • id=20: /lib/firmware/IPQ4019/v1/FCC/boardData_1_0_IPQ4019_DK04_2G.bin
  • id=21: /lib/firmware/IPQ4019/v1/FCC/boardData_1_0_IPQ4019_DK04_5G.bin
  • id=23: /lib/firmware/QCA9888/v1/FCC/boardData_2_0_QCA9888_5G_Y9690_SBS_HB.bin or /lib/firmware/QCA9888/v1/FCC/boarddata_2.bin (I'm not sure which one file is loaded in OEM firmware, checksum is different)

thank you! i happened to know all this :slight_smile:

but if you read my questions:

my issues are:

  • minor: why FCC.
  • major: which of the two QCA9888 board files, given that i don't have a stock bootlog.

thanks!

FCC is the default region overwritten by other region if available. From /etc/system/wait script:

#Create wifi f/w directory and copy all files there to this place
#so that wifi devices can load its firmware and board data file when
#special files are needed for specific region.
REGION=`skuapi -g cert_region | cut -d'=' -f2 | tr -d ' '`
echo "[utopia][init] Setup link to WiFi firmware and board data ($REGION)"
if [ $HW_VERSION = "1" ];then
    BDF_ROOT_DIR_IPQ4019=/lib/firmware/IPQ4019/v1
    BDF_ROOT_DIR_QCA9888=/lib/firmware/QCA9888/v1
else
    BDF_ROOT_DIR_IPQ4019=/lib/firmware/IPQ4019/v2
    BDF_ROOT_DIR_QCA9888=/lib/firmware/QCA9888/v2
fi
echo "[utopia][init] BDF root dir is $BDF_ROOT_DIR_IPQ4019"
if [ ! -d /tmp/IPQ4019 ]; then 
    mkdir /tmp/IPQ4019
    cp -r /lib/firmware/IPQ4019/hw_1 /tmp/IPQ4019/hw.1
fi
if [ $HW_VERSION = "1" ] && [ "$REGION" = "AH" ] ; then
    syscfg_set wifi::multiregion_enable 1
    syscfg_set wifi::multiregion_supportedcountries "CHN,HKG,SGP,THA,XAH,AUS,CAN,EEE,NZL,USA"
    if [ "`syscfg get wifi::multiregion_selectedcountry`" = "" ] ; then
	syscfg_set wifi::multiregion_region AH
	syscfg_set wifi::multiregion_selectedcountry XAH  
    fi
elif [ $HW_VERSION = "2" ] && [ "$REGION" = "ME" -o "$REGION" = "CN" -o "$REGION" = "AH" -o "$REGION" = "KR" ] ; then
    syscfg_set wifi::multiregion_enable 1
    syscfg_set wifi::multiregion_supportedcountries "CHN,HKG,IND,PHL,SGP,THA,XAH,AUS,CAN,EEE,XME,NZL,SAU,USA,JPN,KOR,TWN"
    SELECTEDCOUNTRY=`syscfg get wifi::multiregion_selectedcountry`
    if [ "$SELECTEDCOUNTRY" = "" ] && [ "$REGION" = "ME" ] ; then
	syscfg_set wifi::multiregion_region ME
	syscfg_set wifi::multiregion_selectedcountry XME  
    fi
    if [ "$SELECTEDCOUNTRY" = "" ] && [ "$REGION" = "CN" ] ; then
	syscfg_set wifi::multiregion_region CN
	syscfg_set wifi::multiregion_selectedcountry CHN  
    fi
    if [ "$SELECTEDCOUNTRY" = "" ] && [ "$REGION" = "AH" ] ; then
	syscfg_set wifi::multiregion_region AH
	syscfg_set wifi::multiregion_selectedcountry XAH  
    fi
    if [ "$SELECTEDCOUNTRY" = "" ] && [ "$REGION" = "KR" ] ; then
	syscfg_set wifi::multiregion_region KR
	syscfg_set wifi::multiregion_selectedcountry KOR  
    fi
else
    syscfg_set wifi::multiregion_enable 0
fi

#REGION=""
COUNTRY=""

if [ "1" = "`syscfg get wifi::multiregion_support`" -a "1" = "`syscfg get wifi::multiregion_enable`" ] ; then
    echo "[utopia][init] Multi-region is supported and enabled"
    MULTIREGION=`syscfg get wifi::multiregion_region`
    COUNTRY=`syscfg get wifi::multiregion_selectedcountry`
    echo "[utopia][init] Region: $MULTIREGION, Country: $COUNTRY"
    echo "$MULTIREGION" > /tmp/zb_power_region
else
    echo "[utopia][init] Multi-region is not supported or not enabled"
    echo "[utopia][init] Cert region: $REGION"
    echo "$REGION" > /tmp/zb_power_region
fi
if [ ! -d /tmp/QCA9888 ]; then 
    mkdir /tmp/QCA9888
    cp -r /lib/firmware/QCA9888/hw_2 /tmp/QCA9888/hw.2
fi
#Override with default FCC data from CBT
cp $BDF_ROOT_DIR_IPQ4019/FCC/* /tmp/IPQ4019/hw.1
cp $BDF_ROOT_DIR_QCA9888/FCC/* /tmp/QCA9888/hw.2
#Override with regional board data if not FCC.
if [ "$COUNTRY" ] ; then
	case "$COUNTRY" in	
		"CHN") #China
		    echo "[utopia][init] Using CHN region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region CN
		    if [ $HW_VERSION = "1" ] ; then
			    #syscfg_set wifi::multiregion_region AH
			    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    else
			    #syscfg_set wifi::multiregion_region CN
			    cp $BDF_ROOT_DIR_IPQ4019/CN/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/CN/* /tmp/QCA9888/hw.2
		    fi
		    ;;
		"HKG") #HKG
		    echo "[utopia][init] Using HKG region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region HK
		    if [ $HW_VERSION = "1" ] ; then
			    #syscfg_set wifi::multiregion_region CA
			    cp $BDF_ROOT_DIR_IPQ4019/IC/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/IC/* /tmp/QCA9888/hw.2
		    else
			    #syscfg_set wifi::multiregion_region HK
			    cp $BDF_ROOT_DIR_IPQ4019/HK/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/HK/* /tmp/QCA9888/hw.2
		    fi
		    ;;
		"IND")  #India
		    echo "[utopia][init] Using IND region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region IN
		    cp $BDF_ROOT_DIR_IPQ4019/IN/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/IN/* /tmp/QCA9888/hw.2
		    ;;
		"IDN") #Indonesia
		    echo "[utopia][init] Using IDN region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region ID
		    cp $BDF_ROOT_DIR_IPQ4019/ID/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/ID/* /tmp/QCA9888/hw.2
		    ;;
		"PHL") #Philippines
		    echo "[utopia][init] Using PHL region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region PH
		    cp $BDF_ROOT_DIR_IPQ4019/PH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/PH/* /tmp/QCA9888/hw.2
		    ;;
		"SGP") #Singapore
		    echo "[utopia][init] Using SGP region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region SG
		    if [ $HW_VERSION = "1" ] ; then
			    #syscfg_set wifi::multiregion_region AH
			    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    else
			    #syscfg_set wifi::multiregion_region SG
			    cp $BDF_ROOT_DIR_IPQ4019/SG/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/SG/* /tmp/QCA9888/hw.2
		    fi
		    ;;
		"THA") #Thailand
		    echo "[utopia][init] Using THA region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region TH
		    cp $BDF_ROOT_DIR_IPQ4019/TH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/TH/* /tmp/QCA9888/hw.2
		    if [ $HW_VERSION = "1" ] ; then
			    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    else
			    cp $BDF_ROOT_DIR_IPQ4019/TH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/TH/* /tmp/QCA9888/hw.2
		    fi
		    ;;
		"XAH") 
		    echo "[utopia][init] Using XAH region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region AH
		    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    ;;
		"TWN") 
		    echo "[utopia][init] Using TWN region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region US
		    cp $BDF_ROOT_DIR_IPQ4019/FCC/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/FCC/* /tmp/QCA9888/hw.2
		    ;;
		"AUS") 
		    echo "[utopia][init] Using AUS region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region AU
		    cp $BDF_ROOT_DIR_IPQ4019/AU/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AU/* /tmp/QCA9888/hw.2
		    ;;
		"CAN") 
		    echo "[utopia][init] Using CAN region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region CA
		    cp $BDF_ROOT_DIR_IPQ4019/IC/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/IC/* /tmp/QCA9888/hw.2
		    ;;
		"EEE") 
		    echo "[utopia][init] Using EEE region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region EU
		    cp $BDF_ROOT_DIR_IPQ4019/EU/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/EU/* /tmp/QCA9888/hw.2
		    ;;
		"XME") 
		    echo "[utopia][init] Using XME region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region ME
		    cp $BDF_ROOT_DIR_IPQ4019/ME/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/ME/* /tmp/QCA9888/hw.2
		    ;;
		"NZL") 
		    echo "[utopia][init] Using NZL region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region AU
		    cp $BDF_ROOT_DIR_IPQ4019/AU/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AU/* /tmp/QCA9888/hw.2
		    ;;
		"SAU") 
		    echo "[utopia][init] Using SAU region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region ME
		    cp $BDF_ROOT_DIR_IPQ4019/ME/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/ME/* /tmp/QCA9888/hw.2
		    ;;
		"USA") 
		    echo "[utopia][init] Using USA region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region US
		    cp $BDF_ROOT_DIR_IPQ4019/FCC/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/FCC/* /tmp/QCA9888/hw.2
		    ;;
		"JPN") 
		    echo "[utopia][init] Using JPN region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region JP
		    cp $BDF_ROOT_DIR_IPQ4019/JP/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/JP/* /tmp/QCA9888/hw.2
		    ;;
		"KOR") 
		    echo "[utopia][init] Using KOR region for WiFi firmware and board data"
		    syscfg_set wifi::multiregion_region KR
		    cp $BDF_ROOT_DIR_IPQ4019/KR/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/KR/* /tmp/QCA9888/hw.2
		    ;;
		*)
		    echo "[utopia][init] Critical error, no support Country Code"
		    ;;
	esac

	# Region updated.  Reflect it for ZB.
	MULTIREGION=`syscfg get wifi::multiregion_region`
	echo "[utopia][init] Region updated: $MULTIREGION, Country: $COUNTRY"
	echo "$MULTIREGION" > /tmp/zb_power_region
else
	case "$REGION" in
		"CA") 
		    echo "[utopia][init] Using CA region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/IC/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/IC/* /tmp/QCA9888/hw.2
		    ;;
		"AU")
		    echo "[utopia][init] Using AU region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/AU/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AU/* /tmp/QCA9888/hw.2
		    ;;
		"AH")
		    echo "[utopia][init] Using AH region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    ;;
		"AP")
		    echo "[utopia][init] Using AP region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/AP/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/AP/* /tmp/QCA9888/hw.2
		    ;;
		"EU")
		    echo "[utopia][init] Using EU region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/EU/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/EU/* /tmp/QCA9888/hw.2
		    ;;
		"PH")
		    echo "[utopia][init] Using PH region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/PH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/PH/* /tmp/QCA9888/hw.2
		    ;;
		"ME")
		    echo "[utopia][init] Using ME region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/ME/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/ME/* /tmp/QCA9888/hw.2
		    ;;
		"CN")
		    echo "[utopia][init] Using CN region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/CN/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/CN/* /tmp/QCA9888/hw.2
		    ;;
		"JP")
		    echo "[utopia][init] Using JP region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/JP/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/JP/* /tmp/QCA9888/hw.2
		    ;;
		"KR")
		    echo "[utopia][init] Using KR region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/KR/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/KR/* /tmp/QCA9888/hw.2
		    ;;
		"HK")
		    echo "[utopia][init] Using HK region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/HK/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/HK/* /tmp/QCA9888/hw.2
		    ;;
		"ID")
		    echo "[utopia][init] Using ID region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/ID/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/ID/* /tmp/QCA9888/hw.2
		    ;;
		"IN")
		    echo "[utopia][init] Using IN region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/IN/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/IN/* /tmp/QCA9888/hw.2
		    ;;
		"TH")
		    echo "[utopia][init] Using TH region for WiFi firmware and board data"
		    if [ $HW_VERSION = "1" ] ; then
			    cp $BDF_ROOT_DIR_IPQ4019/AH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/AH/* /tmp/QCA9888/hw.2
		    else
			    cp $BDF_ROOT_DIR_IPQ4019/TH/* /tmp/IPQ4019/hw.1
			    cp $BDF_ROOT_DIR_QCA9888/TH/* /tmp/QCA9888/hw.2
		    fi
		    ;;
		"SG")
		    echo "[utopia][init] Using SG region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/SG/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/SG/* /tmp/QCA9888/hw.2
		    ;;
		"PH")
		    echo "[utopia][init] Using PH region for WiFi firmware and board data"
		    cp $BDF_ROOT_DIR_IPQ4019/PH/* /tmp/IPQ4019/hw.1
		    cp $BDF_ROOT_DIR_QCA9888/PH/* /tmp/QCA9888/hw.2
		    ;;
		*)
		    echo "[utopia][init] No REGION definded, use FCC"
		    ;;
	esac
fi

OEM bootlog may be helpful in determining which BDF should be used for the QCA9888 radio.

OEM bootlog can be found here: Guidance adding new device Linksys Velop WHW03 - #4 by flipy
But there is no any information about loading specific BDF files...

thanks!!!!

in know, but i somehow lost my stock bootlog :frowning:

thanks!

that device is indeed v1.
with firmware version 1.1.8.192419

current FW version is 1.1.19.209880. do you think the ath10k driver in that FW would output the CRCs? i think there is a low chance of that happening :frowning:

I think you should use boardData_2_0_QCA9888_5G_Y9690_SBS_HB.bin BDF because it seems to be loaded first:

strings lib/modules/3.14.77/qca_ol.ko | grep -i boarddata_
boardData_1_0_IPQ4019_Y9803_wifi0.bin
boardData_1_0_IPQ4019_Y9803_wifi1.bin
boardData_1_0_IPQ4019_DK03_wifi0.bin
boardData_1_0_IPQ4019_DK03_wifi1.bin
boardData_1_0_IPQ4019_DK04_2G.bin
boardData_1_0_IPQ4019_DK04_5G.bin
boardData_1_0_IPQ4019_DK04_2G_neg_pwr.bin
boardData_1_0_IPQ4019_DK04_5G_neg_pwr.bin
boardData_1_0_IPQ4019_YA131_wifi0.bin
boardData_1_0_IPQ4019_YA131_wifi1.bin
boardData_1_0_IPQ4019_DK05_2G.bin
boardData_1_0_IPQ4019_DK05_5G.bin
boardData_1_0_IPQ4019_DK07_wifi0_2G.bin
boardData_1_0_IPQ4019_DK07_wifi0_5G_HB.bin
boardData_1_0_IPQ4019_DK07_wifi1_5G_LB.bin
boardData_1_0_IPQ4019_DK06_2G.bin
boardData_1_0_IPQ4019_DK06_5G.bin
boardData_1_0_IPQ4019_DK08_wifi0_2G.bin
boardData_1_0_IPQ4019_DK08_wifi1_5G_LB.bin
boarddata_0.bin
boarddata_1.bin
boardData_2_0_QCA9888_5G_Y9690.bin
boardData_2_0_QCA9888_5G_Y9484.bin
boardData_2_0_QCA9888_5G_Y9582.bin
boardData_2_0_QCA9888_5G_Y9690_SBS_HB.bin
boardData_2_0_QCA9888_5G_YA105.bin
boardData_2_0_QCA9888_5G_YA841.bin
boarddata_2.bin
boarddata_0.bin
boarddata_1.bin
boarddata_2.bin
fakeBoardData_AR6004.bin
AR9888/hw.2/fakeBoardData_AR6004.bin
AR9887/fakeBoardData_AR6004.bin
AR9887/boarddata_0.bin

fyi: https://github.com/openwrt/openwrt/pull/15345#issuecomment-2096946107

I was told A03 is just the marketing name for apple users of the WHW03 (i.e. just a marketing ploy) so took the leap.

A03v2 works well with WHW03v2's "official" SNAPSHOT (all radios are present) :slight_smile:
However with anything else ("official", made by you, self built : v23.05.3, 23.05, master) the high channel 5GHz radio is not present.

I'll try and get you a bootlog from the latest firmware.

WHW03v2's official SNAPSHOT already has all the extra channels.

if you don't see them, configure a country code in the wifis.

I see all radios and the extra channels in official SNAPSHOT.
In your builds I've tested or my snapshot (master) builds QCA9886 5GHz radio is completely missing (i.e. that which has channels >= 100).

on self built master dmesg provides some information

> dmesg | grep 988 
> ath10k_pci 0000:01:00.0: Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA9888/hw2.0: -12

and suggests the firmware file is not backed into the image as confims

> ls -lrt /lib/firmware/ath10k/
> drwxr-xr-x    3 root     root            28 May  6 17:38 QCA4019

How do I correct that when building ?

On my 3 whw03v2 running stock latest firmware (main in bridge mode with wired backhaul to router and the 2 others in wireless backhaul mode to main) QCA9886 is running the APs on all 3 (2 on channel 100 and the 3rd in channel 132) & backhauls are on channel 36 on the IPQ419.