mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-13 15:28:21 +04:00
86d3d9075366274ffee2eef70e6e310e74a94de3
118
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
91485fa403 |
qualcommax: ipq60xx: fix usbport LED trigger module for Linksys MR
Fix missing kmod-usb-ledtrig-usbport on Linksys MR devices due to a typo. Signed-off-by: Ross Barnes-Brown <true.robot.ross@gmail.com> Link: https://github.com/openwrt/openwrt/pull/25634 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
0b1af6d596 |
qualcommax: ipq807x: fix LED controller assignment for linksys_mx4x00 devices
The NXP PCA9633 LED controller was defined in the shared ipq8174-mx4x00.dtsi, but the MX4200v2 uses a different controller — the ST LED1202 (I2C address 0x58) — instead of the PCA9633 (0x62) used by MX4200v1, MX4300, and HomeWRK. Move the LED controller node out of the shared DTSI into each device's own DTS file. Fix kmod-leds-pca963x being pulled in for all linksys_mx devices by assigning LED driver packages explicitly per device: kmod-leds-pca963x for MX4200v1, MX4300, MX5300, and MX8500; kmod-leds-st1202 for MX4200v2. Signed-off-by: Manuel Fombuena <fombuena@outlook.com> Link: https://github.com/openwrt/openwrt/pull/23456 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
a20047f6ee |
qualcommax: add support for TP-Link RE700X
TP-Link RE700X is a dual-band Wi-Fi 6 (AX3000) range extender based on Qualcomm IPQ5018 (2.4 GHz) with a QCN6122 (5 GHz) companion radio. Specifications: - SoC: Qualcomm IPQ5018 (dual-core ARM Cortex-A53) - RAM: 256 MiB - Flash: 128 MiB SPI-NAND (ESMT F50D1G41LB) - Wi-Fi: IPQ5018 2.4 GHz + QCN6122 5 GHz, both 802.11ax - Ethernet: 1x Gigabit - IPQ5018 MAC1 (DWMAC) via SGMII/uniphy0 to a Realtek RTL8211F (MDIO1 addr 6). The SoC internal GE PHY (MAC0/gmac0) is not wired to any external port and stays disabled. - LEDs: 5, Buttons: reset + WPS - Power: 100-240 V AC, 50/60 Hz, 0.4 A (internal PSU, wall-plug) - UART: 3.3 V serial console, 115200 8N1; on-board 4-pad header, pinout from top: TX, RX, GND, VCC MAC addresses (factory_data UBI volume, file default-mac, mounted read-only in preinit like on the EAP650): - LAN (label MAC): default-mac - 2.4 GHz: default-mac + 1 - 5 GHz: default-mac + 2 Calibration data is extracted from the 0:art partition (IPQ5018 at 0x1000, QCN6122 at 0x26800). Installation: - From OpenWrt (or after a RAM-boot of the initramfs via U-Boot/TFTP): sysupgrade. - From the stock firmware: openwrt-...-squashfs-factory-webflash.bin via the TP-Link web UI (System -> Firmware Upgrade). scripts/tplink-re700x-factory.py wraps the rootfs UBI into the stock "nvrammanager" upload container (the same "tplink2022"/safeloader family as scripts/tplink-mkimage-2022.py); the stock flasher writes it into the inactive dual-boot slot. This path has not been tested end to end (no unit on stock firmware was left), so keep UART at hand for a first install. The stock U-Boot passes a slot-correct ubi.mtd= (rootfs / rootfs_1 per the dual-boot index) but with an unmountable root=mtd:ubi_rootfs. The DTS /chosen inherits ubi.mtd= and appends root=/dev/ubiblock0_1, so OpenWrt boots from whichever slot the flasher wrote. Like on the EAP650, sysupgrade installs into the inactive slot and then points tp_boot_idx at it, keeping the running slot as a fallback; the U-Boot environment is on 0:appsblenv. The QCN6122/IPQ5018 board-2.bin (BDF) data is supplied via ipq-wifi-tplink_re700x (openwrt/firmware_qca-wireless). Wi-Fi is disabled in the DTS for now: with the default ath11k DP ring sizes both radios exhaust the 256 MiB of RAM. It will be enabled in a follow-up together with the ath11k patch that selects smaller rings on low-memory boards, once that has been accepted upstream. Signed-off-by: Eduard Hart <eduard.hart@etik.com> Link: https://github.com/openwrt/openwrt/pull/23982 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
938f67a519 |
qualcommax: add support for Mercusys MR80X v2
Hardware: SoC: Qualcomm IPQ5018 (2x Cortex-A53) RAM: 256 MiB DDR3 Flash: 128 MiB SPI-NAND (ESMT) Switch: Realtek RTL8367S, 4x GbE (3x LAN + 1x WAN), SGMII CPU port WiFi: IPQ5018 2.4 GHz, QCN6122 5 GHz, both 802.11ax LEDs: system (green/amber), WAN, LAN1-3 Button: reset UART: 115200 8N1, 3.3V, on-board header Wi-Fi is left disabled: 256 MiB is too few for ath11k, same as on the ELECOM WRC-X3000GS2. Notes: - The label reads "Ver 2.20", but the vendor firmware only ever calls the board V2: the GPL tree is GPL_MR80Xv2, PRODUCT_NAME is MR80Xv2, the running system reports "MR80X V2" and the fwup support list carries product_ver 2.0.0. The trailing digits are a production sub-revision, so the port is named v2. - MAC1 runs sgmii through the UNIPHY PCS to RTL8367S port 6. The link is wired for HSGMII and 2500base-x does come up, but only when gmac1 and the CPU port carry the same phy-mode: the UNIPHY PCS belongs to the conduit (pcs-handle = <&uniphy0> in ipq5018-ess.dtsi), so setting the CPU port alone leaves the switch running HSGMII into a SerDes still clocked for SGMII. With both ends at 2500base-x the trunk still dies on some boots: over 12 reboots, 2 came up with the CPU port passing no traffic at all - eth0 transmitting while s00_p06_ifInOctets stayed at 0, no FCS errors, the link reporting 2.5 Gbps. That matches the bring-up ordering race described in openwrt/openwrt#25153, where the switch end of the trunk is configured before the IPQ5018 UNIPHY resets and recalibrates its PLL. sgmii has not reproduced it, so the port ships at sgmii until that fix lands. - MAC addresses come from default-mac in the vendor tp_data UBI volume, 6 raw bytes at offset 0, mounted read-only during preinit: label default-mac LAN default-mac WAN default-mac + 1 2.4 GHz default-mac - 1 5 GHz default-mac - 2 - Sysupgrade A/B ping-pongs rootfs/rootfs_1 via tp_boot_idx, switched only after the new slot is fully written. primaryboot stays 0, the stock loader and the button recovery rely on it. - factory.bin is wrapped in the Mercusys fwup container the stock web UI accepts (scripts/mercusys-fwup.py). The generic tplink-image-2022 container is rejected: the loader picks its verification algorithm from the fw-type string, which that container does not write. - The board needs the backported spi-qpic-snand ECC context fix, otherwise about half of the boots end in "Waiting for root device /dev/ubiblock0_1". Installation: In the stock web UI go to Advanced -> System -> Firmware Update -> Local Update, browse for openwrt-qualcommax-ipq50xx-mercusys_mr80x-v2-squashfs-factory.bin and press UPDATE. Tested on stock firmware MR80X(EU)_V2.20_1.1.7 Build 20250415 (Multi-language). The U-Boot web recovery does not accept this image: it verifies an RSA1024 signature and has no keyless path. Use the stock web UI. Signed-off-by: Johan Alvarado <contact@c127.dev> Link: https://github.com/openwrt/openwrt/pull/24919 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
9e15f1f493 |
qualcommax: ipq50xx: add support for GL.iNet GL-X2000
GL.iNet GL-X2000 (Spitz Plus) is a dual-SIM 4G LTE Wi-Fi 6 router.
Specifications:
SoC: Qualcomm IPQ5018, dual-core Cortex-A53 @ 1.0 GHz
RAM: 512 MiB DDR3
Flash: 128 MiB SPI NAND (Winbond W25N01GWZEIG)
WLAN: IPQ5018 2x2 2.4 GHz, QCN6122 2x2 5 GHz (802.11ax)
Ethernet: 1x GbE WAN (IPQ5018 internal GE PHY)
1x GbE LAN (Atheros AR8031, SGMII)
WWAN: Quectel EG120K-EA, LTE Cat.12, USB 3.0 SuperSpeed
USB: 1x USB 2.0 host behind an internal hub
Buttons: reset
LEDs: power, internet, 2.4G, 5G, 4x signal strength
Serial: 3v3 TTL, 115200 8N1; 4-pin header labelled GND/RX/TX/3V3 on
the mainboard, under the Quectel module in the top right
corner. The case opens after pulling the four rubber feet
Power: DC 9-35 V, shipped with a 12 V 2.5 A supply
Misc: PWM fan, dual SIM slots (muxed inside the modem)
The base MAC address is stored at offset 0x6 of the 0:art partition; the
first six bytes are erased, which is why U-Boot reports the ART address as
invalid. WAN uses the base address (this is the one on the label), LAN
base+1, the 2.4 GHz radio base+2 and the 5 GHz radio base+3. The ethernet
addresses come from nvmem cells. The board deliberately has no ethernetN
aliases: GL.iNet's U-Boot uses them to write its own mac-address
properties into both GMAC nodes (a placeholder for WAN, the base address
for LAN), which of_get_mac_address() would prefer over the nvmem cells.
The modem enumerates at SuperSpeed and therefore requires the IPQ5018 USB3
UNIPHY, so both usbphy0 and usbphy1 are enabled. uqmi cannot communicate
with this modem, so modemmanager has to be installed separately to use it.
The QCN6122 is wired to the second radio instance, so wifi@b00b040 with
userpd3 is enabled rather than wifi@b00a040: the stock device tree enables
wifi2@/userpd3 and leaves wifi1@/userpd2 disabled. That instance places
its BDF and M3 dump above the default q6 region, so the reserved region
is grown accordingly.
Board data for the two radios is submitted separately to
firmware_qca-wireless. It is taken from the stock firmware's wifi_fw
partition, which is a squashfs image: bdwlan.b24 for the IPQ5018 2.4 GHz
radio and qcn6122/bdwlan.b60 for the QCN6122 5 GHz radio, matching the
qcom,board_id values of 0x24 and 0x60 that the stock device tree assigns
to the respective radios. The two radios require distinct board data;
sharing a single BDF leaves the front-end misconfigured and the affected
radio unable to transmit or receive at usable power.
The device tree started from the initial port by Hostle, was largely
rewritten by georgem83 and further reworked by Andreas Boeckler, published
in the OpenWrt forum thread linked below. It is carried here with fixes for
the WLAN board data, the QCN6122 radio instance, the U-Boot environment
partition and the fan cooling map.
Link: https://forum.openwrt.org/t/plain-openwrt-on-gl-x2000/231554
Installation:
Interrupt the bootloader over serial (115200 8N1) by typing "gl", then
TFTP the initramfs image and boot it:
tftpboot 0x44000000 openwrt-qualcommax-ipq50xx-glinet_gl-x2000-initramfs-uImage.itb
bootm 0x44000000
Then flash the factory image with sysupgrade.
Signed-off-by: Gilberto Conde <gilbertorconde@gmail.com>
|
||
|
|
20b25487f7 |
qualcommax: ipq50xx: share GL.iNet factory bootscript
The U-Boot script embedded in the GL.iNet QSDK factory image hardcodes the GL-B3000 flash layout. Replace the UBI offset and size with placeholders filled in by the gl-qsdk-factory recipe, so other GL.iNet boards with a different layout can use the same script. The script is copied under a per-device name, which keeps the FIT description unchanged and avoids devices overwriting each other's substituted copy in KDIR_TMP. Signed-off-by: Gilberto Conde <gilbertorconde@gmail.com> |
||
|
|
d592680cc5 |
qualcommax: ipq50xx: add support for CMCC RAX3000Q/QY
Add support for the CMCC RAX3000Q/QY platform based on Qualcomm IPQ5000.
Both hardware variants are identical and share the same device tree.
Hardware Specifications:
- SoC: Qualcomm IPQ5000
- RAM: 256 MiB, integrated in SoC
- Flash: GigaDevice GD5F1GQ5REYIG (Dosilicon variant is not supported)
- 2.4 GHz Wi-Fi: SoC integrated, with 2 FEMs
- 5 GHz Wi-Fi: QCN6102, with 2 FEMs
- Switch: QCA8337, 1 WAN + 3 LAN
- LEDs: 3 RGB LEDs
- Keys: reset and mesh pairing
- UART: 3-pin, 115200n8
The vendor flash layout is documented and the ART partition contains
calibration data, which must be preserved carefully.
Due to the limited 256 MiB RAM, ath11k is disabled in the DTS to avoid
OOM issues on this device.
The MAC address location in flash could not be identified reliably.
As a temporary workaround, the MAC addresses (WAN LAN 2.4G 5G WiFi) are derived from the ART
partition start, with vendor/default values being invalid and falling
back to random generation if left unchanged (FF).
Flash Guide
Requirements
- UART access (3-pin, 115200n8)
- Ethernet cable
- TFTP server running on your computer
- OpenWrt `.ubi` firmware image
Step 0: Backup all partitions (strongly recommended)
Step 1: Connect UART and interrupt U-Boot
Step 2: Configure PC network
Step 3: Start TFTP server
Step 4: Load firmware via U-Boot
tftpboot 192.168.10.19:<your_firmware>.ubi
Step 5: Flash firmware
flash rootfs
Step 6: Reboot device
reset
Signed-off-by: Mark Jia <mark304188@hotmail.com>
|
||
|
|
c4543e374d |
qualcommax: ipq50xx: add support for TP-Link EAP650-Outdoor-v1
TP-Link EAP650-Outdoor is a 802.11ax AP claiming AX3000 support. It is wall or pole mountable, and rated for outdoor use. It can only be powered via PoE. Specifications: --------------- * CPU: Qualcomm IPQ5018 Dual core Cortex-A53 * RAM: 512 MB * Storage: 128MB NAND GigaDevice F50D1G41LB-83YIG2M * Ethernet: 1x Gigabit RJ45 port with PoE input * 2.4GHz: IPQ5018 802.11b/g/n/ax (2x 4dBi) * 5GHz: QCN6024 802.11n/ac/ax (2x 5dBi) * LEDs: 1x Status LED (Green/Yellow) * Buttons: 1x Reset * UART: 4-pin unpopulated header TX RX GND VCC - JP2 (3.3V, 115200/8) MAC addresses: LAN : B0:19:21:xx:xx:02 2.4GHz : B0:19:21:xx:xx:02 5GHz : B0:19:21:xx:xx:03 The procedures to 'backup your stock firmware' and 'stock firmware recovery' described in the commit "qualcommax: ipq50xx: Add support for Yuncore AX850" are equivalent for this device. https://git.openwrt.org/openwrt/openwrt/commit/?id=5d2994a73e20ba840d3096e1ad52add6937fe86d Installation: ============= TFTP method ----------- To flash via tftp, first place the initramfs image on the TFTP server. setenv serverip <ip of tftp server> setenv ipaddr <ip in same subnet as tftp server> tftpboot tplink_eap650-outdoor-v1-initramfs-uImage.itb bootm This should boot OpenWRT. Once booted, flash the sysupgrade.bin image using either luci or the commandline. Signed-off-by: Samuele Longhi <agave@dracaena.it> Link: https://github.com/openwrt/openwrt/pull/23056 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
8e7a8a2b92 |
image: create the archive images with fixed metadata
Several image recipes call tar without the options that pin the member order, the owner, the mode and the modification time. The archive then holds the build time, the umask of the build user and the readdir order of the build directory, so two builds of the same source produce different images. Pass the same options that Image/mkfs/targz and sysupgrade-tar.sh already use. The recipes define no member order, so sorting the members takes nothing away. The diffoscope of the published WAX610 archive shows the order differing between the build machines, which is what a readdir order produces. --mode=go-w clears the write bit of the group and of the others. tar keeps the mode of the file on disk, which follows the umask of the build user, so without it the archive differs between a host with umask 022 and one with umask 002. Covers the Netgear factory archives of ipq40xx, ipq60xx and ipq807x, the Creality factory archive of mt76x8, the D-Link DWL8610AP archive of bcm53xx, the Freecom archive of ixp4xx and the Linksys switch archive of realtek. Signed-off-by: John Crispin <john@phrozen.org> |
||
|
|
c2dd7d6d0f |
qualcommax: remove factory.bin for GL.iNet
In GL.iNet's latest official firmware, factory.bin cannot be used for upgrades. It is still possible to upgrade to OpenWrt via U-Boot. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> |
||
|
|
ff0a961064 |
qualcommax: add support for MikroTik Chateau 5G R17 ax
Ordering code S53UG+5HaxD2HaxD&RG650E-EU. First MikroTik device on this
target.
Specifications:
SoC Qualcomm IPQ6010, 4x Cortex-A53, 864-1800 MHz
RAM 1 GB
Flash 128 MB NAND (QPIC), 512 KB SPI-NOR holding RouterBOOT
Ethernet 4x 1G, Qualcomm QCA8075 (PSGMII, MDIO 0x18-0x1b)
1x 2.5G, Qualcomm QCA8081 (2500base-x, MDIO 0x00)
WLAN IPQ6010 integrated, 2x2 2.4 GHz + 2x2 5 GHz, ath11k
Modem Quectel RG650E-EU 5G, USB 2c7c:0122, internal bus
USB 1x 3.0 type A, external
LEDs system RGB, eth, wlan, 5x LTE signal strength
Buttons reset, mode, WPS
Power 12-28 VDC barrel jack, 27 W max
Serial console: header silkscreened SPI/UART, reachable only with the case
open. Viewed from the back the square pad is pin 10, bottom right:
pin 3 RX, router input pin 5 GND pin 8 TX, router output
115200 8N1, 3.3 V TTL, no flow control. Do not connect VCC.
Flash layout:
NAND mtd0 0x0000000-0x0800000 8 MB "kernel", yaffs
mtd1 0x0800000-0x8000000 120 MB "ubi"
SPI-NOR, RouterBoot partition at 0x2c0000, 512 KB, 64 KB erase blocks:
+0x00000 bootloader, +0x20000 hard_config, +0x30000 second stage,
+0x40000 soft_config, +0x70000 device tree
Installation: boot the initramfs image over RouterBOOT etherboot (reset
button, or boot_device=ethonce plus commit through the rb_softconfig sysfs
interface), then sysupgrade. sysupgrade writes the kernel with yafut,
since yaffs keeps metadata and ECC in the OOB area where mtd cannot reach.
It erases the partition first: from the factory 4.38 of the 8 MB are in
use, and yaffs frees the old blocks only after writing. RouterBOOT is
never written, so etherboot and Netinstall stay available.
Device tree notes:
- soc_version_major is normally injected by the QSDK U-Boot; without it
the CPR driver hits a BUG_ON.
- Socket labels run opposite to the PSGMII lane order, verified socket
by socket.
- MAC addresses come from hard_config, one per port as the factory
allocates them (mac_count 7: 5 ethernet, 2 radios). Without them the
ports inherit the EDMA conduit address, which qca_edma.c only randomises
as a fallback when no port describes one.
- The PSGMII SerDes runs at 300 mV as Qualcomm's SSDK does, not the
600 mV qca807x.c defaults to.
- The watchdog is left disabled: a WDT bite is an abrupt hardware warm
reset that skips the WCSS teardown and hangs the board in SBL1 (the
IPQ6018 warm-reboot path). procd feeds it fine in normal operation, but
a bite comes back stuck rather than recovering the soft hang.
- PCIe appeared to stop the Ethernet transmit path and stays off; the
mPCIe slot is unused since the modem is on USB. That bisect rests on
a single boot per variant and does not carry, given that the PSGMII
calibration fails intermittently with a similar symptom.
Board data comes out of RouterBOOT rather than out of ipq-wifi. This
unit's own board data file sits in hard_config tag 0x16 as 5100 bytes of
LZ77; rb_hardconfig decompresses it and exports a 64 KiB blob that is a
complete BDF - same 01 00 04 04 magic as the ipq-wifi files, a valid
header checksum, this unit's factory MAC addresses instead of the Qualcomm
defaults, and the chainmasks of the two 2x2 radios. RouterOS uses exactly
that: localphy-qcom reads it through getHcfgBdwlan() ("Bdwlan: bdwlan
found in hrdcfg") and only falls back to a generic <board>.bdwlan when
hard_config carries none.
The ath11k firmware hotplug script (11-ath11k-caldata) hands the blob to
the driver. ath11k first looks for a board-2.bin container and, once no
entry matches, falls back to ath11k_core_fetch_board_data_api_1() with
ATH11K_DEFAULT_BOARD_FILE; it also asks for cal-ahb-c000000.wifi.bin. The
same 64 KiB blob answers every one of those requests through
caldata_sysfsload_from_file, fed straight into the sysfs firmware
interface without being written to /lib/firmware. board.bin is what we
serve because it takes a bare BDF - no container to build and no length
arithmetic to keep in sync with the calibration variant. The blob is
passed through unchanged: the firmware validates it beyond the header
checksum and aborts with "phyrf_bdf.c:472 Assertion 0 failed" on any
modification.
uqmi does not fully drive the RG650E-EU: it only obtains a client ID for
UIM, while DMS, NAS and WDS answer "Failed to connect to service". A
libqmi based connection manager is needed for a data session.
Signed-off-by: André Valentin <avalentin@marcant.net>
Link: https://github.com/openwrt/openwrt/pull/24335
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
6b85badadc |
qualcommax: add mikrotik-lzma-loader for RouterBOOT devices
RouterBOOT loads bare unsigned ARM64 ELF images only, neither FIT nor uImage, and the yaffs kernel partition on these MikroTik devices is 8 MiB while the raw arm64 image is around 14 MiB. This self-extracting loader wraps the LZMA compressed kernel and the DTB in a single PT_LOAD segment, decompresses them at runtime and jumps to the kernel. The entry sequence follows MikroTik's own loader as found in the flash dump, noted in start.S. It installs an identity mapping before decompressing so it does not run entirely uncached, and keeps its stack below the load address because RouterBOOT loads only filesz bytes and the memory beyond that is not usable that early. src/LzmaDecode.[ch] are the LZMA SDK 4.21 decoder by Igor Pavlov, taken unmodified under their own license (LGPL or CPL at your choice, plus the linking exception); everything else is written for this loader. Hence PKG_LICENSE lists both licenses and PKG_LICENSE_FILES points at src/LzmaDecode.c. Signed-off-by: André Valentin <avalentin@marcant.net> Link: https://github.com/openwrt/openwrt/pull/24335 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
8ac63a1c35 |
qualcommax: add support for TP-Link Archer AX55 v1
TP-Link Archer AX55 v1 is an IPQ5018 Wi-Fi 6 router.
Hardware:
SoC: Qualcomm IPQ5018 (dual Cortex-A53)
RAM: 512 MiB
Flash: 128 MiB SPI-NAND (dual firmware slots)
Switch: Realtek RTL8367S (5x GbE), 2.5G HSGMII trunk to gmac1
WiFi: IPQ5018 2.4 GHz + QCN6122 5 GHz (ath11k)
USB: 1x USB 3.0 port, SuperSpeed, using the IPQ5018 SS uni PHY;
the port's 5 V rail is a GPIO-switched regulator wired as the
PHY's vdd-supply, the way the MR5500 does it
Button: Reset, WPS/Wi-Fi
LED: power, LAN, WAN (green/orange), 2.4G, 5G, USB
All five front jacks are RTL8367S ports (DSA): blue "WAN" = wan,
LAN1-4 = lan1..lan4, over the 2.5G HSGMII trunk.
The factory MAC is the "default-mac" file in the tp_data UBIFS volume
(there is no raw nvmem cell for it). The volume is attached and mounted
read-only during preinit, so board.d assigns the wired MACs (label MAC
for lan/eth0, +1 for wan) the usual way and the ath11k caldata hotplug
derives the Wi-Fi MACs (+2/+3) from the same mount - the same scheme
the mt7981 archer-ax80-v1 uses for its tp_data. gmac1 has no nvmem MAC
source, so the DSA conduit is pinned to the label MAC in board.d to
keep it stable across boots.
The board data files live in firmware_qca-wireless, where they were
merged as f2c37a6b9d1d; this commit pins the ipq-wifi package to that
revision and adds the package entry for the board.
Note on revisions: some units labelled "v1" carry an RTL8367D-family
switch (chip id 0x6642) instead of the RTL8367S. rtl8365mb cleanly
declines it ("unrecognized switch"), so such a unit boots with no wired
ports, and with Wi-Fi off by default it is only reachable via the
vendor web recovery (or serial). RTL8367D support in rtl8365mb is being
worked on by others; until it lands the wiki page carries a prominent
warning to identify the switch before flashing. v2/v4 are entirely
different hardware and are not covered by this image.
Installation (serial console on the JP1 header, 115200 8N1, 1.8 V; note
the RX trace is gapped and must be bridged to type): interrupt U-Boot,
TFTP-boot the initramfs image to 0x44000000, "bootm", then "sysupgrade -n".
A serial-free path (a telnet-enabled resigned stock image flashed from the
vendor web UI, then writing the OpenWrt image to the inactive slot) is
documented on the device wiki page; that path consumes the
initramfs-factory.ubi artifact, which is the initramfs kernel wrapped in
a UBI image so it can be written straight into the inactive rootfs
partition with mtd from the running stock firmware.
Recovery to stock: hold Reset while powering on, set the PC to
192.168.0.10, and upload an official signed TP-Link image at
http://192.168.0.1.
Signed-off-by: Stanislaw Pal <kuncy7@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/24197
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
0c5547e865 |
qualcommax: ipq807x: add Netgear RBx850 support
Netgear RBx850 are tri band, 2.4GHz and 2x 5GHz, 12 stream 802.11ax mesh devices from the Orbi series. The RBR850 is a router with a 2.5GbE WAN and 4 1GbE LAN ports. The RBS850 is a satellite without WAN port and half the flash. The hardware is otherwise identical. They were sold in kits as RBK852-RBK855, with one router and 1-4 satellites. The RBx850 are substantially similar to the RBx750 so this commit factors out a common DTS, flash script and build definition. Hardware: * SoC: Qualcomm IPQ8074 * RAM: 1GiB 2x Samsung 4A4G165WE-BCRC * Flash: 512MiB Winbond W29N04GZ or 256MiB Winbond W29N02GZ * WLAN 2.4GHz: QCN5024 4x4:4 b/g/n/ax * WLAN 5GHz Low Band: QCN5054 4x4:4 a/n/ac/ax 5180-5320MHz * WLAN 5GHz High Band: QCN5054 4x4:4 a/n/ac/ax 5500-5700MHz * Ethernet: 4x 1GbE LAN, 1x 2.5GbE WAN on RBR850 * Serial Config: 3.3V TTL 115200-8-N-1, internal populated header * Serial Layout: Bottom <- RX, TX, GND, 3.3V (don't connect) -> Top * LEDs: green/red power, white/red/green/blue status * Buttons: 1x Reset, 1x WPS MAC addresses: LAN1: Label LAN2: Label + 1 LAN3: Label + 2 LAN4: Label + 3 WAN: Label + 1 2.4GHz: Label + 2 (RBR) or 1 (RBS) 5GHz-Low: Label + 3 (RBR) or 2 (RBS) 5GHz-High: Label + 4 (RBR) or 3 (RBS) Flashing Notes: The stock firmware images are signed. Both the bootloader and the stock web interface check the signature and will fail to boot/flash. The bootloader automatically does NMRP when a gigabit LAN connection is present. The stock and factory images contain a U-Boot script that is executed when flashing using NMRP. This is used to alter and persist the U-Boot env with a boot command that works with unsigned firmware. Install OpenWrt: * Get the nmrpflash utility [0] and OpenWrt factory image * Find network interface to use: nmrpflash -L * Start nmrpflash: nmrpflash -i interface -f openwrt-...-factory.img * Connect one of the device LAN ports to the same network using gigabit * Plug the device in and wait for the bootloader to flash * Unplug and replug the device once the power LED on the back blinks amber Revert to Stock: The boot command needs to be reverted before flashing the stock firmware, otherwise it will fail to boot and get stuck in recovery mode (red power LED flashing). * Still in OpenWrt run: fw_setenv bootcmd bootipq * Restart the device * Flash the stock firmware RBx850-Va.b.c.d.img using nmrpflash [0]: https://github.com/jclehner/nmrpflash Authored by Michael Lotz. Piotr Szczepanik: * Cherry-picked the RBx850 support commit from openwrt/openwrt#22159 and adapted it to current main. * Reworked the DTS networking changes for the current qualcommax ipq807x device-tree style. * Verified the RBx750 DTS split preserves the existing RBx750-specific layout while moving shared RBx750/RBx850 nodes into a common DTSI. Signed-off-by: Michael Lotz <mmlr@mlotz.ch> Signed-off-by: Piotr Szczepanik <piter75@gmail.com> Link: https://github.com/openwrt/openwrt/pull/24906 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
2b4579c1ac |
qualcommax: ipq60xx: add support for tp-link eap620hd-v2
TP-Link EAP620HD V2 is a 802.11ax AP claiming AX1800 support. Specifications: CPU: Qualcomm IPQ6018 Quad core Cortex-A53 RAM: 1 GB Storage: ESMT PSR1GA30DT 128MB NAND Ethernet: Gigabit RJ45 port with PoE input WLAN: 2.4GHz/5GHz LEDs: Single-color LED (Blue) Buttons: 1x Reset UART: 4-pin unpopulated header 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V Installation: Web UI method Set up the device using the vendor's web UI. After that go to Management->SSH and enable the "SSH Login" checkbox. Select "Save". The connect to the machine via SSH: ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device> Disable signature verification: cliclientd stopcs Rename the "-web-ui-factory" image to something less than 63 characters, maintaining the ".bin" suffix. Go to System -> Firmware Update. Under "New Firmware File", click "Browse" and select the image Select "Update" and confirm by clicking "OK". If the update fails, the web UI should show an error message. Otherwise, the device should reboot into OpenWRT. TFTP method To flash via tftp, first place the initramfs image on the TFTP server. setenv serverip <ip of tftp server> setenv ipaddr <ip in same subnet as tftp server> tftpboot tplink_eap620-hd-v2-initramfs-uImage.itb bootm This should boot OpenWRT. Once booted, flash the sysupgrade.bin image using either luci or the commandline. Big thanks to @mrnuke for the groundwork and support. Signed-off-by: Ryan S <rspierz@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18227 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
7b1e5a1a80 |
qualcommax: build the Aquantia PHY driver into the kernel
The PPE driver registers its DSA switch, and with it attaches every user
port's PHY, before the root filesystem is mounted. A PHY driver that is
only available as a module therefore always loses the race:
phy_attach_direct() finds no matching driver, falls back to genphy_c45
and binds it with device_bind_driver(), and nothing rebinds the PHY when
the real driver shows up later.
On the boards with an Aquantia 10G PHY that leaves the AQR running under
the generic Clause 45 driver. It never loads its firmware, from the nvmem
cell or otherwise, and its system interface is never configured, so the
10G port does not pass traffic. Boards that provision the firmware from
flash have therefore never had that path execute at all.
The driver was built in until commit 8c3bcc198936 ("ipq807x: move AQR
driver from built-in to kmod"), which made it a module so that
IS_REACHABLE(CONFIG_HWMON) would evaluate true and the temperature
sensors in the AQR would be usable as thermal zones. That was correct at
the time: the ethernet driver then attached PHYs from userspace, so a
module was in place early enough, and hwmon was not built in.
Neither still holds. HWMON is compiled in on this target, so building the
PHY driver in keeps its hwmon support, and the PPE driver attaches PHYs
from its own probe. Build it in, as is already done for the AT803X and
QCA807X PHYs here.
CRC_ITU_T, which the driver selects for the firmware image
checksum, follows it from module to built-in.
Both symbols go in the ipq807x and ipq60xx config-default rather than
the target's per-kernel config. Every board with an AQR is on one of
those two subtargets and ipq50xx has none, and a subtarget's
config-default is merged for whichever kernel version the target
builds, so the 6.18 kernel picks them up as well.
kmod-phy-aquantia goes with it. The package builds empty once the symbol
is built in, because KernelPackage/install skips a module listed in
modules.builtin, but ModuleAutoLoad still runs and would ship
/etc/modules.d/18-phy-aquantia naming a module that no longer exists.
Drop it from the subtarget defaults and from the one ipq60xx device
that listed it, matching AT803X_PHY and QCA807X_PHY which carry no
kmod on this target.
Reported-by: Rye Sears <xlighting2017@users.noreply.github.com>
Tested-by: Rye Sears <xlighting2017@users.noreply.github.com>
Assisted-by: Claude:claude-opus-5
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
Link: https://github.com/openwrt/openwrt/pull/24420
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
f50435627d |
qualcommax: ipq60xx/ipq807x: convert to PPE networking stack
Convert IPQ60xx and IPQ807x devices from the old NSS dataplane to the new PPE stack. IPQ50xx is not yet supported. Link: https://github.com/openwrt/openwrt/pull/22381 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
db1b70dc98 |
qualcommax: ipq807x: Add PCIe support for TP-Link Deco X80-5G
Make 5G modem available over PCIe. Modify dts to enable PCIe. Adapted based on ipq8072-linkhub-hh500v.dts Add MHI modules to default X80-5g image Signed-off-by: Timo Jutila <zutija@gmail.com> Link: https://github.com/openwrt/openwrt/pull/23801 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
587a1a8872 |
qualcommax: ipq50xx: add support for ELECOM WRC-X3000GST2
ELECOM WRC-X3000GST2 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router based on
IPQ5018. The only hardware difference from the WRC-X3000GS2 is the RAM
capacity; all other peripherals are identical. This port therefore
reuses the GS2 board-2.bin (ipq-wifi-elecom_wrc-x3000gs2) and ath11k
calibration variant.
Specification:
- SoC : Qualcomm IPQ5018
- RAM : DDR3 512 MiB (Kingston Technology D2516ECMDXGJD)
- Flash : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm QCN6122
- Ethernet : 5x 10/100/1000 Mbps
- wan (phy) : Qualcomm IPQ5018 (SoC)
- lan (switch) : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 8x / 3x (reset, WPS, router/AP slide switch)
- UART : through-hole on PCB, 4pins near the barcode
- assignment : 3.3V, TX, RX, NC, GND from the barcode side
- settings : 115200n8
- Power : 12 VDC, 1 A (Max. 11.5W)
Flash instruction using factory.bin image:
1. Boot WRC-X3000GST2 normally in router mode
2. Access the WebUI ("http://192.168.2.1/") and open the firmware
update page ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click apply ("適用")
4. After the device reboots automatically, wait until the green power LED
stops blinking and stays solid
5. When the green power LED is solid, hold the reset button until the red
LED starts blinking to clear remaining stock firmware settings
Switching to the stock firmware:
1. Load the elecom.sh script
. /lib/upgrade/elecom.sh
2. Check the current index of rootfs
bootconfig_rw_index 0:bootconfig rootfs
3. Set the index to inverted value
bootconfig_rw_index 0:bootconfig rootfs <value>
bootconfig_rw_index 0:bootconfig1 rootfs <value>
example:
- step2 returned "0":
bootconfig_rw_index 0:bootconfig rootfs 1
bootconfig_rw_index 0:bootconfig1 rootfs 1
- step2 returned "1":
bootconfig_rw_index 0:bootconfig rootfs 0
bootconfig_rw_index 0:bootconfig1 rootfs 0
4. Reboot
Partition Layout (Stock FW):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs_1"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007b80000 : "Reserved"
0x000007b80000-0x000007c00000 : "FWHEADER"
0x000007c00000-0x000007c80000 : "Factory"
Notes:
- This device has dual-boot feature and it's managed by the index in the
0:bootconfig and 0:bootconfig1 partitions.
- Wi-Fi BDF is shared with WRC-X3000GS2 (ipq-wifi-elecom_wrc-x3000gs2)
as the hardware (SoC, QCN6122, antennas) is identical between the two
models.
- GST2 stock firmware keeps its configuration even when sysupgrade is
called with -n. When installing from the OEM WebUI, those stock
settings can be restored into OpenWrt overlay, so settings must be
initialized after the first OpenWrt boot.
MAC Addresses:
LAN : 38:97:A4:xx:xx:40 (0:APPSBLENV, "eth1addr"/"ethaddr" (text))
WAN : 38:97:A4:xx:xx:43 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 38:97:A4:xx:xx:41 (0:APPSBLENV, "wifi0" (text))
5 GHz : 38:97:A4:xx:xx:42 (0:APPSBLENV, "wifi1" (text))
Signed-off-by: Taiga Ogawa <zectaiga@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23471
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
09e55e1008 |
qualcommax: ipq50xx: add support for Xiaomi Redmi AX5400
Add support for Xiaomi AX5400 (RA74). Specifications: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Etrontech EM6HE16EWAKG 512 MiB DDR3L-933 * Serial Port: 1v8 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax - up to 574 Mbps) QCN9024 (4x4 5 Ghz 802.11an/ac/ax - up to 4804 Mbps) * Ethernet: IPQ5018 integrated virtual switch connected to an external QCA8337 switch (3 LAN Ports 10/100/1000) * Flash: Gigadevice GD5F1GQ5REYIG (128 MiB) * LEDs: 1x System Blue (GPIO 24 Active High) 1x System Yellow (GPIO 25 Active High) 1x WAN Link Blue (GPIO 26 Active High) 1x WAN Link Yellow (GPIO 27 Active High) * Buttons: 1x Reset (GPIO 38 Active Low) 1x WPS (GPIO 28 Active Low) * MAC address layout: LAN (eth1): 0:art @ offset 0x0 WAN (eth0): 0:art @ offset 0x6 Flash instructions: (use redmi-ax5400 image for the Redmi AX5400) Download XMIR Patcher: https://github.com/openwrt-xiaomi/xmir-patcher First flash a ubinized OpenWrt initramfs that will serve as the intermediate step, since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages, through either of the below two methods: Installation via XMIR Patcher: 1. Load the initramfs image: openwrt-qualcommax-ipq50xx-xiaomi_redmi-ax5400-initramfs-factory.ubi Installation via ubiformat method, through SSH: 1. If needed, enable SSH using XMIR Patcher. 2. Copy the file openwrt-qualcommax-ipq50xx-xiaomi_redmi-ax5400-initramfs-factory.ubi to the /tmp directory 3. Open an SSH shell to the router 4. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 5. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd18 and mtd19 are the correct indexes from above! 6. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_redmi-ax5400-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_redmi-ax5400-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 7. Reboot the device by: reboot Continue in order to pernamently flash OpenWrt: 1. Upload the sysupgrade image to /tmp/ using SCP: scp -O <path to image> root@192.168.1.1:/tmp/ 2. Open an SSH shell to 192.168.1.1 from a PC within the same subnet 3. Use sysupgrade to flash the sysupgrade image: sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-xiaomi_redmi-ax5400-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/23374 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
13c54cd9b3 |
qualcommax: ipq807x: ax9000: wire up the fan
Now that we have a proper driver support for the onboard EMC2301 lets wire up the fan as a cooling device on the Xiaomi AX9000. Link: https://github.com/openwrt/openwrt/pull/22942 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
0c068c6c2f |
qualcommax: ipq60xx: add Link NN6000v1/v2 support
NN6000v1 Specifications:
SoC: Qualcomm IPQ6000 1.2GHz
RAM: K4B4G1646E-BCMA 512MiB x2 = 1 GiB
Flash: FORESEE 256GB eMMC
ETH: QCA8075 (2x LAN, 1x WAN)
WLAN1: QCN5022 2.4GHz AX 2x2
WLAN2: QCN5052 5GHz AX 2x2
Power: DC 12V
Button: Reset, Wps
USB: 1x 3.0
NN6000v2 Specifications:
SoC: Qualcomm IPQ6000 1.2GHz
RAM: MT41K512M16VRN-107 IT:P 1GiB x2 = 2 GiB
Flash: FORESEE 256GB eMMC
ETH: QCA8075 (4x LAN, 1x WAN)
WLAN1: QCN5022 2.4GHz AX 2x2
WLAN2: QCN5052 5GHz AX 2x2
Power: DC 12V
Button: Reset, Wps
USB: 1x 3.0
Install via UART:
1. Download the initramfs image, rename it to
initramfs.itb, host it with the tftp server.
2. Interrupt U-Boot and run these commands:
tftpboot initramfs.itb
bootm
3. After openwrt boots up, use scp or luci web
to upload sysupgrade.bin to upgrade.
Install via Uboot WebUI:
- Only work when you flash a custom uboot with webui
- Push the reset button for 5 seconds, then use broswer to
access http://192.168.1.1/, then upload factory.bin.
Signed-off-by: Fire Chen <firedevel@icloud.com>
Link: https://github.com/openwrt/openwrt/pull/21787
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
|
||
|
|
8152002315 |
qualcommax: ipq60xx: unify common make rules for eap6xx
The main difference between EAP610, 623, and 625 is the device name, support string, and the BDF package. Move the others to a common Device/tplink_eap6xx-common in order to highlight the common aspects. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18804 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
d755c49f7a |
qualcommax: ipq60xx: rename TP-Link EAP623-Outdoor HD v1 compatible
Originally, the .compatible string for EAP623-Outdoor HD tried to
shorten the "-outdoor" to "od". However, this naming was inconsistent
with the existing "eap610-outdoor". As "od" is not a common shorthand,
spell out the complete word: "eap623-outdoor-hd-v1".
Fixes:
|
||
|
|
3a39f682df |
qualcommax: ipq50xx: add support for CMCC MR3000D-CI
CMCC MR3000D-CI is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
IPQ5000.
Device specification
--------------------
- SoC : Qualcomm IPQ5018
- RAM : 512 MiB DDR3L
- Flash : 128 MiB SPI-NAND (GigaDevice GD5F1GQ5REYIG)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 4x 10/100/1000 Mbps
- Switch : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO) : 2x LEDs, 2x Buttons
- UART : Through-hole on PCB
- Voltage : 3.3 V
- Assignment : Silkscreened on PCB
- Settings : 115200n8
- Power : 12 VDC, 1.5 A
Installation
-----------------
1. Telnet method
a. Enable telnet
Log in to http://192.168.10.1/ with the password on the sticker
Modify URL according to example (keep your unique hash after ";stok=")
and press Enter:
http://192.168.10.1/cgi-bin/luci/;stok=78becad1b1490e45be2776025cde2b7d/api/NPCnetwork/ping?url=$(telnetd)
You should get the following in the browser:
{"link":0}
b. Run tftp server on IP 192.168.10.254 and put factory image
'openwrt-qualcommax-ipq50xx-cmcc_mr3000d-ci-squashfs-factory.ubi'
in the tftp root dir.
c. Login to 192.168.10.1 with telnet (user: root, pass: from the
sticker).
d. Download factory image from the tftp:
tftp -l factory.ubi -r openwrt-qualcommax-ipq50xx-cmcc_mr3000d-ci-squashfs-factory.ubi -g 192.168.10.254
e. Flash factory image:
export rootfs=$(cat /proc/mtd | grep rootfs | grep -v _ | cut -d: -f1)
ubidetach -f -p /dev/${rootfs}
ubiformat /dev/${rootfs} -y -f /tmp/factory.ubi
f. Reboot:
reboot
2. U-Boot Method using UBI Image (using UART)
a. Place the factory.ubi file on your TFTP server, enter U-Boot CLI
and exec these commands:
tftpboot <your_tftp_server_ip>:factory.ubi
flash rootfs
reset
3. U-Boot Method using initramfs Image (using UART)
a. Place the openwrt-*-initramfs-fit-uImage.itb file on your TFTP
server and rename it to initramfs.bin
b. Enable serial console, enter to U-Boot CLI and exec these commands:
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
c. Once boot completed, upload the sysupgrade.bin file to router's
/tmp directory (using scp or wget) and execute the following command
in openwrt shell:
sysupgrade -n /tmp/sysupgrade.bin
MAC Addresses
-------------
+--------------+-------------------+-------------+
| Interface | MAC example | Location |
+--------------+-------------------+-------------+
| LAN | 84:7a:xx:xx:xx:dd | 0:ART, 0x6 |
| WAN (label) | 84:7a:xx:xx:xx:dc | 0:ART, 0x0 |
| WLAN 2.4 GHz | 84:7a:xx:xx:xx:de | 0:ART, 0xc |
| WLAN 5 | 84:7a:xx:xx:xx:df | 0:ART, 0x12 |
+--------------+-------------------+-------------+
Notes
-----
1. U-Boot is protected by a password (pass: netpower).
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21952
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
a66e30631c |
qualcommax: move Device DTS to dedicated DTS directory
Align the qualcommax target to the pattern already used on other devices where the device DTS are placed in a dedicated directory separate from the files directory. This, while trying to enforce a common pattern for every target, also permits to do modification to device DTS without having to trigger a recompilation of the entire kernel (as the files directory is not touched) Link: https://github.com/openwrt/openwrt/pull/22037 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> |
||
|
|
785492e4c1 |
qualcommax: ipq807x: add Zyxel NWA110AX support
The Zyxel NWA110AX is a dual band 2x2:2 802.11ax wireless access point with PoE. The device is very similar to the NWA210AX except for being 2x2 instead of 4x4 in the 5GHz band and not having the 2.5GbE ethernet port. This commit factors out a common DTS and device definition and reuses it for both devices. Hardware: * SoC: Qualcomm IPQ8070A * RAM: 1GiB 1x Samsung K4A8G165WC-BCTD * Flash: 8MiB Winbond W25Q64DW SPI-NOR, 256MiB Winbond W29N02GZ SPI-NAND * WLAN 2.4GHz: QCN5024 2x2:2 802.11b/g/n/ax * WLAN 5GHz: QCN5054 2x2:2 802.11n/ac/ax * Ethernet: 1x 1GbE with AR8033 PHY * Serial Config: 3.3V TTL 115200-8-N-1, externally accessible * Serial Layout: GND TX RX 3.3V (don't connect, marked with triangle) * LEDs: 1x red, 1x green, 1x blue, 1x white * Buttons: 1x reset MAC addresses: * Uplink: base address on label * 2.4GHz WLAN: base + 1 * 5GHZ WLAN: base + 2 Flashing Notes: The device uses a dual-image setup and OpenWrt can only be installed as image 0. When the currently running stock firmware is image 0, OpenWrt will be installed as image 1, fail to boot and the device returns to stock firmware. If this happens, install any version of stock firmware so that it runs as image 1, before installing OpenWrt. Alternatively, if there already is a valid stock firmware in image 1, the "debug dual-image show" and "debug dual-image set boot-image image1" commands can be used in the stock CLI via serial/SSH/telnet to switch to image 1. Flashing with Stock Web Interface: * Get the OpenWrt factory image and rename it to a shorter name, for example "openwrt.bin" (the stock firmware has a character limit) * In the web interface, go to "Maintenance" -> "File Manager" -> "Firmware Package" (or click the link next to "Firmware Version" under "Device Information" on the dashboard) * Under "Upload File" browse to the renamed OpenWrt factory image and click on "Upload" Switch Boot Image: * OpenWrt to stock: "zyxel-bootconfig-ipq807x set image1" * Stock to OpenWrt: "debug dual-image set boot-image image0" Unbrick / Revert to Stock with the Boot Module: * Disconnect the device from power * Configure your machine to 192.168.1.103/24 and start a TFTP server * Put the stock firmware image into the TFTP server root and rename it to "ZLD-current" * Establish a serial connection to the device through the console port * Connect the device to power * When prompted, press a key to abort automatic boot and enter debug mode * Use the "atnz" command to flash the firmware image * Use the "atgo" command to boot from the newly flashed image Signed-off-by: Michael Lotz <mmlr@mlotz.ch> Link: https://github.com/openwrt/openwrt/pull/21849 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
67e6baf05e |
qualcommax: ipq60xx: add Netgear RBx350 support
Netgear RBx350 are dual band 4 stream 802.11ax mesh devices from the Orbi series. The RBR350 is a router with a WAN and 3 LAN ports. The RBS350 is a satellite without WAN port, only 2 LAN ports and half the flash. The hardware is otherwise identical. They were sold in kits as RBK352, RBK353, RBK354 or RBK355, with one router and 1-4 satellites. Hardware: * SoC: Qualcomm IPQ6018 * RAM: 512MiB 1x Nanya NT5CC256M16ER-EK * Flash: 512MiB Winbond W29N04GZ or 256MiB Winbond W29N02GZ * WLAN 2.4GHz: QCN5022 2x2:2 b/g/n/ax * WLAN 5GHz: QCN5052 2x2:2 a/n/ac/ax * Ethernet: QCA8075 switch with 1 WAN and 3 LAN ports or 2 LAN ports * Serial Config: 3.3V TTL 115200-8-N-1, internal populated header * Serial Layout: 3.3V (don't connect, marked with dot) RX TX GND * LEDs: green/red power, white/red/green/blue status * Buttons: 1x Reset, 1x WPS MAC addresses: * LAN1: base address on label, stored in boarddata partition at 0x8 * LAN2: base + 1 * LAN3: base + 2 * WAN: base + 3 * 2.4GHz WLAN: base + 1 * 5GHz WLAN: base + 2 Flashing Notes: The stock firmware images are signed. Both the bootloader and the stock web interface check the signature and will fail to boot/flash. The bootloader automatically does NMRP when a gigabit LAN connection is present. The stock and factory images contain a U-Boot script that is executed when flashing using NMRP. This is used to alter and persist the U-Boot env with a boot command that works with unsigned firmware. Install OpenWrt: * Get the nmrpflash utility [0] and OpenWrt factory image * Find network interface to use: nmrpflash -L * Start nmrpflash: nmrpflash -i interface -f openwrt-...-factory.img * Connect the device LAN port closest to the power jack to the same network using gigabit * Plug the device in and wait for the bootloader to flash * Unplug and replug the device once the power LED blinks amber Revert to Stock: The boot command needs to be reverted before flashing the stock firmware, otherwise it will fail to boot and get stuck in recovery mode (red power LED flashing). * Run: fw_setenv bootcmd bootipq * Restart the device * Flash the stock firmware RBx350-Va.b.c.d.img using nmrpflash [0]: https://github.com/jclehner/nmrpflash Signed-off-by: Michael Lotz <mmlr@mlotz.ch> Link: https://github.com/openwrt/openwrt/pull/21656 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
d0bd7ad1a2 |
qualcommax: ipq807x: add Netgear RBx750 support
Netgear RBx750 are tri band, 2.4GHz and 2x 5GHz, 8 stream 802.11ax mesh devices from the Orbi series. The RBR750 is a router with a WAN and 3 LAN ports. The RBS750 is a satellite without WAN port, only 2 LAN ports and half the flash. The hardware is otherwise identical. They were sold in kits as RBK752-RBK757, with one router and 1-6 satellites. Hardware: * SoC: Qualcomm IPQ8074 * RAM: 1GiB 1x Samsung * Flash: 512MiB Winbond W29N04GZ or 256MiB Winbond W29N02GZ * WLAN 2.4GHz: QCN5024 2x2:2 b/g/n/ax * WLAN 5GHz Low Band: QCN5054 2x2:2 a/n/ac/ax 5180-5320MHz * WLAN 5GHz High Band: QCN5054 4x4:4 a/n/ac/ax 5500-5700MHz * Ethernet: QCA8075 switch with 1 WAN and 3 LAN ports or 2 LAN ports * Serial Config: 3.3V TTL 115200-8-N-1, internal populated header * Serial Layout: Bottom <- RX, TX, GND, 3.3V (don't connect) -> Top * LEDs: green/red power, white/red/green/blue status * Buttons: 1x Reset, 1x WPS MAC addresses: LAN1: base address on label LAN2: base + 1 LAN3: base + 2 WAN: base + 1 2.4GHz: base + 2 5GHz-Low: base + 3 5GHz-High: base + 4 Flashing Notes: The stock firmware images are signed. Both the bootloader and the stock web interface check the signature and will fail to boot/flash. The bootloader automatically does NMRP when a gigabit LAN connection is present. The stock and factory images contain a U-Boot script that is executed when flashing using NMRP. This is used to alter and persist the U-Boot env with a boot command that works with unsigned firmware. Install OpenWrt: * Get the nmrpflash utility [0] and OpenWrt factory image * Find network interface to use: nmrpflash -L * Start nmrpflash: nmrpflash -i interface -f openwrt-...-factory.img * Connect the device LAN port closest to the power jack to the same network using gigabit * Plug the device in and wait for the bootloader to flash * Unplug and replug the device once the power LED blinks amber Revert to Stock: The boot command needs to be reverted before flashing the stock firmware, otherwise it will fail to boot and get stuck in recovery mode (red power LED flashing). * Run: fw_setenv bootcmd bootipq * Restart the device * Flash the stock firmware RBx750-Va.b.c.d.img using nmrpflash [0]: https://github.com/jclehner/nmrpflash Signed-off-by: Michael Lotz <mmlr@mlotz.ch> Link: https://github.com/openwrt/openwrt/pull/21938 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
ac8b5526bc |
qualcommax: ipq807x: add support for TCL LINKHUB HH500V
TCL LINKHUB HH500V also known as Vodafone Gigacube B157 is a dual band 802.11ax 5G NR CPE with an FXS port. Specifications: * SoC: Qualcomm IPQ8072A * RAM: 1024 MB * NAND flash: 256MB NAND (MT29F2G08ABBGAH4) * NOR flash: 64MB NOR (MX25U25635F) - only in some variants * WiFi 5G: Qualcomm QCN5054 * WiFi 2.4G: Qualcomm QCN5024 * Ethernet 2.5G: Qualcomm QCA8081 * Ethernet 1G: Qualcomm QCA8075 * Modem: GosunCn GM800 (Qualcomm Snapdragon X55) * SIM: 1 nano-SIM card slot * Buttons: Power, Reset, WPS * LEDs: Power (B/R), WiFi (B), 4G (B/Y/R), 5G (B/Y/R) * VoIP: 1 FXS RJ11 port (not supported in OpenWrt) * Power: 12V, 3A UART serial console: * 115200,8N1,1.8V * Three unmarked test points next to QJ2012A: +---------+ | QJ2012A | +---------+ o TX o GND o RX o o o Installation via OEM firmware: * Use the following process to obtain root ssh access https://forum.openwrt.org/t/150371/24 * Connect using root with no password on port 42000 * Optionally for serial bootloader access run : fw_setenv bootdelay=3 * SCP factory.bin to /tmp * Run: sysupgrade -n /tmp/factory.bin Installation via serial console and OEM firmware:: * Use console to access OEM firmware shell * Proceed with SCP & sysupgrade as described above Other notes: * This device uses active partition rotation * Some versions (TCL branded?) have a NOR chip in addition to NAND * The above is supported by u-boot patching DT partitions * DT patching does NOT occur on tftpboot/bootm * Modem is detected as foxconn-sdx55 by kernel (same VID/PID) * This works OK-ish and should be improved if we can get OEM modem details Signed-off-by: Milan Krstic <milan.krstic@gmail.com> Link: https://github.com/openwrt/openwrt/pull/19182 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
428bcee2f8 |
qualcommax: ipq60xx: add support for TP-Link EAP620HD v3
Specifications:
* SoC: Qualcomm IPQ6018/AP-CP03-C1 (64-bit Quad-core Arm Cortex-A53 @ 1.2 GHz)
* RAM: 2x Zentel A3T4GF40BBF-HP (1 GiB DDR3-1866 (13-13-13))
* Serial Port: 1v8 TTL 115200n8
* Wi-Fi: Qualcomm QCN5022 (802.11ax/b/g/n)
* Wi-Fi: Qualcomm QCN5052 (802.11ac/ax/n)
* Ethernet: RTL8211FS (10/100/1000BASE-T)
* Flash: GigaDevice PSR1GA30DT (128 MiB)
* LEDs: 1x Blue Status (GPIO 35 Active High)
* Buttons: 1x Reset (GPIO 9 Active Low)
* FCCID: 2AXJ4EAP620HDV3
* UART: 4-pin unpopulated header by the J1 footprint
Installation Instructions (Serial+TFTP):
1. Locate the J1 footprint which contains 4 unpopulated pins
where starting from the arrow, the pins are TX, RX, VCC and GND
respectively.
2. Connect a 1v8 TTL port to the 4 pins. Ensure RX and TX are crossed
over.
3. Copy openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
to your TFTP server.
4. Power up the AP and hold Ctrl+B in the serial console (115200n8) until autoboot is halted.
5. Run the following commands in the U-boot prompt:
IPQ6018# setenv serverip <TFTP server addr>
IPQ6018# setenv ipaddr <addr of the AP>
IPQ6018# tftpboot 0x44000000 openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
IPQ6018# bootm 0x44000000
You may need to type Ctrl+C and Enter before running these commands
to clear invisible characters from the buffer.
6. Run the following command in a terminal to copy the sysupgrade image
to be installed (check IP address):
$ scp -O openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
7. Activate the OpenWrt serial console and run the following commands:
# cd /tmp
# sysupgrade -n openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin
8. The AP will reboot and OpenWrt will be successfully installed.
Installation Instructions (Web UI method):
1. Set up the device using the vendor's web UI. Navigate to
Management->SSH and enable the "SSH Login" checkbox. Select "Save".
2. Connect to the machine via SSH:
$ ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>
3. Disable signature verification:
$ cliclientd stopcs
4. Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.
5. Go to System -> Firmware Update.
Under "New Firmware File", click "Browse" and select the image.
Select "Update" and confirm by clicking "OK".
6. If the update fails, the web UI should show an error message.
Otherwise, the device should reboot into OpenWrt.
Device support followed from EAP620HD v2 and eap6xx-outdoor for DTS.
Links: openwrt/openwrt#18227
Signed-off-by: John Christoforidis <github@yanny.dev>
Link: https://github.com/openwrt/openwrt/pull/21467
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
1c582f7c73 |
qualcommax: ipq60xx: add JDCloud RE-CS-07 support
Specifications:
SoC: Qualcomm IPQ6010 1.8GHz
RAM: K4A8G165WC-BCTD x2 2GiB
ETH: QCA8075 (3x LAN, 1x WAN)
Flash: ICMAX 8GB eMMC
Power: DC 12V 2A
USB: 1x 3.0
Button: Reset
Flash instructions:
1. Download the initramfs image, rename it to
initramfs.itb, host it with the tftp server.
2. Enter "jdmt018R" to interrupt U-Boot
when the following statement appears:
"disabled console and autoboot in 2 seconds"
3. Run these commands in U-Boot console:
tftpboot initramfs.itb
bootm
4. After openwrt boots up, use scp or luci web
to upload sysupgrade.bin to upgrade.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19840
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
53a8e7b2d4 |
qualcommax: ipq60xx: add JDCloud RE-CS-02 support
Specifications:
SoC: Qualcomm IPQ6010 1.8GHz
RAM: K4A4G165WF-BCTD x2 1GiB
Flash: FORESEE 128GB/256GB eMMC
ETH: 4x 1Gbps + 1x 2.5Gbps
WLAN1: QCN5022 2.4GHz AX 2x2
WLAN2: QCN5052 5.8GHz AX 2x2
WLAN2: QCN9024 5.2GHz AX 4x4
Button: Reset, Screen, Wps
Power: DC 12V 3A
USB: 1x 3.0
Flash instructions:
1. Download the initramfs image, rename it to
initramfs.itb, host it with the tftp server.
2. If the stock firmware version is 4.3.0.r4211
or higher, enter "jdmt018R" to interrupt
U-Boot when the following statement appears:
"disabled console and autoboot in 2 seconds"
3. Run these commands in U-Boot console:
tftpboot initramfs.itb
bootm
4. After openwrt boots up, use scp or luci web
to upload sysupgrade.bin to upgrade.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19840
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
16422510b5 |
qualcommax: ipq60xx: add JDCloud RE-SS-01 support
Specifications:
SoC: Qualcomm IPQ6000 1.2GHz
RAM: NT52CB256MB16DP 512MiB
Flash: FORESEE 64GB/128GB eMMC
ETH: QCA8075 (3x LAN, 1x WAN)
WLAN1: QCN5022 2.4GHz AX 2x2
WLAN2: QCN5052 5GHz AX 2x2
Power: DC 12V 2A
Button: Reset, Wps
USB: 1x 3.0
Flash instructions:
1. Download the initramfs image, rename it to
initramfs.itb, host it with the tftp server.
2. If the stock firmware version is 4.3.0.r4211
or higher, enter "jdmt018R" to interrupt
U-Boot when the following statement appears:
"disabled console and autoboot in 2 seconds"
3. Run these commands in U-Boot console:
tftpboot initramfs.itb
bootm
4. After openwrt boots up, use scp or luci web
to upload sysupgrade.bin to upgrade.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19780
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
0ff1553bd7 |
ipq-wifi: rename BDF for EAP623-Outdoor HD v1
BDF for EAP623-Outdoor HD v1 was renamed in the repo, but ipq-wifi was not updated to reflect that, so do it now to fix broken wifi. Fixes: #21432 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
f948f71300 |
qualcommax: ipq50xx: Add support for Zyxel SCR50AXE
This is tri-band WiFi6E capable router. Also Zyxel Nebula managed so no real local GUI. To open device 4 screws must be located uder the label.
Four latches are on front and two on each side. Better start from ethernet port side where 3 small latches are easy to handle.
FCC shows It's identical to WSQ65 sold as Zyxel Multy M6E but that's nowhare to be found yet. WSQ65 is not covered by this PR
Speficiations:
* SoC: Qualcomm IPQ5018
* RAM: 1GB DDR3
* Flash: Winbond W25N02KWZEIR 256MB
* UART: PCB "J3" is located left from front LED strip
(VCC/TX/RX/ /GND) 3.3V 115200n8
* Wi-Fi1: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
* Wi-Fi2: QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
* Wi-Fi3: QCN6122 (2x2:2 6 Ghz 802.11an/ac/ax)
* Ethernet: QCA8337 4xLAN 1Gbit / 1xWAN 1Gbit
* Buttons: WPS , Reset
* LEDs: 13 in total
RGB power, RGB wan, RGB status (cloud), RGB wifi, Green wps
* FCCID: I8803891
*Flash Instructions starts with getting root:
connect uart to J3 connector next to the front LEDs
go to failsafe when this shows up in log:
"Press the [f] key and hit [enter] to enter failsafe mode"
execute:
mount_root
passwd -d root
reboot
logon as root:
look for 'Please press Enter to activate this console.'
login is root password is empty
execute:
fw_setenv DebugFlag=0x1
fw_setenv bootdelay=0x2
passwd -d root
backup ubi partition "rootfs" into safe space
reboot
*OpenWrt installation
stop uboot and execute:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.10
tftpboot *-factory.ubi
flash rootfs
reset
or:
tftpboot *-initramfs-uImage.itb
bootm
use sysupgrade as usual
*restore OEM from backup
stop uboot and execute:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.10
tftpboot *-initramfs-uImage.itb
bootm
transfer rootfs.bin backup and execute:
ubiformat /dev/mtd16 -y -f /tmp/rootfs.bin
Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/21042
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
d992d95b52 |
qualcommax: ipq50xx: add support for Linksys MX6200
Linksys MX6200 is a triband Wi-Fi 6E wireless router.
Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Nanya NT5CC256M16ER-EK (512 MiB DDR3-933)
* Serial Port: 3v3 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
QCN6122 (2x2:2 6 Ghz 802.11an/ac/ax)
* Ethernet: IPQ5018 integrated virtual switch connected to:
- LAN Port: Internal IPQ5018 GE PHY
- WAN Port: Maxlinear Ethernet GPY115C PHY
* Flash: Macronix MX35UF2GE4AD (256 MiB)
* LEDs: 1x multi-color PWM LED
* Buttons: 1x WPS (GPIO 27 Active Low)
1x Reset (GPIO 28 Acive Low)
* FCC ID: 2AYRA-08436
Flash instructions:
************************************************************************
NOTE: serial access is required! Although the web UI allows you to
install the Openwrt image, secure boot is enabled which will prevent
booting an unsigned image. The boot sequence must be adjusted in U-boot
to allow booting unsigned images.
************************************************************************
1. On OEM firmware, login to the web UI (typically @ http://192.168.1.1)
and click 'CA' in the bottom right corner.
Then click -> Connectivity -> Manual Upgrade.
Alternatively, browse to
http://<router IP>/fwupdate.html.
Upload openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi.
Continue with step 5.
2. Installation on alternate partition using serial connection from OEM
firmware (default login: root, password: admin):
flash_erase /dev/mtd19 0 0
nandwrite -p /dev/mtd19 openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi
reboot
Continue with step 5.
3. Installation using serial connection from initramfs
setup tftp server listening on IP in 192.168.1.0/24 (other than the
router IP 192.168.1.1). In U-boot, load the initramfs image to memory:
tftp $loadaddr <your IP>:openwrt-qualcommax-ipq50xx-linksys_mx6200-initramfs-uImage.itb
boot the image using command:
bootm $loadaddr
when fully booted, scp the sysupgrade image to your router IP (default:
192.168.1.1):
scp -O <path>/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysypgrade.bin root@192.168.1.1:/tmp/
use sysupgrade to flash the image to nand:
sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysupgrade.bin
Continue with step 5.
4. Optionally install on alternate partition. From Openwrt:
mtd -r -e rootfs_1 -n write openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi rootfs_1
Continue with step 5.
5. Setup U-boot for ability to dual boot signed (stock) and non-signed
(Openwrt) images with auto-detection.
From U-boot, run (be aware: copy line by line):
setenv setnandbootargs 'setenv bootargs init=/sbin/init ubi.mtd=rootfs rootfstype=squashfs rootwait'
setenv nandinitcmd 'setenv mtdids nand0=nand0; run setrootfscmd; ubi part rootfs 2048'
setenv setrootfscmd 'if test $boot_part = 1; then setenv mtdparts mtdparts=nand0:0x${imgsize}@0x${prikern}(rootfs); else setenv mtdparts mtdparts=nand0:0x${imgsize}@0x${altkern}(rootfs); fi'
setenv readhdr1cmd 'ubi read $loadaddr kernel 0x40; setexpr IMGOFF $loadaddr + 0x10; setexpr CODEOFF $loadaddr + 0x14; setexpr SIGOFF $loadaddr + 0x1c; setexpr CERTOFF $loadaddr + 0x24'
setenv readhdr2cmd 'setexpr.l HDR *$loadaddr; setexpr.l IMGSZ *$IMGOFF; setexpr.l CODESZ *$CODEOFF; setexpr.l SIGSZ *$SIGOFF; setexpr.l CERTSZ *$CERTOFF; setexpr TSIZE $CODESZ + $SIGSZ; setexpr TSIZE $TSIZE + $CERTSZ'
setenv testmbncmd 'if test $HDR -ne edfe0dd0 -a $IMGSZ -eq $TSIZE; then bootipq; else ubi read $loadaddr kernel $kernsize; run setnandbootargs; bootm $loadaddr; fi'
setenv bootcmd2 'if test $auto_recovery = no; then bootipq; else run nandinitcmd; run readhdr1cmd; run readhdr2cmd; run testmbncmd; fi'
setenv bootcmd 'run bootcmd2'
saveenv
6. Back to the OEM firmware.
Download firmware from OEM website:
MX6200: https://support.linksys.com/kb/article/408-en/
From serial/SSH, in Openwrt, flash OEM firmware to alternate partition:
mtd -r -e rootfs_1 -n write FW_MX6200_1.0.11.216041_prod.signed.img rootfs_1
Switching active partition:
1. From U-boot, executive the following to switch to partition 1:
setenv boot_part 1
for partition 2:
setenv boot_part 2
2. From Openwrt:
fw_printenv boot_part
In case it's 1:
fw_setenv boot_part 2
. /lib/upgrade/platform.sh
linksys_bootconfig_set_primaryboot "0:bootconfig" 1
linksys_bootconfig_set_primaryboot "0:bootconfig1" 1
In case it's 2:
fw_setenv boot_part 1
. /lib/upgrade/platform.sh
linksys_bootconfig_set_primaryboot "0:bootconfig" 0
linksys_bootconfig_set_primaryboot "0:bootconfig1" 0
and
reboot
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21038
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
401c0a03f1 |
qualcommax: ipq807x: add support for Zyxel NWA210AX
The Zyxel NWA210AX is a wall- and ceiling-mountable access point (AP). Hardware specifications: - SoC: Qualcomm IPQ8071A - RAM: 1 GB (Samsung K4A8G165WC-BCTD) - Flash: 8 MB (Winbond W25Q64DW), 256 MB (Winbond W29N02GZ) - Ethernet: 1x 2.5 Gbps RJ45 port (QCA8081), 1x 1 Gbps RJ45 port (AR8033) - WiFi: 2.4 GHz 802.11ax/b/g/n (QCN5024), 5 GHz 802.11 ac/ax/n (QCN5054) - Power: DC 12V/PoE 802.3at - Button: Reset - LEDs: Multicolour red/green/blue/white via LP5562 Installation/flashing instructions: 1. In OEM web interface navigate to gear icon → System → SSH and enable SSH. 2. Log in via SSH (username/password are the same as for the web interface). 3. Run "debug dual-image show". 4. Verify that output is "Current Image num: 1". 5. If this is not the case (i.e. if the output is "Current Image num: 0"): a. Either flash a fresh version of factory firmware, or b. run "debug dual-image set boot-image image1" and then run "reboot". 6. Log in via SSH again and verify that output is "Current Image num: 1". 7. Rename "openwrt-qualcommax-ipq807x-zyxel_nwa210ax-squashfs-factory.bin" to "openwrt.bin" to avoid upload errors in the OEM web interface. 8. Reopen OEM web interface, navigate to wrench icon → File Manager → Firmware Package and upload the bin file. Once the upgrade process is finished and OpenWrt has booted, the LED will light up green. Switching between OpenWrt and OEM firmware: - OpenWrt → Zyxel via ssh command "zyxel-bootconfig-ipq807x set image1". - Zyxel → OpenWrt via ssh command "debug dual-image set boot-image image0". This commit is based on the work of Pascal Beleiu <pascal@beleiu.de>: 93ca21f3 (qualcommax: ipq807x: add support for Zyxel NWA210AX, 2025-03-17) Signed-off-by: Eric Schäfer <eric@es86.de> Link: https://github.com/openwrt/openwrt/pull/19828 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
1f879b8839 |
qualcommax: ipq50xx: split firmware variants and refactor QCN6122 support
IPQ5018 based boards come in multiple wireless architectures. The SOC itself provides 2.4G wifi while 5G wifi is added by either an IPQ5018-specific QCN6122 (2x2) solution or by the more generally available PCIe-based QCN9074 (4x4) wifi chip. On IPQ5018/QCN6122-based boards, both QCN6122 and IPQ5018 wifi is initialized by IPQ5018 firmware which comes in different versions: - IPQ5018: firmware files to initialize WCSS and the internal wifi chip - IPQ5018/QCN6122: above + additional firmware segments to initialize the QCN6122 chip incl. (de-)assertion of resets and clocks enablement OpenWrt currently packages the combined IPQ5018/QCN6122 firmware for both architectures. As such, let's switch to using IPQ5018-only firmware for boards not packed with QCN6122 chip(s) and keep using the shared firmware for devices that do have QCN6122(s) chips. This helps us move to using upstreamed IPQ5018 firmware while using the legacy repo for IPQ5018/QCN6122 firmware and rule out any initialization conflicts/issues caused by loading QCN6122 on IPQ5018-only boards. While at it, default to the secure WCSS remoteproc driver sent upstream for review, move QCN6122 wifi nodes to a separate dtsi, override the Q6 node to load the multi-PD-based architecture remoteproc driver for needed only by IPQ5018/QCN6122 designs, reference said dtsi in boards packed with QCN6122 wifi chip(s), and add provision for migrating the radio path as the wifi nodes now adhere to linux device tree naming conventions. Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/20928 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
5ab6e6011f |
qualcommax: ipq50xx: Add support for CMCC PZ-L8
CMCC PZ-L8 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on IPQ5000. Specifications: - SoC : Qualcomm IPQ5000 - RAM : Integrated 256MiB DDR3L - Flash : 128 MiB SPI-NAND (ESMT F50D1G41LB) - WLAN : 2.4/5 GHz 2T2R - 2.4 GHz : Qualcomm IPQ5000 (SoC) - 5 GHz : Qualcomm Atheros QCN6102 - Ethernet : 4x 10/100/1000 Mbps - switch : Qualcomm Atheros QCA8337 - LEDs/Keys (GPIO) : 2x LEDs, 2x Keys - UART : Through-hole on PCB, 4pins in the middle of the black aluminum heat sink - assignment : 3.3V, GND,TX, RX (from left to right) - settings : 115200n8 - Power : 12 VDC, 1 A Flashing Instructions: 1. SSH Method (1) Enable SSH on the stock firmware a. Version 501.8 and 501.9: Log in to http://192.168.10.1 with the password on the sticker Append "/admin/system/admin" to the URL and press Enter Delete "Dropbear instance", click "Add instance", then "Save and Apply" Reboot the router b. Version 501.11 and 501.12: While the router is running the stock firmware, press and hold the reset button for 20-30 seconds Open http://192.168.10.1:56781 and login with username "root" and the password on the sticker Run "vi /etc/config/dropbear" and delete the line "option enable '0'" Reboot the router (2) Upload the factory.ubi file to router's /tmp directory (using scp or wget) and execute the following commands in the router's shell export rootfs=$(cat /proc/mtd | grep rootfs | grep -v _ | cut -d: -f1) ubidetach -f -p /dev/${rootfs} ubiformat /dev/${rootfs} -y -f /tmp/factory.ubi 2. U-Boot Method using UBI Image Place the factory.ubi file on your TFTP server, enter U-Boot CLI and exec these commands tftpboot <your_tftp_server_ip>:factory.ubi flash rootfs reset 3. U-Boot Method using initramfs Image (1) Place the openwrt-*-initramfs-fit-uImage.itb file on your TFTP server and rename it to initramfs.bin (2) Enable serial console, enter to U-Boot CLI and exec these commands tftpboot <your_tftp_server_ip>:initramfs.bin bootm (3) Once boot completed, upload the sysupgrade.bin file to router's /tmp directory (using scp or wget) and execute the following command in openwrt shell sysupgrade -n /tmp/sysupgrade.bin Switching to the Stock Firmware: Please follow the commit https://github.com/openwrt/openwrt/commit/3b7d72bc2ecca2f962319b0a4fb9beb7609a0222 Partition Layout (Stock Firmware): 0x000000000000-0x000000080000 : "0:SBL1" 0x000000080000-0x000000100000 : "0:MIBIB" 0x000000100000-0x000000140000 : "0:BOOTCONFIG" 0x000000140000-0x000000180000 : "0:BOOTCONFIG1" 0x000000180000-0x000000280000 : "0:QSEE" 0x000000280000-0x000000380000 : "0:QSEE_1" 0x000000380000-0x0000003c0000 : "0:DEVCFG" 0x0000003c0000-0x000000400000 : "0:DEVCFG_1" 0x000000400000-0x000000440000 : "0:CDT" 0x000000440000-0x000000480000 : "0:CDT_1" 0x000000480000-0x000000500000 : "0:APPSBLENV" 0x000000500000-0x000000640000 : "0:APPSBL" 0x000000640000-0x000000780000 : "0:APPSBL_1" 0x000000780000-0x000000880000 : "0:ART" 0x000000880000-0x000000900000 : "0:TRAINING" 0x000000900000-0x000004300000 : "rootfs" 0x000004300000-0x000007d00000 : "rootfs_1" Notes: This device is almost the same as ELECOM WRC-X3000GS2, including partition layout and the dual-boot feature. Known Issues: - All Wi-Fi related peripherals are disabled in device tree, since 256 MiB RAM is too few for ath11k. - This device has another version with nand flash FM25SL01, which is not supported at the moment. https://github.com/immortalwrt/immortalwrt/blob/master/target/linux/mediatek/patches-6.12/342-mtd-spinand-Support-fmsh.patch MAC Addresses: Interface MAC Address Location (binary) LAN A4:39:B6:xx:xx:9D (0:ART, 0x00-0x05) WAN A4:39:B6:xx:xx:9E (0:ART, 0x06-0x0B) 2.4 GHz A4:39:B6:xx:xx:9F (0:ART, 0x0C-0x11) 5 GHz A4:39:B6:xx:xx:A0 (0:ART, 0x12-0x17) Signed-off-by: Chang Liu <jssqliuchang@gmail.com> |
||
|
|
f5fd7ef888 |
targetwide: imagebuilder: add explicit guards around initramfs rules
Additional work building upon
|
||
|
|
f6e0f57be0 |
targetwide: imagebuilder: add explicit guards around initramfs rules
The imagebuilder is not intended to build initramfs images. Some profiles attempt to do this and succeed, due to buildroot leaking the initramfs-kernel into staging_dir; others attempt it, but fail due to not having initramfs binaries present in the imagebuilder. Fix this by adding an explict guard around the unsupported generation of the initramfs images. This saves space and time during imagebuilder runs, fixes those that are currently broken and protects against future breakage for profiles that inadvertently work now. Fixes: https://github.com/openwrt/openwrt/issues/20151 Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20347 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
5d2994a73e |
qualcommax: ipq50xx: Add support for Yuncore AX850
Specifications:
SOC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
Flash: SPI NOR 8MB (Winbond W25Q64DW) + NAND 128MB (Winbond W25N01GWZEIG)
Memory: 512MB DDR3L
Standard: 802.11ax/ac/b/g/n
2.4G Frequency: 2.4GHz - 2.484GHz
2.4G Wi-Fi standard: 802.11b/g/n/ax
5G Frequency: 5.150GHz~5.850GHz
5G Wi-Fi Standard: 802.11 a/n/ac/ax
Buttons: 1 * Reset button, press 10 seconds to revert to default setting
2.4G Antenna: 2*2.4GHz/5.8GHz dual band antenna: 4dBi
5G Antenna: 2*5.8G antenna: 4dBi
Data Rate: 2.4GHz: 574Mbps, 5GHz:4800Mbps
Power: PoE 802.3at,DC2.0 12V/2A
Max Power Consumption: < 22W
LED Light: WAN, LAN, tricolor LED(sys-red, 2.4G-green, 5.8G-blue)
BACKUP YOUR STOCK FIRMWARE:
- Put openwrt-*-initramfs-uImage.itb to your
TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
and exec these commands:
```
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
```
- Once boot completed and you get the openwrt shell
execute below commands:
```
device=ax850
mkdir -p /tmp/fw_backup; cd /tmp/fw_backup
rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
dd if=/dev/${rootfs} of=rootfs_${rootfs} bs=1M
dd if=/dev/${rootfs_1} of=rootfs_1_${rootfs_1} bs=1M
cp /sys/firmware/fdt fdt.dtb
md5sum * > md5sum
tar -cvzf /tmp/${device}.tar.gz .
sum=$(md5sum /tmp/${device}.tar.gz | cut -d' ' -f1)
mv /tmp/${device}.tar.gz /tmp/${device}_${sum}.tar.gz
echo "stock fw backup saved to: /tmp/${device}_${sum}.tar.gz"
```
- Upload/save your backup to a safe place.
STOCK FIRMWARE RECOVERY:
- Boot initramfs image
- Upload your backed-up stock fw tarball to the device
using scp or download it from the device using wget.
- Enter device ssh cli or tty and exec:
```
cd /tmp && wget <your_web_server_ip>/${stock_fw_backup}.tar.gz`
tar -xpzf ${stock_fw_backup}.tar.gz
rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
ubiformat /dev/${rootfs} -y -f /tmp/rootfs_${rootfs}
ubiformat /dev/${rootfs_1} -y -f /tmp/rootfs_1_${rootfs_1}
reboot
```
INSTALLATION:
1. initramfs method
- Put openwrt-*-initramfs-uImage.itb to your
TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
and exec these commands:
```
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
```
- Once boot completed and you get the openwrt shell
execute below commands:
```
cd /tmp && wget <your_web_server_ip>/factory.ubi`
export rootfs=$(cat /proc/mtd | grep rootfs | cut -d: -f1)
export rootfs_1=$(cat /proc/mtd | grep rootfs_1 | cut -d: -f1)
ubiformat /dev/${rootfs} -y -f factory.ubi
ubiformat /dev/${rootfs_1} -y -f factory.ubi
reboot
```
2. u-boot factory.ubi image method
- Put factory.ubi to your TFTP server and
enter u-boot cli and exec these commands:
```
tftpboot <your_tftp_server_ip>:factory.ubi
#After downloading is finished:
flash rootfs
flash rootfs_1
reset
```
Signed-off-by: Shubham Vishwakarma <shubhamvis98@fossfrog.in>
Link: https://github.com/openwrt/openwrt/pull/19712
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
52e339b8ed |
qualcommax: ipq50xx: Add support for Yuncore AX830
Specifications:
SOC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
Memory: 512MB DDR3L
Standard: 802.11ax/ac/b/g/n
Flash: SPI NOR 8MB (Winbond W25Q64DW) + NAND 128MB (Winbond W25N01GWZEIG)
2.4G Frequency: 2.4GHz - 2.484GHz
2.4G Wi-Fi standard: 802.11b/g/n/ax
5.8G Frequency: 4.9~5.9G
5.8G Wi-Fi Standard: 802.11 a/n/ac/ax
Interface:
Optional 1(Without 8081):
1 * 10/100 /1000Mbps RJ45 WAN Port and PoE port;
1* Gigabit Console port;
Optional 2(With 8081):
1 * 10/100/1000/2500Mbps RJ45 WAN port and PoE port,
1*10/100/1000Mbps LAN port
Buttons: 1 * Reset button, press 10 seconds to revert to default setting
Antenna: Build in 4*4dBi dual band MIMO Antenna
Data Rate: 3000Mbps (2.4G 600Mbps, 5.8G 2400Mbps)
End Users: 128+
2.4G RF Power: ≤ 23dBm
5.8G RF Power: ≤ 23dBm
DC: 12V----2A
PoE: 48V (IEEE 802.3at)
LED Light: Sys, WAN, LAN
Power Consumption: ≤ 20W
BACKUP YOUR STOCK FIRMWARE:
- Put openwrt-*-initramfs-uImage.itb to your
TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
and exec these commands:
```
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
```
- Once boot completed and you get the openwrt shell
execute below commands:
```
device=ax830
mkdir -p /tmp/fw_backup; cd /tmp/fw_backup
rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
dd if=/dev/${rootfs} of=rootfs_${rootfs} bs=1M
dd if=/dev/${rootfs_1} of=rootfs_1_${rootfs_1} bs=1M
cp /sys/firmware/fdt fdt.dtb
md5sum * > md5sum
tar -cvzf /tmp/${device}.tar.gz .
sum=$(md5sum /tmp/${device}.tar.gz | cut -d' ' -f1)
mv /tmp/${device}.tar.gz /tmp/${device}_${sum}.tar.gz
echo "stock fw backup saved to: /tmp/${device}_${sum}.tar.gz"
```
- Upload/save your backup to a safe place.
STOCK FIRMWARE RECOVERY:
- Boot initramfs image
- Upload your backed-up stock fw tarball to the device
using scp or download it from the device using wget.
- Enter device ssh cli or tty and exec:
```
cd /tmp && wget <your_web_server_ip>/${stock_fw_backup}.tar.gz`
tar -xpzf ${stock_fw_backup}.tar.gz
rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
ubiformat /dev/${rootfs} -y -f /tmp/rootfs_${rootfs}
ubiformat /dev/${rootfs_1} -y -f /tmp/rootfs_1_${rootfs_1}
reboot
```
INSTALLATION:
1. initramfs method
- Put openwrt-*-initramfs-uImage.itb to your
TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
and exec these commands:
```
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
```
- Once boot completed and you get the openwrt shell
execute below commands:
```
cd /tmp && wget <your_web_server_ip>/factory.ubi`
export rootfs=$(cat /proc/mtd | grep rootfs | cut -d: -f1)
export rootfs_1=$(cat /proc/mtd | grep rootfs_1 | cut -d: -f1)
ubiformat /dev/${rootfs} -y -f factory.ubi
ubiformat /dev/${rootfs_1} -y -f factory.ubi
reboot
```
2. u-boot factory.ubi image method
- Put factory.ubi to your TFTP server and
enter u-boot cli and exec these commands:
```
tftpboot <your_tftp_server_ip>:factory.ubi
#After downloading is finished:
flash rootfs
flash rootfs_1
reset
```
Signed-off-by: Shubham Vishwakarma <shubhamvis98@fossfrog.in>
Link: https://github.com/openwrt/openwrt/pull/18968
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
d7f9e240c2 |
qualcommax: ipq50xx: Add support for Xiaomi AX6000
Add support for Xiaomi AX6000. Speficiations: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Etrontech EM6HE16EWAKG 512 MiB DDR3L-933 * Serial Port: 1v8 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax - up to 574 Mbps) QCN9024 (4x4 5 Ghz 802.11an/ac/ax - up to 4804 Mbps) QCA9887 (1x1 5 Ghz 802.11ac/n - up to 433 Mbps) * Ethernet: IPQ5018 integrated virtual switch connected to: - external QCA8337 switch (3 LAN Ports 10/100/1000) - QCA8081 Phy WAN port (10/100/1000/2500) * Flash: Either of: - Gigadevice GD5F1GQ4RE9IGD (128 MiB) - ESMT F50D1G41LB (128 MiB) * LEDs: 1x WLAN Link (GPIO 23 Active High) 1x System Blue (GPIO 24 Active High) 1x System Yellow (GPIO 25 Active High) 1x WAN Link Blue (GPIO 26 Active High) 1x WAN Link Yellow (GPIO 27 Active High) 1x Green - Unused(GPIO 28 Active High) 3x LAN Phy Green 1x WAN Phy Green * Buttons: 1x Reset (GPIO 38 Active Low) Known issue: - QCA9887 doesn't come up (possibly due to 1-lane PCIe phy not coming up or missing method to drive power), hence the host PCIe controller is disabled in the DTS. Flash instructions: Download XMIR Patcher: https://github.com/openwrt-xiaomi/xmir-patcher First flash a ubinized OpenWrt initramfs that will serve as the intermediate step, since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages, through either of the below two methods: Installation via XMIR Patcher: 1. Load the initramfs image: openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi Installation via ubiformat method, through SSH: 1. If needed, enable SSH using XMIR Patcher. 2. Copy the file openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi to the /tmp directory 3. Open an SSH shell to the router 4. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 5. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd18 and mtd19 are the correct indexes from above! 6. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 7. Reboot the device by: reboot Continue in order to pernamently flash OpenWrt: 1. Upload the sysupgrade image to /tmp/ using SCP: scp -O <path to image> root@192.168.1.1:/tmp/ 2. Open an SSH shell to 192.168.1.1 from a PC within the same subnet 3. Use sysupgrade to flash the sysupgrade image: sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/19004 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
0cbdab5038 |
qualcommax: add support for I-O DATA WN-DAX3000GR
I-O DATA WN-DAX3000GR is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based
on IPQ5018.
Specification:
- SoC : Qualcomm IPQ5018
- RAM : DDR3 512 MiB
- Flash : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 5x 10/100/1000 Mbps
- wan (phy) : Qualcomm IPQ5018 (SoC)
- lan (switch) : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 7x/5x
- UART : through-hole on PCB (J3)
- assignment : 3.3V, TX, RX, NC, GND from tri-angle marking
- settings : 115200n8
- USB : USB 2.0 Type-A (through-hole on PCB, "J6")
- Power : 12 VDC, 1A (Typ. 930 mA)
Flash instruction using factory.bin image:
1. Boot WN-DAX3000GR with router mode
2. Access to the WebUI ("http://192.168.0.1/") on the device and open
the firmware update page ("ファームウェア")
3. Select the OpenWrt factory.bin image and click update ("更新") button
4. Wait ~120 seconds to complete flashing
Switching to the stock firmware:
1. Load the elecom.sh script
. /lib/upgrade/elecom.sh
2. Check the current index of rootfs
bootconfig_rw_index 0:bootconfig rootfs
3. Set the index to inverted value
bootconfig_rw_index 0:bootconfig rootfs <value>
bootconfig_rw_index 0:bootconfig1 rootfs <value>
example:
- step2 returned "0":
bootconfig_rw_index 0:bootconfig rootfs 1
bootconfig_rw_index 0:bootconfig1 rootfs 1
- step2 returned "1":
bootconfig_rw_index 0:bootconfig rootfs 0
bootconfig_rw_index 0:bootconfig1 rootfs 0
4. Reboot
Partition Layout (Stock FW, bootconfig(rootfs)=1):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs_1"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007700000 : "idmkey"
0x000007700000-0x000007c00000 : "Reserved"
0x000007c00000-0x000007c80000 : "FWHEADER"
0x000007c80000-0x000007d00000 : "Factory"
Known Issues:
- This device has a Macronix MX35UF1G24AD SPI-NAND chip registered as
oobsize=128 in Linux Kernel. But using BCH8 breaks I/O on the chip
with the following errors, so this support uses BCH4 instead.
[ 1.542261] 0x000000480000-0x000000500000 : "0:appsblenv"
[ 1.547959] 1 fixed-partitions partitions found on MTD device 0:appsblenv
[ 1.551265] Creating 1 MTD partitions on "0:appsblenv":
[ 1.558096] 0x000000000000-0x000000040000 : "env-data"
[ 1.627282] u-boot-env-layout 79b0000.qpic-nand:flash@0:partitions:partition-0-appsblenv:partition@0:nvmem-layout: probe with driver u-boot-env-layout failed with error -74
root@OpenWrt:~# strings /dev/mtdblock10
[ 77.806720] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
[ 77.807554] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
[ 77.815977] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0
[ 77.824721] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0
[ 77.834095] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[ 77.843278] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 77.851577] Buffer I/O error on dev mtdblock10, logical block 0, async page read
Notes:
- This device has dual-boot feature and it's managed by the index in the
0:bootconfig and 0:bootconfig1 partitions.
- There are through-holes on PCB for USB 2.0, but it cannot be accessed
without disassembly of the housing. So it's not enabled in this
support.
- WN-DAX3000GR has the "bt_fw" volume in the firmware UBI in addition to
the volumes that will be removed in the section of ELECOM WRC-X3000GS2
in /lib/upgrade/platform.sh.
That volume is unnecessary for OpenWrt and add
`remove_oem_ubi_volume bt_fw` to remove that volume when sysupgrade.
(that function doesn't anything without errors if no specified volume)
MAC Addresses:
LAN : 50:41:B9:xx:xx:64 (0:APPSBLENV, "ethaddr"/"eth1addr" (text))
WAN : 50:41:B9:xx:xx:66 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 50:41:B9:xx:xx:64 (0:APPSBLENV, "wifi0" (text))
5 GHz : 50:41:B9:xx:xx:65 (0:APPSBLENV, "wifi1" (text))
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19053
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||
|
|
2186f4aa75 |
qualcommax: make header length configurable on Build/mstc-header
I-O DATA WN-DAX3000GR has a MSTC (Mitra Star Technology Corp.) specific header with a different length than ELECOM WRC-X3000GS2. Make the header length configurable by parameterizing on Build/mstc-header. - WRC-X3000GS2: 0x400 - WN-DAX3000GR: 0x480 Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Link: https://github.com/openwrt/openwrt/pull/19053 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|
|
35c828c168 |
ipq60xx: add support for ALFA Network AP120C-AX
ALFA Network AP120C-AX is a dual-band ceiling AP, based on Qualcomm
IPQ6000 + QCN5021 + QCN5052 + QCA8072 chipsets bundle.
Specifications:
- SOC: Qualcomm IPQ6000 (quad-core Cortex-A53 1.2 GHz)
- DRAM: DDR3 512 MB (Micron MT41K256M16TW-107)
- Flash: 16 MB SPI NOR (Macronix MX25U12832F, boot device)
128 MB NAND (Macronix MX30UF1G18AC, dual-firmware)
- Ethernet: 2x 10/100/1000 Mbps Ethernet (QCA8072)
802.3at/af PoE input in WAN port
- Wi-Fi: 2x2 2.4 GHz Wi-Fi 6 (QCN5021 + RFFM8227 FEM)
2x2 5 GHz Wi-Fi 6 (QCN5152 + QPF4568 FEM)
- Antenna: for indoor version: dual-band, internal
2x (or 4x) U.FL antenna connectors on the PCB
- LED: for indoor/outdoor versions: 5x on external module (status,
2x Wi-Fi, 2x Ethernet), PoE LED on-board
8-pin on-board header for LED module (1.27 mm pitch, J14)
- Button: 1x button (reset)
- USB: 1x 4-pin on-board header for USB 2.0 (2.54 mm pitch, J22)
- UART: 1x micro USB Type-B for system console (Holtek HT42B534)
1x 4-pin on-board header (2.54 mm pitch, J11)
- Power: 802.3at/af PoE or 12 V DC/2 A (DC jack)
- Other: 8-pin and 4-pin on-board headers for external Bluetooth
module (1.27 mm pitch, J15, J16, unavailable, thus untested)
MAC addresses:
- WAN: 00:c0:ca:xx:xx:6c (art 0x0, device's label -2)
- LAN: 00:c0:ca:xx:xx:6d (art 0x6, device's label -1)
- 2.4 GHz (IPQ6000): 00:c0:ca:xx:xx:6e (art 0xc, device's label)
- 5 GHz (IPQ6000): 00:c0:ca:xx:xx:6f (device's label + 1)
Flash instructions:
Due to the lack of direct GUI based update capability and dual-firmware
partition configuration, it is recommended to use TFTP + serial console
based approach (console is available in micro USB connector):
1. Set a static IP 192.168.1.1/24 on PC and start TFTP server with the
'...-factory.ubi' image renamed to 'firmware.bin'.
2. Make sure you can access board's serial console over micro USB.
3. Power up the device, hit any key to enter U-Boot CLI and issue below
commands.
3.1 Restore U-Boot's environment to default values (double check first
the '0:APPSBLENV' partition offset using 'smem' command):
sf probe
sf erase 0x510000 0x10000
saveenv
3.2 Download and install OpenWrt in both partitions and reset the board:
tftpb 0x44000000 firmware.bin
flash rootfs
flash rootfs_1
reset
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
|
||
|
|
ca51f7aaf5 |
qualcommax: ipq60xx: fix EAP625-Outdoor HD BDF package name
Currently, non existing ipq-wifi package name is selected for
EAP625-Outdoor HD, so correct the name.
Fixes:
|
||
|
|
51c1ea08d0 |
qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support
TP-Link EAP625-Outdoor HD is a 802.11ax AP claiming AX1800 support. It is wall or pole mountable, and rated for outdoor use. It can only be powered via PoE. Hardware-wise, it is very similar to the older EAP610-Outdoor model. Software-wise, I couldn't find a difference other than the board data files, and device name. For this reason, the majority of the devicetree from the EAP610-Outdoor is reused. This device currently comes in a "v1", and "v1.6" version. The "support-list" of the vendor firmware does not have a distinction between these versions. This commit was tested on a 'V1.6" device. Specifications: --------------- * CPU: Qualcomm IPQ6018 Quad core Cortex-A53 * RAM: 512 MB * Storage: 128MB NAND * Ethernet: * Gigabit RJ45 port with PoE input * WLAN: * 2.4GHz/5GHz * LEDs: * Multi-color System LED (Green/Amber) * Buttons: * 1x Reset * UART: 4-pin unpopulated header * 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V Installation: ============= Web UI method ------------- Set up the device using the vendor's web UI. After that go to Management->SSH and enable the "SSH Login" checkbox. Select "Save". The connect to the machine via SSH: ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device> Disable signature verification: cliclientd stopcs Rename the "-web-ui-factory" image to something less than 63 characters, maintaining the ".bin" suffix. * Go to System -> Firmware Update. * Under "New Firmware File", click "Browse" and select the image * Select "Update" and confirm by clicking "OK". If the update fails, the web UI should show an error message. Otherwise, the device should reboot into OpenWRT. NOTE: If ssh continues to complain that "no matching host key type found. Their offer: ssh-rsa,ssh-dss" it likely means that yor distro has completely disabled deprecated siphers in ssh. In that case, run the ssh command from a docker container of an older distro. TFTP method ----------- To flash via tftp, first place the initramfs image on the TFTP server. setenv serverip <ip of tftp server> setenv ipaddr <ip in same subnet as tftp server> tftpboot tplink_eap625-outdoor-hd-v1-initramfs-uImage.itb bootm This should boot OpenWRT. Once booted, flash the sysupgrade.bin image using either luci or the commandline. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18584 Signed-off-by: Robert Marko <robimarko@gmail.com> |