openwrt/staging/blocktrron.git
20 months agomvebu: setup effective thermal zones on Puzzle M901 and M902
Daniel Golle [Sat, 25 Feb 2023 17:42:23 +0000 (17:42 +0000)]
mvebu: setup effective thermal zones on Puzzle M901 and M902

Assign fan with 4 active cooling levels to be used for the main CPU as
well as external SerDes units.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
20 months agomvebu: puzzle: fix fan thermal cooling driver
Daniel Golle [Sat, 25 Feb 2023 02:35:16 +0000 (02:35 +0000)]
mvebu: puzzle: fix fan thermal cooling driver

Several fixes for the Puzzle WT61P803 hwmon driver were needed to make
it behave well as thermal cooling device:
 - wire-up cooling device with OF node in device tree
 - properly parse cooling-levels (u32 with range check vs. u8)
 - actually use cooling-levels
 - keep current state and only write to uC if state has changed
   (avoids flooding the uC with commands which will result in uC crashing)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
20 months agonetifd: update to the latest version
Hauke Mehrtens [Sat, 25 Feb 2023 18:56:12 +0000 (19:56 +0100)]
netifd: update to the latest version

ed65a00 netifd: bridge: Fix format string position
19372d8 netifd: Fix multiple -Wsign-compare warnings
8ebf033 netifd: Do not return values in void function
c77417a netifd: Explicitly zero initialize variables
463a120 netifd: Activate -Wextra compile warnings

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
20 months agoustream-ssl: update to Git version 2023-02-25
Hauke Mehrtens [Sat, 25 Feb 2023 17:37:26 +0000 (18:37 +0100)]
ustream-ssl: update to Git version 2023-02-25

498f6e2 ustream-mbedtls: Use getrandom() instead of /dev/urandom

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
20 months agoath79: add support for GL.iNet GL-X1200
Xinfa Deng [Thu, 9 Feb 2023 07:37:30 +0000 (15:37 +0800)]
ath79: add support for GL.iNet GL-X1200

This patch adds supports for GL-X1200.

Specification:
- SOC: QCA9563 (775MHz)
- Flash: 16 MiB
- RAM: 128 MiB DDR2
- Ethernet: 4x 1Gbps LAN + 1x 1Gbps WAN
- Wireless: QCA9563(2.4GHz) and QCA9886(5GHz)
- SIM: 2x SIM card slots
- MicroSD: 1x microSD slot
- Antenna: 2x external 5dBi antennas
- USB: 1x USB 2.0 port
- Button: 1x reset button
- LED: 16x LEDs (3x GPIO controllable)
- UART: 1x UART on PCB (JP1: 3.3V, RX, TX, GND)
- OEM U-Boot supplies HTTP/GUI access

Implementation Notes
====================

Both the NOR and NAND variants boot off a NOR-based kernel,
consistent with the OEM's firmware.

The mode LEDs are
    * Boot, Running   system
    * Failsafe        2G
    * Upgrade         5G

Installation
============

Using sysupgrade
----------------

sysupgrade may be used to install a NAND image on a device running
a NAND image or a NOR image on a device running a NOR image. It is
recommended to *not* preserve config when upgrading from OEM firmware
or previous versions of OpenWrt. No supported sysupgrade path should
require "force". Transitioning from NOR to NAND can be accomplished

Using U-Boot
------------

The OEM U-Boot can be put into a graphical, firmware-upload mode by
holding down the button on the side of the router while applying power
and for a bit more than five seconds following with the current OEM
U-Boot. The power LED will come on, then the 5G LED will flash five
times, about once a second.  When the 5G LED stops flashing and the
2G LED lights solid, the router's U-Boot will provide an upload page
at http://192.168.1.1/ Either a browser may be used to upload an image,
or a utility such as curl may be used:

curl -X POST -F gl_firmware=\@*-nand-squashfs-factory.img \
         http://192.168.1.1/index.html
or
    curl -X POST -F gl_firmware=\@*-nor-squashfs-sysupgrade.bin \
         http://192.168.1.1/index.html

Note that NOR vs. NAND is based on the file name extension.

Signed-off-by: Xinfa Deng <xinfa.deng@gl-inet.com>
20 months agotoolchain: remove references to $(LIBC)/utils subtarget
Michael Pratt [Tue, 21 Feb 2023 19:58:20 +0000 (14:58 -0500)]
toolchain: remove references to $(LIBC)/utils subtarget

The utils subtarget was used for uClibc and eglibc
which are both obsolete and replaced in Openwrt by mainline
musl and glibc, which do not have a utils Makefile target.

Ref: 5d19a38d8 ("toolchain: sync eglibc headers/build split with uclibc changes")
Fixes: 63fb17520 ("toolchain: remove uClibc-ng")
Suggested-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
20 months agotoolchain: cleanup dependencies
Michael Pratt [Wed, 10 Aug 2022 21:56:41 +0000 (17:56 -0400)]
toolchain: cleanup dependencies

Reorganize dependencies between toolchain targets to save a line.
This also puts them in a linear order which is easier to read.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
20 months agotoolchain: fix stampfile dependency
Michael Pratt [Sat, 10 Sep 2022 01:43:18 +0000 (21:43 -0400)]
toolchain: fix stampfile dependency

Use the gcc/final/install target stampfile as the prerequisite
for the toolchain/compile target stampfile.

The previous filename was also incorrect,
the stampfile name format was changed (see reference)
but was never updated here.

The issue was never noticed
because the usage of timestamp.pl was broken
(fixed in previous commit)
causing the extra prereq files passed to 'call stampfile'
to never get checked at all.

Fixes: 5149ed151 ("gcc: split up the build process into three distinct stages")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
20 months agoiproute2: update to 6.2
Nick Hainke [Wed, 22 Feb 2023 14:56:25 +0000 (15:56 +0100)]
iproute2: update to 6.2

Release Notes:
https://lwn.net/Articles/923952/

Refresh patches:
- 110-darwin_fixes.patch
- 115-add-config-xtlibdir.patch
- 140-allow_pfifo_fast.patch
- 140-keep_libmnl_optional.patch
- 145-keep_libelf_optional.patch
- 150-keep_libcap_optional.patch
- 155-keep_tirpc_optional.patch
- 170-ip_tiny.patch
- 175-reduce-dynamic-syms.patch
- 180-drop_FAILED_POLICY.patch
- 190-fix-nls-rpath-link.patch
- 195-build_variant_ip_tc.patch
- 200-drop_libbsd_dependency.patch
- 300-selinux-configurable.patch

Remove upstreamed:
- 320-configure-Remove-include-sys-stat.h.patch

While working on it remove AUTORELEASE.

Signed-off-by: Nick Hainke <vincent@systemli.org>
20 months agoethtool: update to 6.2
Nick Hainke [Wed, 22 Feb 2023 14:50:43 +0000 (15:50 +0100)]
ethtool: update to 6.2

Release notes:
- Feature: link down event statistics (no option)
- Feature: JSON output for coalesce (-c)
- Feature: new link modes (no option)
- Feature: JSON output for ring (-g)
- Feature: netlink handler for RSS get (-x)
- Fix: fix boolean value output in JSON output
- Fix: fix build errors and warnings

Remove upstreamed patches:
- 100-uapi-Bring-in-if-h.patch
- 101-netlink-Fix-maybe-uninitialized-meters-variable.patch
- 102-raw-marvell-c-Fix-build-with-musl-libc.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
20 months agolibcap: update to 2.67
Nick Hainke [Sun, 5 Feb 2023 20:38:19 +0000 (21:38 +0100)]
libcap: update to 2.67

Release notes:
https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.o8papfkfh1x9

While working on it, remove $(AUTORELEASE).

Tested-by: Linhui Liu liulinhui36@gmail.com # Xiaomi AX3600
Signed-off-by: Nick Hainke <vincent@systemli.org>
20 months agobase-files: add support for retrieving IPv6 assignments
Mark Baker [Thu, 2 Feb 2023 01:30:57 +0000 (20:30 -0500)]
base-files: add support for retrieving IPv6 assignments

In DHCPv6-PD enabled environments, addresses are assigned to interfaces.
These new functions retrieve the IPv6 assigned prefix(es).

Signed-off-by: Mark Baker <mark@vpost.net>
20 months agobcm47xx: switch default kernel to the 5.15
Rafał Miłecki [Fri, 24 Feb 2023 11:06:10 +0000 (12:06 +0100)]
bcm47xx: switch default kernel to the 5.15

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
20 months agobcm47xx: relocate LZMA loader #2
Rafał Miłecki [Tue, 7 Feb 2023 14:06:50 +0000 (15:06 +0100)]
bcm47xx: relocate LZMA loader #2

Increased size of the 5.15 kernel requires bumping BZ_TEXT_START again.
Without this CFE hangs at the:
Starting program at 0x80001000

This fixes booting 5.15 based mips74k images on:
1. BCM4706 (Luxul XWR-1750)
2. BCM5357B0 (Linksys E1000 V2.1)
3. BCM47186B0 (Luxul XWR-600)
4. BCM5358 (Linksys E2500 V3)

It isn't needed but also doesn't break:
1. BCM5354 (Asus WL-500gP V2)

Ref: 4cd97e476089 ("bcm47xx: relocate LZMA loader")
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
20 months agokernel: Add CONFIG_PPC_QUEUED_SPINLOCKS configuration option
Hauke Mehrtens [Tue, 21 Feb 2023 22:13:27 +0000 (23:13 +0100)]
kernel: Add CONFIG_PPC_QUEUED_SPINLOCKS configuration option

The CONFIG_PPC_QUEUED_SPINLOCKS configuration option is not defined for
kernel 5.15, it is defined for kernel 5.10.

This fixes the compilation of mpc85xx/p2020 with kernel 5.15.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
20 months agomac80211: ath11k: sync with ath-next
Robert Marko [Wed, 22 Feb 2023 17:04:39 +0000 (18:04 +0100)]
mac80211: ath11k: sync with ath-next

Synchronize the ath11k backports with the current ath-next tree.

This backports several memory leak issues, PCI IRQ fixup, peer add locking
fix as well as IPQ5018 support, though IPQ5018 support is unused for now.

This allows to easily backport further fixes as cherry picking them has
started requiring manual conflict resolution.

Signed-off-by: Robert Marko <robimarko@gmail.com>
20 months agokernel: backport NVMEM late fixes from v6.2
Rafał Miłecki [Thu, 23 Feb 2023 08:47:39 +0000 (09:47 +0100)]
kernel: backport NVMEM late fixes from v6.2

They were backported to stable kernels but we backport more stuff on our
own so we have to pick up few remaining.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
20 months agompc85xx: switch default kernel to 5.15
Nick Hainke [Wed, 1 Feb 2023 10:42:57 +0000 (11:42 +0100)]
mpc85xx: switch default kernel to 5.15

The default kernel should be switched to 5.15 in order to enable testing
by a broader audience.

Tested on TP-Link TL-WDR4900 v1.

Acked-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Signed-off-by: Nick Hainke <vincent@systemli.org>
20 months agoopenssl: fix powerpc & arc libatomic dependencies
Eneas U de Queiroz [Tue, 21 Feb 2023 20:55:26 +0000 (17:55 -0300)]
openssl: fix powerpc & arc libatomic dependencies

PowerPC CONFIG_ARCH is defined as powerpc, not ppc.  Fix that in the
DEPENDS condition.

Arc needs to be built with libatomic.  Change the OpenSSL configuration
file, and add it to the libatomic DEPENDS condition.

Fixes: 7e7e76afca "openssl: bump to 3.0.8"
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
20 months agomvebu: mochabin: enlarge PCI memory window
Robert Marko [Sun, 19 Feb 2023 11:58:56 +0000 (12:58 +0100)]
mvebu: mochabin: enlarge PCI memory window

Armada 7040 uses a rather small 15MB memory window for every PCI adapter,
however this is not sufficient for Qualcomm QCA6390 802.11ax cards that
are shipped along with the OpenWrt WLAN model of MOCHAbin as ath11k
requires at least 16MB of memory.

So, similar to what MACCHIATOBin has been doing for years, lets move
to using the second PCIe 2 memory window and expand it to 128MB to
make it future proof.

This has been already sent upstream [1].
[1] https://lore.kernel.org/linux-arm-kernel/20230219121418.1395401-1-robert.marko@sartura.hr/

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
20 months agokernel: update NVMEM subsystem to the v6.3
Rafał Miłecki [Tue, 21 Feb 2023 10:25:49 +0000 (11:25 +0100)]
kernel: update NVMEM subsystem to the v6.3

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
20 months agomcp85xx: Switch TP-Link TL-WDR4900 v1 to DSA
Pawel Dembicki [Thu, 29 Sep 2022 20:25:24 +0000 (22:25 +0200)]
mcp85xx: Switch TP-Link TL-WDR4900 v1 to DSA

This patch introduces DSA support for TP-Link TL-WDR4900 v1 switch.
Swconfig driver for QCA8327 switch is removed because this router is
only one device which use Qualcom swconfig switch.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Tested-by: Nick Hainke <vincent@systemli.org> # TP Link WDR4900 v1 (5.15)
20 months agompc85xx: refresh kernel config
Pawel Dembicki [Thu, 29 Sep 2022 13:18:48 +0000 (15:18 +0200)]
mpc85xx: refresh kernel config

It was done by "make kernel_oldconfig" command for 5.10 and 5.15.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
20 months agoopenssl: bump to 3.0.8
Eneas U de Queiroz [Tue, 7 Feb 2023 21:14:27 +0000 (18:14 -0300)]
openssl: bump to 3.0.8

This is a major update to the current LTS version, supported until
2026-09-07.

Changelog:
https://github.com/openssl/openssl/blob/openssl-3.0.8/CHANGES.md

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
20 months agotools/squashfskit4: drop unused tool
Christian Marangi [Fri, 14 Oct 2022 15:36:21 +0000 (17:36 +0200)]
tools/squashfskit4: drop unused tool

Drop squashfskit4 tool as it got replaced by new version of squashfs4
tool.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
20 months agoimage: update LZMA_XZ_OPTIONS with new squashfs4 tool
Christian Marangi [Mon, 6 Feb 2023 22:28:14 +0000 (23:28 +0100)]
image: update LZMA_XZ_OPTIONS with new squashfs4 tool

The -Xpreset option changed format and dropped the -Xe and just require
the extreme string to be passed to the -Xpreset option.

Update the LZMA_XZ_OPTIONS to reflect this change.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
20 months agotools/squashfs4: add new tool for squashfs4 images
Christian Marangi [Mon, 6 Feb 2023 22:22:43 +0000 (23:22 +0100)]
tools/squashfs4: add new tool for squashfs4 images

squashfs tool is finally reborn and correctly maintained.

Introduce the new version as a replacement for squasfs4kit as it was a
fork and also abandoned.

Add additional patch to add the missing feature present in squashfskit4
but still missing on this new project.

Backport each required patch that fix compilation error on macos.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
20 months agomac80211: fix mesh issues and improve performance
Felix Fietkau [Wed, 15 Feb 2023 18:40:02 +0000 (19:40 +0100)]
mac80211: fix mesh issues and improve performance

fix forwarding received mesh a-msdu packets
add fast xmit support for mesh to improve performance

Signed-off-by: Felix Fietkau <nbd@nbd.name>
20 months agotoolchain: remove installing twice in the "initial" subdir
Andre Heider [Tue, 7 Feb 2023 20:33:33 +0000 (21:33 +0100)]
toolchain: remove installing twice in the "initial" subdir

This was apparently introduced to recreate the toolchain (wipe
staging_dir/toolchain*, but keep build_dir/toolchain*, followed by a
`make toolchain/compile`).

But it leaves leftovers and causes re-links to happen at src_install phase,
because of the changed paths, possibly adding yet another source of issues.

With the prior commits removing various hacks related to the "initial"
folder we can remove installing it twice altogether.

The recreated toolchain is exactly the same as before.

Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/musl: remove libgcc_initial hack
Andre Heider [Thu, 9 Feb 2023 10:06:31 +0000 (11:06 +0100)]
toolchain/musl: remove libgcc_initial hack

This reverts r15599 [0].

This was added to fix an uclibc rebuild issue, but since uclibc
isn't supported anymore [Fixes:] this can be removed.

[0] https://git.openwrt.org/?p=openwrt/svn-archive/archive.git;a=commitdiff;h=016a052efeee6bc2da3f501a8c66b5aea20350b4

Fixes: 63fb1752 "toolchain: remove uClibc-ng"
Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/glibc: fixup the libm.so linker script too
Andre Heider [Mon, 30 Jan 2023 09:55:53 +0000 (10:55 +0100)]
toolchain/glibc: fixup the libm.so linker script too

Add it to the existing list to fix it up.

Found by mold:
toolchain-x86_64_gcc-12.2.0_glibc/lib/libm.so:4: GROUP ( /lib/libm.so.6  AS_NEEDED ( /lib/libmvec.so.1 ) )
                                                         ^ library not found: /lib/libm.so.6

Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/gcc: remove glibc libgcc_eh hack
Andre Heider [Thu, 9 Feb 2023 09:09:08 +0000 (10:09 +0100)]
toolchain/gcc: remove glibc libgcc_eh hack

A modern glibc only links against libgcc_eh for its tests or when building it
static, which doesn't happen here.

Reverts a hunk of: a3edea1b "add support for alternative C libraries..."

Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/binutils: get rid of outdated linaro version string hack
Andre Heider [Wed, 8 Feb 2023 19:20:27 +0000 (20:20 +0100)]
toolchain/binutils: get rid of outdated linaro version string hack

This reverts commit 9d1b619cb1a7dd18cd12cab0d9f93452b10e2e11.

No Linaro binutils are supported anymore, the leftover removal commit
missed one line.

Fixes: b648e1c0 "binutils: remove 2.25.1 support and leftovers of older versions"
Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/binutils: get rid of outdated libiberty hack
Andre Heider [Wed, 8 Feb 2023 17:58:05 +0000 (18:58 +0100)]
toolchain/binutils: get rid of outdated libiberty hack

This reverts commit 68fcb15f90edd92ef36990c5696b9e79df07a6ec.

binutils syncs libiberty from gcc, which defaults to not installing itself
since [0], see also [1].

That change is apparently part of binutils 2.24, and the oldest supported
version here is 2.37, hence we can remove this hack.

[0] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=48d7db63ff581b026e057badf39f1f23fdf47928
[1] https://gcc.gnu.org/onlinedocs/libiberty/Using.html

Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/binutils: get rid of ARC leftovers
Andre Heider [Wed, 8 Feb 2023 17:04:25 +0000 (18:04 +0100)]
toolchain/binutils: get rid of ARC leftovers

In [0] support for ARC specific binutils were added, which was later removed
again [Fixes:].

Upstream binutils never had an extlib.

[0] 8b5d644b "toolchain: add support of ARC architecture"

Fixes: 8568dcd9 "toolchain: Remove binutils 2.29 for ARC targets"
Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agotoolchain/binutils: fill in missing GRAPHITE_CONFIGURE
Andre Heider [Tue, 31 Jan 2023 10:07:42 +0000 (11:07 +0100)]
toolchain/binutils: fill in missing GRAPHITE_CONFIGURE

This var is used further down, but it's empty.
Fix that with the very same values gcc uses.

Signed-off-by: Andre Heider <a.heider@gmail.com>
20 months agohostapd: always use sae_password for mesh/SAE auth
Leon M. Busch-George [Wed, 23 Nov 2022 16:40:08 +0000 (17:40 +0100)]
hostapd: always use sae_password for mesh/SAE auth

This patch fixes a corner case when using passwords that are exactly 64
characters in length with mesh mode or passwords longer than 63 characters
with SAE because 'psk' is used instead of 'sae_password'.
SAE is obligatory for 802.11s (mesh point).

The 'psk' option for hostapd is suited for WPA2 and enforces length
restrictions on passwords. Values of 64 characters are treated as PMKs.
With SAE, PMKs are always generated during the handshake and there are no
length restrictions.
The 'sae_password' option is more suited for SAE and should be used
instead.

Before this patch, the 'sae_password' option is only used with mesh mode
passwords that are not 64 characters long.
As a consequence:
- mesh passwords can't be 64 characters in length
- SAE only works with passwords with lengths >8 and <=63 (due to psk
  limitation).

Fix this by always using 'sae_password' with SAE/mesh and applying the PMK
differentiation only when PSK is used.

Fixes: #11324
Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
[ improve commit description ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
20 months agohostapd: add quotes in assignments
Leon M. Busch-George [Wed, 23 Nov 2022 17:22:36 +0000 (18:22 +0100)]
hostapd: add quotes in assignments

It's generally advised to use quotes for variable assignments in bash.

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
20 months agoramips: add alternative device name for Wiflyer WF3526-P
Shiji Yang [Sun, 19 Feb 2023 01:06:32 +0000 (09:06 +0800)]
ramips: add alternative device name for Wiflyer WF3526-P

Wiflyer WF3526-P and Zbtlink ZBT-WE1326 have the same circuit design.
Installing the misunderstading firmware of ZBT-WE3526 will cause Wi-Fi
not work due to allocate the wrong pcie port. Add alternative name to
help users easily build or download the correct firmware.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
20 months agoramips: correct the PCIe port number for Zbtlink ZBT-WE1326
Shiji Yang [Sun, 19 Feb 2023 01:06:32 +0000 (09:06 +0800)]
ramips: correct the PCIe port number for Zbtlink ZBT-WE1326

MT7621 gets a new PCIe driver in the 5.15+ kernel. Allocating wrong PCIe
port will cause the PCIe NIC to not work properly. This commit fixes
the wrong port numbers on Zbtlink ZBT-WE1326.

According to the bootlog, MT7612E (5 GHz) is connected to pcie1, and
MT7603E (2 GHz) is connected to pcie2:
[4.197658] mt7621-pci 1e140000.pcie: pcie0 no card, disable it (RST & CLK)
[4.204609] mt7621-pci 1e140000.pcie: PCIE1 enabled
[4.209476] mt7621-pci 1e140000.pcie: PCIE2 enabled
...
[4.307988] pci 0000:01:00.0: [14c3:7662] type 00 class 0x028000
[4.367206] pci 0000:02:00.0: [14c3:7603] type 00 class 0x028000

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
21 months agobase-files: sysfixtime: Fix time on the fake RTC
Yuan Tao [Mon, 14 Sep 2020 09:19:49 +0000 (17:19 +0800)]
base-files: sysfixtime: Fix time on the fake RTC

On some devices the chip has RTC but no battery save time.
This leads back to getting the wrong time
and skipping the check of the last file modification date.

This commit ensures that the file time is checked even
if the RTC exists.
which would ordinarily return an approbiate
system time used for e.g. certificate generation.

Tested-on: NanoPi R2S

Signed-off-by: Yuan Tao <ty@wevs.org>
21 months agotools/squashfs: rename to squashfs3-lzma
Christian Marangi [Mon, 6 Feb 2023 22:07:24 +0000 (23:07 +0100)]
tools/squashfs: rename to squashfs3-lzma

The name of squashfs is confusing since in reality it's a really old
version using an old lzma library. This tools is used for old ath79
netgear target and to produde a fake squasfs3 image needed for some
specific bootloader from some OEM (AVM for example)

Rename squashfs tool to squasfs3-lzma to better describe it.
Rename the installed bin from mksquashfs-lzma to mksquashfs3-lzma.
Use tar transform to migrate the root directory in tar to the new
naming.
Drop redundant PKG_CAT variable not needed anymore.
Also update any user of this tool.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agowireguard-tools: remove unnecessary .mk includes
Andre Heider [Thu, 16 Feb 2023 11:50:56 +0000 (12:50 +0100)]
wireguard-tools: remove unnecessary .mk includes

Including kernel.mk moves the package build folder in the linux one, which
is confusing since this isn't building any kernel modules.

package-defaults.mk is already included my package.mk.

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agoipq40xx: chromium: Enable kmod-ramoops by default
Brian Norris [Sun, 5 Feb 2023 00:35:35 +0000 (16:35 -0800)]
ipq40xx: chromium: Enable kmod-ramoops by default

Chromium devices (like Google WiFi) have ramoops memory reserved by the
bootloader. Let's enable the ramoops kernel module by default, so we get
better crash logging.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
21 months agoipq806x: chromium: Enable kmod-ramoops by default
Brian Norris [Sun, 5 Feb 2023 00:35:34 +0000 (16:35 -0800)]
ipq806x: chromium: Enable kmod-ramoops by default

Chromium devices (like OnHub) have ramoops memory reserved by the
bootloader. Let's enable the ramoops kernel module by default, so we get
better crash logging.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
21 months agokernel: kmod-ramoops: Include pstore console support
Brian Norris [Sun, 5 Feb 2023 00:35:33 +0000 (16:35 -0800)]
kernel: kmod-ramoops: Include pstore console support

Pstore ramoops support is useful even when there isn't an explicit
panic/crash. We can log all kernel messages via a "console", and then
retrieve them in the event of some non-kernel-panic reset (e.g.,
watchdog).

Since the buffer memory is already reserved, there isn't much overhead
to doing this.

The new console files will show up as:

  /sys/fs/pstore/console-ramoops-N

Cc: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
21 months agoramips: add support for Huasifei WS1208V2
Arınç ÜNAL [Sat, 4 Feb 2023 07:52:29 +0000 (10:52 +0300)]
ramips: add support for Huasifei WS1208V2

The Huasifei WS1208V2 is an AC1200 router featuring 5 Ethernet ports with a
Quectel RM520N-GL cellular modem which supports QMI and MBIM modes.

Specifications:
- MT7621AT, 256 MiB RAM, 16 MiB SPI Flash
- MT7603EN 2.4 GHz & MT7612EN 5 GHz WLAN
- Quectel RM520N-GL Cellular Modem
- 2 WLAN & 4 Cellular Antennas
- 5 Gigabit Ethernet Ports
- 1 USB 2.0 port
- 1 PCI-E Slot
- 1 M.2 slot
- 1 SIM card slot
- 1 SD card slot

Installation:
- Install sysupgrade image via ROOter OS.

TFTP Recovery:
- Connect to serial console.
- Boot initramfs image by choosing option 1 when U-Boot prompts.
- Install sysupgrade image via OpenWrt.

Link: https://www.huasifei.com/a/Products/5G%20CPE/240.html
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
21 months agoelfutils: fix build with GCC 11
Andre Heider [Tue, 7 Feb 2023 19:23:06 +0000 (20:23 +0100)]
elfutils: fix build with GCC 11

GCC 11 doesn't know about -Wno-error=use-after-free and aborts
compilation.

Fixes: 2748c45d "elfutils: Ignore wrong use-after-free error"
Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agokernel: can: fix MCP251x CAN controller module autoload
Tim Harvey [Sat, 18 Feb 2023 00:53:18 +0000 (16:53 -0800)]
kernel: can: fix MCP251x CAN controller module autoload

Fix autoload module name for can-mcp251x kmod.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
21 months agokernel: bump 5.10 to 5.10.168
John Audia [Wed, 15 Feb 2023 19:05:27 +0000 (14:05 -0500)]
kernel: bump 5.10 to 5.10.168

Manually rebased:
  backport-5.10/804-v5.14-0001-nvmem-core-allow-specifying-of_node.patch

Removed upstreamed:
  generic-backport/807-v5.17-0003-nvmem-core-Fix-a-conflict-between-MTD-and-NVMEM-on-w.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.168&id=34ec4c7831c416ac56619477f1701986634a7efc

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>
21 months agotools/zstd: update to 1.5.4
Rosen Penev [Fri, 10 Feb 2023 02:13:14 +0000 (18:13 -0800)]
tools/zstd: update to 1.5.4

Mostly performance improvements, as usual.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agonetfilter: add kmod-nf-conntrack
Aviana Cruz [Thu, 2 Feb 2023 13:39:41 +0000 (21:39 +0800)]
netfilter: add kmod-nf-conntrack

There have been some demands for the `ct count` expression,
like https://forum.openwrt.org/t/22-03-2-unable-to-use-ct-count-nft-rules/146680.

This adds the required kernel modules for the expression to work.

Signed-off-by: Aviana Cruz <gwencroft@proton.me>
21 months agoramips: add label MAC address for EPG600 and ESR600
Michael Pratt [Tue, 27 Apr 2021 21:41:31 +0000 (17:41 -0400)]
ramips: add label MAC address for EPG600 and ESR600

set label mac for the current ESR600 and new EPG600
using the board.d scripts

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoramips: add support for Senao Engenius EPG600
Michael Pratt [Mon, 19 Apr 2021 19:45:32 +0000 (15:45 -0400)]
ramips: add support for Senao Engenius EPG600

FCC ID: A8J-EPG600

Engenius EPG600 is an indoor wireless router with
1 Gb ethernet switch, dual-band wireless,
internal antenna plates, USB, and phone lines (not supported)

this board is a Senao device:
the hardware is equivalent to EnGenius ESR600 (except for phone lines)
the software is Senao SDK which is based on openwrt and uboot
which uses the legacy Senao header with Vendor / Product IDs
to verify the firmware upgrade image.

**Specification:**

  - MT7620 SOC MIPS 24kec, 2.4 GHz WMAC, 2x2
  - RT5592N WLAN PCI chip, 5 GHz, 2x2
  - QCA8337N Gb SW RGMII GbE, SW P0 -- SOC P5, 5 LEDs
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 64 MB RAM NT5TU32M16
  - UART console J2, populated
  - USB 2.0 port direct to SOC
  - 6 GPIO LEDs power, 2G, 5G, wps2g, wps5g, line
  - 3 buttons reset, wps, "reg" (registeration)
  - 4 antennas internal omni-directional plates

NOT YET SUPPORTED: VoIP

  - Si3050-FT + Si3019-FT Voice DAA, SPI control, PCM data
  - Phone Ports "TEL", "LINE" RJ11, 4P2C (2 pins)

**MAC addresses:**

  MAC address labeled as MAC ADDRESS
  MACs present in both wifi cal data and uboot environment

  eth0.1/phy1 ---- *:82 rf 0x4
  phy0 ---- *:83 factory 0x4
  eth0.2 MAC *:b8 "wanaddr"

**Installation:**

  Method 1: Firmware upgrade page:

    (if you cannot access the APs webpage)
    factory reset with the reset button
    connect ethernet to a computer
    OEM webpage at 192.168.0.1
    username and password 'admin'

    Navigate to gear icon, "Device Management", "Tools"
    select the factory.dlf image
    Upload and verify checksum

  Method 2: Serial to upload initramfs:

    Follow directions for TFTP recovery
    upload and boot initramfs and do a sysupgrade

**TFTP recovery:**

  Requires UART serial console, reset button does nothing

  rename initramfs-kernel.bin to 'uImageEPG600'
  make available on TFTP server at 192.168.99.8
  power board, interrupt boot with "4"
  execute `tftpboot` and `bootm` (with the load address)

**Return to OEM:**

  Images from OEM are provided, but not compatible
  with openwrt sysupgrade. So it must be modified.

  Alternatively, back up all mtd partitions before flashing

**Note on switch registers:**

  The necessary registers needed for the QCA8337 switch
  can be read from interrupted boot (tftpboot, bootm)
  by using the following lines in the switch driver ar8327.c
  in the function 'ar8327_hw_config_of'
  where 'qca,ar8327-initvals' is parsed from DTS
  before the new register values are written:

    pr_info("0x04 %08x\n", ar8xxx_read(priv, AR8327_REG_PAD0_MODE));
    pr_info("0x08 %08x\n", ar8xxx_read(priv, AR8327_REG_PAD5_MODE));
    pr_info("0x0c %08x\n", ar8xxx_read(priv, AR8327_REG_PAD6_MODE));
    pr_info("0x10 %08x\n", ar8xxx_read(priv, AR8327_REG_POWER_ON_STRAP));

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoramips: mt7620: split gsw hw_init to mac_init, ephy_init
Michael Pratt [Thu, 17 Mar 2022 03:02:42 +0000 (23:02 -0400)]
ramips: mt7620: split gsw hw_init to mac_init, ephy_init

in order for the option ephy-disable to work
without also needing ephy-base option,
we have to skip all the lines that write to mdio addresses that
assume those addresses do not have an external switch.

Otherwise, ephy ports will be disabled in hardware,
but register writes still happen as if they are enabled.

Split the functions so that other things are done first,
and ephy port setup can be skipped with a simple "return".

Tested on Engenius EPG600 (MT7620A ver:2 eco:3)
with QCA8337 external switch

Ref: cc6fd6fbb505 ("ramips: mt7620: add ephy-disable option to switch driver")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agowireless-regdb: update to 2023.02.13
Yuu Toriyama [Tue, 14 Feb 2023 05:44:11 +0000 (14:44 +0900)]
wireless-regdb: update to 2023.02.13

Changes:
  7f7a9f7 wireless-regdb: update regulatory database based on preceding changes
  660a1ae wireless-regdb: Update regulatory info for Russia (RU) on 5GHz
  fe05cc9 wireless-regdb: Update regulatory rules for Japan (JP) on 6GHz
  d8584dc wireless-regdb: Update regulatory rules for Japan (JP) on 5GHz
  c04fd9b wireless-regdb: update regulatory rules for Switzerland (CH)
  f29772a wireless-regdb: Update regulatory rules for Brazil (BR)

Signed-off-by: Yuu Toriyama <PascalCoffeeLake@gmail.com>
21 months agoipq807x: Add bluetooth driver to zyxel nbg7815
Karol Przybylski [Tue, 14 Feb 2023 22:32:56 +0000 (23:32 +0100)]
ipq807x: Add bluetooth driver to zyxel nbg7815

Zyxel NBG7815 supports bluetooth with blsp1_uart3.
Configuration are already added to dts file, device needs only module to working bluetooth properly.
Tested at below posts:
https://forum.openwrt.org/t/openwrt-support-for-armor-g5-nbg7815/98598/259?u=itork

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Karol Przybylski <karol.przybylski@esm-technology.pl>
21 months agoramips: fix the name of ASUS AX54 because it has dupilcated twice
Karl Chan [Thu, 16 Feb 2023 10:36:25 +0000 (18:36 +0800)]
ramips: fix the name of ASUS AX54 because it has dupilcated twice

The name of ASUS AX54 has dupilcated in the DEVICE_ALT0_VENDOR/DEVICE_ALT0_MODEL

Signed-off-by: Karl Chan <exkc@exkc.moe>
21 months agomediatek: add support for Netgear WAX206
Marcel Ziswiler [Thu, 29 Sep 2022 20:40:31 +0000 (22:40 +0200)]
mediatek: add support for Netgear WAX206

Specifications:
* SoC: MediaTek MT7622BV
* RAM: DDR3 512 MiB (Nanya NT5CC256M16ER-EK)
* Flash: SPI-NAND 256 MiB (Toshiba TC58CVG1S3HRAIJ)
* Wi-Fi 2.4/5 GHz 4T4R:
  * 2.4 GHz: MediaTek MT7622BV
  * 5 GHz: MediaTek MT7915AN/MT7975AN
* Ethernet: 4x 10/100/1000 Mbps LAN,
            1x 10/100/1000/2500 Mbps WAN (Realtek RTL8221B PHY)
* Switch: MediaTek MT7531AE
* LEDs/Keys: 8/1 (Power, Internet, LAN1, LAN2, LAN3, LAN4,
             Wifin and Wifia dual-colour LEDs + Reset pin)
* UART: Marked J19 on board VCC GND TX RX, beginning from "1". 3.3v,
        115200n8
* Power: 12 VDC, 2.5 A

Installation:
* Flash the factory image through the stock web interface, or TFTP to
  the bootloader. NMRP can be used to TFTP without opening the case.
* U-Boot allows booting an initramfs image via TFTP as follows:
  setenv ipaddr 192.168.1.1
  setenv serverip 192.168.1.100
  tftpboot openwrt-mediatek-mt7622-netgear_wax206-initramfs-recovery.itb
  bootm

Known Limitations:
* The 2.5G WAN port labeled 'wan' only works for speeds up to 1G at the
  moment. If connected to a multi-gig port the speed has to be manually
  set to 1G/full either for the switch port or in OpenWrt. For example
  add the following to /etc/rc.local to set it on boot:
  /usr/sbin/ethtool -s wan speed 1000 duplex full

Revert to stock firmware:
* Flash the stock firmware to the bootloader using TFTP/NMRP.

References to WAX206 GPL source:
https://www.downloads.netgear.com/files/GPL/WAX206_V1.0.4.0_Source.rar

* openwrt/target/linux/mediatek/dts/mt7622-netgear-wax206.dts
  DTS file for this device.
* openwrt/target/linux/mediatek/image/mt7622.mk
  Image creation code for this device

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
[fix WAN port (1G only), adjust partition layout, adjust image creation]
Signed-off-by: Thomas Kupper <thomas.kupper@gmail.com>
21 months agokernel: bump 5.15 to 5.15.94
John Audia [Wed, 15 Feb 2023 18:15:38 +0000 (13:15 -0500)]
kernel: bump 5.15 to 5.15.94

Patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
21 months agoramips: backport mt7621 PCIs initialization delay patch
Shiji Yang [Thu, 9 Feb 2023 14:00:59 +0000 (22:00 +0800)]
ramips: backport mt7621 PCIs initialization delay patch

The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Some devices like ZBT WE1326 and ZBT WF3526-P and some Netgear models need
to delay phy port initialization after calling the mt7621_pcie_init_port()
driver function to get into reliable boots for both warm and hard resets.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
21 months agokernel: 5.15: refresh patches
Paul Spooren [Fri, 17 Feb 2023 17:30:00 +0000 (18:30 +0100)]
kernel: 5.15: refresh patches

This commit fixes the following commit

    f584fb2f7e kernel: import accepted MediaTek Ethernet patches

Unrefreshed patches caused the CI to fail.

Signed-off-by: Paul Spooren <mail@aparcar.org>
21 months agoRevert "ipq806x: disable ea8500 image by default"
Christian Marangi [Fri, 17 Feb 2023 03:17:13 +0000 (04:17 +0100)]
Revert "ipq806x: disable ea8500 image by default"

This reverts commit c4a9a67de8ec85a12a004a34a740bd89ca8895e9.

Device is now fixed and works correctly with kernel 5.15.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoRevert "ipq806x: disable ea8500 image by default"
Christian Marangi [Fri, 17 Feb 2023 03:16:40 +0000 (04:16 +0100)]
Revert "ipq806x: disable ea8500 image by default"

This reverts commit 5384c9337f2323727081e32369a86b62e72c47d8.

Device is now fixed and works correctly with kernel 5.15.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoipq806x: 5.10: refresh patches
Christian Marangi [Fri, 17 Feb 2023 03:25:59 +0000 (04:25 +0100)]
ipq806x: 5.10: refresh patches

Refresh patches for kernel 5.10

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoipq806x: fix Linksys EAX500 family devices dead Ethernet switch
Christian Marangi [Fri, 17 Feb 2023 02:43:29 +0000 (03:43 +0100)]
ipq806x: fix Linksys EAX500 family devices dead Ethernet switch

With 5.15 kernel version Linksys EAX500 family devices suffered from a
big regression where the Ethernet switch became silent and started to
malfunction.

It was discovered later that the cause was not really the kernel upgrade
itself but a hackish implementation of the hw implementation of these
special routers.

In the original Linksys source code, GPIO 63 was handled in a special way
and was reset on reboot.

Normally GPIO 63 is used for pcie2 reset but in every device we support,
pcie2 is actually never used as nothing is attached to it.

Linksys rerouted GPIO 63 to the switch reset pin and deviates from
common hw implementation.

Till now it was used an hack to handle this case... It was set pcie3 as
working (while actually nothing was connected), set it to output low
(for assert-deassert from the pcie init code) and be done with it.
The result was that the GPIO was reset for enough time in early boot and
everything worked correctly.
This hack implementation was born to fail from the very start and in
kernel 5.15 finally problem arised.

In 5.15 pcie code changed and now the GPIO reset pin is not asserted as
probe won't fail if nothing is connected to the line (the old behaviour)
This result in the switch hold the reset pin and the Ethernet switch
dead.

On top of that with 5.15 code got optimized and simply attaching the
GPIO reset to the mdio wasn't enough as the switch require at least 10ms
to be correctly reset.

So implement finally a correct solution where:
- pcie2 is correctly disabled (nothing attached, unused)
- drop the wrong output-low for pcie2 reset pin
- define GPIO 63 as switch reset
- Add the reset-gpios to the mdio0 node
- Set the reset-post-delay-us to 12ms to correctly give time the switch
  to reset

Fixes: #10983
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoramips: Switch default kernel to 5.15
Rodrigo B. de Sousa Martins [Tue, 15 Nov 2022 19:05:16 +0000 (16:05 -0300)]
ramips: Switch default kernel to 5.15

I tested kernel 5.15 on my device for several times without any problems.
In my tests, 5.15 kernel has performance improvements such MGLRU.
Finally, initial kernel 6.1 support is imminent. All ramips subtargets have
5.15 as testing kernel. So, it's time to change.

Tested on my Archer C6 v3.2 (mt7621)

Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
[reformat commit subject and message]
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
21 months agoramips: fix wrong pcie port number for Arcadyan devices
Mikhail Zhilkin [Sat, 19 Nov 2022 11:11:26 +0000 (11:11 +0000)]
ramips: fix wrong pcie port number for Arcadyan devices

Wrong pcie port number for WLAN causes missing 5g WLAN interface with 5.15
kernel. This changes port from pcie0 to pcie1 in dtsi.

[1.166330] mt7621-pci 1e140000.pcie: pcie0 no card, disable it (RST & CLK)
[1.180073] mt7621-pci 1e140000.pcie: pcie2 no card, disable it (RST & CLK)
[1.193889] mt7621-pci 1e140000.pcie: PCIE1 enabled

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
21 months agoodhcpd: bump to git HEAD
Stijn Tintel [Fri, 17 Feb 2023 14:30:03 +0000 (16:30 +0200)]
odhcpd: bump to git HEAD

  dfab0fa dhcpv4: detect noarp interfaces
  5a17751 router: improve RA logging
  edc5e17 router: always check ra_default

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
21 months agobuild: add option to use preinit IP as LAN IP
Stijn Tintel [Wed, 7 Dec 2022 17:04:12 +0000 (19:04 +0200)]
build: add option to use preinit IP as LAN IP

We currently have build options to customize the IP address used in the
preinit phase of the boot process, but not to set the default LAN IP.

Introduce a boolean build option that, when enabled, results in the IP
address configured for the preinit phase, to be also used as the default
LAN IP address.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
21 months agoipq807x: move AQR driver from built-in to kmod
Robert Marko [Wed, 15 Feb 2023 16:05:30 +0000 (17:05 +0100)]
ipq807x: move AQR driver from built-in to kmod

ipq807x does not compile-in hwmon core, and this is leading to the hwmon
code in AQR driver not being compiled due to IS_REACHABLE(CONFIG_HWMON)
evaluating to false as hwmon is being built as a module.

So, lets not compile-in Aquantia PHY driver so it can be included as kmod
instead to have functioning hwmon.

This allows using the thermal sensors in AQR-s as thermal zones for
cooling devices like fans.

Signed-off-by: Robert Marko <robimarko@gmail.com>
21 months agokernel: modules: package Aquantia PHY driver
Robert Marko [Wed, 15 Feb 2023 15:58:41 +0000 (16:58 +0100)]
kernel: modules: package Aquantia PHY driver

Package the Aquantia AQR PHY driver as kmod.

This enables using the Aquantia driver with hwmon support on targets where
hwmon is not compiled-in.

Currently, in case when AQR driver is compiled-in but hwmon core is not
hwmon code in AQR driver will not get compiled because of macro
IS_REACHABLE(CONFIG_HWMON) evaluating to false.

Signed-off-by: Robert Marko <robimarko@gmail.com>
21 months agobcm4908: refactor packet steering init
Rafał Miłecki [Wed, 15 Feb 2023 18:40:38 +0000 (19:40 +0100)]
bcm4908: refactor packet steering init

Replace a standalone init.d script with a platform implementation as
supported by netifd. This avoids a race between netifd and target
specific setups.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agobcm53xx: fix shebang in packet_steering.sh
Rafał Miłecki [Wed, 15 Feb 2023 18:04:34 +0000 (19:04 +0100)]
bcm53xx: fix shebang in packet_steering.sh

Fixes: 6e555ac3ad26 ("bcm53xx: refactor packet steering init")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agoiptables: iptables-mod-conntrack-extra: don't select kmod-ipt-raw
Rafał Miłecki [Thu, 9 Feb 2023 12:29:37 +0000 (13:29 +0100)]
iptables: iptables-mod-conntrack-extra: don't select kmod-ipt-raw

Package kmod-ipt-raw enables CONFIG_IP_NF_RAW and packages
iptable_raw.ko

According to kernel's net/netfilter/Kconfig there are only 3 kernel
symbols that depend on the IP_NF_RAW:
1. NETFILTER_XT_TARGET_CT (xt_CT.ko)
2. NETFILTER_XT_TARGET_NOTRACK (unused symbol?!)
3. NETFILTER_XT_TARGET_TRACE (xt_TRACE.ko)

Now: iptables-mod-conntrack-extra selects kmod-ipt-conntrack-extra which
provides: xt_helper.ko nf_conncount.ko xt_connlimit.ko xt_connmark.ko
xt_recent.ko and xt_connbytes.ko (none of them seems to require
iptable_raw.ko).

It seems there is no explicit reason for iptables-mod-conntrack-extra to
require kmod-ipt-raw (iptables_raw.ko).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agobcm53xx: refactor packet steering init
Rafał Miłecki [Mon, 13 Feb 2023 09:32:45 +0000 (10:32 +0100)]
bcm53xx: refactor packet steering init

Replace a standalone init.d script with a platform implementation as
supported by netifd. This avoids a race between netifd and target
specific setups.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agonetifd: refactor packet steering init
Rafał Miłecki [Mon, 13 Feb 2023 08:23:39 +0000 (09:23 +0100)]
netifd: refactor packet steering init

1. Move setup code to independent script file
2. Add init.d script to allow automatic updates
3. Support platform specific /usr/libexec/platform/packet-steering.sh

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agokernel: import accepted MediaTek Ethernet patches
Daniel Golle [Tue, 14 Feb 2023 23:25:19 +0000 (23:25 +0000)]
kernel: import accepted MediaTek Ethernet patches

Import some accepted and pending upstream patches for mtk_eth_soc,
replacing some semantically equivalent local patches and fixing issues
when operating the PCS in 1G SGMII mode.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
21 months agomediatek: mtk_thermal: replace with upstream patch
Daniel Golle [Wed, 18 Jan 2023 03:14:29 +0000 (03:14 +0000)]
mediatek: mtk_thermal: replace with upstream patch

Replace local patch adding thermal support for MT7986 with version
accepted upstream.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
21 months agotreewide: replace /sys/devices/virtual/ubi by /sys/class/ubi
Daniel Golle [Wed, 15 Feb 2023 03:06:05 +0000 (03:06 +0000)]
treewide: replace /sys/devices/virtual/ubi by /sys/class/ubi

Starting from Linux Kernel version 6.3 UBI devices will no longer be
considered virtual, but rather have an MTD device parent. Hence they
will no longer be listed under /sys/devices/virtual/ubi which is
used in multiple places in OpenWrt. Prepare for future kernels by
using /sys/class/ubi instead of /sys/devuces/virtual/ubi.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
21 months agofstools: update to git HEAD
Daniel Golle [Wed, 15 Feb 2023 03:26:34 +0000 (03:26 +0000)]
fstools: update to git HEAD

 12155d3 libfstools: use class interface to iterate over ubi devices

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
21 months agoucode: update to the latest version
Felix Fietkau [Fri, 3 Feb 2023 13:25:02 +0000 (14:25 +0100)]
ucode: update to the latest version

08c709c58187 rtnl: add support for registering an uloop based listener
599a7fb59380 Merge pull request #140 from nbd168/rtnl
c4125c516e0a nl80211: fix NL80211_ATTR_SURVEY_INFO
c43bb9d8fe8d Merge pull request #141 from dhewg/master
c1342d934b2d nl80211: add missing ucv_get() calls
9022b270683a rtnl: add missing ucv_get() calls
837cffec5a5c Merge pull request #142 from nbd168/ref-fixes
65b1f181e642 rtnl: add missing uc_vm_registry_set call
ab2f3f70257d Merge pull request #143 from nbd168/rtnl-fix

Signed-off-by: Felix Fietkau <nbd@nbd.name>
21 months agoipq807x: add support for Buffalo WXR-5950AX12
INAGAKI Hiroshi [Mon, 23 Jan 2023 04:01:13 +0000 (13:01 +0900)]
ipq807x: add support for Buffalo WXR-5950AX12

Buffalo WXR-5950AX12 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
IPQ8074A.

Specification:

- SoC         : Qualcomm IPQ8074A
- RAM         : DDR3 1024 MiB (2x Nanya NT5CC256M16ER-EK)
- Flash       : RAW NAND 256 MiB (Winbond W29N02GZBIBA)
- WLAN        : 2.4/5 GHz (IPQ8074A)
- Ethernet    : 5 ports
  - WAN       : 100/1000/2500/10000 Mbps x1 (AQR113C)
  - LAN       : 100/1000/2500/10000 Mbps x1 (AQR113C),
                10/100/1000 Mbps x3 (QCA8075)
- LED/Keys    : 8x/5x
- UART        : pin header on PCB (J7)
  - assignment: 3.3V, GND, TX, RX from disc marking
  - settings  : 115200n8
- Power       : 12 VDC, 4 A

Flash instruction using initramfs image:

1. Prepare TFTP server with IP address 192.168.11.10
2. Rename OpenWrt initramfs image to "WXR-5950AX12-initramfs.uImage and
   place it to TFTP directory
3. Hold AOSS (WPS) button and power on WXR-5950AX12
4. WXR-5950AX12 downloads initramfs image from TFTP server and boots
   with it automatically
5. Upload sysupgrade image to WXR-5950AX12 and perform sysupgrade
6. Wait ~120 seconds to complete flashing

Partition layout:

0x000000000000-0x000000100000 : "0:sbl1"
0x000000100000-0x000000200000 : "0:mibib"
0x000000200000-0x000000280000 : "0:bootconfig"
0x000000280000-0x000000300000 : "0:bootconfig1"
0x000000300000-0x000000600000 : "0:qsee"
0x000000600000-0x000000900000 : "0:qsee_1"
0x000000900000-0x000000980000 : "0:devcfg"
0x000000980000-0x000000a00000 : "0:devcfg_1"
0x000000a00000-0x000000a80000 : "0:apdp"
0x000000a80000-0x000000b00000 : "0:apdp_1"
0x000000b00000-0x000000b80000 : "0:rpm"
0x000000b80000-0x000000c00000 : "0:rpm_1"
0x000000c00000-0x000000c80000 : "0:cdt"
0x000000c80000-0x000000d00000 : "0:cdt_1"
0x000000d00000-0x000000d80000 : "0:appsblenv"
0x000000d80000-0x000000e80000 : "0:appsbl"
0x000000e80000-0x000000f80000 : "0:appsbl_1"
0x000000f80000-0x000001000000 : "0:art"
0x000001000000-0x000001080000 : "0:art_1"
0x000001080000-0x000001100000 : "0:orgdata"
0x000001100000-0x000001180000 : "0:orgdata_1"
0x000001180000-0x000005180000 : "rootfs"
0x000005180000-0x000009180000 : "rootfs_recover"
0x000009180000-0x000010000000 : "user_property"

Notes:

- WXR-5950AX12 has 2x OS images on NAND flash. The 1st image is for
  normal operation and the 2nd one is for recoverying or firmware
  upgrading on stock.

- Stock U-Boot checks MD5 hashes in "fw_hash" volume in each "root*"
  partition when booting. This is just a comparation of hash strings.

  Behaviors:

  - both "fw_hash" volumes exist, hashes are rootfs == rootfs_recover
    ---> boot from rootfs

  - both "fw_hash" volumes exist, hashes are rootfs != rootfs_recover
    ---> boot from rootfs_recover

    Note: this behavior is used for firmware upgrading on stock

  - "fw_hash" volume in rootfs is missing
    ---> boot from rootfs_recover

  - "fw_hash" volume in rootfs_recover is missing
    ---> boot from rootfs

  - "fw_hash" volumes in both root* partition are missing
    ---> boot from rootfs_recover

Reverting to stock firmware:

1. Decrypt official image by buffalo-enc and remove header

   example of decryption:

   $ buffalo-enc -i wxr_5950ax12_jp_305 -o wxr_5950ax12_jp_305.dec \
                 -d -k olaffuB -O 0xc8

   example of removing header (v3.05):

   - before

   $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.dec
   00000000  57 58 52 2d 35 39 35 30  41 58 31 32 5f 33 2e 30  |WXR-5950AX12_3.0|
   00000010  35 5f 31 2e 30 31 5f 4a  50 5f 6a 70 5f 71 63 61  |5_1.01_JP_jp_qca|
   00000020  0a 66 69 6c 65 6c 65 6e  3d 34 35 33 35 30 39 31  |.filelen=4535091|
   00000030  32 0a 55 42 49 23 01 00  00 00 00 00 00 00 00 00  |2.UBI#..........|
   00000040

   - after

   $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.ubi
   00000000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
   00000010  00 00 08 00 00 00 10 00  78 cf c4 91 00 00 00 00  |........x.......|
   00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
   00000030  00 00 00 00 00 00 00 00  00 00 00 00 3d 2a 64 fd  |............=*d.|
   00000040

2. Boot WXR-5950AX12 with OpenWrt initramfs image

3. Upload modified stock image to WXR-5950AX12

4. Find partitions "rootfs" and "rootfs_recover"

   example:

   root@OpenWrt:/# cat /proc/mtd
   dev:    size   erasesize  name
   ...
   mtd22: 04000000 00020000 "rootfs"
   mtd23: 04000000 00020000 "rootfs_recover"
   ...

   in this case, "rootfs" is mtd22 and "rootfs_recover" is mtd23

5. Format "rootfs"/"rootfs_recover" partition with the uploaded image

   example:

   ubiformat /dev/mtd22 -f /tmp/wxr_5950ax12_jp_305.ubi
   ubiformat /dev/mtd23 -f /tmp/wxr_5950ax12_jp_305.ubi

6. Remove "rootfs"/"rootfs_data" volume from user_property partition

   example:

   . /lib/upgrade/nand.sh
   UBI=$(nand_attach_ubi user_property)
   ubirmvol /dev/$UBI -N rootfs
   ubirmvol /dev/$UBI -N rootfs_data

7. Reboot

MAC addresses:

LAN    : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text))
WAN    : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text))
2.4 GHz: 50:C4:DD:xx:xx:30 (0:APPSBLENV, wlan0addr (text))
5 GHz  : 50:C4:DD:xx:xx:38 (0:APPSBLENV, wlan1addr (text))

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agoipq807x: merge duplicate network configurations in 02_network
INAGAKI Hiroshi [Sun, 22 Jan 2023 07:35:04 +0000 (16:35 +0900)]
ipq807x: merge duplicate network configurations in 02_network

Merge network configurations in 02_network of Dynalink DL-WRX36 and
Xiaomi AX9000.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agoipq807x: enable regulator-fixed driver
INAGAKI Hiroshi [Mon, 23 Jan 2023 04:00:21 +0000 (13:00 +0900)]
ipq807x: enable regulator-fixed driver

Enable regulator-fixed to define the regulator of USB vbus on Buffalo
WXR-5950AX12.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agorealtek: add support for APRESIA ApresiaLightGS120GT-SS
INAGAKI Hiroshi [Mon, 20 Sep 2021 13:28:51 +0000 (22:28 +0900)]
realtek: add support for APRESIA ApresiaLightGS120GT-SS

APRESIA ApresiaLightGS120GT-SS (APLGS120GTSS) is a 16 + 4 ports gigabit
switch, based on RTL8382M.

Specifications:

- SoC          : Realtek RTL8382M
- RAM          : DDR3 256 MiB (Nanya NT5CC256M8JQ-EK)
- Flash        : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G)
- Ethernet     : 10/100/1000 Mbps x16 + 4
  - port  1-8  : RTL8218B
  - port  9-16 : RTL8382M, TP (SoC, RTL8218B)
  - port 17-20 : RTL8214FC, TP/SFP (Combo)
- LEDs/Keys    : 3x/1x
- UART         : through-hole on PCB
  - J6: 3.3V, TX, RX, GND from tri-angle marking side
  - 115200n8
- Power        : 100-120/200-240 VAC, 50/60 Hz
                 Max. 16 W, Avg 14 W (100 VAC)
  - Plug       : IEC 60320-C13

Flash instruction using factory image:

1. Boot ApresiaLightGS120GT-SS normally
2. Login to WebUI and open firmware page ("ファームウェア")
3. If the device is booted from image1, set active image for next
   booting ("起動イメージ選択") to image2("イメージ2"), press apply
   ("適用") button and reboot the device to make booting from image2
4. On the WebUI, set active image to image1
5. Select the OpenWrt factory image and press update button ("更新")
6. Open reboot page ("再起動") and press reboot button ("再起動実行")

Notes:

- "ApresiaLightGS120GT-SS" is a model name and "APLGS120GTSS" is a model
  number

- this device has 3x GPIO-controlled LEDs on PCB, but 1x LED
  ("green:unused") has no hole on the case

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agorealtek: add common definition of cameo based firmware
INAGAKI Hiroshi [Sat, 8 Oct 2022 12:46:51 +0000 (21:46 +0900)]
realtek: add common definition of cameo based firmware

The cameo-related recipes can also be used for APRESIA ApresiaLightGS
series devices. So create common definition for the devices manufactured
by Cameo.
And also, the model name of ApresiaLightGS120GT-SS is too long for cameo
header (max: 20 bytes), so use additional variable "CAMEO_BOARD_MODEL"
in Build/cameo-headers instead of DEVICE_MODEL to use the custom name.
(default of CAMEO_BOARD_MODEL: DEVICE_MODEL)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agorealtek: rename cameo specific names in "Build/*" definitions
INAGAKI Hiroshi [Fri, 7 Oct 2022 16:07:17 +0000 (01:07 +0900)]
realtek: rename cameo specific names in "Build/*" definitions

This patch renames some Cameo specific definitions for image generation.
The same format is also used on APRESIA ApresiaLightGS series devices, not
D-Link specific.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agouboot-envtools: add support for APRESIA ApresiaLightGS120GT-SS
INAGAKI Hiroshi [Sun, 9 Oct 2022 08:43:13 +0000 (17:43 +0900)]
uboot-envtools: add support for APRESIA ApresiaLightGS120GT-SS

This patch adds support for APRESIA ApresiaLightGS120GT-SS to
uboot-envtools.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
21 months agorealtek: fix memory leak in netevent handler
Jan Hoffmann [Wed, 8 Feb 2023 21:53:32 +0000 (22:53 +0100)]
realtek: fix memory leak in netevent handler

The net_event_work struct is allocated, but only freed in a single case.
Move the allocation to the branch where it is actually needed, and free
it after the work has been done.

Fixes: 03e1d93e0779 ("realtek: add driver support for routing offload")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
21 months agokernel: add missing optimization for page pool
Felix Fietkau [Mon, 13 Feb 2023 10:46:44 +0000 (11:46 +0100)]
kernel: add missing optimization for page pool

Improves performance in combination with threaded NAPI

Signed-off-by: Felix Fietkau <nbd@nbd.name>
21 months agomac80211: add fixes for receiving A-MSDU packets on mesh interfaces
Felix Fietkau [Sat, 10 Dec 2022 13:55:33 +0000 (14:55 +0100)]
mac80211: add fixes for receiving A-MSDU packets on mesh interfaces

The standard defines the A-MSDU header length field differently for mesh
compared to other modes. Deal with this accordingly and work around broken
implementations (e.g. ath10k, ath11k).

Signed-off-by: Felix Fietkau <nbd@nbd.name>
21 months agoe2fsprogs: update to 1.47.0
Nick Hainke [Sun, 12 Feb 2023 10:03:05 +0000 (11:03 +0100)]
e2fsprogs: update to 1.47.0

Release notes:
https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0

Signed-off-by: Nick Hainke <vincent@systemli.org>
21 months agotoolchain: glibc: Update to glibc 2.37
Linhui Liu [Fri, 3 Feb 2023 09:47:10 +0000 (17:47 +0800)]
toolchain: glibc: Update to glibc 2.37

This updates to glibc to version 2.37.

Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
[Update to current git commit]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
21 months agoramips: add support for ASUS RT-AX54
Karl Chan [Sun, 29 Jan 2023 05:37:28 +0000 (13:37 +0800)]
ramips: add support for ASUS RT-AX54

Specifications:
- Device: ASUS RT-AX54 (AX1800S/HP,AX54HP)
- SoC: MT7621AT
- Flash: 128MB
- RAM: 256MB
- Switch: 1 WAN, 4 LAN (10/100/1000 Mbps)
- WiFi: MT7905 2x2 2.4G + MT7975 2x2 5G
- LEDs: 1x POWER (blue, configurable)
        1x LAN (blue, configurable)
        1x WAN (blue, configurable)
1x 2.4G (blue, not configurable)
1x 5G (blue, not configurable)

Flash by U-Boot TFTP method:
- Configure your PC with IP 192.168.1.2
- Set up TFTP server and put the factory.bin image on your PC
- Connect serial port(rate:115200) and turn on AP, then interrupt "U-Boot Boot Menu" by hitting any key
   Select "2. Upgrade firmware"
   Press enter when show "Run firmware after upgrading? (Y/n):"
   Select 0 for TFTP method
   Input U-Boot's IP address: 192.168.1.1
   Input TFTP server's IP address: 192.168.1.2
   Input IP netmask: 255.255.255.0
   Input file name: openwrt-ramips-mt7621-asus_rt-ax1800hp-squashfs-factory.bin
- Restart AP aftre see the log "Firmware upgrade completed!"

Signed-off-by: Karl Chan <exkc@exkc.moe>
21 months agoath79: bump SPI frequency of Senao qca955x routers
Michael Pratt [Sat, 21 Jan 2023 19:13:54 +0000 (14:13 -0500)]
ath79: bump SPI frequency of Senao qca955x routers

All boards using this DTSI are expected to have
the same 16 MB MX25L12845EMI-10G flash chip,
or a larger one which can also use 40 MHz frequency.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoath79: add eth0 mac and initvals for Engenius EPG5000
Michael Pratt [Tue, 31 Jan 2023 18:58:38 +0000 (13:58 -0500)]
ath79: add eth0 mac and initvals for Engenius EPG5000

Although VLANs are used, the "eth0" device by itself
does not have a valid MAC, so fix that with preinit script.

More initvals added by editing the driver to print switch registers,
after the bootloader sets them but before openwrt changes them.

The register bits needed for the QCA8337 switch
can be read from interrupted boot (tftpboot, bootm)
by adding print lines in the switch driver ar8327.c
before 'qca,ar8327-initvals' is parsed from DTS and written
for example:

  pr_info("0x04 %08x\n", ar8xxx_read(priv, AR8327_REG_PAD0_MODE));

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoath79: convert Engenius EPG5000 radios to nvmem-cells
Michael Pratt [Tue, 31 Jan 2023 17:54:14 +0000 (12:54 -0500)]
ath79: convert Engenius EPG5000 radios to nvmem-cells

Use nvmem kernel subsystem to pull radio calibration data
with the devicetree instead of userspace scripts.

Existing blocks for caldata_extract are reordered alphabetically.

MAC address is set using the hotplug script.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoath79: add support for Senao Engenius ESR1200
Michael Pratt [Wed, 25 Jan 2023 16:24:00 +0000 (11:24 -0500)]
ath79: add support for Senao Engenius ESR1200

FCC ID: A8J-ESR900

Engenius ESR1200 is an indoor wireless router with
a gigabit ethernet switch, dual-band wireless,
internal antenna plates, and a USB 2.0 port

**Specification:**

  - QCA9557 SOC 2.4 GHz, 2x2
  - QCA9882 WLAN PCIe mini card, 5 GHz, 2x2
  - QCA8337N SW 4 ports LAN, 1 port WAN
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 2x 64 MB RAM
  - UART at J1 populated, RX grounded
  - 6 internal antenna plates (omni-directional)
  - 5 LEDs, 1 button (power, 2G, 5G, WAN, WPS) (reset)

**MAC addresses:**

  Base MAC address labeled as "MAC ADDRESS"
  MAC "wanaddr" is not similar to "ethaddr"

  eth0 *:c8 MAC u-boot-env ethaddr
  phy0 *:c8 MAC u-boot-env ethaddr
  phy1 *:c9 --- u-boot-env ethaddr +1
  WAN  *:66:44  u-boot-env wanaddr

**Serial Access:**

  RX on the board for UART is shorted to ground by resistor R176
  therefore it must be removed to use the console
  but it is not necessary to remove to view boot log

  optionally, R175 can be replaced with a solder bridge short

  the resistors R175 and R176 are next to the UART RX pin

**Installation:**

  Method 1: Firmware upgrade page

    OEM webpage at 192.168.0.1
    username and password "admin"
    Navigate to Settings (gear icon) --> Tools --> Firmware
    select the factory.bin image
    confirm and wait 3 minutes

  Method 2: TFTP recovery

    Follow TFTP instructions using initramfs.bin
    use sysupgrade.bin to flash using openwrt web interface

**Return to OEM:**

  MTD partitions should be backed up before flashing
  using TFTP to boot openwrt without overwriting flash

  Alternatively, it is possible to edit OEM firmware images
  to flash MTD partitions in openwrt to restore OEM firmware
  by removing the OEM header and writing the rest to "firmware"

**TFTP recovery:**

  Requires serial console, reset button does nothing at boot

  rename initramfs.bin to 'uImageESR1200'
  make available on TFTP server at 192.168.99.8
  power board, interrupt boot by pressing '4' rapidly
  execute tftpboot and bootm

**Note on ETH switch registers**

  Registers must be written to the ethernet switch
  in order to set up the switch's MAC interface.
  U-boot can write the registers on it's own
  which is needed, for example, in a TFTP transfer.

  The register bits from OEM for the QCA8337 switch
  can be read from interrupted boot (tftpboot, bootm)
  by adding print lines in the switch driver ar8327.c
  before 'qca,ar8327-initvals' is parsed from DTS and written.
  for example:

    pr_info("0x04 %08x\n", ar8xxx_read(priv, AR8327_REG_PAD0_MODE));

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoath79: add support for Senao Engenius ESR1750
Michael Pratt [Sun, 22 Jan 2023 08:21:53 +0000 (03:21 -0500)]
ath79: add support for Senao Engenius ESR1750

FCC ID: A8J-ESR1750

Engenius ESR1750 is an indoor wireless router with
a gigabit ethernet switch, dual-band wireless,
internal antenna plates, and a USB 2.0 port

**Specification:**

  - QCA9558 SOC 2.4 GHz, 3x3
  - QCA9880 WLAN PCIe mini card, 5 GHz, 3x3
  - QCA8337N SW 4 ports LAN, 1 port WAN
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 2x 64 MB RAM
  - UART at J1 populated, RX grounded
  - 6 internal antenna plates (omni-directional)
  - 5 LEDs, 1 button (power, 2G, 5G, WAN, WPS) (reset)

**MAC addresses:**

  Base MAC address labeled as "MAC ADDRESS"
  MAC "wanaddr" is similar to "ethaddr"

  eth0 *:58 MAC u-boot-env ethaddr
  phy0 *:58 MAC u-boot-env ethaddr
  phy1 *:59 --- u-boot-env ethaddr +1
  WAN  *:10:58  u-boot-env wanaddr

**Serial Access:**

  RX on the board for UART is shorted to ground by resistor R176
  therefore it must be removed to use the console
  but it is not necessary to remove to view boot log

  optionally, R175 can be replaced with a solder bridge short

  the resistors R175 and R176 are next to the UART RX pin

**Installation:**

  Method 1: Firmware upgrade page

    NOTE: ESR1750 might require the factory.bin
      for ESR1200 instead, OEM provides 1 image for both.

    OEM webpage at 192.168.0.1
    username and password "admin"
    Navigate to Settings (gear icon) --> Tools --> Firmware
    select the factory.bin image
    confirm and wait 3 minutes

  Method 2: TFTP recovery

    Follow TFTP instructions using initramfs.bin
    use sysupgrade.bin to flash using openwrt web interface

**Return to OEM:**

  MTD partitions should be backed up before flashing
  using TFTP to boot openwrt without overwriting flash

  Alternatively, it is possible to edit OEM firmware images
  to flash MTD partitions in openwrt to restore OEM firmware
  by removing the OEM header and writing the rest to "firmware"

**TFTP recovery:**

  Requires serial console, reset button does nothing at boot

  rename initramfs.bin to 'uImageESR1200'
  make available on TFTP server at 192.168.99.8
  power board, interrupt boot by pressing '4' rapidly
  execute tftpboot and bootm

**Note on ETH switch registers**

  Registers must be written to the ethernet switch
  in order to set up the switch's MAC interface.
  U-boot can write the registers on it's own
  which is needed, for example, in a TFTP transfer.

  The register bits from OEM for the QCA8337 switch
  can be read from interrupted boot (tftpboot, bootm)
  by adding print lines in the switch driver ar8327.c
  before 'qca,ar8327-initvals' is parsed from DTS and written.
  for example:

    pr_info("0x04 %08x\n", ar8xxx_read(priv, AR8327_REG_PAD0_MODE));

Signed-off-by: Michael Pratt <mcpratt@pm.me>