ath79: add support for Linksys LAPAC1200/1750[C]#21292
ath79: add support for Linksys LAPAC1200/1750[C]#21292mmlr wants to merge 1 commit intoopenwrt:mainfrom
Conversation
acc5474 to
0735a93
Compare
|
I've found that I missed adding the There is also the question of the LAPAC1200 which has the same hardware minus two antennas. It uses the same vendor firmware image. It should be compatible, but I have no way of testing it as I don't own a LAPAC1200 and can't find one to buy at a reasonable price. If it was declared compatible, would this patch be the way to go, i.e. adding a diff --git a/target/linux/ath79/dts/qca9558_linksys_lapac1750.dts b/target/linux/ath79/dts/qca9558_linksys_lapac1750.dts
index 62adf17670..6b3793989f 100644
--- a/target/linux/ath79/dts/qca9558_linksys_lapac1750.dts
+++ b/target/linux/ath79/dts/qca9558_linksys_lapac1750.dts
@@ -9,7 +9,7 @@
/ {
compatible = "linksys,lapac1750", "qca,qca9558";
- model = "Linksys LAPAC1750";
+ model = "Linksys LAPAC1750/LAPAC1200";
aliases {
label-mac-device = ð1;
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 75a14ccc70..9c199f6162 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -2033,6 +2033,8 @@ define Device/linksys_lapac1750
SOC := qca9558
DEVICE_VENDOR := Linksys
DEVICE_MODEL := LAPAC1750
+ DEVICE_ALT0_VENDOR := Linksys
+ DEVICE_ALT0_MODEL := LAPAC1200
DEVICE_PACKAGES := -uboot-envtools kmod-ath10k-ct ath10k-firmware-qca988x-ct
IMAGE_SIZE := 7100k
LOADER_FLASH_OFFS := 0x60000
@@ -2049,6 +2051,7 @@ define Device/linksys_lapac1750
sercomm-factory-wrap --header-offset=0x10000
IMAGE/sysupgrade.bin := $$(IMAGE/default) | \
sercomm-factory-wrap --no-pid --header-offset=0x50000 | append-metadata
+ SUPPORTED_DEVICES += linksys,lapac1200
endef
TARGET_DEVICES += linksys_lapac1750 |
082084f to
573455a
Compare
|
In the meantime I was able to get a hold of a LAPAC1200C and could confirm, that the LAPAC1200, LAPAC1750, LAPAC1200C and LAPAC1750C are all very similar and can use essentially the same firmware. The LAPAC1200[C] are 2x2:2 with a QCA9557 and the LAPAC1750[C] are 3x3:3 with a QCA9558. The C variants are cloud managed, but really only have a different function code in the factory image. So I have updated this PR to include support for all four of these models and fixed some minor issues that came up while testing. I have also rebased to a more current main branch state, but am not sure if this is a good practice or not. |
|
yeah, rebasing is always good practice 👍 |
| linksys,lapac1200c|\ | ||
| linksys,lapac1750|\ | ||
| linksys,lapac1750c) | ||
| ucidef_set_interface_lan "eth0" "dhcp" |
There was a problem hiding this comment.
I am curious about what "dhcp" is?
There was a problem hiding this comment.
It sets the interface protocol to "dhcp" instead of "static" that a "_lan" interface would normally get. It is used on various devices in the tree already and this change adds the LAPACs to an existing use. It IMHO makes sense for pure access point devices that are not usable as routers and won't create an internal network.
b6bfead to
bba8301
Compare
|
/claude |
|
Claude finished @hauke's task in 4m 12s —— View job Code Review: ath79: add support for Linksys LAPAC1200/1750[C]
Overall this is a well-structured port. The use of a shared Commit Message / Documentation
|
Linksys LAPAC1200 and LAPAC1750 are dual band wireless AC access points
with PoE. They use either the QCA9557 or QCA9558 and have a 2x2:2 and
3x3:3 configuration, respectively. The variants with a C suffix are
cloud managed versions that only differ in their software.
Hardware:
* SoC: Qualcomm Atheros QCA9558 (LAPAC1750) or QCA9557 (LAPAC1200)
* RAM: 128MiB 2x EtronTech EM68B16CWQH-25H
* Flash: 16MiB Macronix MX25L12835FMI SPI-NOR
* WLAN 2.4GHz: QCA9558 3x3:3 (LAPAC1750) or 2x2:2 (LAPAC1200)
* WLAN 5GHz: QCA9880 3x3:3 (LAPAC1750) or 2x2:2 (LAPAC1200)
* Ethernet: QCA9558 or QCA9557 with Atheros AR8035 PHY
* Serial Config: 3.3V TTL 115200-8-N-1
* Serial Layout: RX 3.3V (don't connect) TX [GND] --- LEDs
* LEDs: 1x Red, 1x Green, 1x Blue
* Buttons: 1x Reset
MAC addresses:
* Label: LAN, stored in u-boot partition at 0x3ff3a
* 2.4GHz WLAN: LAN + 1
* 5GHz WLAN: LAN + 2
Notes:
The bootloader uses a dual image setup with two slots. OpenWrt can only be
installed in the first slot. Due to limited storage, the flash layout will
consume both slots with mtd-concat and fully replace the stock firmware,
including its log and nvram partitions.
An okli loader is used because the bootloader has problems decompressing
the regular kernel directly. It is prepended to the firmware images. To
allow for sysupgrades that include the loader, an extra "firmware"
partition is used as the target. The actual uImage then overlaps that
partition with an offset for the loader to fit.
Flashing with Stock Web Interface:
Note: This does not work for the C variants, as they require the firmware
to be GPG signed, use the recovery method below instead.
1. Determine current boot partition by injecting the following command in
Configuration -> Administration -> SSL Certificate -> Export SSL
Certificate to TFTP Server -> Destination File (use a dummy server
address and confirm the upload dialog):
' || S=${PWD%u*} && ${S}bin${S}cat ${S}proc${S}cmdline #
2. If the current command line uses "root=31:03", OpenWrt would be written
to the wrong slot and a stock firmware image [0] needs to be flashed
first.
3. Once the stock firmware uses "root=31:09", flash the OpenWrt factory
image.
Unbrick / Revert to Stock / Flash OpenWrt directly:
1. Hold reset button while powering up until the LEDs flash red/blue.
2. Use recovery tool [1] to flash either a stock or OpenWrt factory image.
[0]: https://downloads.linksys.com/downloads/firmware/FW_LAPAC1200_LAPAC1750_1.1.03.000.img
[1]: https://github.com/mmlr/linksys-sercomm-recovery
Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
|
I've dropped the SUPPORTED_DEVICES, as this was a remnant of the initial attempt for LAPAC1200 support. In OpenWrt there is no difference between the C and non-C variants, except for the model label, so supporting sysupgrades between them is not useful. The shared function code across the C and non-C models is indeed intentional as that is needed for stock firmware and recovery flashing. For the kernel-split argument in the factory wrap script, I've opted to allow non-splitting and to explicitly check the argument. The arg parser being in the global context is fine IMO, as the entire functionality is in that context and the script is not intended to be imported as a module. All the raised issues have been addressed in the latest push. |
Linksys LAPAC1200 and LAPAC1750 are dual band wireless AC access points
with PoE. They use either the QCA9557 or QCA9558 and have a 2x2:2 and
3x3:3 configuration, respectively. The variants with a C suffix are
cloud managed versions that only differ in their software.
Hardware:
MAC addresses:
Notes:
The bootloader uses a dual image setup with two slots. OpenWrt can only be
installed in the first slot. Due to limited storage, the flash layout will
consume both slots with mtd-concat and fully replace the stock firmware,
including its log and nvram partitions.
Flashing with Stock Web Interface:
Note: This does not work for the C variants, as they require the firmware
to be GPG signed, use the recovery method below instead.
Determine current boot partition by injecting the following command in
Configuration -> Administration -> SSL Certificate -> Export SSL
Certificate to TFTP Server -> Destination File (use a dummy server
address and confirm the upload dialog):
' || S=${PWD%u*} && ${S}bin${S}cat ${S}proc${S}cmdline #
If the current command line uses "root=31:03", OpenWrt would be written
to the wrong slot and a stock firmware image 0 needs to be flashed
first.
Once the stock firmware uses "root=31:09", flash the OpenWrt factory
image.
Unbrick / Revert to Stock / Flash OpenWrt directly: