openwrt/staging/hauke.git
12 months agoipq806x: remove mac-address-increment
Rosen Penev [Sat, 11 Nov 2023 22:59:41 +0000 (14:59 -0800)]
ipq806x: remove mac-address-increment

It's deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agolantiq: remove mac-address-increment
Rosen Penev [Sat, 11 Nov 2023 03:42:31 +0000 (19:42 -0800)]
lantiq: remove mac-address-increment

It's deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agobmips: remove mac-address-increment
Rosen Penev [Sat, 11 Nov 2023 03:33:27 +0000 (19:33 -0800)]
bmips: remove mac-address-increment

It's deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agoRevert "mpc85xx: replace user space MAC with nvmem"
Christian Marangi [Tue, 21 Nov 2023 22:57:44 +0000 (23:57 +0100)]
Revert "mpc85xx: replace user space MAC with nvmem"

This reverts commit 931fcf61891f14dffccd0ad5dfdf7d84460ff9f2.

The definition is wrong and require mac-base compatible. Also it's not
clear if it's correct to use 0xc for mac size.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
12 months agompc85xx: replace user space MAC with nvmem
Rosen Penev [Sun, 19 Nov 2023 01:23:48 +0000 (17:23 -0800)]
mpc85xx: replace user space MAC with nvmem

Possible now that NVMEM supports ASCII.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agompc85xx: remove mac-address-increment
Rosen Penev [Sat, 11 Nov 2023 02:57:43 +0000 (18:57 -0800)]
mpc85xx: remove mac-address-increment

It's deprecated

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agompc85xx: fix dtc warning
Rosen Penev [Tue, 14 Nov 2023 01:09:42 +0000 (17:09 -0800)]
mpc85xx: fix dtc warning

States to remove the linux prefix

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agoocteon: remove mac-address-increment
Rosen Penev [Sat, 11 Nov 2023 02:42:52 +0000 (18:42 -0800)]
octeon: remove mac-address-increment

It's deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
12 months agofirmware-utils: update to Git HEAD (2023-11-21)
Rafał Miłecki [Tue, 21 Nov 2023 20:16:42 +0000 (21:16 +0100)]
firmware-utils: update to Git HEAD (2023-11-21)

12bf1a9 lxlfw: support certificate & signature blobs
eaf2ea2 lxlfw: support extracting image
d770cab lxlfw: support embedding blobs
16fa890 lxlfw: fix struct lxl_hdr attribute
8e149e4 lxlfw: move code copying data to helper function
3b114de lxlfw: move code opening LXL to helper function

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
12 months agokernel: drop "mac-address-increment-byte" DT property support
Rafał Miłecki [Wed, 15 Nov 2023 08:04:47 +0000 (09:04 +0100)]
kernel: drop "mac-address-increment-byte" DT property support

This downstream DT property is not used by any DTS file anymore.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
12 months agofirmware-utils: update to Git HEAD (2023-11-21)
Rafał Miłecki [Tue, 21 Nov 2023 15:30:22 +0000 (16:30 +0100)]
firmware-utils: update to Git HEAD (2023-11-21)

1d42292d8063 tplink-safeloader: Add TP-Link Archer A6 V3.20
3338f5389d72 tplink-safeloader: add TL-WPA8635P v3
17ca5eeb1c10 tplink-safeloader: add TL-WPA8631P v4
f730ad2fa0b4 bcmblob: new tool for reading Broadcom's BLOBs
cb1ddac98124 firmware-utils: fix typo in error message when no OpenSSL library found
916633160dc9 bcmclm: new tool for reading Broadcom's CLM data
a2d49fb1e188 tplink-safeloader: add RU support-list entry for Archer C6U v1
bb12cf5c3fa9 tplink-safeloader: Add support for TP-Link Deco M5 The special_id values are the same for EU and Asian models, and they apply to all models: v1, v2, and v3. They are not sorted as they are currently in the same order as extracted from the official firmware image.
9e2de8515be1 tplink-safeloader: add EAP610 v3 and EAP613 v1
a170683c0e11 firmware-utils: fix use of NULL string progname
89875fc18b57 tplink-safeloader: CPE510: add Canadian support
9e211d2980fe mktplinkfw2: add support to extract bootloader images
c18f662f3c74 mktplinkfw2: add support to pack bootloader
3dc133915f87 mktplinkfw2: show exact exceed bytes when the image is to big
d16ff798d58a tplink-safeloader: WPA8631: add v4 AU, US
0fa1cc51013f zytrx: add LTE5398-M904
635466123429 firmware-utils: ptgen: add SiFive GPT partition support
ba5bc4e1ae9d add dlink-sge-image for D-Link devices by SGE
3b114de29cf7 lxlfw: move code opening LXL to helper function
8e149e480391 lxlfw: move code copying data to helper function
16fa89076122 lxlfw: fix struct lxl_hdr attribute
d770cab82e58 lxlfw: support embedding blobs
eaf2ea28dbe6 lxlfw: support extracting image
12bf1a99bd6e lxlfw: support certificate & signature blobs

Fixes: https://github.com/openwrt/openwrt/issues/12939
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
12 months agoumdns: update to Git HEAD (2023-11-21)
Felix Fietkau [Tue, 21 Nov 2023 06:35:48 +0000 (07:35 +0100)]
umdns: update to Git HEAD (2023-11-21)

9040335e102b interface: fix interface memory corruption
b1e023eda358 add udebug support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agoudebug: update to Git HEAD (2023-11-20)
Felix Fietkau [Mon, 20 Nov 2023 22:03:48 +0000 (23:03 +0100)]
udebug: update to Git HEAD (2023-11-20)

759d9404034b ring: add missing fread return code check

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agonetifd: update to Git HEAD (2023-11-20), adds udebug support
Felix Fietkau [Mon, 20 Nov 2023 18:16:45 +0000 (19:16 +0100)]
netifd: update to Git HEAD (2023-11-20), adds udebug support

9dcc37a77cb2 add udebug support
525fa911e8ab replace DPRINTF calls with D(...)
7642eaba3838 system-linux: fix bogus debug error messages on adding bridge members
f3e06e81b347 wireless: add bridge_isolate option

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agouboot-envtools: add settings for Synology DS213j
Daniel Golle [Sun, 19 Nov 2023 22:04:02 +0000 (22:04 +0000)]
uboot-envtools: add settings for Synology DS213j

Add settings to be able to access the U-Boot environment on the
Synology DS213j NAS.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
12 months agomvebu: add support for Synology DS213j
Daniel Golle [Sun, 19 Nov 2023 22:01:47 +0000 (22:01 +0000)]
mvebu: add support for Synology DS213j

The Synology DS213j is a rather dated dual-bay SATA NAS based on on the
Marvell Armada-370 SoC. It has long been supported in vanilla Linux,
however, flash partitioning there didn't match with reality (ie. the
bootloaders expectations) and nobody cared to wrap up OpenWrt support
for the device.

CPU: Marvell Armada-370 ARMv7 SoC @ 1200 MHz
RAM: 512 MB DDR3
Flash: 8 MB (Micron Technology N25Q064)
Network: 1x 1000M/100M/10M Ethernet (Marvell 88E1510)
SATA: 2x 3.0Gbps
USB: 2x USB 2.0

As OS options are becoming limited on that still quite useful hardware,
patch the flash partitions to be able to get the most out of it when
using OpenWrt.

The vendor firmware loads kernel and initrd from fixed addresses in
the flash, not making use of a modifyable environment stored in flash
which is stored at a location right in the middle of the vendor's
zImage partition (at 0x100000).

Stock firmware flash layout:

0x000000 ~ 0x0c0000 : "RedBoot" (actually U-Boot)
0x0c0000 ~ 0x390000 : "zImage"
0x390000 ~ 0x7d0000 : "rd.gz"
0x7d0000 ~ 0x7e0000 : "vendor" (contains MAC address, serial no)
0x7e0000 ~ 0x7f0000 : "RedBoot Config" (unused? legacy left-over)
0x7f0000 ~ 0x800000 : "FIS directory" (unused? legacy left-over)

OpenWrt flash layout:

0x000000 ~ 0x0c0000 : "u-boot"
0x0c0000 ~ 0x100000 : "gap"
0x100000 ~ 0x110000 : "u-boot-env"
0x110000 ~ 0x7d0000 : "kernel"
0x7d0000 ~ 0x7e0000 : "vendor" (contains MAC address, serial no)
0x7e0000 ~ 0x800000 : "gap2"

"kernel", "gap" and "gap2" are concatenated using the mtd-concat
virtual MTD driver, resulting in a partition "firmware" used by
OpenWrt for kernel, rootfs and rootfs-overlay, 0x720000 (7296kiB) in
total.

Installation:
1. Connect to internal serial console port and Ethernet port,
   providing a TFTP server at a static IPv4 address, e.g.
   192.168.1.254/24.
2. Interrupt bootloader using CTRL+C
3. Configure bootloader to load OpenWrt on future boot:
   setenv bootcmd "bootm f4110000"
   saveenv
4. Load and boot initramfs image via TFTP:
   setenv ipaddr 192.168.1.1
   setenv serverip 192.168.1.254
   tftpboot openwrt-mvebu-cortexa9-synology_ds213j-initramfs-kernel.bin
   bootm
5. Use sysupgrade to load final image.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
12 months agohostapd: add missing acl entries for udebug
Felix Fietkau [Mon, 20 Nov 2023 13:03:43 +0000 (14:03 +0100)]
hostapd: add missing acl entries for udebug

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agoubus: update to Git HEAD (2023-11-14)
Felix Fietkau [Mon, 20 Nov 2023 12:56:57 +0000 (13:56 +0100)]
ubus: update to Git HEAD (2023-11-14)

b3e8c4ef07eb Add auto subscribe support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agohostapd: add udebug support
Felix Fietkau [Mon, 13 Nov 2023 16:44:04 +0000 (17:44 +0100)]
hostapd: add udebug support

This is not activated by default and must be explicitly enabled via ubus
It supports reporting log messages and netlink packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agoudebug: add new package
Felix Fietkau [Sun, 12 Nov 2023 20:28:34 +0000 (21:28 +0100)]
udebug: add new package

This will help with debugging by providing system wide access to per-process
ring buffers with debug data.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 months agoramips: D-Link Dxx-1xx0 image fixes
Rani Hod [Sun, 25 Jun 2023 12:31:54 +0000 (15:31 +0300)]
ramips: D-Link Dxx-1xx0 image fixes

Three fixes for D-Link DAP-1620 rev B and its twin D-Link DRA-1360:

1. `uboot-envtools` is removed from default package list.
2. Makefile variable is doubly escaped, i.e. `$$$$(DLINK_HWID)`.
3. Previously the size of `factory.bin` was always 10.5 MiB, same as
D-Link firmwares. This commit makes it possible to use smaller images
(with no lost space due to padding) as well as larger images. Tested
successfully flashing a 6.5 MiB image and a 14.5 MiB image.

Recall that factory images need to be installed via D-Link Web Recovery
(at http://192.168.0.50/, server ignores pings and DHCP requests).

P.S.
I implemented the OEM firmware encryption algorithm, so firmware can be
flashed via OEM firmware, but after successful flashing the device
reboots to web recovery, so further debugging is required.

Signed-off-by: Rani Hod <rani.hod@gmail.com>
12 months agouboot-mediatek: Fix ubi command in uboot commands
Carter Wang [Sat, 18 Nov 2023 13:40:39 +0000 (13:40 +0000)]
uboot-mediatek: Fix ubi command in uboot commands

Fix typo 'ubi remote ...' -> 'ubi remove ...'.

Signed-off-by: Carter Wang <carter.wang@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
12 months agobase-files: ipcalc.sh: Should take netmask or prefix after slash
Philip Prindeville [Sun, 19 Nov 2023 19:26:15 +0000 (12:26 -0700)]
base-files: ipcalc.sh: Should take netmask or prefix after slash

dnmasq.init now invokes ipcalc.sh as either:

ipcalc.sh address/netmask ...

or:

ipcalc.sh address/prefix

but the existing version doesn't accept the 2nd notation.  We're
trying to rationalize the usage of ipcalc.sh, and here we add
support for the 2nd format.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
12 months agoramips: Add support for TP-Link Archer C50 v6 (CA/EU/RU)
Renaud Gaspard [Sun, 22 Jan 2023 19:41:48 +0000 (20:41 +0100)]
ramips: Add support for TP-Link Archer C50 v6 (CA/EU/RU)

This adds support for the TP-Link Archer C50 v6 (CA/EU/RU).
(The ES variant is a rebranded Archer C54 and NOT supported.)

CPU:   MediaTek MT7628 (580MHz)
RAM:   64M DDR2
FLASH: 8M SPI
WiFi:  2.4GHz 2x2 MT7628 b/g/n integrated
WiFi:  5GHz 2x2 MT7613 a/n/ac
ETH:   1x WAN 4x LAN
LED:   Power, WiFi2, WiFi5, LAN, WAN, WPS
BTN:   WPS/WiFi, RESET
UART:  Near ETH ports, 115200 8n1, TP-Link pinout

Create Factory image
--------------------
As all installation methods require a U-Boot to be integrated into the
image (and we do not ship one with the image). We are not able to create
an image in the OpenWRT build-process.

Download a TP-Link image for your device variant (CA/EU or RU) from their
website and a OpenWRT sysupgrade image for the device
and build yourself a factory image like following:

TP-Link image:             tpl.bin
OpenWRT sysupgrade image:  owrt.bin

 > dd if=tpl.bin of=boot.bin bs=131584 count=1
 > cat owrt.bin >> boot.bin

Installing via Web-UI
---------------------
Upload the boot.bin via TP-Links firmware upgrade tool in the
web-interface.

Installing via Recovery
-----------------------
Activate Web-Recovery by beginning the upgrade Process with a
Firmware-Image from TP-Link. After starting the Firmware Upgrade,
wait ~3 seconds (When update status is switching to 0%), then
disconnect the power supply from the device. Upgrade flag (which
activates Web-Recovery) is written before the OS-image is touched and
removed after write is succesfull, so this procedure should be safe.

Plug the power back in. It will come up in Recovery-Mode on 192.168.0.1.
When active, all LEDs but the WPS LED are off.
Remeber to assign yourself a static IP-address as DHCP is not active in
this mode.

The boot.bin can now be uploaded and flashed using the web-recovery.

Installing via TFTP
-------------------
Prepare an image like following (Filenames from factory image steps
apply here)

 > dd if=/dev/zero of=tp_recovery.bin bs=196608 count=1
 > dd if=tpl.bin of=tmp.bin bs=131584 count=1
 > dd if=tmp.bin of=boot.bin bs=512 skip=1
 > cat boot.bin >> tp_recovery.bin
 > cat owrt.bin >> tp_recovery.bin

Place tp_recovery.bin in root directory of TFTP server and listen on
192.168.0.66/24.

Connect router LAN ports with your computer and power up the router
while pressing the reset button. The router will download the image via
tftp and after ~1 Minute reboot into OpenWRT.

U-Boot CLI
----------
U-Boot CLI can be activated by holding down '4' on bootup.

Dual U-Boot
-----------
This is the first TP-Link MediaTek device to feature a split-uboot
design. The first (factory-uboot) provides recovery via TFTP and HTTP,
jumping straight into the second (firmware-uboot) if no recovery needs
to be performed. The firmware-uboot unpacks and executed the kernel.

Web-Recovery
------------
TP-Link integrated a new Web-Recovery like the one on the Archer C7v4 /
TL-WR1043v5. Stock-firmware sets a flag in the "romfile" partition
before beginning to write and removes it afterwards. If the router boots
with this flag set, bootloader will automatically start Web-recovery and
listens on 192.168.0.1. This way, the vendor-firmware or an OpenWRT
factory image can be written.

By doing the same while performing sysupgrade, we can take advantage of
the Web-recovery in OpenWRT.

It is important to note that Web-Recovery is only based on this flag. It
can't detect e.g. a crashing kernel or other means. Once activated it
won't boot the OS before a recovery action (either via TFTP or HTTP) is
performed. This recovery-mode is indicated by an illuminated WPS-LED on
boot.

Co-authored-by: Julius Schwartzenberg <julius.schwartzenberg@gmail.com>
Signed-off-by: Renaud Gaspard <gaspardrenaud@hotmail.com>
Signed-off-by: Julius Schwartzenberg <julius.schwartzenberg@gmail.com>
Tested-by: Julius Schwartzenberg <julius.schwartzenberg@gmail.com>
Tested-by: Jaroslav Mikulík <byczech@gmail.com>
Tested-by: Ashipa Eko <ashipa.eko@gmail.com>
12 months agoramips: add support for D-Link COVR-X1860 A1
Roland Reinl [Fri, 3 Nov 2023 10:22:02 +0000 (11:22 +0100)]
ramips: add support for D-Link COVR-X1860 A1

The COVR-X1860 are MT7621-based AX1800 devices (similar to DAP-X1860, but
with two Ethernet ports and external power supply) that are sold in sets
of two (COVR-X1862) and three (COVR-X1863).

Specification:
 - MT7621
 - MT7915 + MT7975 2x2 802.11ax (DBDC)
 - 256MB RAM
 - 128 MB flash
 - 3 LEDs (red, orange, white), routed to one indicator in the top of the device
 - 2 buttons (WPS in the back and Reset at the bottom of the device)

MAC addresses:
 - LAN MAC (printed on the device) is stored in config2 partition as ASCII (entry factory_mac=xx:xx:xx:xx:xx:xx)
 - WAN MAC: LAN MAC + 3
 - 2.4G MAC: LAN MAC + 1
 - 5G MAC: LAN MAC + 2

The pins for the serial console are already labeled on the board (VCC, TX, RX, GND). Serial settings: 3.3V, 115200,8n1

Flashing via OEM Web Interface:
 - Download openwrt-ramips-mt7621-dlink_covr-x1860-a1-squashfs-factory.bin via the OEM web interface firmware update
 - The configuration wizard can be skipped by directly going to http://192.168.0.1/UpdateFirmware_Simple.html

Flashing via Recovery Web Interface:
 - Set your IP address to 192.168.0.10, subnetmask 255.255.255.0
 - Press the reset button while powering on the deivce
 - Keep the reset button pressed until the status LED blinks red
 - Open a Chromium based browser and goto http://192.168.0.1
 - Download openwrt-ramips-mt7621-dlink_covr-x1860-a1-squashfs-recovery.bin

Revert back to stock using the Recovery Web Interface:
 - Set your IP address to 192.168.0.10, subnetmask 255.255.255.25
 - Press the reset button while powering on the deivce
 - Keep the reset button pressed until the status LED blinks red
 - Open a Chromium based browser and goto http://192.168.0.1
 - Flash a decrypted firmware image from D-Link. Decrypting an firmware image is described below.

Decrypting a D-Link firmware image:
 - Download https://github.com/openwrt/firmware-utils/blob/master/src/dlink-sge-image.c and https://raw.githubusercontent.com/openwrt/firmware-utils/master/src/dlink-sge-image.h
 - Compile a binary from the downloaded file, e.g. gcc dlink-sge-image.c -lcrypto -o dlink-sge-image
 - Run ./dlink-sge-image COVR-X1860 <OriginalFirmware> <OutputFile> -d
 - Example for firmware 102b01: ./dlink-sge-image COVR-X1860 COVR-X1860_RevA_Firmware_102b01.bin COVR-X1860_RevA_Firmware_102b01_Decrypted.bin -d

The pull request is based on the discussion in https://forum.openwrt.org/t/add-support-for-d-link-covr-x1860

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
12 months agohostapd: fix undeclared variable iface_name
Nazar Mokrynskyi [Tue, 14 Nov 2023 03:49:28 +0000 (05:49 +0200)]
hostapd: fix undeclared variable iface_name

Signed-off-by: Nazar Mokrynskyi <nazar@mokrynskyi.com>
12 months agox86,armsr: interpolate GRUB_SERIAL into /etc/inittab
Philip Prindeville [Wed, 13 Sep 2023 16:09:43 +0000 (10:09 -0600)]
x86,armsr: interpolate GRUB_SERIAL into /etc/inittab

Some platforms have their console on other ports than ttyS0, so
allow the developer to tailor this on bespoke platform images.

Fixes issue #13401.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
12 months agou-boot.mk: do not force parallel build
Martin Schiller [Thu, 16 Nov 2023 13:10:46 +0000 (14:10 +0100)]
u-boot.mk: do not force parallel build

Some patched u-boots may have problems with parallel build.
Do not enforce parallel build here so one can set PKG_BUILD_PARALLEL:=0
in the specific u-boot Makefile also before including the u-boot.mk.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
12 months agomediatek: filogic: add JCG Q30 PRO support
Chukun Pan [Fri, 16 Jun 2023 15:16:30 +0000 (23:16 +0800)]
mediatek: filogic: add JCG Q30 PRO support

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: Winbond 128MB
  RAM: DDR3 256MB
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset
  Power: DC 12V 1A

Flash instructions:
  1. Connect to your PC via the Gigabit port of the router,
     set a static ip on the ethernet interface of your PC.
     (ip 192.168.1.254, gateway 192.168.1.1)
  2. Attach UART, pause at u-boot menu.
  3. Select "Upgrade ATF BL2", then use preloader.bin
  4. Select "Upgrade ATF FIP", then use bl31-uboot.fip
  5. Download the initramfs image, and type "reset",
     waiting for tftp recovery to complete.
  6. After openwrt boots up, perform sysupgrade.

Note:
  1. Since NMBM is disabled, we must back up all partitions.
  2. Although we can upgrade new firmware in the stock firmware,
     we need the special fit image signature of MediaTek and
     dual boot (hack kernel) to make u-boot boot it. So just
     abandon these hacks and flash it via the serial port.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
12 months agouboot-mediatek: add JCG Q30 PRO support
Chukun Pan [Thu, 15 Jun 2023 15:21:40 +0000 (23:21 +0800)]
uboot-mediatek: add JCG Q30 PRO support

The vendor uboot will verify firmware at boot.
So add a custom uboot build for this device.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
12 months agokernel: remove CONFIG_DEVTMPFS_SAFE from target config
Hauke Mehrtens [Sun, 19 Nov 2023 15:45:19 +0000 (16:45 +0100)]
kernel: remove CONFIG_DEVTMPFS_SAFE from target config

CONFIG_DEVTMPFS_SAFE is now part of the generic configuration. Remove it
from the target configurations.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 months agokernel: 6.1: Add missing config option DEVTMPFS_SAFE
Marius Dinu [Thu, 5 Oct 2023 05:04:24 +0000 (08:04 +0300)]
kernel: 6.1: Add missing config option DEVTMPFS_SAFE

Fixes build error when enabling CONFIG_KERNEL_DEVTMPFS in OpenWrt menuconfig.

Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
12 months agoqualcommax: add addresses to DP nodes
Robert Marko [Wed, 15 Nov 2023 22:04:46 +0000 (23:04 +0100)]
qualcommax: add addresses to DP nodes

DP nodes live under the soc node, and since soc is a simple bus it requires
node adresses to be present.

So, simply add the node addreses to avoid the following dtc warning:
Warning (unit_address_vs_reg): /soc/dp1: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp2: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp3: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp4: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp5: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp6: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp5-syn: node has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): /soc/dp6-syn: node has a reg or ranges property, but no unit name

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoCI: issue-labeller: fix wrong CRLF line-ending
Christian Marangi [Thu, 16 Nov 2023 11:36:37 +0000 (12:36 +0100)]
CI: issue-labeller: fix wrong CRLF line-ending

Fix wrong CRLF line-ending in issue-labeller workflow.

Fixes: e3a0476d1bdc ("CI: add issue labeller action")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agodnsmasq: Invoke new ipcalc with CIDR notation
Philip Prindeville [Sun, 5 Nov 2023 19:23:29 +0000 (12:23 -0700)]
dnsmasq: Invoke new ipcalc with CIDR notation

The new rewritten ipcalc.sh understands 3 notations:

ipaddr/prefix ...
ipaddr/dotted-netmask ...
ipaddr dotted-netmask ...

meaning that the previous 4th non-standard notation of "ipaddr prefix"
will be dropped, alas that's the notation that dnsmasq currently uses.

This change has us using the first notation which is the most common.

This behavior came in as
https://github.com/openwrt/openwrt/commit/eda27e8382f3e5253defab5419e95d4b51f72de3
a long time ago.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
13 months agoqualcommax: fix line endings in ESS dt-bindings
Robert Marko [Wed, 15 Nov 2023 16:35:38 +0000 (17:35 +0100)]
qualcommax: fix line endings in ESS dt-bindings

It seems that ESS dt-bindings somehow ended up with Windows line endings,
this is obviously incorrect, so lets convert it to UNIX endings.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoipq807x: fix typo in WAX630 for switch lan bmp
Christian Marangi [Wed, 15 Nov 2023 10:23:23 +0000 (11:23 +0100)]
ipq807x: fix typo in WAX630 for switch lan bmp

In fixing ipq8074 WAX630 dts, there was a typo in the switch lan bmp.
Fix it to fix compilarion error.

Fixes: f3cd4bfb7f69 ("ipq807x: fix multiple error on ESS switch port define")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoipq807x: fix multiple error on ESS switch port define
Christian Marangi [Tue, 14 Nov 2023 21:35:31 +0000 (22:35 +0100)]
ipq807x: fix multiple error on ESS switch port define

Fix multiple error on ESS switch port define.
- Fix wrong switch CPU and WAN bmp define. (many times wan port are
  actually set in lan mask and lan port in wan mask)
- Renumber phyinfo port, use port_id instead of phy_address as it
  doesn't make sense using that for port enumeration
- Drop additional port for devices that have them not connected.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoqca-ssdk: disable building ISISC
Robert Marko [Tue, 14 Nov 2023 13:51:14 +0000 (14:51 +0100)]
qca-ssdk: disable building ISISC

ISISC is the QCA codename for their Atheros switch family including
AR237, QCA8337 etc.

Since we have qca8k support in OpenWrt, there is no need to have SSDK
support for these switches, and boards that also have external switches
can just use qca8k.

Disable QCA803x PHY support as well, since all of those are supportable
via at803x driver.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoCI: add issue labeller action
Christian Marangi [Mon, 13 Nov 2023 01:09:57 +0000 (02:09 +0100)]
CI: add issue labeller action

Add issue labeler action. This action will parse BUG issue from the
template and will make validation on the insert data.

The action will:
- Tag the issue with SNAPSHOT or release based on the provided release
- Tag the issue with the reported tag
- Tag the issue with the image kind (Official or Self Built)
- Validate the reported version exist
- Validate the reported release exist
- Validate the reported device exist

Will also tag the issue with useful tag or flag the issue as invalid.
Will also comment the issue with the invalid info provided.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agogithub: add release info to BUG template
Christian Marangi [Mon, 13 Nov 2023 01:01:01 +0000 (02:01 +0100)]
github: add release info to BUG template

Add release info to BUG template. Having the reported release is an
additional info to better bisect the bug and what release is affected.

This is also useful in preparation for action that will parse BUG
template and add tag and do validations.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoscripts/dump-target-info.pl: add new function to DUMP devices
Christian Marangi [Sun, 12 Nov 2023 18:14:46 +0000 (19:14 +0100)]
scripts/dump-target-info.pl: add new function to DUMP devices

Add new function to dump-targer-info.pl to DUMP devices provided a
matching target/subtarget.

Example:

./scripts/dump-targer-info.pl devices ipq806x/generic

will produce the sorted list of devices defined in the following format:

device_id device_name

Devices may have alternative names, the script will dump each
alternative name in the same line of device_id.

Following the pattern:

device_id "PRIMARY DEVICE NAME" "ALT0 DEVICE NAME" "ALT1 DEVICE NAME" ...

Example:

tplink_ad7200 "TP-Link AD7200 v1/v2" "TP-Link Talon AD7200 v1/v2"

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoath79: use "fixed-layout" for Embedded Wireless devices
Rafał Miłecki [Fri, 10 Nov 2023 10:25:05 +0000 (11:25 +0100)]
ath79: use "fixed-layout" for Embedded Wireless devices

Those devices have Ethernet interfaces using base MAC address increased
by 0x40 in the 3rd indexed byte (00:00:00:FF:00:00). To describe that we
were using a custom (downstream) "mac-address-increment-byte" property.

The same result can be achieved by using "mac-base" with a properly
adjusted offset value (0x40 << 16). It may be not pretty but it should
work without custom property or downstream kernel patch to support it.

Cc: Ansuel Smith <ansuelsmth@gmail.com>
Cc: Catrinel Catrinescu <cc@80211.de>
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Rosen Penev <rosenp@gmail.com>
13 months agoipq806x: fix wrong LEDs mode for non-standard qca8k LEDs
Christian Marangi [Wed, 15 Nov 2023 00:20:56 +0000 (01:20 +0100)]
ipq806x: fix wrong LEDs mode for non-standard qca8k LEDs

There was a typo in the LED definition for the mode of non-standard
qca8k LEDs. Mode for link speed was wrongly set to link-10 link-100
link-1000 while the real mode in sysfs is link_10 link_100 and
link_1000.

Fix the entry to the correct mode.

Fixes: c707cff6c94b ("ipq806x: add LEDs definition for non-standard qca8k LEDs")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agonetifd: update to Git HEAD (2023-11-14)
Jo-Philipp Wich [Tue, 14 Nov 2023 14:35:03 +0000 (15:35 +0100)]
netifd: update to Git HEAD (2023-11-14)

8587c074f1eb interface-ip: fix IPv4 route target masking

Fixes: https://github.com/openwrt/netifd/issues/17
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
13 months agoqca-ssdk: disable PTP and swconfig by default
Robert Marko [Tue, 14 Nov 2023 08:47:38 +0000 (09:47 +0100)]
qca-ssdk: disable PTP and swconfig by default

PTP and swconfig support in SSDK require kernel modifications we dont need
nor we want to support for now, so move the PTP and swconfig disablement
into general build options as they are not ipq807x specific.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoqca-ssdk: pass SoC to build
Robert Marko [Tue, 14 Nov 2023 08:22:40 +0000 (09:22 +0100)]
qca-ssdk: pass SoC to build

Recent SSDK versions started also parsing the "SoC" variable to identify
the SoC along with the "CHIP_TYPE".

We are not passing "SoC" currently and this leads to components we dont
need like MHT (New 2.5G quad port switch) being compiled and then unused,
so lets just pass the "SoC" as well.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoqualcommax: move switch tick mode setting to ESS DTSI
Robert Marko [Mon, 13 Nov 2023 20:54:06 +0000 (21:54 +0100)]
qualcommax: move switch tick mode setting to ESS DTSI

Every board in qualcommax is using the same BM and TM switch tick modes, so
instead of specifying them in each board lets just set them in the ESS DTSI
directly.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoqualcommax: use defines for MAC mode setting
Robert Marko [Sun, 12 Nov 2023 16:24:43 +0000 (17:24 +0100)]
qualcommax: use defines for MAC mode setting

Now that we have the MAC modes defined in DT bindings, lets replace all of
the raw hex values with defines.

While we are here, we can drop the disabled UNIPHY-s as that is the default
value in the ESS DTSI.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoqualcommax: set default switch MAC modes
Robert Marko [Sat, 11 Nov 2023 20:50:15 +0000 (21:50 +0100)]
qualcommax: set default switch MAC modes

Every board that has the switch enabled needs to have MAC modes defined for
all 3 UNIPHY instances.

So, instead of having to at least put the disabled MAC mode for UNIPHY-s
let disable them by default and then boards can override it.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoqualcommax: add bindings for MAC modes
Robert Marko [Sat, 11 Nov 2023 20:44:59 +0000 (21:44 +0100)]
qualcommax: add bindings for MAC modes

Since every board needs to define the correct MAC modes, it makes sense
to document the allowed hex values with a humanly readable name.

So, lets document all of the allowed MAC modes from SSDK 12.4 as bindings,
so later we can replace all of the hex values in DTS-es with these.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoRevert "prereq-build: add Python 3.12 support"
Paul Spooren [Mon, 13 Nov 2023 22:32:12 +0000 (23:32 +0100)]
Revert "prereq-build: add Python 3.12 support"

This reverts commit 7ceb76ca3a37ba6b722df39ba0838909fa7cf7b4.

Python 3.12 removes the distutils package and is therefore not
compatible. We have to check downstream what relies on distutils before
adding actual support for Python 3.12. Sorry for the noise.

With this in-place, the macOS CI job fails and turns things red, revert
for now.

Signed-off-by: Paul Spooren <mail@aparcar.org>
13 months agomac80211: realtek: rtw88: add RTL8822CU support
Chukun Pan [Fri, 29 Sep 2023 15:05:26 +0000 (23:05 +0800)]
mac80211: realtek: rtw88: add RTL8822CU support

Add the Realtek RTL8822CU support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agomac80211: realtek: rtw88: add RTL8821CU support
Chukun Pan [Thu, 28 Sep 2023 15:09:20 +0000 (23:09 +0800)]
mac80211: realtek: rtw88: add RTL8821CU support

Add the Realtek RTL8821CU support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agomac80211: realtek: rtw88: add RTL8821CE support
Chukun Pan [Wed, 27 Sep 2023 15:01:50 +0000 (23:01 +0800)]
mac80211: realtek: rtw88: add RTL8821CE support

Add the Realtek RTL8821CE support to rtw88 package.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agomac80211: realtek: fix rtw88 driver dependencies
Chukun Pan [Mon, 13 Nov 2023 14:18:06 +0000 (22:18 +0800)]
mac80211: realtek: fix rtw88 driver dependencies

The RTW88 PCI/USB driver uses the same firmware,
so add firmware dependencies.

Also CI report that:
  Package kmod-rtw88-usb is missing dependencies for the following libraries:
  usbcore.ko
This commit fixes it.

Fixes: 3538a19 ("mac80211: split rtw88 configuration for each supported chip")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agolinux-firmware: add Realtek RTW89 firmware
Chukun Pan [Tue, 26 Sep 2023 15:03:28 +0000 (23:03 +0800)]
linux-firmware: add Realtek RTW89 firmware

This is the firmware required for the rtw89 driver.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agolinux-firmware: add Realtek RTL8723DE/RTL8821CE firmware
Chukun Pan [Mon, 25 Sep 2023 15:40:02 +0000 (23:40 +0800)]
linux-firmware: add Realtek RTL8723DE/RTL8821CE firmware

This adds packages for the Realtek RTL8723DE/RTL8821CE
firmware to be used with the rtw88 driver.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
13 months agodevel/gdb: Disable libzstd explicitly
Hannu Nyman [Sun, 12 Nov 2023 18:34:45 +0000 (20:34 +0200)]
devel/gdb: Disable libzstd explicitly

New gdb has got libzstd support, and libzstd gets detected
at buildbot build. Explicitly disable it to avoid dependency.

Fixes: f79de8ec65 ("gdb: Update to 13.2")
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
13 months agoqca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp
Christian Marangi [Sun, 12 Nov 2023 19:25:24 +0000 (20:25 +0100)]
qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp

Commit 947b44d ("ipq807x: fix wrong define for LAN and WAN ess mask")
started fixing wrong switch_lan_bmp that defined lan there weren't
actually present. This displayed a fragility in the malibu phy init code
in qca-ssdk.

Add patch to fix this. Also update each DTS with the new required
property if needed.

The new binding malibu_phy_start_addr is required with devices that
place the malibu first PHY referring port1 on a different PHY addres
than 0. The most common configuration is 0 but some device (for example
Qnap 301W) place the malibu PHY at an offset to address 16.

Refer to ipq8074-ess dtsi for extensive description on how to derive
this value.

Quoting the patch detailed description:

The usage of first_phy_addr is EXTREMELY FRAGILE and results
in dangerous results if the OEM (or anyone that by chance try to
implement things in a logical manner) deviates from the default values
from the "magical template".

To be in more details. With QSDK 12.4, some tweaks were done to improve
autoneg and now on every call of port status, the phydev is tried to
add. This resulted in the call and log spam of an error with ports that
are actually not present on the system with qsdk reporting phydev is
NULL. This itself is not an error and printing the error is correct.

What is actually an error from ages is setting generic bitmap reporting
presence of port that are actually not present. This is very common on
OEM where the switch_lan_bmp is always a variant of 0x1e (that on bitmap
results in PORT1 PORT2 PORT3 PORT4 present) or 0x3e (PORT1 PORT2 PORT3
PORT4 PORT5). Reality is that many device are used as AP with one LAN
port or one WAN port. (or even exotic configuration with PORT1 not
present and PORT2 PORT3 PORT4 present (Xiaomi 3600)

With this finding one can say... ok nice, then lets update the DT and
set the correct bitmap...

Again world is a bad place and reality is that this cause wonderful
regression in some case of by extreme luck the first ever connected
port working and the rest of the switch dead.

The problem has been bisected to all the device that doesn't have the
PORT1 declared in any of the bitmap.

With this prefaction in mind, on to the REAL problem.

malibu_phy_hw_init FOR SOME REASON, set a global variable first_phy_addr
to the first detected PHY addr that coincidentally is always PORT1.
PORT1 addr is 0x0. The entire code in malibu_phy use this variable to
derive the phy addrs in some function.

Declaring a bitmap where the PORT1 is missing (or worse PORT4 the only
one connected) result in first_phy_addr set to 1 or whatever phy addr is
detected first setting wrong value all over the init stage.

To fix this, introduce a new binding malibu_first_phy_addr to manually
declare the first phy that the malibu PHY driver should use and permit
to detach it from port bmp detection. The legacy detection is kept for
compatibility reason.

Fixes: #13945
Fixes: 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Robert Marko <robimarko@gmail.com> # Qnap 301W
Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoRevert "qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp"
Christian Marangi [Sun, 12 Nov 2023 19:23:19 +0000 (20:23 +0100)]
Revert "qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp"

This reverts commit 8cce00bc9dddc3fc47d63625b0f512693c27ce2f.

The confusion was real and this change cause regression on other
advanced devices that makes actual use of the first_phy_addr value.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agotreewide: fix shell errors during dump stage
Petr Štetiar [Thu, 15 Jun 2023 14:11:27 +0000 (16:11 +0200)]
treewide: fix shell errors during dump stage

Fixes following issues:

 bash: -c: line 1: `echo 1686820180<LINUX_VERMAGIC> | /staging_dir/host/bin/mkhash md5 | cut -b1-8'
 bash: -c: line 1: `echo 1686820180<LINUX_VERMAGIC> | /staging_dir/host/bin/mkhash md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/''
 bash: -c: line 1: syntax error near unexpected token `|'
 bash: line 1: *1024*1024: syntax error: operand expected (error token is "*1024*1024")
 bash: line 1: (64 + ): syntax error: operand expected (error token is ")")
 expr: syntax error: missing argument after '+'

Signed-off-by: Petr Štetiar <ynezz@true.cz>
13 months agoscan.mk: do not silence output of dump phase
Petr Štetiar [Thu, 15 Jun 2023 14:11:26 +0000 (16:11 +0200)]
scan.mk: do not silence output of dump phase

Make it easier to spot currently hidden issues:

 $ make defconfig V=sc
 ...
 Collecting target info: target/linux/airohabash: -c: line 1: syntax error near unexpected token `|'
 bash: -c: line 1: `echo 1686815253<LINUX_VERMAGIC> | staging_dir/host/bin/mkhash md5 | cut -b1-8'
 bash: -c: line 1: syntax error near unexpected token `|'
 bash: -c: line 1: `echo 1686815253<LINUX_VERMAGIC> | staging_dir/host/bin/mkhash md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/''
 ...

Signed-off-by: Petr Štetiar <ynezz@true.cz>
13 months agomac80211: rt2x00: correct wrong BBP register in RxDCOC calibration
Shiji Yang [Thu, 9 Nov 2023 04:42:09 +0000 (12:42 +0800)]
mac80211: rt2x00: correct wrong BBP register in RxDCOC calibration

This fix can reduce the total calibration time from 6 seconds to
1 second.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
13 months agomac80211: sync some rt2x00 patches with wireless-next
Shiji Yang [Wed, 25 Oct 2023 12:09:23 +0000 (20:09 +0800)]
mac80211: sync some rt2x00 patches with wireless-next

Some local patches have been sent to upstream and they are slightly
different from the upstream version. So it's better to replace them
to avoid conflicts with the new mac80211 backport driver. The
different parts have been merged into patch 996.

This commit also includes some additional fixes:
* Fix watchdog function.
* Improve MT7620 register initialization.
* Introduce DMA busy watchdog for rt2800.

P.S.
Sometimes rt2800 series chips may fall into a DMA busy state. The
tx queues become very slow and the client cannot connect to the AP.
Usually, We can see a lot of hostapd warnings at this point:
'hostapd: IEEE 802.11: did not acknowledge authentication response'

The DMA busy watchdog can help the driver automatically recover
from this abnormal state. By the way, setting higer 'cell_density'
and disabling 'disassoc_low_ack' can significantly reduce the
probability of the DMA busy.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
13 months agomac80211: add support for rtw88_8822bu
Alexis Lothoré [Sat, 4 Nov 2023 04:48:42 +0000 (21:48 -0700)]
mac80211: add support for rtw88_8822bu

Kernel 6.1 has introduced support for RTW8822BU network adapter, which
is an USB variant of the rtw8822b 802.11ac chipset family.

Build and install the corresponding module in the rtw88 package

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
13 months agomac80211: split rtw88 configuration for each supported chip
Alexis Lothoré [Sat, 4 Nov 2023 04:48:41 +0000 (21:48 -0700)]
mac80211: split rtw88 configuration for each supported chip

Current rtw88 build configuration builds modules for all chips supported by
rtw88 driver family. This brings the following issues:
- adding a chip with a different bus is not convenient (all chips currently
  depends on PCI)
- some features requirements are not relevant for all chips in family (eg
  802.11AC is enforced but RTW88-8723DE is only a 802.11b/g/n chip)

Remove those constraints/issues by adding one module build option per
supported chip, and add intermediate options to properly cascade
dependencies.

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
13 months agomediatek: Add support for TP-Link EAP225v5
Roland Reinl [Sun, 1 Oct 2023 09:25:40 +0000 (11:25 +0200)]
mediatek: Add support for TP-Link EAP225v5

Device specification:
- MT7629 with 16MB NOR flash W25Q128 and 128 MB DDR3 RAM.
- MT7761N and MT7762N wireless chips (currenlty no driver in OpenWrt available)
  - WiFi is NOT working on this device
- Dual core but second CPU doesn't seem to work (Error message during boot: "CPU1: failed to come online")

There are two similar merge requests for similar devices with the same issues:
- https://github.com/openwrt/openwrt/pull/12286
- https://github.com/openwrt/openwrt/pull/5084

UART interface is next to the reset button, pinout:
- 1: TX (the pin with the arrow marker)
- 2: RX
- 3: GND
- 4: VCC

UART settings: 115200,8n1, 3.3V

U-Boot menu can be entered by pressing Ctrl+B during startup.

Booting initramfs:
- Set your computers IP adress to 192.168.1.110
- Run a TFTP server providing the initramfs image
- Power on the AP, press Ctrl+B to get to the U-Boot menu
- Select "1. System Load Linux to SDRAM via TFTP"
- Update kernel file name, input server IP and input device IP (if they deviate from the defaults)
- After booting, create a backup of all partitions, especially for kernel and root_fs. They are required for reverting back to stock firmware
- The sysupgrade image can be flashed now

MAC adresses:
- LAN and 2.4GHz use the same MAC (the one printed on the device)
- 5GHz WiFi MAC is LAN MAC + 1

GPIOs:
- GPIO 21 is the reset pin (low active)
- GPIO 55 is for the green LED (active high)
- GPIO 56 is for the yellow/amber LED (active high)

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
13 months agomediatek: Add support for D-Link EAGLE PRO AI M32
Roland Reinl [Thu, 20 Jul 2023 14:00:50 +0000 (16:00 +0200)]
mediatek: Add support for D-Link EAGLE PRO AI M32

Specification:
 - MT7622BV SoC with 2.4GHz wifi
 - MT7975AN + MT7915AN for 5GHz
 - MT7531BE Switch
 - 512MB RAM
 - 128 MB flash
 - 3 LEDs (red, orange, white)
 - 2 buttons (WPS and Reset)

MAC addresses:
 - WAN MAC is stored in partition "Odm" at offset 0x83
 - LAN (as printed on the device) is WAN MAC + 1
 - WLAN MAC (2.4 GHz) is WAN MAC + 2
 - WLAN MAC (5GHz) is WAN MAC + 3

Disassembly: Remove 4 screws in the bottom and 2 screws in the top (after removing the blue cover on the top), then the board can be pulled out.

The pins for the serial console are already labeled on the board (VCC, TX, RX, GND). Serial settings: 3.3V, 115200,8n1

Flashing via Recovery Web Interface:
- Set your IP address to 192.168.0.10, subnetmask 255.255.255.25
- Press the reset button while powering on the deivce
- Keep the reset button pressed until the status LED blinks fast
- Open a Chromium based and goto http://192.168.0.1
- Download openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-a1-squashfs-recovery.bin

Flashing via uBoot:
- Open the case, connect to the UART console
- Set your IP address to 10.10.10.3, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router
- Run a tftp server which provides openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-initramfs-kernel.bin. You can rename the file to iverson_uImage (no extension), then you don't have to enter the whole file name in uboot later.
- Power on the device and select "1. System Load Linux to SDRAM via TFTP." in the boot menu
- Enter image file, tftp server IP and device IP (if they differ from the default).
- TFTP download to RAM will start. After a few seconds OpenWrt initramfs should start
- The initramfs is accessible via 192.168.1.1, change your IP address accordingly (or use multiple IP addresses on your interface)
- Create a backup of the Kernel1 partition, this file is required if a revert to stock should be done later
- Perform a sysupgrade using openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-squashfs-sysupgrade.bin
- Reboot the device. OpenWrt should start from flash now

Revert back to stock using the Recovery Web Interface:
- Set your IP address to 192.168.0.10, subnetmask 255.255.255.25
- Press the reset button while powering on the deivce
- Keep the reset button pressed until the status LED blinks fast
- Open a Chromium based and goto http://192.168.0.1
- Flash a decrypted firmware image from D-Link. Decrypting an firmware image is described below.

Decrypting a D-Link firmware image:
- Download https://github.com/RolandoMagico/firmware-utils/blob/M32/src/m32-firmware-util.c
- Compile a binary from the downloaded file, e.g. gcc m32-firmware-util.c -lcrypto -o m32-firmware-util
- Run ./m32-firmware-util M32 --DecryptFactoryImage <OriginalFirmware> <OutputFile>
- Example for firmware 1.03.01_HOTFIX: ./m32-firmware-util M32 --DecryptFactoryImage M32-REVA_1.03.01_HOTFIX.enc.bin M32-REVA_1.03.01_HOTFIX.decrypted.bin

Revert back to stock using uBoot:
- Open the case, connect to the UART console
- Set your IP address to 10.10.10.3, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router
- Run a tftp server which provides the previously created backup of the Kernel1 partition. You can rename the file to iverson_uImage (no extension), then you don't have to enter the whole file name in uboot later.
- Power on the device and select "2. System Load Linux Kernel then write to Flash via TFTP." in the boot menu
- Enter image file, tftp server IP and device IP (if they differ from the default).
- TFTP download to FLASH will start. After a few seconds the stock firmware should start again

There is also an image openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-a1-squashfs-tftp.bin which can directly be flashed via U-Boot and TFTP. It can be used if no backup of the Kernel1 partition is reuqired.

Flahsing via OEM web interface is currently not possible, the OEM images are encrypted and require a specific memory layout which is not compatible to the partition layout of OpenWrt.

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
13 months agobase-files: Create /root w/ appropriate permissions
Philip Prindeville [Wed, 13 Sep 2023 15:10:32 +0000 (09:10 -0600)]
base-files: Create /root w/ appropriate permissions

If /root is created with too permissive permissions, then sshd won't
trust the contents of /root/.ssh as being adequately protected.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
13 months agomac80211: ath9k-htc: support "chanbw" in debugfs
Lech Perczak [Tue, 7 Nov 2023 00:29:57 +0000 (01:29 +0100)]
mac80211: ath9k-htc: support "chanbw" in debugfs

ath9k-htc USB-based adapters also support 5/10MHz channel bandwidth.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
13 months agomac80211: ath9k-htc: support "eeprom" in debugfs
Lech Perczak [Tue, 7 Nov 2023 00:02:11 +0000 (01:02 +0100)]
mac80211: ath9k-htc: support "eeprom" in debugfs

ath9k-htc USB-based adapterssupport 5/10MHz channel bandwidth, the
same as standard ath9k ones.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
13 months agoscripts/getver.sh: prevent asking for negative rev-parse
Christian Marangi [Sun, 12 Nov 2023 15:15:07 +0000 (16:15 +0100)]
scripts/getver.sh: prevent asking for negative rev-parse

With the case of asking an invalid version that is too big, getver.sh
might return an invalid output in the form of HEAD~-2260475641.

This is caused by BASE_REV - GET_REV using a negative number.

Prevent this by checking if BASE_REV - GET_REV actually return 0 or a
positive number and set REV variable accordingly. With the following
change, invalid revision number will result in unknown printed instead
of the invalid HEAD~-NUMBERS output.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agokernel: kmod-usb-serial-mos7720: support parallel port in MCS7715
Lech Perczak [Sun, 27 Oct 2019 13:31:30 +0000 (14:31 +0100)]
kernel: kmod-usb-serial-mos7720: support parallel port in MCS7715

In-kernel driver for MCS7715 USB-serial bridge has a bool option,
enabling support for parallel port on that chip - which is tied to the
same kernel module. Enable it and select kmod-ppdev, as the image size
increase is minimal and the package isn't bundled in the images by
default.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
13 months agoramips: mt7621: use lzma-loader for Sercomm NA502
Szabolcs Hubai [Wed, 8 Nov 2023 12:50:55 +0000 (13:50 +0100)]
ramips: mt7621: use lzma-loader for Sercomm NA502

This fixes a well known "LZMA ERROR 1" error on Sercomm NA502,
reported on the OpenWrt forum. [1]

[1]: https://forum.openwrt.org/t/176942

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
13 months agoramips: add encrypted SGE factory image for D-Link devices
Alan Luck [Tue, 7 Nov 2023 22:10:35 +0000 (09:10 +1100)]
ramips: add encrypted SGE factory image for D-Link devices

creates SGE encrypted factory images
to use via the D-Link web interface
rename the old factory unencrypted images to recovery
for use in the recovery console when recovery is needed
DIR-1935-A1 , DIR-853-A1 , DIR-853-A3 , DIR-867-A1 ,
DIR-878-A1 and DIR-882-A1

Signed-off-by: Alan Luck <luckyhome2008@gmail.com>
13 months agomvebu: fix PXA I2C bus with recovery
Robert Marko [Fri, 10 Nov 2023 12:42:34 +0000 (13:42 +0100)]
mvebu: fix PXA I2C bus with recovery

Since kernel 5.11, the PXA I2C driver has been converted to generic I2C
recovery, which makes the I2C bus completely lock up if recovery pinctrl
is present in the DT and I2C recovery is enabled.

This effectively completely broke I2C on Methode uDPU and eDPU boards
as both of them rely on I2C recovery.

After a discussion upstream, it was concluded that there is no simple fix
and that the blamed upstream commit:
0b01392c18b9993a584f36ace1d61118772ad0ca ("i2c: pxa: move to generic GPIO
recovery") should be reverted.
I have sent the revert upstream, it should be merged soon so lets "fix"
OpenWrt as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
13 months agoiptables: backport patch fixing bug with string module
Christian Marangi [Sun, 12 Nov 2023 13:10:23 +0000 (14:10 +0100)]
iptables: backport patch fixing bug with string module

Backport patch fixing critical bug with string module merged upstream.

Fixes: #13812
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoprereq-build: add Python 3.12 support
Rosen Penev [Thu, 9 Nov 2023 18:53:02 +0000 (10:53 -0800)]
prereq-build: add Python 3.12 support

Fixes build on Fedora 39.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
13 months agoath10k-ct: Restore functionality after switch to 6.4 version
Hannu Nyman [Sat, 11 Nov 2023 17:03:57 +0000 (19:03 +0200)]
ath10k-ct: Restore functionality after switch to 6.4 version

Adjust our local ath10k-ct patches to the change
from the -ct 6.2 version to 6.4.

This restores e.g. the LED functionality.

Fixes: 7d3651f1b9b ("ath10k-ct: switch to 6.4")
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
13 months agoqca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp
Christian Marangi [Sat, 11 Nov 2023 17:34:27 +0000 (18:34 +0100)]
qca-ssdk: fix unsupported scenario with PORT1 not declared in switch bmp

Commit 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask")
started fixing wrong switch_lan_bmp that defined lan there weren't
actually present. This displayed a fragility in the malibu phy init code
in qca-ssdk.

Add patch to fix this.

Quoting the patch detailed description:

I'm very confused by this and to me it's not clear the real usage of
this logic.

From what I can see the usage of this is EXTREMELY FRAGILE and results
in dangerous results if the OEM (or anyone that by chance try to
implement things in a logical manner) deviates from the default values
from the "magical template".

To be in more details. With QSDK 12.4, some tweaks were done to improve
autoneg and now on every call of port status, the phydev is tried to
add. This resulted in the call and log spam of an error with ports that
are actually not present on the system with qsdk reporting phydev is
NULL. This itself is not an error and printing the error is correct.

What is actually an error from ages is setting generic bitmap reporting
presence of port that are actually not present. This is very common on
OEM where the switch_lan_bmp is always a variant of 0x1e (that on bitmap
results in PORT1 PORT2 PORT3 PORT4 present) or 0x3e (PORT1 PORT2 PORT3
PORT4 PORT5). Reality is that many device are used as AP with one LAN
port or one WAN port. (or even exotic configuration with PORT1 not
present and PORT2 PORT3 PORT4 present (Xiaomi 3600)

With this finding one can say... ok nice, then lets update the DT and
set the correct bitmap...

Again world is a bad place and reality is that this cause wonderful
regression in some case of by extreme luck the first ever connected
port working and the rest of the switch dead.

The problem has been bisected to all the device that doesn't have the
PORT1 declared in any of the bitmap.

With this perfection in mind, on to the REAL problem.

malibu_phy_hw_init FOR SOME REASON, set a global variable first_phy_addr
to the first detected PHY addr that coincidentally is always PORT1.
PORT1 addr is 0x0. The entire code in malibu_phy use this variable to
derive the phy addrs in some function.

Declaring a bitmap where the PORT1 is missing (or worse PORT4 the only
one connected) result in first_phy_addr set to 1 or whatever phy addr is
detected first setting wrong value all over the init stage.

To fix this, just drop this variable and hardcode everything to assume
the first phy adrr is ALWAYS 0 and remove calculation and use define for
special case.

With the following change normal switch traffic is restored and ports
function is recovered.

Fixes: #13945
Fixes: 947b44d9ae17 ("ipq807x: fix wrong define for LAN and WAN ess mask")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agonetifd: update to Git HEAD (2023-11-11)
Christian Marangi [Sat, 11 Nov 2023 22:38:30 +0000 (23:38 +0100)]
netifd: update to Git HEAD (2023-11-11)

c739dee0a37b system-linux: refresh MAC address on DSA port conduit change

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agodebugcc: add licensing information
Petr Štetiar [Fri, 10 Nov 2023 21:42:34 +0000 (21:42 +0000)]
debugcc: add licensing information

Information about package license is important, so lets add it.

Fixes: 79ee0d2ceead ("debugcc: add new package to debug IPQ based SoC clocks")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
13 months agodebugcc: add new package to debug IPQ based SoC clocks
Christian Marangi [Fri, 10 Nov 2023 20:14:29 +0000 (21:14 +0100)]
debugcc: add new package to debug IPQ based SoC clocks

Add new package to debug IPQ clocks using debug regs and hardware
oscillator.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agodtc: add option for a static build
Robert Marko [Wed, 8 Nov 2023 22:09:44 +0000 (23:09 +0100)]
dtc: add option for a static build

I find myself manually compiling dtc as a staticly linked binary rather
often while porting a new device to OpenWrt as dtc is rarely included in
various vendor modifications of OpenWrt.

So, since dtc offers a convenient meson option to build it as staticaly
linked binary, lets make it a compile time option.

Signed-off-by: Robert Marko <robimarko@gmail.com>
13 months agoipq807x: fix wrong define for LAN and WAN ess mask
Christian Marangi [Fri, 10 Nov 2023 17:38:34 +0000 (18:38 +0100)]
ipq807x: fix wrong define for LAN and WAN ess mask

switch_lan_bmp and switch_wan_bmp have wrong values and now cause
problems with the new version of the qca-ssdk.

Fix the wrong entry and drop the redundant switch_cpu_bmp.

Also introduce some convenient define to better understand values in
this map.

Fixes: eea264feadcf ("kernel: qca-ssdk: update to 12.4")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Robert Marko <robimarko@gmail.com> # Dynalink AX3600 and Qnap 301W
Reviewed by: Robert Marko <robimarko@gmail.com>

13 months agowolfssl: update to 5.6.4
Nick Hainke [Fri, 10 Nov 2023 08:01:56 +0000 (09:01 +0100)]
wolfssl: update to 5.6.4

Releae Notes:
https://github.com/wolfSSL/wolfssl/releases/tag/v5.6.4-stable

Remove upstreamed patch:
- 001-fix-detection-of-cut-tool-in-configure.ac.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
13 months agokernel: bump 6.1 to 6.1.62
John Audia [Wed, 8 Nov 2023 19:38:58 +0000 (14:38 -0500)]
kernel: bump 6.1 to 6.1.62

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.62

All patches automatically rebased.

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
13 months agokernel: bump 5.15 to 5.15.138
John Audia [Wed, 8 Nov 2023 20:50:55 +0000 (15:50 -0500)]
kernel: bump 5.15 to 5.15.138

Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.138

Removed upstreamed:
generic/backport-5.15/819-v6.6-0018-nvmem-imx-correct-nregs-for-i.MX6SLL.patch[1]
generic/backport-5.15/819-v6.6-0019-nvmem-imx-correct-nregs-for-i.MX6UL.patch[2]
generic/backport-5.15/819-v6.6-0020-nvmem-imx-correct-nregs-for-i.MX6ULL.patch[3]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.138&id=6e22bf6f00d593b0a7e0b2f418fde89317424671
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.138&id=6efd498009b987a92f57f3bdae476f0503364fb7
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.138&id=6e22bf6f00d593b0a7e0b2f418fde89317424671

Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
13 months agonetifd: update to the latest version
Felix Fietkau [Fri, 10 Nov 2023 14:37:32 +0000 (15:37 +0100)]
netifd: update to the latest version

eee02ccca8c8 device: add support to configure eee
bb28f6a291d9 wireless: fix sign comparison warning
35facc8306f5 wireless: fix premature removal of hotplug devices due to down state

Signed-off-by: Felix Fietkau <nbd@nbd.name>
13 months agoipq-wifi: update to Git HEAD (2023-11-10)
Christian Marangi [Fri, 10 Nov 2023 12:20:31 +0000 (13:20 +0100)]
ipq-wifi: update to Git HEAD (2023-11-10)

0c2e810e71ed qcn9074: fix prpl Foundation Haze BDF for old mac80211 version

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agoipq806x: setup DSA port conduit in board.d
Christian Marangi [Thu, 9 Nov 2023 14:29:39 +0000 (15:29 +0100)]
ipq806x: setup DSA port conduit in board.d

Now that netifd and uci-defaults.sh supports a way to setup DSA port
conduit without using iproute2 tool, set DSA port conduit directly in
board.d, that will fill board.d and will instruct netifd to setup the
port.

Drop special init.d qca8k_set_port script and ip-tiny from target dep as
they are not required anymore.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agobase-files: add additional uci-defaults function for GRO and conduit
Christian Marangi [Thu, 9 Nov 2023 14:18:39 +0000 (15:18 +0100)]
base-files: add additional uci-defaults function for GRO and conduit

Add additional uci-defaults function for configuring GRO settings and
conduit for network devices.

Tweaking the GRO values might increase performance on some low spec
device that lack some offload feature on gmac.

Tweaking conduit interface is specific to DSA based devices and is
useful for multi-CPU scenario where one CPU is dedicated to one single
port.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agobase-files: generalize ucidef_set_network_device
Christian Marangi [Thu, 9 Nov 2023 14:11:50 +0000 (15:11 +0100)]
base-files: generalize ucidef_set_network_device

Generalize ucidef_set_network_device functions to use a more generic
_ucidef_set_network_device_common that takes as args the option and the
value to apply instead of hardcoding.

This is to reduce duplicated code in preparation for addition of
additional option for board.d usage.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agonetifd: update to Git HEAD (2023-11-09)
Christian Marangi [Thu, 9 Nov 2023 14:10:03 +0000 (15:10 +0100)]
netifd: update to Git HEAD (2023-11-09)

841b05fbb91e system-linux: fix compilation error if IFLA_DSA_MASTER is not supported
5c9ecc1ff74f system-linux: make system_if_get_master_ifindex static
2dc7f450f3a2 system-linux: add option to configure DSA conduit device
838f815db5ef system-linux: add support for configurable GRO option

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
13 months agogdb: Update to 13.2
Hannu Nyman [Tue, 7 Nov 2023 18:55:58 +0000 (20:55 +0200)]
gdb: Update to 13.2

Update the devel/gdb package to version 13.2

* Remove the upstreamed patch 001-Add-support-for-readline-8.2.patch
* Adjust 130-gdb-ctrl-c.patch to upstream changes

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
13 months agotoolchain/gdb: update to 13.2
Hannu Nyman [Tue, 7 Nov 2023 18:54:51 +0000 (20:54 +0200)]
toolchain/gdb: update to 13.2

Update the toolchain gdb to version 13.2.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
13 months agokernel: provide better control & help for SLUB configuration
Rafał Miłecki [Tue, 7 Nov 2023 22:25:52 +0000 (23:25 +0100)]
kernel: provide better control & help for SLUB configuration

Allow selecting KERNEL_SLUB_DEBUG and KERNEL_SLUB_DEBUG_ON manually and
provide detailed help for both.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
13 months agotreewide: disable CONFIG_SLUB_DEBUG in target configs
Rafał Miłecki [Tue, 7 Nov 2023 12:54:14 +0000 (13:54 +0100)]
treewide: disable CONFIG_SLUB_DEBUG in target configs

From the symbol help message:
> SLUB has extensive debug support features. Disabling these can result
> in significant savings in code size.

There seems to be no need to enable those debugging features for
standard use.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
13 months agoipq807x: add support for Yuncore AX880
Isaev Ruslan [Thu, 2 Nov 2023 03:08:53 +0000 (06:08 +0300)]
ipq807x: add support for Yuncore AX880

SPECIFICATION:
    - Chipset:  IPQ8072A +QCN5054+QCN5024+QCA8081*2
    - Flash NOR-8MB AND NAND-128MB
    - RAM 1Gb DDR
    - IEEE 802.11:  802.11ax/ac/b/g/n
    - 4*4 2.4G Wi-Fi standard   802.11b/g/n/ax
    - 4*4 5.8G Wi-Fi Standard   802.11 a/n/ac/ax
    - 2x 1 Gbps Ethernet (QCA8081) with 802.3at PoE input support
    - 1x  Reset
    - 1x  Bluetooth(optional)
    - 1x  DC Port 12V 3A
    - 4x Antenna    IPEX Connector, 3dBi omni antennas
    - Data Rate:    3657Mbps ( 2.4G: 1182Mbps (11ax 4x4); 5.8G: 2475Mbps (11ax 4x4))
    - RF Power: 2.4g ≤ 20dBm; 5.8g ≤ 19dBm
    - LED light:    Sys; 5.8G wifi; 2.4G wifi; WAN; LAN
    - Max Power Consumption:    ≤ 22W
    - Size: 198mm * 198mm * 41.02mm

BACKUP YOUR STOCK FIRMWARE:
```
export device=ax880
mkdir -p /tmp/fw_dump_$device
cd /tmp/fw_dump_$device
dmesg > dmesg_$device.log
dtc -I fs /sys/firmware/devicetree/base > $device.dts
cat /proc/device-tree/model > model
cat /proc/mtd > proc_mtd
while read p; do
mtd_dev=$(echo $p | cut -d: -f1)
echo $mtd_dev
dd if=/dev/$mtd_dev of=$mtd_dev
done < proc_mtd
md5sum * > md5sum.log
tar -cvzf ../$device.tar.gz .
export sum=$(md5sum /tmp/$device.tar.gz | cut -d' ' -f1)
mv ../$device.tar.gz /tmp/${device}_${sum}.tar.gz
echo fw backup saved to: /tmp/${device}_${sum}.tar.gz
```
Upload your backup via tftp to the safe place.

INSTALLATION:
1. stock firmware web ui
Rename factory.bin fw image file to factory.ubin. Flash this image
like ordinary stock fw upgrade.

2. stock firmware telnet method
Enter telnet cli (login: root, password: 476t*_f0%g09y) and upload
 factory.bin fw image and rename it to factory.ubin
`cd /tmp && wget <your_web_server_ip>/factory.ubin`
`sysupgrade factory.ubin

3. initramfs method
    Put openwrt-ipq807x-generic-yuncore_ax880-initramfs-uImage.itb to your
    TFTP server and rename it to ax880.initram
    Enable serial console and enter to the u-boot cli.
    Exec these commands:
    `tftpboot <your_tftp_server_ip>:ax880.initram`
    `dhcp`

    When downloading is finished:
    `bootm`
    After booting the device, you need to upload to the device factory.ubi fw image.
    ```
    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
    ```

4. u-boot factory.ubi image method
    Put openwrt-ipq807x-generic-yuncore_ax880-squashfs-factory.ubi to your
    TFTP server and rename it to ax880.ubi
    Enter u-boot cli and exec these commands:
    `tftpboot <your_tftp_server_ip>:ax880.ubi`
    `dhcp`
    After downloading is finished:
    `flash rootfs`
    `flash rootfs_1`
    `reset`

5. u-boot factory.bin method
    Put openwrt-ipq807x-generic-yuncore_ax880-squashfs-factory.bin to your
    TFTP server and rename it to ax880.bin
    Enter u-boot cli and exec these commands:
    `tftpboot <your_tftp_server_ip>:ax880.bin`
    `dhcp`
    After downloading is finished:
    `imgaddr=$fileaddr && nand device 0`
    Erase rootfs memory:
    `nand erase 0x00000000 0x03400000`
    Write rootfs:
    `nand write $fileaddr 0x00000000 $filesize`
    Erase rootfs_1 memory:
    `nand erase 0x3c00000 0x3400000`
    Write rootfs_1
    `nand write $fileaddr 0x3c00000 $filesize`
    `reset`

STOCK FIRMWARE RECOVERY:
Boot initramfs image.
Upload your rootfs mtd partition to the device using scp or download
it from the device using wget.
Enter device ssh cli and exec:
```
cd /tmp && wget <your_web_server_ip>/mtd21`
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 /tmp/mtd21
ubiformat /dev/${rootfs_1} -y -f /tmp/mtd21
reboot
```

Signed-off-by: Isaev Ruslan <legale.legale@gmail.com>
Reviewed-by: Robert Marko <robimarko@gmail.com>