-
Notifications
You must be signed in to change notification settings - Fork 124
ipq807x: Add support for Netgear WAX218 #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
5966775 to
c803843
Compare
|
No point in backporting the upstream QCA807x PHY driver at all, all it will do is conflict with the SSDK one as they are messing with the PHY from various parts of SSDK via the PHY driver |
8f4ad75 to
7c3bc98
Compare
|
I agree on the QCA807x PHY driver point. I have a problem with the firmware files. I see existing ipq-wifi files have some ID strings in the header: However, the firmware files I extracted from the vendor firmware do not: And I don't know how to get ath11k to load these files. Any suggestions? |
|
You can add the ID string via ath11k-bdencoder (https://github.com/ecsv/qca-swiss-army-knife) But first you need to figure out, that board id your device is using, have a look in the stock bootlog (board_id etc.) Create a json file like that for example:
Rename the board file accordingly (bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=Netgear-RAX120v2.bin). Last step is to add a DTS property like that (ID in hexadecimal) };` |
That's awesome! Thank you! |
e65af80 to
8dc0025
Compare
6b0cd97 to
a0757f6
Compare
9dcef25 to
8379551
Compare
2a19896 to
ff6e803
Compare
|
I ran into a snag with UBI. If I flash the Full log here: My observations:
How would I go on about this? |
Are you sure you flashed a -nand-sysupgrade.ubi image? This is not part of your image definition... However, I would not rely on the stock firmware upgrade functionality and flash the image from an openwrt initramfs via ubiformat. ubiformat /dev/mtdx -y -f factory.ubi. Ubiformat creates then the ubi-device with the ubi volumes according to the openwrt definition. |
|
You are correct. I did mean to type It appears to me that the vendor firmware uses ubiformat and other openwrt niceties: The issue is, we are booting from mtd14, but looking at mtd12 for the rootfs. How do we convince linux to look at mtd14 for the rootfs? |
set bootargs to: ....ubi.mtd=rootfs_1 (actually that should be part of the partition switch logic, but maybe netgear doesn't implemented this in u-boot and uses a different rootfs detection) |
The netgear FW uses the I did notice that the I have a couple of leads:
|
|
U-boot will patch the DTB, it looks for the NAND controller compatible and then patches the partitions but using the legacy bindings. |
|
This is the unpatched nand node from the devicetree I extracted from the vendor image: I think I tried to use |
|
Its looking for the NAND controller compatible and will just dump the partitions under it, if you use DTC on a running board and dump the DTS, you will see that it adds the partitions but they are using the legacy bindings and thankfully these are ignored by the kernel. Due to this crap of a bootloader if you want to use fixed partitions, a dummy partitions subnode under the controller but not under the NAND flash node you add a disabled node like its done for AX9000. Just use SMEM parser, it will give you the same nodes as bootloader parses SMEM partition table and patches that in |
|
Thank you for the references!
I have |
|
Hm, I assume that they are using bootconfig as the source of which rootfs to use and update that via SCM. |
|
In order to get things booting properly, I need to do: I wonder if there's a way to specify ubi.block and root using the ubi and volume names instead of numerical constants. |
|
Turns out we really can't rely on the vendor u-boot patching things. T Results in: |
|
I think that in theory using names for volumes should work, however, I have never been able to actually get that working. BTW, whats the purpose of |
8379551 to
7298666
Compare
Making sure u-boot patches that DTS with partition information... That worked great! Initramfs in UBI (edited)My next idea is to ubinize the initramfs image, and place that in a We need to use |
2f7a3cc to
4203028
Compare
71addb3 to
ef42fc4
Compare
8a5c790 to
8d1fb7d
Compare
|
Closing for now as target is in OpenWrt PR stage so all new devices will go directly to OpenWrt after target is merged. |
|
@mrnuke - are you still working on this / issuing a PR to the main openwrt repo? |
|
@jmspswny I need to rebase my work and re-test it, yes. |
|
@mrnuke - awesome. I'll leave it alone then. I'm happy to help with testing if you'd like |
|
@jmspswny, you may go ahead and give https://github.com/mrnuke/openwrt/tree/wax218-devel a try. It's got an annoying behavior where QCA-SSDK spams the kernel log with:
but otherwise did not brick the box. |
|
Upstream pull request here: openwrt#11959 |
ipq807x: add support for Netgear WAX218
Netgear WAX218 is a 802.11ax AP claiming AX3600 support. It is wall
or ceiling mountable. It can be powered via PoE, or a 12 V adapter.
The board has footprints for 2.54mm UART headers. They're difficult to
solder because the GND is connected to a large copper plane. Only try
soldering if you are very skilled. Otherwise, use pogo pins.
Specifications:
Not (yet) implemented:
Installation:
Web UI method
Flashing OpenWRT using the vendor's Web UI is problematic on this
device. The u-boot mechanism for communicating the active rootfs is
antiquated and unreliable. Instead of setting the kernel commandline,
it relies on patching the DTS partitions of the nand node. The way
partitions are patched is incompatible with newer kernels.
Newer kernels use the SMEM partition table, which puts "rootfs" on
mtd12. The vendor's Web UI will flash to either mtd12 or mtd14. One
reliable way to boot from mtd14 and avoid boot loops is to use an
initramfs image.
The flash proceeds at this point and the system will reboot
automatically to OpenWRT.
SSH method
Enable SSH using the CLI or Web UI. The root account is locked out to
ssh, and the admin account defaults to Netgear's CLI application.
So we need to get creative:
First, make sure the device boots from the second firmware partition:
Then reboot the device, and run the update:
Now reboot the device, and it should boot into a ready-to-use OpenWRT.
Funny message before I realized I could unlock FW via serial console
The WAX218 claims to be an AX3600 access point. I couldn't really test that, because the vendor firmware asked me to accept to the vendor's SCREW-U-LA. Having accidentally glanced of this SCREW-U-LA, I realized thatI didn't want to sign away rights to my unborn babies. I didn't accept the SCREW-U-LA, thus did not test the firmware.