openwrt/staging/blogic.git
10 months agortl83xx: dsa: Do nothing when vid 0
Harshal Gohel [Mon, 27 Nov 2023 16:09:55 +0000 (17:09 +0100)]
rtl83xx: dsa: Do nothing when vid 0

Following other dsa drivers, vid 0 is no-op

Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
10 months agortl83xx: dsa: disable VLAN filtering on CPU port
Harshal Gohel [Mon, 27 Nov 2023 16:09:27 +0000 (17:09 +0100)]
rtl83xx: dsa: disable VLAN filtering on CPU port

Before driver code
 - enabled egress filter for cpu and non-cpu ports
 - enabled ingress filter for non-cpu ports

This patch explicitly enables ingress and egress filtering for non-cpu
ports and disables ingress and egress filtering for cpu port.

Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
10 months agortl838x: Enable jumbo frames by default
Harshal Gohel [Mon, 27 Nov 2023 16:08:04 +0000 (17:08 +0100)]
rtl838x: Enable jumbo frames by default

Increase DEFAULT_MTU and max-mtu size
Increase truncate length on rx of jumbo frame

Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
10 months agomediatek: fix BPI-R3 wifi mac address
Felix Fietkau [Tue, 9 Jan 2024 14:15:08 +0000 (15:15 +0100)]
mediatek: fix BPI-R3 wifi mac address

Setting/clearing bits on the first byte of the mac address causes collisions
when using multiple SSIDs on both PHYs. Change the allocation to alter the
last byte instead.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agomac80211: do not emit VHT160 capabilities if channel width is less than 160 MHz
Felix Fietkau [Tue, 9 Jan 2024 13:36:42 +0000 (14:36 +0100)]
mac80211: do not emit VHT160 capabilities if channel width is less than 160 MHz

Fixes compatibility issues with VHT160 capable clients

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agohostapd: add missing NULL pointer check on radar notification
Felix Fietkau [Tue, 9 Jan 2024 10:05:45 +0000 (11:05 +0100)]
hostapd: add missing NULL pointer check on radar notification

Fixes a race condition that can lead to a hostapd crash

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agolibubox: work around recent macOS linker change
Felix Fietkau [Thu, 21 Dec 2023 16:29:45 +0000 (17:29 +0100)]
libubox: work around recent macOS linker change

rpath handling seems to be more restrictive now. To deal with this,
link the libubox library from STAGING_DIR_HOST to STAGING_DIR_HOSTPKG, so that
packages installed to STAGING_DIR_HOSTPKG can pick it up. This mainly affects
ucode, but possibly other host builds as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agomediatek: disable btif for mt7622 devices
Felix Fietkau [Thu, 21 Dec 2023 20:20:17 +0000 (21:20 +0100)]
mediatek: disable btif for mt7622 devices

It breaks built-in SoC WLAN. Can be re-enabled after we've figured out the cause

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agomediatek: add support for YunCore AX835
Leon M. Busch-George [Fri, 13 Oct 2023 10:44:11 +0000 (12:44 +0200)]
mediatek: add support for YunCore AX835

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: 16MB NOR
  RAM: 256MB
  Ethernet: 2x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset
  Power: DC 12V 1A, PoE 802.3af 48V

Flash instructions:

Option #1 - SSH

  I was able to SSH into the stock firmware of my device.

  1. Attach the router to the network
  2. Use scp (-O) to copy the sysupgrade image
  3. Connect using SSH and run `sysupgrade -n`

Option #2 - U-Boot

  One way to use the bootloader for flashing is using TFTP:

  1. Connect to the router using an ethernet cable
  2  Spin up a TFTP server serving the sysupgrade file
  3. Open the case and attach a UART
  4. Attach power to the router and interrupt the countdown by pressing
     any key
  5. Select option #2 (Upgrade firmware)
  6. Enter IP address information and image name
  7. Wait patiently

Co-Authored-By: Enrique Rodríguez Valencia <enrique.rodriguez@galgus.net>
Co-Authored-By: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
10 months agomediatek: GL-MT6000: Add missing LED state definitions
Hannu Nyman [Sat, 6 Jan 2024 17:59:13 +0000 (19:59 +0200)]
mediatek: GL-MT6000: Add missing LED state definitions

Adjust LED names and provide the OpenWrt status indicator aliases
to actually use LEDs by the OpenWrt boot & sysupgrade processes.

* Name both LEDs clearly by the color
* Add the missing OpenWrt LED status indicator aliases and
  remove the now unnecessary default status from blue LED

After this commit, the LEDs are used as:

* bootloader, really early Linux boot: blue LED is on
* preinit/failsafe: white LED blinks rapidly
* late boot: white LED blinks slowly
* boot completed, running normally: blue LED is on

* sysupgrade: white LED blinks

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
10 months agoipq-wifi: fix PKG_MIRROR_HASH
Manuel Fombuena [Mon, 8 Jan 2024 01:49:58 +0000 (01:49 +0000)]
ipq-wifi: fix PKG_MIRROR_HASH

Incorrect PKG_MIRROR_HASH introduced on #14356

Fixes: 934873f4514b ("ipq-wifi: bump version to 2024-01-06-71f45cff")
Signed-off-by: Manuel Fombuena <mfombuena@innovara.co.uk>
10 months agoscripts: fix installed-size calculation
Paul Spooren [Sat, 6 Jan 2024 17:10:29 +0000 (18:10 +0100)]
scripts: fix installed-size calculation

Previously the script would calculate the size of the compressed archive
which isn't the size installed in the overlayfs.

This commit uses zcat in combination with wc to calculate the
umcompressed size.

Signed-off-by: Paul Spooren <mail@aparcar.org>
10 months agopackages: add PKG_URL variable
Paul Spooren [Sat, 6 Jan 2024 17:50:00 +0000 (18:50 +0100)]
packages: add PKG_URL variable

Using PKG_URL one may set the URL for all sub packages, which is usually
shared anyway. Future packages should only use PKG_URL instead of adding
it per sub-package.

Signed-off-by: Paul Spooren <mail@aparcar.org>
10 months agopackages: store URL in Manifest
Paul Spooren [Sat, 6 Jan 2024 17:48:46 +0000 (18:48 +0100)]
packages: store URL in Manifest

The manifest should provide as much information as possible about the
package, including the project URL. With this commit the URL is stored
as it's own attribute instead of at the end of the description.

Signed-off-by: Paul Spooren <mail@aparcar.org>
10 months agokernel: backport more NVMEM changes queued for v6.8
Rafał Miłecki [Fri, 5 Jan 2024 10:31:26 +0000 (11:31 +0100)]
kernel: backport more NVMEM changes queued for v6.8

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
10 months agoipq-wifi: bump version to 2024-01-06-71f45cff
Manuel Fombuena [Sun, 7 Jan 2024 01:04:36 +0000 (01:04 +0000)]
ipq-wifi: bump version to 2024-01-06-71f45cff

673662f ipq8074: add Wallys DR8072V01 BDF
7e8b237 ipq40xx: add ZyXEL WSQ50 QCA4019 BDF
831c1bd ipq40xx: add ZyXEL WSQ50 QCA9984 BDF
f9ff251 ipq40xx: add ASUS MAP-AC2200 QCA9888 BDF
71f45cf ipq8074: Update MX4200 BDF

Signed-off-by: Manuel Fombuena <mfombuena@innovara.co.uk>
Reviewed-by: Robert Marko <robimarko@gmail.com>
10 months agoath79: add support for UniFi UK-Ultra
David Bauer [Fri, 5 Jan 2024 16:18:09 +0000 (17:18 +0100)]
ath79: add support for UniFi UK-Ultra

Hardware
--------
CPU:   Qualcomm Atheros QCA9563
RAM:   128M DDR2
FLASH: 16MB SPI-NOR
WiFi:  Qualcomm Atheros QCA9563 2x2:2 802.11n 2.4GHz
       Qualcomm Atheros QCA9880 2x2:2 802.11ac 5GHz

Antennas
--------
The device features internal antennas as well as external antenna
connectors. By default, the internal antennas are used.

Two GPIOs are exported by name, which can be used to control the
antenna-path mux. Writing a logical 0 enables the external antenna
connectors.

Installation
------------
1. Download the OpenWrt sysupgrade image to the device. You can use scp
   for this task. The default username and password are "ubnt" and the
   device is reachable at 192.168.1.20.

   $ scp -O openwrt-sysupgrade.bin ubnt@192.168.1.20:/tmp/firmware.bin

2. Connect to the device using SSH.

   $ ssh ubnt@192.168.1.20

3. Disable the write-protect

   $ echo "5edfacbf" > /proc/ubnthal/.uf

4. Verify kernel0 and kernel1 match mtd2 and mtd3

   $ cat /proc/mtd

5. Write the sysupgrade image to kernel0 and kernel1

   $ dd if=/tmp/firmware.bin of=/dev/mtdblock2
   $ dd if=/tmp/firmware.bin of=/dev/mtdblock3

6. Write the bootselect flag to boot from kernel0

   $ dd if=/dev/zero bs=1 count=1 of=/dev/mtd4

7. Reboot the device

   $ reboot

Signed-off-by: David Bauer <mail@david-bauer.net>
10 months agoath79: move UniFi AC template into common
David Bauer [Fri, 5 Jan 2024 16:02:01 +0000 (17:02 +0100)]
ath79: move UniFi AC template into common

This allows us to embrace alphabetical sorting for the UK-Ultra.

Signed-off-by: David Bauer <mail@david-bauer.net>
10 months agomac80211: avoid crashing on invalid band info
David Bauer [Thu, 30 Nov 2023 06:32:52 +0000 (07:32 +0100)]
mac80211: avoid crashing on invalid band info

Frequent crashes have been observed on MT7916 based platforms. While the
root of these crashes are currently unknown, they happen when decoding
rate information of connected STAs in AP mode. The rate-information is
associated with a band which is not available on the PHY.

Check for this condition in order to avoid crashing the whole system.
This patch should be removed once the roout cause has been found and
fixed.

Link: https://github.com/freifunk-gluon/gluon/issues/2980
Signed-off-by: David Bauer <mail@david-bauer.net>
10 months agokernel: copy only *.ko for debug info
Chuanhong Guo [Sun, 7 Jan 2024 15:56:05 +0000 (23:56 +0800)]
kernel: copy only *.ko for debug info

Previous commits installed non-elf files into /lib/modules/$VER/.
COLLECT_KERNEL_DEBUG tries to strip all files and these two files
break the build.
Fix it by copying only kernel modules for debug info collection.

Fixes: e1d8e57614 ("kernel: include modinfo for built-in modules")
Fixes: 29f6da4340 ("kernel: include built-in module list")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
10 months agoramips: add alternative name to Etisalat (Sercomm) S3
Mikhail Zhilkin [Sun, 3 Dec 2023 15:05:40 +0000 (15:05 +0000)]
ramips: add alternative name to Etisalat (Sercomm) S3

This commit adds alternative name to Etisalat (Sercomm) S3 router.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
10 months agoramips: sercomm s1500: enable wlan LEDs activity blinking
Mikhail Zhilkin [Sun, 3 Dec 2023 12:42:47 +0000 (12:42 +0000)]
ramips: sercomm s1500: enable wlan LEDs activity blinking

This commit enables wireless LEDs activity blinking for Sercomm S1500
devices (Beeline Smartbox PRO, WiFire s1500.nbn).

Run-tested: WiFire s1500.nbn

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
10 months agoramips: update leds & buttons dts description
Mikhail Zhilkin [Sun, 3 Dec 2023 12:40:46 +0000 (12:40 +0000)]
ramips: update leds & buttons dts description

This commit:
1. Removes deprecated "label" property from the dts leds subnnodes;
2. Updates buttons and leds dts description according to kernel docs
   examples.

Scope: devices well known to me.

Run-tested: TP-Link ec330-g5u, WiFire S1500.nbn

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
10 months agoath79: support MikroTik RouterBOARD 911G-5HPacD
Lech Perczak [Sat, 18 Nov 2023 15:54:59 +0000 (16:54 +0100)]
ath79: support MikroTik RouterBOARD 911G-5HPacD

The MikroTik RouterBOARD 911G-5HPacD is a stripped-down version of
RB921GS-5HPacD, removing the SFP cage.
This ports the board from ar71xx, and is based on support for
RB921GS-5HPacD.

Disable mdio1 and eth1 nodes in routerboard-92x.dtsi, then re-enable
them in devices using that, so the newly-added device has the port
disabled properly.

See https://mikrotik.com/product/RB911G-5HPacD for more info.

Specifications:
 - SoC: Qualcomm Atheros QCA9558 (720 MHz)
 - RAM: 128 MB
 - Storage: 128 MB NAND
 - Wireless: external QCA9892 802.11a/ac 2x2:2
 - Ethernet: 1x 1000/100/10 Mbps, integrated, via AR8031 PHY, passive PoE in

Working:
 - NAND storage detection
 - Ethernet
 - Wireless
 - 1x user LED (blinks during boot, sysupgrade)
 - Reset button
 - Sysupgrade

Installation:
 - Boot initramfs image via TFTP and then flash sysupgrade image

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoath79: mikrotik: add rssileds support for Routerboard 911G and RB912UAG
Lech Perczak [Sat, 18 Nov 2023 15:54:18 +0000 (16:54 +0100)]
ath79: mikrotik: add rssileds support for Routerboard 911G and RB912UAG

LEDs 1 through 5 are used for RSSI monitoring on factory firmware.
Reflect that by creating appropriate rssileds configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoath79: support for MikroTik RouterBOARD 911G-(2,5)HPnD
Lech Perczak [Sat, 18 Nov 2023 15:53:45 +0000 (16:53 +0100)]
ath79: support for MikroTik RouterBOARD 911G-(2,5)HPnD

This is a stripped-down version of RB912UAG-(2,5)HPnD, without USB,
miniPCIe and SIM sockets.
This board has been supported in the ar71xx.

Add support based on RB912UAG board, by splitting out the common part to
.dtsi, and creating separate device tree for the stripped-down version.

Links:
* https://mikrotik.com/product/RB911G-2HPnD
* https://mikrotik.com/product/RB911G-5HPnD
* https://openwrt.org/toh/hwdata/mikrotik/mikrotik_rb911g-5hpnd

Hardware:
* SoC: Atheros AR9342,
* RAM: DDR 64MB,
* SPI NOR: 64KB,
* NAND: 128MB,
* Ethernet: x1 10/100/1000 port with passive POE in,
* Wi-Fi: 802.11 a/b/g/n (depending on band variant)
* LEDs: 5 general purpose LEDs (led1..led5), power LED, user LED,
  Ethernet phy LED,
* Button,
* Beeper.

Flashing:
* Use the RouterBOARD Reset button to enable TFTP netboot,
boot kernel and initramfs and then perform sysupgrade.
* From ar71xx OpenWrt firmware run:
  $ sysupgrade -F /tmp/<sysupgrade.bin>
For more info see: https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoath79: mikrotik: add RB912UAG-5HPnD as alternative name
Lech Perczak [Sat, 18 Nov 2023 15:53:20 +0000 (16:53 +0100)]
ath79: mikrotik: add RB912UAG-5HPnD as alternative name

Image for RB912UAG-2HPnD supports the 5GHz variant without
modifications. Add it as alternative name, so it can be found easier.
While at that, adjust board display name in device tree, to reflect
that.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: add missing syscon compatible strings for MT7688 and RT3052
Shiji Yang [Sat, 30 Dec 2023 11:52:18 +0000 (19:52 +0800)]
ramips: add missing syscon compatible strings for MT7688 and RT3052

MT7688 devices use the "mt7628an.dtsi" as the template. And RT3052
devices use the "rt3050.dtsi" as template. Therefore, we need to add
the corresponding system controller compatible strings to make them
work properly.

Fixes: 1f818b09f8ae ("ramips: add proper system clock and reset driver support for legacy SoCs")
Fixes: #14305
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
10 months agobuild: fix toplevel check target
Tony Ambardar [Sat, 6 Jan 2024 17:26:33 +0000 (09:26 -0800)]
build: fix toplevel check target

Partially revert changes to verbose logging that break the 'check' target
dependencies and trigger many runtime warnings like:
  /home/kodidev/openwrt-project/include/toplevel.mk:213: *** mixed implicit and normal rules: deprecated syntax

Fixes: e4a43cda0 ("build: allow var.% targets to bypass the prepare steps")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
10 months agoqualcommax: Fix Buffalo WXR-5950AX12 wifi MAC
Samir Ibradžić [Mon, 1 Jan 2024 07:23:09 +0000 (16:23 +0900)]
qualcommax: Fix Buffalo WXR-5950AX12 wifi MAC

Currently, WiFi interfaces on WXR-5950AX12 / WXR-6000AX12 devices
come up with some MAC addresses inconsistent with vendor and Ethernet
addresses. This adds a hotplug override in order to make it consistent
with what is in u-boot env as well as OAM firmware where 1st radio MAC
is set at Ethernet MAC + 8, and 2nd radio mac at Ethernet MAC + 16.

    fw_printenv | grep addr
    ethaddr=68:e1:dc:xx:xx:d8
    ipaddr=192.168.11.1
    wlan0addr=68:e1:dc:xx:xx:e0
    wlan1addr=68:e1:dc:xx:xx:e8
    wlan2addr=00:00:00:00:00:00

For OEM bootlog and MAC assagnment check
https://openwrt.org/toh/buffalo/wxr-5950ax12#openwrt_uimage_tftp_bootlog

Tested-by: Samir Ibradžić <sibradzic@gmail.com> # Buffalo WXR-6000AX12P
Signed-off-by: Samir Ibradžić <sibradzic@gmail.com>
10 months agomediatek: filogic: add support for Xiaomi AX3000T
Dim Fish [Mon, 27 Nov 2023 09:01:34 +0000 (12:01 +0300)]
mediatek: filogic: add support for Xiaomi AX3000T

  **SoC**: MediaTek MT7981B 2x A53
  **Flash**: ESMT F50L1G41LB 128MB
  **RAM**: NT52B128M16JR-FL 256MB
  **Ethernet**: 4x 10/100/1000 Mbps
  **Switch**: MediaTek MT7531AE
  **WiFi**: MediaTek MT7976C
  **Buttons**: Reset, Mesh
  **Power**: DC 12V 1A

1. Get ssh access. Supported stock firmware **1.0.47**
   ```
   curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=*******/api/misystem/arn_switch" -d "open=1&model=1&level=%0Anvram%20set%20ssh_en%3D1%0A"
   curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=*******/api/misystem/arn_switch" -d "open=1&model=1&level=%0Anvram%20commit%0A"
   curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=*******/api/misystem/arn_switch" -d "open=1&model=1&level=%0Ased%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%22debug%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%0A"
   curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=*******/api/misystem/arn_switch" -d "open=1&model=1&level=%0A%2Fetc%2Finit.d%2Fdropbear%20start%0A"
   curl -X POST "http://192.168.31.1/cgi-bin/luci/;stok=********/api/misystem/arn_switch" -d "open=1&model=1&level=%0Apasswd%20-d%20root%0A
   ```

2. Backup stock partitions
   ```
   nanddump -f /tmp/BL2.bin /dev/mtd1
   nanddump -f /tmp/Nvram.bin /dev/mtd2
   nanddump -f /tmp/Bdata.bin /dev/mtd3
   nanddump -f /tmp/Factory.bin /dev/mtd4
   nanddump -f /tmp/FIP.bin /dev/mtd5
   nanddump -f /tmp/ubi.bin /dev/mtd8
   nanddump -f /tmp/KF.bin /dev/mtd12
   ```
   Then transfer them to your computer in a safe place.

3. Get firmware information `cat /proc/cmdline`

4. Copy openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi to **/tmp** and flash
   If **firmware=0**
   ```
   ubiformat /dev/mtd9 -y -f /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi
   nvram set boot_wait=on
   nvram set uart_en=1
   nvram set flag_boot_rootfs=1
   nvram set flag_last_success=1
   nvram set flag_boot_success=1
   nvram set flag_try_sys1_failed=0
   nvram set flag_try_sys2_failed=0
   nvram commit
   reboot
   ```
   If **firmware=1**
   ```
   ubiformat /dev/mtd8 -y -f /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi
   nvram set boot_wait=on
   nvram set uart_en=1
   nvram set flag_boot_rootfs=0
   nvram set flag_last_success=0
   nvram set flag_boot_success=1
   nvram set flag_try_sys1_failed=0
   nvram set flag_try_sys2_failed=0
   nvram commit
   reboot
   ```

   Then reboot your router, it should boot to the OpenWrt initramfs system now.

5. Flash openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-squashfs-sysupgrade.bin
   `sysupgrade -n /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-squashfs-sysupgrade.bin`

1. Flash openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
   `ubiformat /dev/mtd8 -y -f /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb`

   `reboot`

2. Install kmod-mtd-rw
   `opkg update && opkg install kmod-mtd-rw`

   `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1`

3. Format ubi and create new ubootenv volume
   ```
   ubidetach -p /dev/mtd8; ubiformat /dev/mtd8 -y; ubiattach -p /dev/mtd8
   ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
   ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
   ```

4. *(Optional **-10Mb** free space) Add recovery boot feature.*
   ```
   ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB
   ubiupdatevol /dev/ubi0_2 /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
   ```

5. Flash Openwrt U-Boot
   ```
   mtd write /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin BL2
   mtd write /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip FIP
   ```

6. Flash openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb
   `sysupgrade -n /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb`

1. Force flash openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
   `sysupgrade -F -n /tmp/openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb`

2. Format ubi and Nvram
   ```
   ubidetach -p /dev/mtd8; ubiformat /dev/mtd8 -y; ubiattach -p /dev/mtd8
   mtd erase Nvram
   ```

3. Install kmod-mtd-rw
   `opkg update && opkg install kmod-mtd-rw`

   `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1`

4. Flash stock images from backup
   ```
   mtd write /tmp/BL2.bin BL2
   mtd write /tmp/FIP.bin FIP
   mtd write /tmp/ubi.bin ubi
   ```
   Then reboot your router, waiting it finished rollback in minutes.

   `ubiformat /dev/mtd7 -y -f /tmp/ubi.bin`
   Then reboot your router, waiting it finished rollback in minutes.

Signed-off-by: Dim Fish <dimfish@gmail.com>
10 months agokernel: include modinfo for built-in modules
Tony Ambardar [Tue, 5 Dec 2023 09:09:46 +0000 (01:09 -0800)]
kernel: include modinfo for built-in modules

Add modules.builtin.modinfo to the kernel package, to support presence
testing using module aliases and printing module details with 'modinfo'.

With related kmodloader changes this adds ~2 KB to compressed image sizes.

     root@OpenWrt:/# modinfo unix
     name:           unix
     filename:       (builtin)
     alias:          net-pf-1
     license:        GPL

     root@OpenWrt:/# modprobe net-pf-1 && echo SUCCESS || echo FAIL
     SUCCESS

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
10 months agokernel: include built-in module list
Tony Ambardar [Mon, 4 Dec 2023 11:09:28 +0000 (03:09 -0800)]
kernel: include built-in module list

Add modules.builtin to the kernel package for improved handling of loadable
and builtin modules. As with other distros, this allows 'modprobe <module>'
to consistently return success for both loaded/built-in modules, a useful
feature for presence-testing.

Given OpenWrt's few built-in modules, this change and related kmodloader
support add ~1 KB to the compressed image size.

Using sch_fq_codel (builtin) and sch_cake (loadable) for example:

     root@OpenWrt:/# modprobe sch_fq_codel && echo SUCCESS || echo FAIL
     SUCCESS
     root@OpenWrt:/# modprobe sch_cake && echo SUCCESS || echo FAIL
     SUCCESS

     root@OpenWrt:/# rmmod sch_fq_codel
     module is builtin

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
10 months agoipq807x: add support for Linksys MX4200 V1 and V2
Mohammad Sayful Islam [Wed, 3 Jan 2024 07:54:16 +0000 (07:54 +0000)]
ipq807x: add support for Linksys MX4200 V1 and V2

Linksys MX4200 is a 802.11ax Tri-band router/AP.
Specifications:
* CPU: Qualcomm IPQ8174 Quad core Cortex-A53 1.4GHz
* RAM: 512MB of DDR3
* Storage: 512Mb NAND
* Ethernet: 4x1G RJ45 ports (QCA8075)
* WLAN:
* 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 574 Mbps PHY rate
* 5GHz: Qualcomm QCN5054 2x2@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402 PHY rate
* 5GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402 PHY rate
* LED-s:
* RGB system led

* Buttons: 1x Soft reset 1x WPS
* Power: 12V DC Jack

Installation instructions:
Open Linksys Web UI - http://192.168.1.1/ca or http://10.65.1.1/ca depending on your setup.
Login with your admin password. The default password can be found on a sticker under the device.
To enter into the support mode, click on the “CA” link and the bottom of the page.
Open the “Connectivity” menu and upload the squash-factory image with the “Choose file” button.
Click start. Ignore all the prompts and warnings by click “yes” in all the popups.
The Wifi radios are turned off by default. To configure the router, you will need to connect your computer to the LAN port of the device.
Then you would need to write openwrt to the other partition for it to work
- First Check booted partition
fw_printenv -n boot_part

- Then install Openwrt to the other partition if booted in slot 1:
mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4200v(X)-squashfs-factory.bin alt_kernel

- If in slot 2:
mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4200v(X)-squashfs-factory.bin kernel

Replace (X) with your model version either 1 or 2

Signed-off-by: Mohammad Sayful Islam <sayf.mohammad01@gmail.com>
Reviewed-by: Robert Marko <robimarko@gmail.com>
10 months agoramips: reset mt7620 ethernet phy via reset controller
Shiji Yang [Tue, 12 Dec 2023 05:18:45 +0000 (05:18 +0000)]
ramips: reset mt7620 ethernet phy via reset controller

Use reset controller to reset mt7620 ethernet phy instead of directly
writing system control registers. The reset line of "ephy" is 24, so
the DTS resets properties have been updated to get the correct reset
signal.

Tested on HiWiFi HC5861.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
10 months agoramips: reset mt7620 frame engine via reset controller
Shiji Yang [Tue, 12 Dec 2023 04:58:29 +0000 (04:58 +0000)]
ramips: reset mt7620 frame engine via reset controller

Use reset controller to reset mt7620 frame engine instead of directly
writing system control registers.

Tested on HiWiFi HC5861.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
10 months agokernel: bump 6.1 to 6.1.71
John Audia [Fri, 5 Jan 2024 20:37:47 +0000 (15:37 -0500)]
kernel: bump 6.1 to 6.1.71

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

Manually rebased:
gemini/patches-6.1/0002-usb-fotg210-Collect-pieces-of-dual-mode-controller.patch

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>
10 months agokernel: bump 5.15 to 5.15.146
John Audia [Fri, 5 Jan 2024 20:40:08 +0000 (15:40 -0500)]
kernel: bump 5.15 to 5.15.146

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

Removed upstreamed:
generic/hack-5.15/940-ksmbd-have-a-dependency-on-cifs-arc4.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.146&id=ac385518598f50dd1b9b41bd05f50ce9795481d5

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>
10 months agomediatek: MERCUSYS MR90X v1: remove deprecated led "label" properties
Mikhail Zhilkin [Sun, 29 Oct 2023 08:47:17 +0000 (08:47 +0000)]
mediatek: MERCUSYS MR90X v1: remove deprecated led "label" properties

This commit:
1. Removes deprecated "label" property from the dts leds subnnodes;
2. Updates "01_leds" script.

Link: https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml
Link: https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/leds-gpio.yaml
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
10 months agorealtek: correct typo in port numbering
Michael 'ASAP' Weinrich [Thu, 4 Jan 2024 20:42:07 +0000 (15:42 -0500)]
realtek: correct typo in port numbering

Port 10 was incorrectly labelled as nonexistent port 0.

Signed-off-by: Michael 'ASAP' Weinrich <michael@a5ap.net>
10 months agorealtek: fix network connectivity on GS750E
Michael 'ASAP' Weinrich [Sun, 1 Oct 2023 07:03:51 +0000 (00:03 -0700)]
realtek: fix network connectivity on GS750E

Currently OpenWRT does not know how to properly reset the network switch. This would result in
a switch that seemed to come up properly but was unable to handle any traffic. Presumably something
earlier in the boot chain is configuring a part of the switch that gets wiped out when its reset.

For now comment out the reset GPIO entry in the device tree until the driver better supports
bringing up the switch after a reset.

Signed-off-by: Michael 'ASAP' Weinrich <michael@a5ap.net>
10 months agoag71xx: fix wrong register definition issue
Rosen Penev [Sun, 15 Oct 2023 20:53:11 +0000 (13:53 -0700)]
ag71xx: fix wrong register definition issue

Documentation fix from QCA SDK.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agomac80211: add missing newline for "min_tx_power"
Rany Hany [Wed, 3 Jan 2024 16:43:33 +0000 (18:43 +0200)]
mac80211: add missing newline for "min_tx_power"

This prevents min_tx_power from functioning properly in some circumstances.
Add the missing newline.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
10 months agoverbose.mk: fallback to standard file descriptors
Michael Pratt [Wed, 18 May 2022 03:06:36 +0000 (23:06 -0400)]
verbose.mk: fallback to standard file descriptors

In order to pass a status message at runtime,
which is usually listing subtargets
of a Makefile target or an error message,
from a child invocation of Make (submake)
through the parent process to the terminal,
the file descriptors 8 and 9 are opened to be used
by the functions MESSAGE and ERROR_MESSAGE.

However, there are situations where those functions
can be called while not in a submake or a subshell
or a child process which results in a shell error:

/bin/bash: 8: Bad file descriptor

Commit aee3594ffcb72ae3e18c3719012d52519ee2d160
("verbose.mk: print ERROR messages in non-verbose")
has exposed this issue to more cases, but it is not the root cause.

To solve this, use the exit code of the first printf attempt
to the alternative file descriptors in order to tell whether
the standard file descriptors need to be used instead.
In order to get rid of the "Bad file descriptor" error, stderr is
redirected to null after grouping the two printf alternatives
into one command to combine outputs.

For ERROR_MESSAGE, the real message is redirected to stderr
after redirecting the error from the attempted printing to null.

For MESSAGE, without redirection, the Make function "shell"
will absorb the actual message from stdout and input the value into the Makefile,
therefore the dummy variable "_NULL", previously used merely for causing
a call to the MESSAGE function to trigger without writing target rules,
now has and a real value when defined, so rename it to "_MESSAGE"
as a placeholder for the real message when the output should be stdout.

When "_MESSAGE" has a value, use Make function "info" to
finally bring it from the Makefile to the terminal.

This also fixes what is likely a typo, in that
while file descriptor 9 is meant to redirect to stderr
for use in error messages like in the function ERROR_MESSAGE,
that function has printf redirecting to file descriptor 8 instead.

Fixes: a4c8d4e37 ("build: make the color of the 'configuration out of sync' warning red")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agobuild: ensure silent Make behavior for json scripts
Michael Pratt [Fri, 24 Nov 2023 10:10:12 +0000 (05:10 -0500)]
build: ensure silent Make behavior for json scripts

Run the invocation of Make with verbosity in order to
prevent the printing of Makefile level and subtarget status.
e.g.  make[3] -C target/linux val.DEFAULT_PACKAGES val.ARCH_PACKAGES

Remove piping of stderr, which is only useful when using
the "communicate" method over the "run" method,
and this script would not be written to handle a captured error anyway.

For error testing, stdout and stderr can be set to a file object
with the open() function like this:

out = open('json_out', 'w')
err = open('json_err', 'w')

...
...
stdout=out,
stderr=err,

Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agobuild: allow var.% targets to bypass the prepare steps
Michael Pratt [Tue, 17 May 2022 21:50:23 +0000 (17:50 -0400)]
build: allow var.% targets to bypass the prepare steps

These targets are used to input variable values from the Make
context into other things like python scripts, so log messages
should be silenced and build prerequisites should be skipped.

The same thing is done for the other variable print target "val.%".

While at it, combine identical target rules into one definition.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agoath79: move kernel and ubi into subnodes
Rosen Penev [Fri, 1 Dec 2023 22:32:23 +0000 (14:32 -0800)]
ath79: move kernel and ubi into subnodes

Avoids dtc warnings regarding two sections having the same numbers.

X: duplicate unit-address (also used in node Y)

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoath79: gpio to gpios
Rosen Penev [Fri, 1 Dec 2023 23:44:34 +0000 (15:44 -0800)]
ath79: gpio to gpios

Fixes deprecated_gpio_property dtc warning

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoath79: fix pci_device_reg errors
Rosen Penev [Fri, 1 Dec 2023 21:11:39 +0000 (13:11 -0800)]
ath79: fix pci_device_reg errors

Found by dtc. Wrong numbers and wrong ordering.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoath79: fix unit_address_format warning
Rosen Penev [Fri, 1 Dec 2023 20:54:08 +0000 (12:54 -0800)]
ath79: fix unit_address_format warning

Raised by dtc.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoath79: fix avoid_unnecessary_addr_size warnings
Rosen Penev [Fri, 1 Dec 2023 20:51:58 +0000 (12:51 -0800)]
ath79: fix avoid_unnecessary_addr_size warnings

Raised to dtc.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoath79: rename pcie-controller to pcie
Rosen Penev [Fri, 1 Dec 2023 20:42:00 +0000 (12:42 -0800)]
ath79: rename pcie-controller to pcie

pcie-controller was renamed to pcie since at least kernel 4.14. Match it
here to get rid of dtc warnings.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoimage.mk: reorder DTC_WARN_FLAGS based on upstream
Rosen Penev [Fri, 1 Dec 2023 23:02:46 +0000 (15:02 -0800)]
image.mk: reorder DTC_WARN_FLAGS based on upstream

pci warnings got reenabled as they were fixed upstream.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agoramips: fix dtc warnings
Rosen Penev [Thu, 30 Nov 2023 20:08:31 +0000 (12:08 -0800)]
ramips: fix dtc warnings

Mostly leading 0 removals and wrong addresses.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agotreewide: use ethtool_puts instead of memcpy
Rosen Penev [Sun, 10 Dec 2023 23:12:24 +0000 (15:12 -0800)]
treewide: use ethtool_puts instead of memcpy

The former is a safer and more readable version.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agokernel: backport ethtool_puts
Rosen Penev [Sun, 17 Dec 2023 01:12:33 +0000 (17:12 -0800)]
kernel: backport ethtool_puts

Will be used for conversions in the following commit.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
10 months agokernel: fix bridge proxyarp issue with some broken DHCP clients
Felix Fietkau [Fri, 5 Jan 2024 10:58:15 +0000 (11:58 +0100)]
kernel: fix bridge proxyarp issue with some broken DHCP clients

There are broken devices in the wild that handle duplicate IP address
detection by sending out ARP requests for the IP that they received from a
DHCP server and refuse the address if they get a reply.
When proxyarp is enabled, they would go into a loop of requesting an address
and then NAKing it again.

Fixes: https://github.com/openwrt/openwrt/issues/14309
Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agodevel/gdb: Update to 14.1
Hannu Nyman [Sat, 9 Dec 2023 22:08:15 +0000 (00:08 +0200)]
devel/gdb: Update to 14.1

Update the gdb package to 14.1

* mpfr is now required, remove the 'without' and add dependency
* remove mpc 'without' that is parsed wrongly, causing "-Lno/lib"
* refresh patches

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
10 months agompfr: import from packages feed
Hannu Nyman [Sat, 9 Dec 2023 22:04:49 +0000 (00:04 +0200)]
mpfr: import from packages feed

Import mpfr from the packages feed to the main OpenWrt repo,
as gdb 14 requires mpfr.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
10 months agokernel/ksmbd: fix build for 5.15.145
John Audia [Wed, 27 Dec 2023 09:42:41 +0000 (04:42 -0500)]
kernel/ksmbd: fix build for 5.15.145

Include a patch[1] under review to fix the modpost error due to
upstream changes:
...
ERROR: modpost: "cifs_arc4_crypt" [fs/ksmbd/ksmbd.ko] undefined!
ERROR: modpost: "cifs_arc4_setkey" [fs/ksmbd/ksmbd.ko] undefined!
scripts/Makefile.modpost:133: recipe for target 'modules-only.symvers' failed

1. https://lore.kernel.org/all/20231227102605.4766-2-linkinjeon@kernel.org/

Signed-off-by: John Audia <therealgraysky@proton.me>
10 months agolinux/modules: remove deprecated module
John Audia [Wed, 27 Dec 2023 09:49:23 +0000 (04:49 -0500)]
linux/modules: remove deprecated module

Remove upstream deprecated module from our build, see[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v5.15.145&id=6cd90c01b032f335d18966b2d979eef43eb2cfc1

Suggested-by: Shiji Yang <yangshiji66@qq.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
10 months agorockchip: configure eth pad driver strength for orangepi r1 plus lts
Tianling Shen [Mon, 25 Dec 2023 03:23:58 +0000 (11:23 +0800)]
rockchip: configure eth pad driver strength for orangepi r1 plus lts

The default strength is not enough to provide stable connection
under 3.3v LDO voltage.

Fixes: 32d5921b8b55 ("rockchip: add Orange Pi R1 Plus LTS support")
Fixes: #13117
Fixes: #13759
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
10 months agomac80211: fix a race condition related to enabling fast-xmit
Felix Fietkau [Wed, 3 Jan 2024 14:13:32 +0000 (15:13 +0100)]
mac80211: fix a race condition related to enabling fast-xmit

fast-xmit must only be enabled after the sta has been uploaded to the driver,
otherwise it could end up passing the not-yet-uploaded sta via drv_tx calls
to the driver, leading to potential crashes because of uninitialized drv_priv
data.
Add a missing sta->uploaded check and re-check fast xmit after inserting a sta.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agolibnl: update to 3.9.0
Nick Hainke [Wed, 3 Jan 2024 23:44:45 +0000 (00:44 +0100)]
libnl: update to 3.9.0

Changes:
bdf83151 libnl-3.9.0 release
aa7353fd include/linux-private: import 'seg6 local' headers from kernel tree
9466f680 lib: remove unused assignment in nl_addr_parse()
acd05d6e route/tc: avoid integer overflow in rtnl_tc_calc_cell_log()
daa8efcb xfrm: return -NLE_MISSING_ATTR from xfrmnl_sa_get_auth_params()
d8a1ff30 xfrm: fix leaking usertemplate in xfrmnl_sp_parse()
4fcb0757 socket: workaround coverity warning about time_t handling
f743c62f github: update Fedora image and version for clang-format
f33e8cd6 clang-format: rework container script
aea3f9f2 lib: fix signed overflow warning in nl_object_diff()
57e01706 socket: explicitly cast time() to uint32_t
46e8739e src: fix leak in "nl-cls-add"
a06c8f76 route/cls: add get/take wrappers for rtnl_act_append()
7912b4f9 route/cls: fix leak in error handling of rtnl_flower_append_action()
efd65feb route: fix just introduced use-after-free in rtnl_act_parse()
105a6be1 route: use cleanup macro in rtnl_act_parse()
78246da7 nl-aux-route: add cleanup macro for rtnl_act_put_all()
72762b20 base: add _NL_AUTO_DEFINE_FCN_INDIRECT0() macro
a70f789a route: fix memleak in rtnl_act_parse()
65ab16f2 base: don't use static array indices for buffer argument of _nl_inet_ntop()
444e2c04 route/can: implement can_device_stats
a4718e67 github: build with "-fexceptions" CFLAGS
2f485cc7 xfrm: refactor error handling in XFRM parsing
01bd8fb0 include: add "nl-aux-xfrm" helpers
49c20efa xfrm: fix crashes in case of ENOMEM
9e7b5c86 xfrm: refactor nl_addr_build() calls in XFRM code
dbfd87b1 xfrm: use cleanup attribute for nl_addr in XFRM parsing
db424835 xfrm: fix error code for NLE_ENOMEM in xfrmnl_ae_parse()
9c97deff xfrm: fix parsing address in xfrmnl_ae_parse()
8b6dc834 nl-aux-core: add _nl_addr_build() helper
057aac13 nl-base-utils: add _nl_addr_family_to_size() helper
664f8f1b xfrm: clear XFRM_SP_ATTR_TMPL when removing the last template from a policy
c4c22d26 xfrm/sp: fix reference counters of sa selector/tmpl addresses
5979fcb0 route/link: add bonding interface options set rtnl apis
a735989c build: fix declaring special targets as ".PHONY"
052a97cb Makefile.am: avoid use of non-portable echo arguments
9aab12df python: Use correct decorator syntax in HTBQdisc

Signed-off-by: Nick Hainke <vincent@systemli.org>
10 months agolibxml2: update to 2.12.3
Nick Hainke [Wed, 3 Jan 2024 23:30:57 +0000 (00:30 +0100)]
libxml2: update to 2.12.3

Release Notes:
- https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.2
- https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.3

Signed-off-by: Nick Hainke <vincent@systemli.org>
10 months agonetifd: update to Git HEAD (2024-01-04)
Felix Fietkau [Thu, 4 Jan 2024 11:30:19 +0000 (12:30 +0100)]
netifd: update to Git HEAD (2024-01-04)

4219e99eeec7 system-linux: fix race condition in netlink socket error handing
f01345ec13b9 device: restore cleared flags on device down

Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 months agoipq807x: cax1800: fix blsp1_spi1 status with okay
Petr Štetiar [Wed, 3 Jan 2024 07:54:46 +0000 (07:54 +0000)]
ipq807x: cax1800: fix blsp1_spi1 status with okay

`ok` status is obsolete and thus `okay` should be used instead:

 spi@78b9000: status:0: 'ok' is not one of ['okay', 'disabled', 'reserved']

Signed-off-by: Petr Štetiar <ynezz@true.cz>
10 months agoramips: unielec-u7621-01: Increase SPI frequency to 50MHz
David Bentham [Mon, 25 Dec 2023 11:51:16 +0000 (11:51 +0000)]
ramips: unielec-u7621-01: Increase SPI frequency to 50MHz

Flash: 16MB SPI NOR flash (Macronix MX25L12805D)

Based on the manufactured datasheet this chip is capable of 50MHz.

We dont enable fast-read as mt7621 are only capable of 44mhz in a read state.

Tested on this unit without any issues.

Signed-off-by: David Bentham <db260179@gmail.com>
10 months agoramips: lzma-loader: use default uart for rt305x
Michael Pratt [Wed, 6 Dec 2023 19:29:26 +0000 (14:29 -0500)]
ramips: lzma-loader: use default uart for rt305x

The rt305x series SOC have two UART devices,
and the one at bus address 0x500 is disabled by default.
Some boards do not even have a pinout for the first one,
so use the same one that the kernel uses at 0xc00 instead.

This allows the lzma-loader printing to be visible
alongside the kernel log in the same console.

Tested-by: Lech Perczak <lech.perczak@gmail.com> # zte,mf283plus
Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agoramips: lzma-loader: use proper register names
Michael Pratt [Wed, 6 Dec 2023 19:12:03 +0000 (14:12 -0500)]
ramips: lzma-loader: use proper register names

Before this was reworked, in the file for mt7621 subtarget
(target/linux/ramips/image/lzma-loader/src/board-mt7621.c)
the "Transmitter shift register empty" bit TEMT was used instead of
the "Transmitter holding register empty" bit THRE,
but after the rework, this value was labeled as the THRE bit instead.

Functionally there is no difference, but this is confusing to read,
as it suggests that the subtargets have different bits for the same
register in UART when in reality they are exactly the same.

One can use either bit, or both, at user's descretion
in order to determine whether the UART TX buffer is ready.
The generic kernel early-printk uses both,
(arch/mips/kernel/early_printk_8250.c)
while the ralink-specific early-printk uses only THRE,
(arch/mips/ralink/early_printk.c).

Define both bits and rewrite macros for readability,
keep the same values, as changing which to use should be tested first.

Ref: c31319b66 ("ramips: lzma-loader: Refactor loader")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agoramips: lzma-loader: use virtual memory segments for uart base address
Michael Pratt [Tue, 5 Dec 2023 23:36:42 +0000 (18:36 -0500)]
ramips: lzma-loader: use virtual memory segments for uart base address

The native bus address for UART was entered for rt305x UART_BASE,
but the bootloaders have memory space remapped with the same
virtual memory map the kernel uses for program addressing at boot time.

In UBoot, the remapped address is often defined as TEXT_BASE.
In the kernel, for rt305x this remapped address is RT305X_SYSC_BASE.
(arch/mips/include/asm/mach-ralink/rt305x.h)

Because the ralink I/O busses begin at a low address of 0x10000000,
they are remapped using KSEG0 or KSEG1, which for all 32-bit MIPS SOCs
(arch/mips/include/asm/addrspace.h)
are offsets of 0x80000000 and 0xa0000000 respectively.
This is consistent with the other UART_BASE macros here
and with MIPS memory map documentation.

Before the recent rework of the lzma-loader for ramips,
the original board-$(PLATFORM).c files also did not
use KSEG1ADDR for UART_BASE despite being defined,
which made this mistake easier to occur.

Fix this by defining KSEG1ADDR again and actually use it.
Copy and paste from the kernel's macros for consistency.

Link: https://training.mips.com/basic_mips/PDF/Memory_Map.pdf
Fixes: c31319b66 ("ramips: lzma-loader: Refactor loader")
Reported-by: Lech Perczak <lech.perczak@gmail.com>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
10 months agoraimps: mtk_eth_soc: drop rst_esw from ESW driver
Lech Perczak [Fri, 15 Dec 2023 16:25:05 +0000 (17:25 +0100)]
raimps: mtk_eth_soc: drop rst_esw from ESW driver

The ESW core needs to be reset together with FE core, so after the
relevant reset controller lines are moved under FE, drop rst_esw and all
related code, which would not execute anyway, because rst_esw would be
NULL. While at that, ensure that if reset line for EPHY cannot be
claimed, a proper error message is reported.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Co-developed-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[Split out of the bigger commit, provide commit mesage, refactor error
handling]
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: dts: mt7628an: reset FE and ESW cores together
Maxim Anisimov [Sun, 10 Dec 2023 15:40:39 +0000 (16:40 +0100)]
ramips: dts: mt7628an: reset FE and ESW cores together

Failing to do so will cause the DMA engine to not initialize properly
and fail to forward packets between them, and in some cases will cause
spurious transmission with size exceeding allowed packet size, causing a
kernel panic.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[Provide commit description, split into logical changes]
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: dts: rt5350: reset FE and ESW cores together
Lech Perczak [Mon, 11 Dec 2023 23:25:02 +0000 (00:25 +0100)]
ramips: dts: rt5350: reset FE and ESW cores together

Failing to do so will cause the DMA engine to not initialize properly
and fail to forward packets between them, and in some cases will cause
spurious transmission with size exceeding allowed packet size, causing a
kernel panic.

This is behaviour of downstream driver as well, however I
haven't observed bug reports about this SoC in the wild, so this
commit's purpose is to align this chip with all other SoC's - MT7620
were already using this arrangement.

Fixes: #9284
Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: dts: rt3050: reset FE and ESW cores together
Lech Perczak [Mon, 11 Dec 2023 23:22:04 +0000 (00:22 +0100)]
ramips: dts: rt3050: reset FE and ESW cores together

Failing to do so will cause the DMA engine to not initialize properly
and fail to forward packets between them, and in some cases will cause
spurious transmission with size exceeding allowed packet size, causing a
kernel panic.

This is behaviour of downstream driver as well, however I
haven't observed bug reports about this SoC in the wild, so this
commit's purpose is to align this chip with all other SoC's - MT7620
were already using this arrangement.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: dts: rt3352: reset FE and ESW cores together
Maxim Anisimov [Fri, 8 Dec 2023 05:34:30 +0000 (08:34 +0300)]
ramips: dts: rt3352: reset FE and ESW cores together

Failing to do so will cause the DMA engine to not initialize properly
and fail to forward packets between them, and in some cases will cause
spurious transmission with size exceeding allowed packet size, causing a
kernel panic.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[Provide commit description, split into logical changes]
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: mtk_eth_soc: wait longer after FE core reset to settle
Maxim Anisimov [Sun, 10 Dec 2023 15:27:32 +0000 (16:27 +0100)]
ramips: mtk_eth_soc: wait longer after FE core reset to settle

Enabling the FE core too early causes the system to hang during boot
uncondtionally, after the reset is released. Increate it to 1-1.2ms
range.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[Split previous commit, provide rationale]
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agoramips: mtk_eth_soc: allow multiple resets
Lech Perczak [Fri, 15 Dec 2023 16:15:47 +0000 (17:15 +0100)]
ramips: mtk_eth_soc: allow multiple resets

Use devm_reset_control_array_get_exclusive to register multiple
reset lines in FE driver. This is required to reattach ESW reset to FE
driver again, based on device tree bindings.

While at that, remove unused fe_priv.rst_ppe field, and add error
message if getting the reset fails.

Fixes: 60fadae62b64 ("ramips: ethernet: ralink: move reset of the esw into the esw instead of fe")
Co-developed-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[Split out of the bigger commit, provide commit mesage, refactor error
handling]
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
10 months agomediatek: Add support for D-Link EAGLE PRO AI R32
Roland Reinl [Sun, 12 Nov 2023 18:04:32 +0000 (19:04 +0100)]
mediatek: Add support for D-Link EAGLE PRO AI R32

R32 is like the M32 part of the EAGLE PRO AI series from D-Link.

Specification:
 - MT7622BV SoC with 2.4GHz wifi
 - MT7975AN + MT7915AN for 5GHz
 - MT7531BE Switch
 - 512MB RAM
 - 128 MB flash
 - 2 LEDs (Status and Internet, both can be either orange or white)
 - 2 buttons (WPS and Reset)

Compared to M32, the R32 has the following differences:
 - 4 LAN ports instead of 2
 - The recory image starts with DLK6E6015001 instaed of DLK6E6010001
 - Individual LEDs for power and internet
 - MAC address is stored at another offset in the ODM partition

MAC addresses:
 - WAN MAC is stored in partition "Odm" at offset 0x81
 - 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

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 internet LED blinks fast
 - Open a Chromium based and goto http://192.168.0.1
 - Download openwrt-mediatek-mt7622-dlink_eagle-pro-ai-r32-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-r32-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-r32-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.0
 - Press the reset button while powering on the deivce
 - Keep the reset button pressed until the internet 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 R32 --DecryptFactoryImage <OriginalFirmware> <OutputFile>
 - Example for firmware R32A1_FW103B01: ./m32-firmware-util R32 --DecryptFactoryImage R32A1_FW103B01.bin R32A1_FW103B01.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-r32-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. Creating images is only possible manually at the moment.
The support for the M32/R32 already includes support for flashing from the OEM web interface:
 - The device tree contains both partitions (Kernel1 and Kernel2) with conditions to select the correct one based on the kernel command line
 - The U-Boot variable "boot_part" is set accordingly during startup to finish the partition swap after flashing from the OEM web interface
 - OpenWrt sysupgrade flashing always uses the partition where it was initially flashed to (no partition swap)

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
10 months agomediatek: filogic: Asus TUF AX6000 fix inverted LED for 2.5Gb LAN port
Patryk Kowalczyk [Tue, 2 Jan 2024 09:37:47 +0000 (10:37 +0100)]
mediatek: filogic: Asus TUF AX6000 fix inverted LED for 2.5Gb LAN port

Router Asus TUF AX6000 have second MaxLinear GPY211 PHY controller for 2.5Gb LAN port.
The 5'th LAN port have inverted status of the LED.
Based on the commit from main branch 90fbec8 we could set proper status of the LED.

Signed-off-by: Patryk Kowalczyk <patryk@kowalczyk.ws>
10 months agokernel: bump 6.1 to 6.1.70
John Audia [Mon, 1 Jan 2024 14:47:05 +0000 (09:47 -0500)]
kernel: bump 6.1 to 6.1.70

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

All patches automatically rebased.

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: x86/64/AMD Cezanne, filogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
10 months agowolfssl: update to 5.6.6
Nick Hainke [Wed, 27 Dec 2023 13:21:46 +0000 (14:21 +0100)]
wolfssl: update to 5.6.6

Release Notes:
https://github.com/wolfSSL/wolfssl/releases/tag/v5.6.6-stable

Refresh patches:
- 100-disable-hardening-check.patch

Fixes: CVE-2023-6935 CVE-2023-6936 CVE-2023-6937
Signed-off-by: Nick Hainke <vincent@systemli.org>
11 months agooxnas: do not use pcie-controller
Rosen Penev [Fri, 1 Dec 2023 23:51:42 +0000 (15:51 -0800)]
oxnas: do not use pcie-controller

This was deprecated in kernel 4.14

Signed-off-by: Rosen Penev <rosenp@gmail.com>
11 months agorealtek: Use hex for "soc" identifier in debugfs
Pascal Ernster [Sun, 28 May 2023 12:07:20 +0000 (14:07 +0200)]
realtek: Use hex for "soc" identifier in debugfs

The upper 16 bits of the 32 bit value encode the SoC model in BCD
notation (for example 0x83806800 on a Netgear GS108Tv3 with an
RTL8380M), so it makes more sense to output the value in hex notation
than in decimal notation.

Signed-off-by: Pascal Ernster <git@hardfalcon.net>
11 months agomediatek: filogic: add support ASUS RT-AX59U
Xavier Franquet [Mon, 20 Nov 2023 07:18:00 +0000 (08:18 +0100)]
mediatek: filogic: add support ASUS RT-AX59U

(based on support for ASUS RT-AX59U by liushiyou006)

SOC: MediaTek MT7986
RAM: 512MB DDR4
FLASH: 128MB SPI-NAND (Winbond W25N01GV)
WIFI: Mediatek MT7986 DBDC 802.11ax 2.4/5 GHz
ETH: MediaTek MT7531 Switch
UART: 3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

Upgrade from AsusWRT to OpenWRT using UART

    Download the OpenWrt initramfs image.
    Copy the image to a TFTP server reachable at 192.168.1.70/24. Rename the image to rtax59u.bin.

    Connect the PC with TFTP server to the RT-AX59U.
    Set a static ip on the ethernet interface of your PC.
    (ip address: 192.168.1.70, subnet mask:255.255.255.0)
    Conect to the serial console, interrupt the autoboot process by pressing '4' when prompted.

    Download & Boot the OpenWrt initramfs image.

    $ setenv ipaddr 192.168.1.1
    $ setenv serverip 192.168.1.70
    $ tftpboot 0x46000000 rtax59u.bin
    $ bootm 0x46000000

    Wait for OpenWrt to boot. Transfer the sysupgrade image to the device using scp and install using sysupgrade.

    $ sysupgrade -n <path-to-sysupgrade.bin>

Upgrade from AsusWRT to OpenWRT using WebUI

    Download transit TRX file from https://drive.google.com/drive/folders/1A20QdjK7Udagu31FSszpWAk8-cGlCwsq

    Upgrade firmware from WebUI (192.168.50.1) using downloaded TRX file

    Wait for OpenWRT to boot (192.168.1.1).

    Upgrade system with sysupgrade image using luci or uploading it through scp and executing sysupgrade command

MAC Address for WLAN 5g is not following the same algorithm as in AsusWRT.
We have increased by one the WLAN 5g to avoid collisions with other networks from WLAN 2g
when bit 28 is already set.

              : Stock             : OpenWrt
  WLAN 2g (1) : C8:xx:xx:0D:xx:D4 : C8:xx:xx:0D:xx:D4
  WLAN 2g (2) :                   : CA:xx:xx:0D:xx:D4
  WLAN 2g (3) :                   : CE:xx:xx:0D:xx:D4
  WLAN 5g (1) : CA:xx:xx:1D:xx:D4 : CA:xx:xx:1D:xx:D5
  WLAN 5g (2) :                   : CE:xx:xx:1D:xx:D5
  WLAN 5g (3) :                   : C2:xx:xx:1D:xx:D5

  WLAN 2g (1) : 08:xx:xx:76:xx:BE : 08:xx:xx:76:xx:BE
  WLAN 2g (2) :                   : 0A:xx:xx:76:xx:BE
  WLAN 2g (3) :                   : 0E:xx:xx:76:xx:BE
  WLAN 5g (1) : 0A:xx:xx:76:xx:BE : 0A:xx:xx:76:xx:BF
  WLAN 5g (2) :                   : 0E:xx:xx:76:xx:BF
  WLAN 5g (3) :                   : 02:xx:xx:76:xx:BF

Signed-off-by: Xavier Franquet <xavier@franquet.es>
11 months agorealtek: fix addresses in DT node names
Rosen Penev [Thu, 30 Nov 2023 21:38:51 +0000 (13:38 -0800)]
realtek: fix addresses in DT node names

Mostly wrong address format, one missing address, and one spurious
address suffix.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
[amend commit message]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
11 months agomediatek: filogic: reorder nodes in mt7988a.dtsi
Rafał Miłecki [Fri, 29 Dec 2023 09:45:08 +0000 (10:45 +0100)]
mediatek: filogic: reorder nodes in mt7988a.dtsi

Use order described as preferred in DTS Coding Style:
1. Sort bus nodes by unit address
2. Use alpha-numerical order for the rest

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
11 months agodropbear: increase default receive window size
David Bauer [Thu, 28 Dec 2023 22:16:02 +0000 (23:16 +0100)]
dropbear: increase default receive window size

Increasing the receive window size improves throughout on higher-latency
links such as WAN connections. The current default of 24KB caps out at
around 500 KB/s.

Increasing the receive buffer to 256KB increases the throughput to at
least 11 MB/s.

Signed-off-by: David Bauer <mail@david-bauer.net>
11 months agompc85xx: fix reserved-memory node name
David Bauer [Thu, 7 Dec 2023 03:44:33 +0000 (04:44 +0100)]
mpc85xx: fix reserved-memory node name

Make the node name match the actual memory address.

Fixes: 57d7382cb159 ("mpc85xx: increase available RAM on Extreme Networks WS-AP3825i")
Signed-off-by: David Bauer <mail@david-bauer.net>
11 months agoramips: fix label-mac for Xiaomi RA75
David Bauer [Tue, 26 Dec 2023 00:17:18 +0000 (01:17 +0100)]
ramips: fix label-mac for Xiaomi RA75

The label-mac of the repeater is the address used on the 2.4 GHz radio,
not the ethernet MAC.

Signed-off-by: David Bauer <mail@david-bauer.net>
11 months agopackage: new package for usb gadget setup
Chuanhong Guo [Sun, 19 Nov 2023 12:56:52 +0000 (20:56 +0800)]
package: new package for usb gadget setup

Setting up usb gadgets using g_* kernel modules are considered a
legacy approach, but the usb_gadget configfs is a bit annoying
to use directly.
The usb_gadget configfs works by creating magic directories
and writing to magic files under /sys/kernel/config/usbgadget.
This new package is an init script to setup usb_gadget configfs
using uci. In the config file, gadget/configuration/function
sections create corresponding directories. UCI options are magic
files available in the configfs and strings/0x409 directories,
grabbed with a 'find' command. UDC option in gadget writes
the UDC file under the 'gadget' directory to attach the
generated gadget config.

It's also possible to apply pre-made config templates under
/usr/share/usbgadget. The templates use the same UCI config
format, with the 'gadget' entry named 'g1'. Currently, there
are templates for CDC-ACM and CDC-NCM gadgets written based
on existing g_*.ko module code.

Certain SBCs come with only a USB device port (e.g. Raspberry Pi
Zero). With this script, it's now possible to perform initial
setup on them by adding a default NCM gadget.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
11 months agobase-files: execute package's "postinst" after executing uci-defaults
Rafał Miłecki [Sun, 26 Nov 2023 20:24:28 +0000 (21:24 +0100)]
base-files: execute package's "postinst" after executing uci-defaults

Allow "postinst" scripts to perform extra actions after applying all
kind of fixups implemented using uci-defaults.

This is needed e.g. by uhttpd-mod-ubus which after installation in a
running systems needs to:
1. Update uhttpd config using its uci-defaults script
2. Reload uhttpd

While this approach makes sense there is a risk it'll blow up some
corner case postinst usages. There is only 1 way to find out.

Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
11 months agomediatek: add support for Routerich AX3000
Mikhail Zhilkin [Sat, 9 Dec 2023 17:17:02 +0000 (17:17 +0000)]
mediatek: add support for Routerich AX3000

This PR is continuation of work under "mediatek: add support for Routerich
AX3000" #13703 by the agreement with PR #13703 original author (Maximilian
Weinmann <x1@disroot.org>). All reviews from the previous PR were taken
into into account.

Routerich AX3000 is a wireless WiFi 6 router.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : DDR3 256 MiB (ESMT M15T2G16128A)
- Flash     : SPI-NAND 128 MiB (ESMT F50L1G41LB)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x4 (MediaTek MT7531AE)
- USB       : 1x 2.0
- UART      : through-hole on PCB
  - [J500] GND, TX, RX, 3.3V (115200n8)
- Buttons   : Mesh, Reset
- LEDs      : 1x Power (Blue)
              1x WiFi 2.4 GHz (Blue)
              1x WiFi 5 GHz (Red)
              1x Mesh (Blue)
              3x LAN activity (Blue)
              1x WAN activity (Blue)
              2x WAN no-internet (Red)
- Power     : 12 VDC, 1.5 A

Installation
------------
Flash OpenWrt 'sysupgrade.bin' image using stock firmware web-interface
(without keeping settings).

Return to stock
---------------
Install stock firmware image (without keeping settings) using OpenWrt
sysupgrade method.

Recovery
--------
Connect uart, use u-boot menu to flash stock firmware image or boot
OpenWrt initramfs image.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| WAN     | 24:0f:5e:xx:xx:b4 | label     |
| LAN     | 24:0f:5e:xx:xx:b5 | label+1   |
| WLAN 2g | 24:0f:5e:xx:xx:b6 | label+2   |
| WLAN 5g | 24:0f:5e:xx:xx:b7 | label+3   |
+---------+-------------------+-----------+
The WLAN 2g MAC was found in 'Factory', 0x4

Co-authored-by: Maximilian Weinmann <x1@disroot.org>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
11 months agomediatek: add support for Zbtlink ZBT-Z8103AX
Ian Oderon [Sat, 9 Dec 2023 04:48:35 +0000 (12:48 +0800)]
mediatek: add support for Zbtlink ZBT-Z8103AX

Specifications:
SoC: MediaTek MT7981B
RAM: 256MiB
Flash: SPI-NAND 128 MiB
Switch: 1 WAN, 3 LAN (Gigabit)
Buttons: Reset, Mesh
Power: DC 12V 1A
WiFi: MT7976CN
UART: 115200n8
UART Layout:
VCC-RX-TX-GND

No. of Antennas: 6
Note: Upon opening the router, only 5 antennas were connected
to the mainboard.

Led Layout:
Power-Mesh-5gwifi-WAN-LAN3-LAN2-LAN1-2gWiFi

Buttons:
Reset-Mesh

Installation:
A. Through OpenWrt Dashboard:
If your router comes with OpenWrt preinstalled (modified by the seller),
you can easily upgrade by going to the dashboard (192.168.1.1) and then
navigate to System -> Backup/Flash firmware, then flash the firmware

B. Through TFTP
Standard installation via UART:

1. Connect USB Serial Adapter to the UART, (NOTE: Don't connect the VCC pin).
2. Power on the router. Make sure that you can access your router via UART.
3. Restart the router then repeatedly press ctrl + c to skip default boot.
4. Type > bootmenu
5. Press '2' to select upgrade firmware
6. Press 'Y' on 'Run image after upgrading?'
7. Press '0' and hit 'enter' to select TFTP client (default)
8. Fill the U-Boot's IP address and TFTP server's IP address.
9. Finally, enter the 'firmware' filename.

Signed-off-by: Ian Oderon <ianoderon@gmail.com>
11 months agoqualcommax: Fix Buffalo WXR-5950AX12 Ethernet DTS
Samir Ibradžić [Sun, 17 Dec 2023 07:58:06 +0000 (16:58 +0900)]
qualcommax: Fix Buffalo WXR-5950AX12 Ethernet DTS

* Revert the switch_lan_bmp and switch_wan_bmp to match the values from
  the original device support DTS
* Add specific malibu_first_phy_addr, as it differs from default for
  this device

Fixes: #14234
Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Samir Ibradžić <sibradzic@gmail.com> # Buffalo WXR-6000AX12P
Signed-off-by: Samir Ibradžić <sibradzic@gmail.com>
11 months agoramips: correct the PCIe port number for Unielec u7621-01
David Bentham [Sun, 24 Dec 2023 13:33:23 +0000 (13:33 +0000)]
ramips: correct the PCIe port number for Unielec u7621-01

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 Unielec u7621-01.

According to the bootlog, MT7612E (5 GHz) is connected to pcie2, and
MT7603E (2 GHz) is connected to pcie1:

[    1.294844] mt7621-pci 1e140000.pcie: pcie0 no card, disable it (RST & CLK)
[    1.308635] mt7621-pci 1e140000.pcie: PCIE1 enabled
[    1.318277] mt7621-pci 1e140000.pcie: PCIE2 enabled

Also correct the led activity for the MT7603e - not used on the MT7612e

Signed-off-by: David Bentham <db260179@gmail.com>
11 months agoramips: remove systick node for mt7621 SoC dtsi
Shiji Yang [Sun, 24 Dec 2023 11:05:56 +0000 (11:05 +0000)]
ramips: remove systick node for mt7621 SoC dtsi

This node is useless because MT7621 uses the generic mips systick
driver instead of the ralink systick driver.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
11 months agoramips: remove useless resets properties from SoC dtsi
Shiji Yang [Fri, 15 Dec 2023 12:36:00 +0000 (12:36 +0000)]
ramips: remove useless resets properties from SoC dtsi

These drivers don't request reset control. And most reset properties
even have incorrect reset source definitions.

1. interrupt controller, ref: arch/mips/ralink/irq.c
2. memory controller, ref: arch/mips/ralink/of.c
3. gpio controller, ref: drivers/gpio/gpio-ralink.c (local patch)
4. systic, ref: arch/mips/ralink/cevt-rt3352.c
5. pwm, ref: drivers/pwm/pwm-mediatek-ramips.c (local patch)

Tested on MT7620 && MT7628.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
11 months agomediatek: enable mt7981-wo-firmware package by default
Robert Senderek [Sun, 10 Dec 2023 12:49:10 +0000 (13:49 +0100)]
mediatek: enable mt7981-wo-firmware package by default

Add support for wireless offload package in default configuration for
-Cudy WR3000
-Confiabits MT7981
For some reason those ware missing. I confirm this work for my Cudy WR3000

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
11 months agoath79: generic: disable SPI-NOR write protect unconditionally
Lech Perczak [Sun, 17 Dec 2023 17:25:55 +0000 (18:25 +0100)]
ath79: generic: disable SPI-NOR write protect unconditionally

Kernel 5.15 introduced a significant change to spi-nor subsystem [1],
which would the SPI-NOR core to no longer unprotect the Flash chips if
their protection bits are non-volatile, which is the case for MX25L6405D
and MX25L12805D, used in Ubiquiti XW and WA lines of devices [2].

However, their bootloader forcibly enables this protection before
continuing to boot, making the kernel not unprotect the flash upon boot,
causing JFFS2 to be unable write to the filesystem. Because sysupgrade
seems to unlock the flash explicitly, the upgrade will work, but the
system will be unable to save configrationm showing the following symptom
in the kernel log:

[   86.168016] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   86.192344] jffs2_build_filesystem(): unlocking the mtd device...
[   86.192443] done.
[   86.200669] jffs2_build_filesystem(): erasing all blocks after the end marker...
[   86.220646] jffs2: Newly-erased block contained word 0x19852003 at offset 0x001e0000
[   86.292388] jffs2: Newly-erased block contained word 0x19852003 at offset 0x001d0000
[   86.324867] jffs2: Newly-erased block contained word 0x19852003 at offset 0x001c0000
[   86.355316] jffs2: Newly-erased block contained word 0x19852003 at offset 0x001b0000
[   86.402855] jffs2: Newly-erased block contained word 0x19852003 at offset 0x001a0000

Disable the write protection unconditionally for ath79/generic subtarget,
so the XW and WA devices can function again. However, this is only a
stopgap solution - it probably should be investigated if there is a way
to selectively unlock the area used by rootfs_data - but given the lock
granularity, this seems unlikely.

With this patch in place, rootfs_data partition on my Nanostation Loco
M5 XW is writable again.

Fixes: #12882
Fixes: #13750
Fixes: 579703f38c14 ("ath79: switch to 5.15 as default kernel")
Link: http://www.infradead.org/pipermail/linux-mtd/2020-October/082805.html
Link: https://forum.openwrt.org/t/powerbeam-m5-xw-configuration-loss-after-reboot/141925
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>