openwrt/staging/blocktrron.git
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>
21 months agoath79: add support for Senao Engenius ESR900
Michael Pratt [Mon, 30 Jan 2023 18:51:36 +0000 (13:51 -0500)]
ath79: add support for Senao Engenius ESR900

FCC ID: A8J-ESR900

Engenius ESR900 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
  - AR9580 WLAN PCIe on board, 5 GHz, 3x3
  - AR8327N 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 *:06 MAC u-boot-env ethaddr
  phy0 *:06 MAC u-boot-env ethaddr
  phy1 *:07 --- u-boot-env ethaddr +1
  WAN  *:6E:81  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 'uImageESR900'
  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 AR8327 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: split Engenius EPG5000 DTS to common DTSI
Michael Pratt [Sat, 21 Jan 2023 18:45:26 +0000 (13:45 -0500)]
ath79: split Engenius EPG5000 DTS to common DTSI

Split the DTS to be used with similar boards made by Senao,
dual-band routers with Atheros / Qualcomm ethernet switch.

Set initvals for the switch in each device's DTS.
Set some common calibration nvmem-cells in DTSI.

While at it, fix MTD partition node names.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agotools/e2fsprogs: update to 1.47.0
Nick Hainke [Sat, 11 Feb 2023 14:22:41 +0000 (15:22 +0100)]
tools/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: wrapper.sh: use --rpath-link
Eneas U de Queiroz [Fri, 10 Feb 2023 15:02:06 +0000 (12:02 -0300)]
toolchain: wrapper.sh: use --rpath-link

Use --rpath-link option instead of --rpath.  The former is used only at
link-time, while the latter is searched at run-time as well.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
21 months agotoolchain: wrapper.sh: fix TOOLCHAIN_SYSROOT path
Eneas U de Queiroz [Fri, 10 Feb 2023 15:02:06 +0000 (12:02 -0300)]
toolchain: wrapper.sh: fix TOOLCHAIN_SYSROOT path

62c1740676 changed the location of the script from $(TOOLCHAIN_DIR)/usr
to $(TOOLCHAIN_DIR), but the TOOLCHAIN_SYSROOT used in wrapper.sh was
still expecting to find the script under usr/bin.

Fixes: 62c1740676 toolchain: fix the sysroot mess by getting...
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
21 months agoRevert "tools/fakeroot: update to 1.30.1"
Michael Pratt [Fri, 20 Jan 2023 04:34:05 +0000 (23:34 -0500)]
Revert "tools/fakeroot: update to 1.30.1"

This reverts commit 52167feff8ae3fbd02be22dfe6021e7e9c79c599.

Fakeroot 1.30.1 broke building on certain hosts (32-bit archs).

As of 2023-01-10, this was apparently fixed in source code,
however, the version is still 1.30.1 (patch release),
so the old binaries are removed from the repository and replaced,
but the source provided by the repository remains the same.

Furthermore, there are some complicated issues blocking
the "testing" release from being bumped to a 1.30.x version.

Considering all of this, it would likely be better for this package
to follow the "testing" release instead of the "unstable" release,
which is still 1.29-1, so revert to that.

Link: https://bugs.debian.org/1023286
Link: https://tracker.debian.org/news/1407613/accepted-fakeroot-1301-11-source-into-unstable/
Link: https://qa.debian.org/excuses.php?package=fakeroot
Link: https://bugs.debian.org/1027803
Signed-off-by: Michael Pratt <mcpratt@pm.me>
21 months agoopenssl: bump to 1.1.1t
John Audia [Tue, 7 Feb 2023 19:56:52 +0000 (14:56 -0500)]
openssl: bump to 1.1.1t

Removed upstreamed patch: 010-padlock.patch

Changes between 1.1.1s and 1.1.1t [7 Feb 2023]

  *) Fixed X.400 address type confusion in X.509 GeneralName.

     There is a type confusion vulnerability relating to X.400 address processing
     inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING
     but subsequently interpreted by GENERAL_NAME_cmp as an ASN1_TYPE. This
     vulnerability may allow an attacker who can provide a certificate chain and
     CRL (neither of which need have a valid signature) to pass arbitrary
     pointers to a memcmp call, creating a possible read primitive, subject to
     some constraints. Refer to the advisory for more information. Thanks to
     David Benjamin for discovering this issue. (CVE-2023-0286)

     This issue has been fixed by changing the public header file definition of
     GENERAL_NAME so that x400Address reflects the implementation. It was not
     possible for any existing application to successfully use the existing
     definition; however, if any application references the x400Address field
     (e.g. in dead code), note that the type of this field has changed. There is
     no ABI change.
     [Hugo Landau]

  *) Fixed Use-after-free following BIO_new_NDEF.

     The public API function BIO_new_NDEF is a helper function used for
     streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL
     to support the SMIME, CMS and PKCS7 streaming capabilities, but may also
     be called directly by end user applications.

     The function receives a BIO from the caller, prepends a new BIO_f_asn1
     filter BIO onto the front of it to form a BIO chain, and then returns
     the new head of the BIO chain to the caller. Under certain conditions,
     for example if a CMS recipient public key is invalid, the new filter BIO
     is freed and the function returns a NULL result indicating a failure.
     However, in this case, the BIO chain is not properly cleaned up and the
     BIO passed by the caller still retains internal pointers to the previously
     freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO
     then a use-after-free will occur. This will most likely result in a crash.
     (CVE-2023-0215)
     [Viktor Dukhovni, Matt Caswell]

  *) Fixed Double free after calling PEM_read_bio_ex.

     The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and
     decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload
     data. If the function succeeds then the "name_out", "header" and "data"
     arguments are populated with pointers to buffers containing the relevant
     decoded data. The caller is responsible for freeing those buffers. It is
     possible to construct a PEM file that results in 0 bytes of payload data.
     In this case PEM_read_bio_ex() will return a failure code but will populate
     the header argument with a pointer to a buffer that has already been freed.
     If the caller also frees this buffer then a double free will occur. This
     will most likely lead to a crash.

     The functions PEM_read_bio() and PEM_read() are simple wrappers around
     PEM_read_bio_ex() and therefore these functions are also directly affected.

     These functions are also called indirectly by a number of other OpenSSL
     functions including PEM_X509_INFO_read_bio_ex() and
     SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL
     internal uses of these functions are not vulnerable because the caller does
     not free the header argument if PEM_read_bio_ex() returns a failure code.
     (CVE-2022-4450)
     [Kurt Roeckx, Matt Caswell]

  *) Fixed Timing Oracle in RSA Decryption.

     A timing based side channel exists in the OpenSSL RSA Decryption
     implementation which could be sufficient to recover a plaintext across
     a network in a Bleichenbacher style attack. To achieve a successful
     decryption an attacker would have to be able to send a very large number
     of trial messages for decryption. The vulnerability affects all RSA padding
     modes: PKCS#1 v1.5, RSA-OEAP and RSASVE.
     (CVE-2022-4304)
     [Dmitry Belyavsky, Hubert Kario]

Signed-off-by: John Audia <therealgraysky@proton.me>
21 months agokernel: bump 5.15 to 5.15.93
John Audia [Thu, 9 Feb 2023 12:45:03 +0000 (07:45 -0500)]
kernel: bump 5.15 to 5.15.93

All 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 agomediatek: mt7622: fix rootfs/ubi detection for Xiaomi AX6S
Oleg S [Mon, 17 Oct 2022 07:41:51 +0000 (10:41 +0300)]
mediatek: mt7622: fix rootfs/ubi detection for Xiaomi AX6S

By specifying the flag "denx,fit" for partition "kernel", the kernel
try to find rootfs in the same partition during boot. Reality is that
the placement of rootfs is precisely determined by the name of another
partition -"ubi".
It was also found that on some device (for example devices with NAND
chips), the "Denx search engine" manages to find roots at the end of
partition "kernel", but such partition doesn't exist and is empty
there.

Fix this by removing the "denx,fit" flag from partition "kernel". With
this change the original behavior of searchif rootfs in partition "ubi"
is restored.

Signed-off-by: Oleg S <remittor@gmail.com>
21 months agokernel: kmod-fs-ntfs3: fix typo
Xu Yiming [Sat, 4 Feb 2023 19:17:48 +0000 (03:17 +0800)]
kernel: kmod-fs-ntfs3: fix typo

Fix typo that mistaken the description of ntfs3 for fuse.

Signed-off-by: Xu Yiming <xuyiming.open@outlook.com>
21 months agorealtek: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:48:20 +0000 (03:48 +0100)]
realtek: fix dts whitespace

Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoramips: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:24:21 +0000 (03:24 +0100)]
ramips: fix dts whitespace

Replace blanks with tabs
Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agomediatek: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:23:40 +0000 (03:23 +0100)]
mediatek: fix dts whitespace

Replace blanks with tabs

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agokirkwood: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:23:18 +0000 (03:23 +0100)]
kirkwood: fix dts whitespace

Replace blanks with tabs

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoipq807x: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:22:50 +0000 (03:22 +0100)]
ipq807x: fix dts whitespace

Replace blanks with tabs

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoipq806x: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:21:47 +0000 (03:21 +0100)]
ipq806x: fix dts whitespace

Replace blanks with tabs

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agobcm63xx: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:47:53 +0000 (03:47 +0100)]
bcm63xx: fix dts whitespace

Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoath79: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:18:44 +0000 (03:18 +0100)]
ath79: fix dts whitespace

Replace blanks with tabs
Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoipq40xx: fix dts whitespace
Felix Baumann [Wed, 8 Feb 2023 02:45:59 +0000 (03:45 +0100)]
ipq40xx: fix dts whitespace

Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agotools/cmake: remove rpath ldflag
Rosen Penev [Fri, 30 Sep 2022 20:18:00 +0000 (13:18 -0700)]
tools/cmake: remove rpath ldflag

no longer needed because of tools/zstd

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agotools/zstd: build libraries as static
Rosen Penev [Sun, 25 Sep 2022 01:42:59 +0000 (18:42 -0700)]
tools/zstd: build libraries as static

Enables to get rid of rpath hack for all users.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agotoolchain/gcc: clean up CFLAGS
Andre Heider [Tue, 31 Jan 2023 08:30:18 +0000 (09:30 +0100)]
toolchain/gcc: clean up CFLAGS

Instead of having two different ways to pass flags to the gcc build
process, add them as configure args, which is a reliable way to let
gcc pass them around to its various pieces.

Also add CXXFLAGS, since gcc started to use c++ for itself recently
(~10 years ago now).

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agotoolchain/gcc: use explicit configure args
Andre Heider [Tue, 31 Jan 2023 11:04:00 +0000 (12:04 +0100)]
toolchain/gcc: use explicit configure args

Spell out what we want to enable or disable. This prevents host libs to leak in,
so everyone get the same feature set.

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agotoolchain/binutils: use explicit configure args
Andre Heider [Tue, 31 Jan 2023 10:27:00 +0000 (11:27 +0100)]
toolchain/binutils: use explicit configure args

Spell out what we want to enable or disable. This prevents host libs to leak in,
so everyone get the same feature set.

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agokernel: set default values for ARM low level debugging symbols
Robert Marko [Wed, 8 Feb 2023 11:30:42 +0000 (12:30 +0100)]
kernel: set default values for ARM low level debugging symbols

Set default values for KERNEL_DEBUG_LL and KERNEL_DEBUG_LL_UART_NONE again
as both of these symbols are non visible if KERNEL_EARLY_PRINTK is not
selected and KConfig wont write their value to .config.

This usually is the intended behaviour, but in OpenWrt we are relying on
the KConfig to set these and disable the debug console settings that
multiple targets like mvebu have set in their kernel config.
This was the behaviour before removing all of the "default n" settings
as KConfig by default considers symbols disabled but they are not visible
anymore and thus their value is not set in .config and build system then
later does not override the values from target kernel config.

So, to restore the behaviour to the previous one lets a default value for
KERNEL_DEBUG_LL and KERNEL_DEBUG_LL_UART_NONE.

Fixes: 8bc72ea7be39 ("treewide: strip useless default n Kconfig lines")
Tested-by: Georgi Valkov <gvalkov@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
21 months agoipq4019: fix dts white-space
Felix Baumann [Wed, 8 Feb 2023 01:25:00 +0000 (02:25 +0100)]
ipq4019: fix dts white-space

Replace blanks with tabs
Remove whitespace from otherwise empty lines

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agokernel: bump 5.10 to 5.10.167
John Audia [Mon, 6 Feb 2023 11:28:36 +0000 (06:28 -0500)]
kernel: bump 5.10 to 5.10.167

All patches automatically rebased.

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 agokernel: bump 5.15 to 5.15.92
John Audia [Mon, 6 Feb 2023 11:40:12 +0000 (06:40 -0500)]
kernel: bump 5.15 to 5.15.92

All other 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 agolantiq: ar9/vr9: add fritz-tffs package
Felix Baumann [Sun, 29 Jan 2023 19:25:52 +0000 (20:25 +0100)]
lantiq: ar9/vr9: add fritz-tffs package

Add fritz-tffs package to AVM devices
Reorder some devices packages for consistency

Signed-off-by: Felix Baumann <felix.bau@gmx.de>
21 months agoe2fsprogs: update to 1.46.6
Nick Hainke [Sun, 5 Feb 2023 20:28:40 +0000 (21:28 +0100)]
e2fsprogs: update to 1.46.6

Release information:
https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.46.6

Remove upstreamed patch:
- 004-CVE-2022-1304-libext2fs-add-sanity-check-to-extent-manipulation.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
21 months agotools/e2fsprogs: update to 1.46.6
Nick Hainke [Sun, 5 Feb 2023 20:14:19 +0000 (21:14 +0100)]
tools/e2fsprogs: update to 1.46.6

Release information:
https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.46.6

Remove upstreamed patch:
- 004-CVE-2022-1304-libext2fs-add-sanity-check-to-extent-manipulation.patch

Refresh patch:
- 003-no-crond.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
21 months agompc85xx: p2020: kernel: enable CONFIG_BLK_DEV_NVME
Šimon Bořek [Tue, 19 Apr 2022 11:18:42 +0000 (13:18 +0200)]
mpc85xx: p2020: kernel: enable CONFIG_BLK_DEV_NVME

Enables use of NVMe storage devices with appropriate adapter in miniPCIe slots (including for boot)
in Turris 1.x routers and possibly NXP P2020RDB boards
(these are the only currently supported p2020 devices according to docs[^1]).

Proper detection, mountability and readability was proved to be working
on Turris 1.1, OpenWrt 21.02 with similar configuration.

Increases gzip compressed kernel size by approximately 37 KiB (from 3 703 KiB to 3 740 KiB).

Should boot from those devices be possible the driver needs to be built in.
Inclusion as a module would prevent this functionality.

CONFIG_BLK_DEV_NVME=y
Includes NVMe driver in the kernel.[^2]

CONFIG_NVME_CORE=y
Selected by CONFIG_BLK_DEV_NVME.[^3] Not necessarily needed to be enabled explicitly,
but included to match the form of similar functionality implementations
for mvebu, x86_64 and rockchip_armv8 targets.

CONFIG_NVME_MULTIPATH disabled explicitly to prevent using more space than necessary.

[^1]: https://openwrt.org/docs/techref/targets/mpc85xx
[^2]: https://cateee.net/lkddb/web-lkddb/BLK_DEV_NVME.html
[^3]: https://cateee.net/lkddb/web-lkddb/NVME_CORE.html

Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
21 months agompc85xx: p2020: kernel: refresh configuration
Šimon Bořek [Tue, 19 Apr 2022 11:11:43 +0000 (13:11 +0200)]
mpc85xx: p2020: kernel: refresh configuration

'make kernel_oldconfig CONFIG_TARGET=subtarget'
applied to current master

Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
21 months agobase-files: ipcalc.sh: fix awk regex syntax
Leon M. George [Fri, 14 Oct 2022 12:09:34 +0000 (14:09 +0200)]
base-files: ipcalc.sh: fix awk regex syntax

It worked fine before but gawk warns about it.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobase-files: ipcalc.sh: trim for statement
Leon M. George [Fri, 14 Oct 2022 12:08:19 +0000 (14:08 +0200)]
base-files: ipcalc.sh: trim for statement

For gawk compatibility.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agodnsmasq: refuse to add empty DHCP range
Leon M. George [Sun, 8 May 2022 21:29:06 +0000 (23:29 +0200)]
dnsmasq: refuse to add empty DHCP range

Use ipcalc's return value to react to invalid range specifications.
By simply ignoring the range instead of aborting with an error code,
dnsmasq should still start when there's an error (best effort).
Aborting the config generation or working with invalid range specs leaves
dnsmasq crash-looping which is the right thing to do concerning that
particular interface but it also hinders DHCP service on other interfaces
and DNS on the router itself.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobase-files: ipcalc.sh: use shebang to invoke awk
Leon M. George [Thu, 5 May 2022 22:03:54 +0000 (00:03 +0200)]
base-files: ipcalc.sh: use shebang to invoke awk

There's hardly an shell logic in ipcalc.sh and a $* that would garble
parameter positions.
Move the awk invokation to the shebang.

A rename from "ipcalc.sh" to "ipcalc" is desirable but could prove tricky
with packages in other repositories depending on the filename.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobase-files: ipcalc.sh: fail when network is too small
Leon M. George [Thu, 5 May 2022 22:02:52 +0000 (00:02 +0200)]
base-files: ipcalc.sh: fail when network is too small

It's possible to move range boundaries in a way that the start address
lies behind the end address.
Detect this condition and exit with an error message.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobase-files: ipcalc.sh: don't include own address in range
Leon M. George [Thu, 5 May 2022 21:47:47 +0000 (23:47 +0200)]
base-files: ipcalc.sh: don't include own address in range

Make sure our own address doesn't lie in the calculated range.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobase-files: ipcalc.sh: check for params before calculating start/end
Leon M. George [Thu, 5 May 2022 21:19:53 +0000 (23:19 +0200)]
base-files: ipcalc.sh: check for params before calculating start/end

With this patch, ipcalc only calculates range boundaries if the
corresponding parameters are supplied.

Signed-off-by: Leon M. George <leon@georgemail.eu>
21 months agobcm47xx: revert bgmac back to the old limited max frame size
Rafał Miłecki [Tue, 7 Feb 2023 17:09:40 +0000 (18:09 +0100)]
bcm47xx: revert bgmac back to the old limited max frame size

Bumping max frame size has significantly affected network performance
and memory usage. It was done by upstream commit that first appeared in
the 5.7 release.

Allocating 512 (BGMAC_RX_RING_SLOTS) buffers, 10 k each, is clearly a
bad idea on 32 MiB devices. This commit fixes support for Linksys E1000
V2.1 which gives up after allocating ~346 such buffers running 5.15
kernel.

Ref: 230c9da963aa ("bcm53xx: revert bgmac back to the old limited max frame size")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
21 months agoipq806x: add missing enclosing reserved-memory block on C2600/AD7200
Filip Matijević [Sun, 5 Feb 2023 08:34:41 +0000 (09:34 +0100)]
ipq806x: add missing enclosing reserved-memory block on C2600/AD7200

Most of the time when booting kernel prints a warning from
mm/page_alloc.c when pstore/ramoops is being initialized and ramoops is
not functional.

Fix this by moving ramopps node into reserved-memory block as described
in kernel documentation.

Fixes: 2964e5024c ("ipq806x: kernel ramoops storage for C2600/AD7200")
Signed-off-by: Filip Matijević <filip.matijevic.pz@gmail.com>
21 months agoipq807x: refresh kernel config
Robert Marko [Thu, 2 Feb 2023 09:34:52 +0000 (10:34 +0100)]
ipq807x: refresh kernel config

Refresh the ipq807x kernel config to keep it up to date and in sync with
the generic one.

Signed-off-by: Robert Marko <robimarko@gmail.com>
21 months agoiwinfo: bump to latest git HEAD
Christian Marangi [Mon, 6 Feb 2023 20:33:26 +0000 (21:33 +0100)]
iwinfo: bump to latest git HEAD

c7eb8eb nl80211: restore iterating over all devices in nl80211_phy2ifname()

Fixes: #11902
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoipq40xx: fix assignment of lan port numbers for Cell C RTL30VW
Cezary Jackiewicz [Sun, 5 Feb 2023 06:24:05 +0000 (07:24 +0100)]
ipq40xx: fix assignment of lan port numbers for Cell C RTL30VW

After switching to DSA, the LAN ports in Cell C RTL30VW have swapped numbers. Assigning the right numbers.

Signed-off-by: Cezary Jackiewicz <cezary@eko.one.pl>
21 months agotools/pkgconf: add PKG_CPE_ID
Nick Hainke [Sun, 5 Feb 2023 13:59:03 +0000 (14:59 +0100)]
tools/pkgconf: add PKG_CPE_ID

Add PKG_CPE_ID to track vulnerabilities.

Signed-off-by: Nick Hainke <vincent@systemli.org>
21 months agotools/pkgconf: update to 1.9.4
Nick Hainke [Sun, 5 Feb 2023 13:06:35 +0000 (14:06 +0100)]
tools/pkgconf: update to 1.9.4

Release information:
https://github.com/pkgconf/pkgconf/blob/master/NEWS

Fixes CVE-2023-24056.

Further, this commit corrects the "-Dtests" flag and changes it from
"false" to "disabled".

Signed-off-by: Nick Hainke <vincent@systemli.org>
21 months agotools/coreutils: update to 9.1
John Audia [Sat, 26 Feb 2022 13:29:02 +0000 (08:29 -0500)]
tools/coreutils: update to 9.1

In addition to version update, this commit applies a fixup to allow building
on MacOS involving renaming: [gt_TYPE_WINT_T] --> [gt_TYPE_WINT_T_GNUTLS]
suggested by zhanhb.

Build system: x86_64
Build-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
21 months agoipq806x: onhub: Enable fstools_partname_fallback_scan
Brian Norris [Wed, 25 Jan 2023 06:42:07 +0000 (22:42 -0800)]
ipq806x: onhub: Enable fstools_partname_fallback_scan

When fstools is unable to parse our root=<...> arg correctly, it can
fall back to scanning all block devices for a 'rootfs_data' partition.
This fallback was deemed wrong (or at least, a breaking/incompatible
change) for some targets, so we're forced to opt back into it with
fstools_partname_fallback_scan=1.

Without this, OnHub devices will use a rootfs-appended loop device for
rootfs_data instead of the intended 3rd partition.

While I'm at it, just move all the boot args into the 'cros-vboot'
build rule, instead of using the custom bootargs-append. All cros-vboot
subtargets here are using the same rootwait (to support both eMMC and
USB boot) and root/partition args.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
[ drop unrelated comments in commit description ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agofstools: bump to latest Git HEAD
Christian Marangi [Sat, 4 Feb 2023 19:04:58 +0000 (20:04 +0100)]
fstools: bump to latest Git HEAD

14d535e partname: Correct fstools_partname_fallback_scan comparison

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
21 months agoipq807x: remove libwolfsslcpu-crypto dependency
Rosen Penev [Fri, 3 Feb 2023 23:51:50 +0000 (15:51 -0800)]
ipq807x: remove libwolfsslcpu-crypto dependency

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agotreewide: replace libustream-wolfssl with -mbedtls
Rosen Penev [Wed, 25 Jan 2023 21:02:12 +0000 (13:02 -0800)]
treewide: replace libustream-wolfssl with -mbedtls

Previous commit does the same for wpad-basic. Also matches
DEFAULT_VARIANT in ustream-ssl Makefile.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agotreewide: replace wpad-basic-wolfssl default
Rosen Penev [Wed, 28 Dec 2022 04:44:11 +0000 (20:44 -0800)]
treewide: replace wpad-basic-wolfssl default

The newly merged mbedtls backend is smaller and has fewer ABI related
issues than the wolfSSL one.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
21 months agoscripts: size_compare: print a grand total
Andre Heider [Tue, 31 Jan 2023 14:58:08 +0000 (15:58 +0100)]
scripts: size_compare: print a grand total

Usefull to check the impact of treewide changes:
Change  Local Remote  Package
+281 6191 5910 ubus
-547 56166 56713 procd
-13294 91544 104838 ubi-utils
~~~~~~~ total change -13560

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agoscripts: size_compare: fix support for CONFIG_BINARY_FOLDER
Andre Heider [Mon, 30 Jan 2023 17:37:39 +0000 (18:37 +0100)]
scripts: size_compare: fix support for CONFIG_BINARY_FOLDER

There is no CONFIG_BINARY_DIR, it's CONFIG_BINARY_FOLDER.

While at it, don't parse the shell compatible .config, eval it.

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agoscripts: qemustart: support CONFIG_BINARY_FOLDER
Andre Heider [Sun, 13 Nov 2022 06:06:27 +0000 (07:06 +0100)]
scripts: qemustart: support CONFIG_BINARY_FOLDER

If CONFIG_BINARY_FOLDER is set in .config, use that instead of "bin" as
the bindir.

That allows to set that config and easily run e.g.
`./scripts/qemustart armvirt 32`.

Signed-off-by: Andre Heider <a.heider@gmail.com>
21 months agoramips: mt7621-dts: fix phy-mode of external phy on GB-PC2
Arınç ÜNAL [Mon, 28 Nov 2022 21:33:37 +0000 (00:33 +0300)]
ramips: mt7621-dts: fix phy-mode of external phy on GB-PC2

The phy-mode property must be defined on the MAC instead of the PHY. Define
phy-mode under gmac1 which the external phy is connected to.

Tested-by: Petr Louda <petr.louda@outlook.cz>
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
21 months agobase-files: upgrade: Fix export_partdevice() quoting
Brian Norris [Wed, 21 Dec 2022 06:21:46 +0000 (22:21 -0800)]
base-files: upgrade: Fix export_partdevice() quoting

$BOOTDEV_MAJOR may be empty for many of the uevents parsed in this
function. This condition thus tends to fail benignly (we just skip to
the next device), but it can really clutter the stage2 sysupgrade
stderr, since it looks like the "=" operand doesn't have an appropriate
left-hand argument.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
21 months agox86: add Barracuda Networks F12 interfaces
Tomasz Maciej Nowak [Mon, 23 Jan 2023 13:44:15 +0000 (14:44 +0100)]
x86: add Barracuda Networks F12 interfaces

Match interface numbers with printed numbers on device enclosure and
assign first port as WAN interface.

Notes
Serial console is available through RJ-45 port with Cisco pinout
baud: 19200, parity: none, flow control: none
The device is setup with UEFI. To enter setup hold DEL or ESC key on
boot. Default UEFI Administrator password is: bcndk1
For users using graphics IC it's advisable to disable display with:
i915.disable_display=1
appending to kernel command line inside bootloader, to save about
0.5-0.6W energy on idle.
For users not using graphics IC, disable it in UEFI, this will save about
1.5W energy on idle.
Pins marked CN19 are ATX power On/Off button.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
21 months agoramips: mt7621-dts: fix compatible string for mt7530 on TP-Link EAP615-Wall
Arınç ÜNAL [Thu, 26 Jan 2023 19:17:40 +0000 (22:17 +0300)]
ramips: mt7621-dts: fix compatible string for mt7530 on TP-Link EAP615-Wall

The correct compatible string for the multi-chip module MT7530 switch in
MT7621AT, MT7621DAT and MT7621ST SoCs is mediatek,mt7621. Remove the
property on TP-Link EAP615-Wall which will default to the said string.

Fixes: a1b8a4d7b3ff ("ramips: support TP-Link EAP615-Wall")
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
21 months agokernel: modules: add lkdtm module
Brian Norris [Fri, 27 Jan 2023 20:53:32 +0000 (12:53 -0800)]
kernel: modules: add lkdtm module

Useful for debugging panic/error handling, crash logging, and more.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
21 months agoramips: use on-flash partition table for Sercomm BZV/CHJ
Jan Hoffmann [Fri, 27 Jan 2023 23:01:18 +0000 (00:01 +0100)]
ramips: use on-flash partition table for Sercomm BZV/CHJ

These devices have a partition table stored in flash, which compensates
for any pre-existing bad blocks by enlarging the respective partition.
This means that the current static partition table is only correct for
devices without any bad blocks.

Typical results of this mismatch are degraded wireless performance and
wrong MAC addresses, when the factory partition is shifted due to a bad
block somewhere before it. If there is a bad block already before the
ubi partition, then OpenWrt may not run at all because the kernel can't
find the rootfs.

Use the on-flash partition table to fix these issues. Replace the two
reserved partitions by the full partition list, as the driver does not
allow merging them.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>