[RFC PATCH v1 0/3] Add Cambium Networks cnPilot E410 support

Phil Taylor phil at m0vse.uk
Sun Sep 20 15:51:53 PDT 2026


This series adds support for the Cambium Networks cnPilot E410, an
IPQ4019-based enterprise access point with 256 MiB RAM, 8 MiB SPI NOR,
128 MiB SPI NAND, one Gigabit Ethernet port and two integrated 2x2
QCA4019 radios.

The appointment of administrators to Cambium Networks Limited, the UK
entity, on 14 September 2026 prompted me to start porting several models
of Cambium access point to OpenWrt so that deployed hardware can remain
useful independently of vendor-hosted services. The E410 is the first
device in that effort; any later device ports will be submitted
separately.

The E410 retains the OEM A/B UBI layout. A normal build emits separate
FIT kernel and UBIFS payloads plus a metadata-bearing sysupgrade archive.
The platform upgrade code writes and verifies only the inactive volume
pair, makes the running slot the persistent fallback before writing, and
then arms a self-restoring trial boot. A late userspace service commits a
candidate only after ubus, Ethernet and both Wi-Fi PHYs are available;
otherwise the restored boot command retains the previous slot as the
fallback. A separate recovery profile keeps SPI NAND read-only for initial
RAM-boot validation.

There is no OEM web-interface factory image. Initial installation
requires OEM root-shell or serial access and a backup of the inactive OEM
slot and device-specific factory data.

Tested on E410 hardware:

* TFTP initramfs boot and persistent UBI boot
* Gigabit Ethernet and DHCP management
* both radios with their individual ART calibration
* wired and wireless MAC address sources
* all four LEDs and the WPS button
* configuration-preserving sysupgrade to the inactive slot
* readback verification and a subsequent persistent reboot
* restoration of the unchanged OEM slot through the U-Boot environment

Both the normal A/B profile and the read-only-NAND recovery profile have
also been build-tested against OpenWrt main at commit
820fbf4a9f74fc264b099778367e83518d0b7410.

I would particularly appreciate review of:

* the per-device DEVICE_FIT_COMPATIBLE plumbing;
* whether a separate read-only recovery profile is appropriate;
* the A/B environment-update, local health check and trial-boot sequence.

Before a non-RFC revision I intend to rebuild and repeat the hardware
tests with the canonical cambiumnetworks compatible prefix used here,
and complete power-interruption fault injection at each volume-write and
environment-update boundary.

Phil Taylor (3):
  image: allow setting FIT compatible per device
  ipq40xx: add support for Cambium Networks cnPilot E410
  ipq40xx: add Cambium E410 A/B sysupgrade support

 include/image-commands.mk                          |   1 +
 include/image.mk                                   |   3 +-
 .../boot/uboot-tools/uboot-envtools/files/ipq40xx  |   1 +
 .../ipq40xx/base-files/etc/board.d/02_network      |   4 +
 .../ipq40xx/base-files/etc/init.d/e410-slot-commit |  14 +
 .../base-files/etc/rc.d/S99e410-slot-commit        |   1 +
 .../ipq40xx/base-files/lib/upgrade/platform.sh     | 178 ++++++++++-
 .../ipq40xx/base-files/usr/sbin/e410-slot-commit   |  48 +++
 .../ipq40xx/dts/qcom-ipq4019-e410-recovery.dts     |   9 +
 target/linux/ipq40xx/dts/qcom-ipq4019-e410.dts     |   5 +
 .../ipq40xx/dts/qcom-ipq4019-e410.dtsi             | 328 +++
 target/linux/ipq40xx/image/generic.mk              |  46 +++
 12 files changed, 636 insertions(+), 2 deletions(-)
 create mode 100755 .../etc/init.d/e410-slot-commit
 create mode 120000 .../etc/rc.d/S99e410-slot-commit
 create mode 100755 .../usr/sbin/e410-slot-commit
 create mode 100644 .../dts/qcom-ipq4019-e410-recovery.dts
 create mode 100644 .../dts/qcom-ipq4019-e410.dts
 create mode 100644 .../dts/qcom-ipq4019-e410.dtsi

-- 
2.54.0 (Apple Git-157)



More information about the openwrt-devel mailing list