openwrt/staging/blocktrron.git
15 months agomediatek: generate bootloader artifacts for mt7988_rfb
Daniel Golle [Fri, 25 Aug 2023 03:09:28 +0000 (04:09 +0100)]
mediatek: generate bootloader artifacts for mt7988_rfb

Switch to OpenWrt uImage.FIT bootmethod and include various bootloader
artifacts with the generated binaries.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agouboot-mediatek: build fully-featured U-Boot for MT7988 RFB
Daniel Golle [Fri, 25 Aug 2023 02:58:33 +0000 (03:58 +0100)]
uboot-mediatek: build fully-featured U-Boot for MT7988 RFB

Select many potentially useful options for the MT7988 RFB U-Boot builds.
The resulting loader is intended as a development tool and intends to be
generic. It does *not* have a default bootcmd set, but allows to boot
pretty much everything, including EFI executables.

To install this U-Boot build to the eMMC:
  opkg install mmc-utils partx-utils
  mmc bootpart enable 1 1 /dev/mmcblk0
  echo 0 > /sys/block/mmcblk0boot0/force_ro
  dd if=*mediatek_mt7988a-rfb-nand-emmc-preloader.bin of=/dev/mmcblk0boot0
  dd if=*mediatek_mt7988a-rfb-nand-emmc-gpt.bin of=/dev/mmcblk0
  partx -a /dev/mmcblk0
  dd if=*mediatek_mt7988a-rfb-nand-emmc-bl31-uboot.fip of=/dev/mmcblk0p3

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agomediatek: improve mt7981.dtsi
Daniel Golle [Sun, 27 Aug 2023 14:57:00 +0000 (15:57 +0100)]
mediatek: improve mt7981.dtsi

 * re-factor WED components to boot fine also on limited loaders
 * add LEDs of integrated GE PHY

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agomediatek: filogic: improve pinctrl drivers
Daniel Golle [Sat, 26 Aug 2023 23:38:38 +0000 (00:38 +0100)]
mediatek: filogic: improve pinctrl drivers

Set correct pull-type data and add additional uart groups for MT7981.
Assign functions to configure pin bias for MT7986.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agomediatek: i2c: mt65xx: allow optional pmic clock
Daniel Golle [Sat, 26 Aug 2023 21:26:37 +0000 (22:26 +0100)]
mediatek: i2c: mt65xx: allow optional pmic clock

Using the I2C host controller on the MT7981 SoC requires 4 clocks to
be enabled. One of them, the pmic clk, is only enabled in case
'mediatek,have-pmic' is also set which has other consequences which
are not desired in this case.

Allow defining a pmic clk even in case the 'mediatek,have-pmic' propterty
is not present and the bus is not used to connect to a pmic, but may
still require to enable the pmic clock.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agomediatek: re-add missing patch for Linux 6.1
Daniel Golle [Sun, 27 Aug 2023 15:32:50 +0000 (16:32 +0100)]
mediatek: re-add missing patch for Linux 6.1

The patch was wrongly tagged as being part of Linux 6.0 even though it
was only committed with Linux 6.2 and hence needs to be backported for
Linux 6.1.

Fixes: fa79baf4a6 ("generic: copy backport, hack, pending patch and config from 5.15 to 6.1")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agomediatek: re-add dropped properties on BPi-R3
Daniel Golle [Fri, 25 Aug 2023 13:00:09 +0000 (14:00 +0100)]
mediatek: re-add dropped properties on BPi-R3

Unfortunately some device tree properties have slipped under the table
when switching from our downstream device tree.

Bring back 3W power for SFP cages and restore thermal trip points to
make sense again.

Fixes: 7a0ec001ff ("mediatek: sync MT7986 device trees with upstream")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agobcm53xx: Add support for D-Link DIR-890L
Linus Walleij [Mon, 19 Jun 2023 06:36:16 +0000 (08:36 +0200)]
bcm53xx: Add support for D-Link DIR-890L

The DIR-890L is very similar to DIR-885L, but has both USB2
and USB3. The signature for the wrgac36 board was copied from
DD-Wrt.

The DIR-890L bootstrap will only load the first 2 MB after
the SEAMA header in the NAND flash, uncompress it with LZMA
and execute it. Since the compressed kernel will not fit in
2 MB we have a problem. Solve this by putting a LZMA
compressed U-Boot into the first 128 KB of the flash
followed by the kernel. The bootstrap will then uncompress
and execute U-Boot and then we let U-Boot read the kernel
from flash and execute it.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
15 months agoipq806x: onhub: Enable adm_dma node
Brian Norris [Sat, 12 Aug 2023 00:49:59 +0000 (17:49 -0700)]
ipq806x: onhub: Enable adm_dma node

One of our SPI devices references this node, but we never enabled it.
This clutters up probe deferral logs.

(NB: this SPI device still doesn't have a real driver, so it's just here
for documentation and/or tinkering.)

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
15 months agoipq806x: chromium: Disable kernel's CONFIG_QCOM_SPM
Brian Norris [Sat, 12 Aug 2023 00:49:58 +0000 (17:49 -0700)]
ipq806x: chromium: Disable kernel's CONFIG_QCOM_SPM

The qcom spm driver is currently broken for IPQ8064 OnHub devices on
kernel 6.1, such that it hangs the system when booting, much to the
consternation of users. This is especially bad as these devices don't
yet have a fully-supported release branch, and are still sometimes
landing on snapshot builds.

OnHub devices have their own kernel config, so it's not that wide of an
impact to disable this.

I haven't fully gotten to the bottom of this, but:

(a) The vendor kernel didn't have any SPM driver at all, and didn't
    utilize cpuidle.
(b) The device tree has never included any (non-disabled) cpuidle
    states, so even when this driver was present on 5.15 (last
    known-working kernel), it didn't actually do anything -- it bailed
    early, before ever doing any SPM initialization.
(c) Refactoring in Linux 5.16 [1] caused the SPM driver to be activated
    unconditionally, including setting us into standby mode
    (PM_SLEEP_MODE_STBY) by default.

Removing the one PM_SLEEP_MODE_STBY line from drivers/soc/qcom/spm.c
seems to fix the problem, but that isn't much different than simply
disabling the driver, so I go with that for now.

I also disable CONFIG_ARM_QCOM_SPM_CPUIDLE, becuase it 'select's
QCOM_SPM.

NB: it's possible there's some other deeper root cause involved in here.
For one, I notice that CPU hotplug (e.g., echo 0 >
/sys/devices/system/cpu/cpu1/online, echo 1 > ...) doesn't work right
either. Perhaps there's some mismatch on upstream Linux qcom-scm
behavior and the old boot firmware used for these systems? It wouldn't
be the first time, as we've had some similar incompatibilities on the
next generation of these devices, Google WiFi [2].

[1] Commit 60f3692b5f0b ("cpuidle: qcom_spm: Detach state machine from
    main SPM handling")
[2] [RFC] qcom_scm: IPQ4019 firmware does not support atomic API?
    https://lore.kernel.org/linux-arm-kernel/20200913201608.GA3162100@bDebian/

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
15 months agoltq-vdsl-vr11-mei: fix compilation error with kernel 6.1
Andre Heider [Tue, 22 Aug 2023 12:50:24 +0000 (14:50 +0200)]
ltq-vdsl-vr11-mei: fix compilation error with kernel 6.1

Define the old PDE_DATA marco to the new pde_data function.

Signed-off-by: Andre Heider <a.heider@gmail.com>
15 months agovrx518_tc: fix compilation error with kernel 6.1
Andre Heider [Tue, 22 Aug 2023 12:19:43 +0000 (14:19 +0200)]
vrx518_tc: fix compilation error with kernel 6.1

Define the old PDE_DATA marco to the new pde_data function and
conditionally use the newer APIs.

Signed-off-by: Andre Heider <a.heider@gmail.com>
15 months agovrx518_ep: fix compilation error with kernel 6.1
Andre Heider [Tue, 22 Aug 2023 11:07:02 +0000 (13:07 +0200)]
vrx518_ep: fix compilation error with kernel 6.1

Unconditionally use the newer APIs, since our oldest supported kernel
contains them too.

Signed-off-by: Andre Heider <a.heider@gmail.com>
15 months agoltq-ifxos: fix compilation error with kernel 6.1
Andre Heider [Tue, 22 Aug 2023 10:37:10 +0000 (12:37 +0200)]
ltq-ifxos: fix compilation error with kernel 6.1

Conditionally use the newer APIs.

Signed-off-by: Andre Heider <a.heider@gmail.com>
15 months agorockchip: add support for PINE64 ROCK64
Antonio Flores [Sat, 8 Jul 2023 17:31:49 +0000 (13:31 -0400)]
rockchip: add support for PINE64 ROCK64

This add support for PINE64 ROCK64, rockchip rk3328 board.

Specifications:

 4 x ARM Cortex A53 cores @ 1.5 GHz
 ARM Mali 450 MP2 GPU
 LPDDR3 RAM (up to 4GB)
 Gigabit Ethernet
 Micro SD Slot
 eMMC module slot
 SPI Flash 128Mbit
 4K digital video out
 2x USB 2.0 Host
 1x USB 3.0 Host
 PI-2 bus
 PI-P5+ bus
 IR R/X port
 Real Time Clock (RTC) port
 Power Over Ethernet (POE) (when using optional HAT module)
 A/V jack
 Power, Reset and Recovery buttons
 3.5mm barrel power (5V 3A) port

To install write image to the sd using dd (dd if=*.img of=/*)

Signed-off-by: Antonio Flores <antflores627@gmail.com>
15 months agouboot-rockchip: fix swig dependency for ROCK64
Antonio Flores [Sat, 8 Jul 2023 17:29:56 +0000 (13:29 -0400)]
uboot-rockchip: fix swig dependency for ROCK64

Pre build files to fix swig dependency.

Signed-off-by: Antonio Flores <antflores627@gmail.com>
15 months agouboot-rockchip: add support for PINE64 ROCK64
Antonio Flores [Sat, 8 Jul 2023 17:26:31 +0000 (13:26 -0400)]
uboot-rockchip: add support for PINE64 ROCK64

Add uboot support for PINE64 ROCK64, rockchip rk3328 board.

Signed-off-by: Antonio Flores <antflores627@gmail.com>
15 months agoramips: add support for D-Link DRA-1360
Rani Hod [Mon, 24 Apr 2023 22:26:28 +0000 (01:26 +0300)]
ramips: add support for D-Link DRA-1360

The DRA-1360 rev A is a wall-plug AC1300 repeater.
Hardware is identical (same FCC ID, black case instead of white)
to D-Link DAP-1620 rev B, which is already supported, but a
different model name, revision, and hardware ID are needed.
Thus, the bulk of the DAP-1620 device tree is extracted to a
common dtsi included by the two models' device trees.

Repeating specs and installation instructions from e4c7703:
(note that the RAM size mentioned there was incorrect, oops)

Specs:
- SoC: MT7621AT (880MHz dual-core MIPS1004Kc)
- Memory: 128 MiB RAM, 16 MiB NOR SPI
- WiFi: MT7615DN 2x2 802.11n + 2x2 802.11ac (DBDC)
- Ethernet: 1 RJ45 port 10/100/1000
- Power/status LED: red+green
- LED RSSI bargraph: 2x green, 1x red+green

Installation:
- Keep reset button pressed during plug-in
- Web Recovery Updater is at 192.168.0.50
  (pings are ignored, it listens only for http)
- Upload factory.bin, confirm flashing
  (seems to work best with Chromium-based browsers)

Revert to OEM firmware:
- tail -c+117 DRA1360A1_FW112B03.bin | \
  openssl aes-256-cbc -d -md md5 -out decrypted.bin \
  -k c471706398cb147c6619f8a04a18d53e9c17ede8
- flash decrypted.bin via D-Link Web Recovery

Signed-off-by: Rani Hod <rani.hod@gmail.com>
15 months agokernel: bump 5.15 to 5.15.128
John Audia [Sat, 26 Aug 2023 16:56:53 +0000 (12:56 -0400)]
kernel: bump 5.15 to 5.15.128

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

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>
15 months agokernel: bump 6.1 to 6.1.48
John Audia [Sat, 26 Aug 2023 12:36:37 +0000 (08:36 -0400)]
kernel: bump 6.1 to 6.1.48

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

No patches changed in this bump, only update was to checksum.

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>
15 months agoipq40xx: re-add label MAC address for FritzBox 4040
Fabian Bläse [Sun, 6 Aug 2023 17:57:16 +0000 (19:57 +0200)]
ipq40xx: re-add label MAC address for FritzBox 4040

The MAC address of the GMAC is contained inside the CWMP-Account
number on the label.

The label MAC address alias was defined previously, but it has been
removed with the switch to IPQESS / DSA.

Restore the label MAC address alias.

Fixes: 27b441cbaf42 ("ipq40xx: drop ESSEDMA + AR40xx DTS nodes")
Signed-off-by: Fabian Bläse <fabian@blaese.de>
Reviewed-by: Robert Marko <robimarko@gmail.com>
15 months agouboot-sunxi: bump to 2023.04
Zoltan HERPAI [Wed, 7 Jun 2023 10:13:11 +0000 (12:13 +0200)]
uboot-sunxi: bump to 2023.04

Compile-tested: all boards
Runtime-tested:
 - Cortex-A8: pcDuino
 - Cortex-A7: Bananapro, Bananapi M3
 - Cortex-A53:Pine64+

Notes:
 - binman tries to add firmware for the SCP (system control processor), which
   we don't build, and is optional for the boot process on 64-bit. Disable this
   via setting the SCP envvar to /dev/null. For further info, see [1] .

[1] https://github.com/u-boot/u-boot/blob/master/board/sunxi/README.sunxi64

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
15 months agox86: remove built-in vhost-net driver
Mathew McBride [Tue, 22 Aug 2023 04:49:32 +0000 (04:49 +0000)]
x86: remove built-in vhost-net driver

This is now available as a kmod package (kmod-vhost-net).

Signed-off-by: Mathew McBride <matt@traverse.com.au>
15 months agokernel: add vhost-net module
Mathew McBride [Mon, 21 Aug 2023 06:10:35 +0000 (06:10 +0000)]
kernel: add vhost-net module

vhost-net is used to accelerate traffic to virtualisation
guests that use the virtio-net network card in QEMU.

Generally it is invoked by specifying "vhost=on" to a
QEMU -netdev device:

qemu-system-aarch64 -nographic -M virt -cpu host \
        --enable-kvm -bios u-boot.bin -smp 1 -m 2048 \
        -drive file=openwrt-armsr-armv8.img,format=raw,index=0,media=disk \
        -device "virtio-net,netdev=landev,disable-legacy=off,disable-modern=off" \
        -netdev "tap,id=landev,helper=/usr/lib/qemu-bridge-helper --br=br-lan,vhost=on"

Signed-off-by: Mathew McBride <matt@traverse.com.au>
15 months agoprereq: merge common cases in SetupHostCommand
Jonas Gorski [Wed, 23 Aug 2023 07:47:57 +0000 (09:47 +0200)]
prereq: merge common cases in SetupHostCommand

Now that most cases do the same thing in SetupHostCommand, merge them
together into one. To allow moving the generic symlink check, invert the
check and let it check for relative links by matching on link targets
that do not start with a slash.

This then allows us to also drop the absolute link case, shortening the
case statement further.

This reorders the check to

* if it is not a symlink, do not change it
* if it is a symlink and it points to the found command, do not change it
* if it is a symlink with a relative path, do not change it
* else, update/replace it

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
15 months agoprereq: make existing binary check work for sdk as well
Jonas Gorski [Wed, 16 Aug 2023 09:22:30 +0000 (11:22 +0200)]
prereq: make existing binary check work for sdk as well

To avoid replacing host built binaries with symlinks again, a check for
an appropriate stamp was added in 729909c07f ("prereq-build: do not
replace binaries with symlinks"). Unfortunately the stamp directory does
not exist in the SDK, so the fix was ineffective there.

This caused the packages builders to e.g. use the host tar again, which
in turn made the tarballs created different since it may lack
reproducibility fixes, or implement these differently, causing spurious
hash failures on source repository based packages.

Fix this by dropping the stamp dir check, and just check that the file
is usable.

Fixes: 729909c07f ("prereq-build: do not replace binaries with symlinks")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
15 months agoarm-trusted-firmware-mvebu: bump to v2.9
Robert Marko [Fri, 18 Aug 2023 10:42:03 +0000 (12:42 +0200)]
arm-trusted-firmware-mvebu: bump to v2.9

We are using the outdated 2.7 TF-A, so lets update to current v2.9 version.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agoarm-trusted-firmware-mvebu: update CM3 GCC to 12.3rel1
Robert Marko [Fri, 18 Aug 2023 10:40:27 +0000 (12:40 +0200)]
arm-trusted-firmware-mvebu: update CM3 GCC to 12.3rel1

We are using the outdated 11.2 GCC for CM3, lets update to the current
12.3rel1 version from ARM [1].

[1] https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agoarm-trusted-firmware-mvebu: bump cryptopp to version 8.8
Robert Marko [Fri, 18 Aug 2023 10:39:04 +0000 (12:39 +0200)]
arm-trusted-firmware-mvebu: bump cryptopp to version 8.8

We are using the outdated Crypto++ version 8.5, so lets update to the
current version 8.8.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agoarm-trusted-firmware-mvebu: bump mox-boot-builder to current version
Robert Marko [Mon, 21 Aug 2023 09:46:29 +0000 (11:46 +0200)]
arm-trusted-firmware-mvebu: bump mox-boot-builder to current version

We have to move to use git clone as there are no newer tagged releases.

Changes:
604f8f5 Default CROSS_CM3 to arm-none-eabi- instead of armv7m-softfloat-eabi-
b9b9419 Tidy up license information
0290b2c wtmi: Fix typo
a10b8e9 Makefile: fix a53-firmware.bin generation (maximum size is not optimal)
f654082 wtmi: Add const qualifier to isr_vector
4a43a3b wtmi: Improve detection of ESPRESSObin boards with Topaz
189e629 wtmi: Improve detection of boards with insufficient MDIO pull-up
3dac4fe wtmi: Fix detection of Armada 3720 Devel Board
3ca4dfa Bump mox-imager commit

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agoarm-trusted-firmware-mvebu: bump mv-ddr-marvell to current version
Robert Marko [Fri, 18 Aug 2023 10:51:28 +0000 (12:51 +0200)]
arm-trusted-firmware-mvebu: bump mv-ddr-marvell to current version

Changes:
1de442d Convert floating point operations to integer operations
ce6770d Modify mv_ddr4_calibration_validate function body to match function header

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agoarm-trusted-firmware-mvebu: bump a3700-utils to current version
Robert Marko [Fri, 18 Aug 2023 10:46:48 +0000 (12:46 +0200)]
arm-trusted-firmware-mvebu: bump a3700-utils to current version

Changes:
a3e1c67 wtmi: Fix linker output sections
f65e3bf wtmi: Remove usage of non-existant string.h file and memcpy() function

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agokernel: bump 6.1 to 6.1.47
John Audia [Wed, 23 Aug 2023 18:59:59 +0000 (14:59 -0400)]
kernel: bump 6.1 to 6.1.47

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

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>
15 months agomac80211: Add ath11k to the help text of ATH_DEBUG
Jacob Aharon [Tue, 22 Aug 2023 05:03:45 +0000 (15:03 +1000)]
mac80211: Add ath11k to the help text of ATH_DEBUG

ATH_DEBUG package is required to debug ath11k.

Fixes: 93ae4353cdf6 ("mac80211: add ath11k PCI support")
Signed-off-by: Jacob Aharon <ah.jacob@gmail.com>
15 months agouboot-envtools: fix parallel building
Robert Marko [Mon, 21 Aug 2023 12:58:05 +0000 (14:58 +0200)]
uboot-envtools: fix parallel building

Recent envtools update to 2023.07.02 has introduced a breakage when trying
to parallel build with the following error:
/bin/sh: line 1: scripts/basic/fixdep: No such file or directory

Luckily it can easily be reproduced locally via a simple script so it was
not hard to bisect it down to upstream commit [1].

However, its not that commits fault, it just uncovered an issue with the
way we have been building envtools for a long time, maybe even from the
package introduction.

The issue is that we are trying to build envtools as one of the U-Boot
no-dot-config-targets but envtools was newer a valid target for it but
since we were creating the config headers that were not actually used it
was actually building all this time.

Since the blamed commit [1] a tool called printinitialenv is built and
now a proper config is actually required in order for prerequisites to
get built properly.

So, in order to properly fix this (Hopefully for good) lets stop pretending
that envtools are a valid no-dot-config-targets target and use the
tools-only defconfig which is meant exactly for just building the tools.
This will make a minimal config for the U-Boot sandbox target and then
envtools will build just fine in parallel mode (I tested with 32 threads).
We do hovewer need to override the ARCH passed by OpenWrt and set it to
sandbox as otherwise U-Boot will not find the required headers because the
ARCH is being overriden to an incorrect one.

[1] https://source.denx.de/u-boot/u-boot/-/commit/40b77f2a3ac13a7547c1b7c9c51a4090869de8f4

Fixes: 9db033005210 ("uboot-envtools: update to 2023.07.02")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
15 months agomediatek: enable NMBM remapping for NWA50AX Pro UBI
David Bauer [Fri, 25 Aug 2023 19:38:13 +0000 (21:38 +0200)]
mediatek: enable NMBM remapping for NWA50AX Pro UBI

Don't skip remapping of the UBI area for the ZyXEL NWA50AX Pro. This is
due to the kernel being loaded from the UBI partition by U-Boot.

Link: https://github.com/openwrt/openwrt/pull/13335
Signed-off-by: David Bauer <mail@david-bauer.net>
15 months agomt76: update to the latest version
Felix Fietkau [Wed, 26 Jul 2023 11:20:43 +0000 (13:20 +0200)]
mt76: update to the latest version

bdf7ca5db707 wifi: mt76: mt7921: move common register definition in mt792x_regs.h
ae15d5c6b567 wifi: mt76: mt7921: convert acpisar and clc pointers to void
02515b6b90f0 wifi: mt76: mt7921: rename mt7921_vif in mt792x_vif
6ed8a8bdc7b6 wifi: mt76: mt7921: rename mt7921_sta in mt792x_sta
80234e64e7c5 wifi: mt76: mt7921: rename mt7921_phy in mt792x_phy
2485b4222d3d wifi: mt76: mt7921: rename mt7921_dev in mt792x_dev
c6fd7cde77e0 wifi: mt76: mt7921: rename mt7921_hif_ops in mt792x_hif_ops
1a1a57b5f8c4 wifi: mt76: mt792x: move shared structure definition in mt792x.h
68508aab4241 wifi: mt76: mt7921: move mt792x_mutex_{acquire/release} in mt792x.h
ff306af07e65 wifi: mt76: mt7921: move mt792x_hw_dev in mt792x.h
4b49d659acab wifi: mt76: mt7921: Replace fake flex-arrays with flexible-array members
93f821cce8f5 wifi: mt76: mt792x: introduce mt792x-lib module
de7b90721280 wifi: mt76: mt7921: move mac shared code in mt792x-lib module
c68ee8a64bef wifi: mt76: mt7921: move dma shared code in mt792x-lib module
8d561811f271 wifi: mt76: mt7921: move debugfs shared code in mt792x-lib module
0034ae289046 wifi: mt76: mt7921: move init shared code in mt792x-lib module
8419c4e793a7 wifi: mt76: mt792x: introduce mt792x_irq_map
b7c7fadf228c wifi: mt76: mt792x: move more dma shared code in mt792x_dma
0b1603ce707c wifi: mt76: mt7921: move hif_ops macro in mt792x.h
e07540abe87a wifi: mt76: mt7921: move shared runtime-pm code on mt792x-lib
3d65cd7a8dad wifi: mt76: mt7921: move runtime-pm pci code in mt792x-lib
4551f8c838e6 wifi: mt76: mt7921: move acpi_sar code in mt792x-lib module
bd84b8ebaff8 wifi: mt76: mt792x: introduce mt792x-usb module
7067ea0f1bab wifi: mt76: mt792x: move mt7921_load_firmware in mt792x-lib module
cf752af84c35 wifi: mt76: mt76_connac3: move lmac queue enumeration in mt76_connac3_mac.h
700041dcf773 wifi: mt76: mt792x: move MT7921_PM_TIMEOUT and MT7921_HW_SCAN_TIMEOUT in common code
58b2b90ad89b wifi: mt76: mt7921: move mt7921_dma_init in pci.c
9e4cb87a04cf wifi: mt76: mt7921: move mt7921u_disconnect mt792x-lib
c19b62fe6b68 wifi: mt76: testmode: add nla_policy for MT76_TM_ATTR_TX_LENGTH
4904ab2f87cd wifi: mt76: fix return value check in mt76x02_mac_process_rx
1f0fbbee359c wifi: mt76: mt7915: fix tlv length of mt7915_mcu_get_chan_mib_info
24a54ee3a5ec wifi: mt76: mt7915: fix power-limits while chan_switch
80b8bcf0e3ea wifi: mt76: mt7603: rework/fix rx pse hang check
a8d9553d8fc4 wifi: mt76: mt7603: improve watchdog reset reliablity
c03d84c0d018 wifi: mt76: mt7603: improve stuck beacon handling
85cc58378d25 wifi: mt76: mt7603: add missing register initialization for MT7628
b14c2351ddb8 wifi: mt76: mt7603: disable A-MSDU tx support on MT7628

Signed-off-by: Felix Fietkau <nbd@nbd.name>
15 months agouboot-mediatek: increase max. memory regions on mt7988-rfb
Daniel Golle [Thu, 24 Aug 2023 16:24:37 +0000 (17:24 +0100)]
uboot-mediatek: increase max. memory regions on mt7988-rfb

WED requires a bunch of additional reserved memory regions. As U-Boot's
LMB allocator defaults to a maximum of only 8 regions, this currently
makes using WED impossible.
Raise LMB_MAX_REGIONS to 64 just like for all other MediaTek boards
with a SoC supporting WED.

Fixes: 572ea68070 ("uboot-mediatek: add patches for MT7988 and builds for RFB")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
15 months agosunxi: add testing kernel 6.1
Zoltan HERPAI [Tue, 9 May 2023 14:15:02 +0000 (16:15 +0200)]
sunxi: add testing kernel 6.1

Compile-tested: all targets
Runtime-tested:
 - Cortex-A53: Pine64+
 - Cortex-A7:  Bananapro, Orange Pi 2
 - Cortex-A8:  pcDuino v2

Patches refreshed.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
15 months agosunxi: copy patches from 5.15 to 6.1
Zoltan HERPAI [Wed, 7 Jun 2023 10:13:38 +0000 (12:13 +0200)]
sunxi: copy patches from 5.15 to 6.1

To start the migration, we copy the patches from 5.15 to 6.1.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
15 months agohostapd: fix bringing up AP+STA when the new channel is on a DFS channel
Felix Fietkau [Thu, 24 Aug 2023 16:27:51 +0000 (18:27 +0200)]
hostapd: fix bringing up AP+STA when the new channel is on a DFS channel

If a CAC is needed because the channel is not available yet, a full AP
interface restart is needed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
15 months agoath79: fix first reboot issue on Netgear WNDR4300 v2 and WNDR4500 v3
Shiji Yang [Sun, 9 Jul 2023 14:10:54 +0000 (22:10 +0800)]
ath79: fix first reboot issue on Netgear WNDR4300 v2 and WNDR4500 v3

From the Netgear u-boot GPL code[1]. Bootloader always unconditionally
marks block 768, 1020 - 1023 as bad blocks on each boot. This may lead
to conflicts with the OpenWrt nand driver since these blocks may be good
blocks. In this case, U-boot will override the oob of these blocks so
that break the ubi volume. The system will be damaged after first reboot.
To avoid this issue, manually skip these blocks by using "mtd-concat".

[1] https://www.downloads.netgear.com/files/GPL/EX7300v2series-V1.0.0.146_gpl_src.tar.bz2.zip

Fixes: https://github.com/openwrt/openwrt/issues/8878
Tested-by: Yousaf <yousaf465@gmail.com>
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
15 months agoath79: rework Netgear nand devices image recipe
Shiji Yang [Sun, 9 Jul 2023 14:10:53 +0000 (22:10 +0800)]
ath79: rework Netgear nand devices image recipe

In Netgear u-boot GPL code, nand devices uses this formula to locate the
rootfs offset.

offset = (((128 + KERNEL_SIZE) / BLOCK_SIZE) + 1) * BLOCK_SIZE;

Howerver, WNDR4500 source code incorrectly define the nand block size to
64k. In some cases, it causes u-boot can't get the correct rootfs offset,
which result in boot failure. This patch workaround it by padding kernel
size to (128k * n - 128 - 1). The additional char '\0' is used to ensure
the (128 + KERNEL_SIZE) can't be divided by the BLOCK_SIZE.

Fixes: https://github.com/openwrt/openwrt/issues/13050
Fixes: 3c1512a25d92 ("ath79: optimize the firmware recipe for Netgear NAND devices")
Tested-by: Yousaf <yousaf465@gmail.com>
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
15 months agohostapd: in AP/STA, shut down AP interfaces when STA enters scanning state
Felix Fietkau [Wed, 23 Aug 2023 16:19:14 +0000 (18:19 +0200)]
hostapd: in AP/STA, shut down AP interfaces when STA enters scanning state

When the STA is brought up, it is set to DISABLED before adding the bss to ucode,
so the first trigger to disable the AP is missed.

Reported-by: Michael-cy Lee (李峻宇) <Michael-cy.Lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
15 months agohostapd: remove obsolete patch
Felix Fietkau [Tue, 15 Aug 2023 19:19:50 +0000 (21:19 +0200)]
hostapd: remove obsolete patch

It was only needed when hostapd was being started with one instance per PHY

Signed-off-by: Felix Fietkau <nbd@nbd.name>
15 months agomac80211: fix MT7620 Wi-Fi channel scanning function
Shiji Yang [Tue, 22 Aug 2023 18:16:22 +0000 (19:16 +0100)]
mac80211: fix MT7620 Wi-Fi channel scanning function

During the channel scanning process, the driver will continuously
switch channels. It seems that the full RF calibration step in
rt2800_config_channel() caused the channel scanning function to
timeout. To fix it, move the RF calibration to rt2800_enable_radio()
so that it is only executed once. This commit also includes some
coding format adjustments to follow the Linux recommended style.

Fixes: 2824fa6963cf ("mac80211: rework MT7620 PA/LNA RF calibration")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
15 months agomediatek: enable NWA50AX Pro eth LEDs
David Bauer [Mon, 7 Aug 2023 23:04:16 +0000 (01:04 +0200)]
mediatek: enable NWA50AX Pro eth LEDs

Enable the ethernet LED's on the ZyXEL NWA50AX Pro to show link-state as
well as activity.

Both LED's are configured pulsing.

AMBER | 10/100
GREEN | 1000
A+G   | 2500

Signed-off-by: David Bauer <mail@david-bauer.net>
15 months agomediatek: filogic: wax220: cleanup device tree
Stefan Agner [Fri, 30 Jun 2023 10:34:38 +0000 (12:34 +0200)]
mediatek: filogic: wax220: cleanup device tree

Fix compatible string to match what is supported upstream, fix alignment
and order MTD partitions according to offset.

Signed-off-by: Stefan Agner <stefan@agner.ch>
15 months agomediatek: filogic: wax220: support factory image
Stefan Agner [Fri, 30 Jun 2023 09:52:37 +0000 (11:52 +0200)]
mediatek: filogic: wax220: support factory image

Enable building a factory image which can be flashed through the OEM
firmware's web interface. It seems that the web interface requires a
minimum file size of 10MiB, otherwise it will not accept the image.

The update image is a regular sysupgrade tarball packed in a Netgear
encrypted image. The Netgear encrypted image is the same as used in
WAX202 or WAX206, including the encryption keys and IV.

This adds a script which creates the rootfs_data volume on first
startup. This is required since the OEM firmware's sysupgrade scripts
do not create such a paritition. Note that any script ordered after
70_initramfs_test will not get executed on initramfs. Hence this new
script 75_rootfs_prepare won't create the rootfs_data volume when
using the recovery initramfs.

Also, this deletes the kernel_backup and rootfs_backup volumes in case
we have to create the rootfs_data volumes. This makes sure that
OpenWrt is the actual backup firmware instead of the stock firmware.

References in WAX220 GPL source:
https://www.downloads.netgear.com/files/GPL/WAX220-V1.0.2.8-gpl-src.tar.gz

* package/base-files/files/lib/upgrade/nand.sh:186
  Creation of rootfs_data is disabled

* Uboot-upstream/board/mediatek/common/ubi_helper.c
  Automatic creation of UBI backup volumes

Signed-off-by: Stefan Agner <stefan@agner.ch>
15 months agohostapd: allow reduced neighbor report configuration
David Bauer [Tue, 16 May 2023 21:58:39 +0000 (23:58 +0200)]
hostapd: allow reduced neighbor report configuration

Reduced neighbor reports can be enabled by setting the "rnr" uci option
to 1.

Signed-off-by: David Bauer <mail@david-bauer.net>
15 months agomediatek: add missing packages for Acer Predator W6
David Bauer [Thu, 17 Aug 2023 15:55:26 +0000 (17:55 +0200)]
mediatek: add missing packages for Acer Predator W6

Add missing packages for creating the overlay filesystem.

Signed-off-by: David Bauer <mail@david-bauer.net>
16 months agouboot-bcm53xx: Add U-Boot for NorthStar BCM53xx
Linus Walleij [Mon, 19 Jun 2023 06:36:15 +0000 (08:36 +0200)]
uboot-bcm53xx: Add U-Boot for NorthStar BCM53xx

I recently added support for the NorthStar ARM BCM53xx SoCs
to the upstream U-Boot. This is a back port on top of the
2023.04 version already imported to OpenWrt with the 5 necessary
upstream patches.

This is needed to create a small U-Boot for the BCM53xx-based
D-Link DIR-890L and I think also the DIR-885L, so that a
recent (bigger) kernel can be loaded and executed from the
SEAMA partitions on these devices.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
16 months agoramips: add support for I-O DATA WN-DEAX1800GR
INAGAKI Hiroshi [Sun, 2 May 2021 13:06:09 +0000 (22:06 +0900)]
ramips: add support for I-O DATA WN-DEAX1800GR

I-O DATA WN-DEAX1800GR is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based
on MT7621A.

Specification:

- SoC         : MediaTek MT7621A
- RAM         : DDR3 256 MiB (Nanya NT5CC128M16JR-EK)
- Flash       : RAW NAND 128 MiB (Winbond W29N01HVSINF)
- WLAN        : 2.4/5 GHz (MediaTek MT7915)
- Ethernet    : 5x 10/100/1000 Mbps
  - Switch    : MT7530 (SoC)
- LEDs/Keys   : 6x/3x
- UART        : through-hole on PCB (J2)
  - assignment: 3.3V, GND, TX, RX from "1" marking
  - settings  : 115200n8
- Power       : 12 VDC, 1 A

Flash instruction using initramfs-factory image:

1. Boot WN-DEAX1800GR normally
2. Access to "http://192.168.0.1/" and open firmware update page
   ("ファームウェア")
3. Select the OpenWrt initramfs-factory.bin image and click update
   ("更新") button to perform firmware update
4. On the initramfs image, perform sysupgrade with the
   squashfs-sysupgrade.bin image
5. Wait ~120 seconds to complete flashing

Note:

- This device has 2x OS images on the flash storage. In this support,
  the first one will be used.

Warning:

- Do not use "saveenv" command on U-Boot CLI.
  This device has wrong u-boot-env data. The actual length of individual
  env data installed to the device is 0x1000 (4 KiB), but installed
  U-Boot requires 0x20000 (128 KiB). So U-Boot determines the data is
  invalid. Then, if you perform saving environment data with saveenv on
  U-Boot CLI, installed env data will be overwritten with too few
  default values without individual values (SSID, password, MAC
  addresses, etc...).

MAC addresses:

LAN    : 50:41:B9:xx:xx:F4 (Config, ethaddr (text))
WAN    : 50:41:B9:xx:xx:F6 (Config, wanaddr (text))
2.4 GHz: 50:41:B9:xx:xx:F4 (Config, rmac (text) / Factory, 0x4 (hex))
5 GHz  : 50:41:B9:xx:xx:F5 (none)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
16 months agoramips: improve sysupgrade helpers for I-O DATA devices
INAGAKI Hiroshi [Sun, 6 Aug 2023 07:09:35 +0000 (16:09 +0900)]
ramips: improve sysupgrade helpers for I-O DATA devices

I-O DATA devices manufactured by MSTC (MitraStar Technology Corp.)
have some important flags for booting, "bootnum" and "debugflag".
The almost devices have both flags but some devices have only
"bootnum" flag.
So optimize helper functions in iodata.sh to set each flags.

- both:
  - WN-AX1167GR2
  - WN-AX2033GR
  - WN-DX1167R
  - WN-DX1200GR
  - WN-DX2033GR

- "bootnum" only
  - WN-DEAX1800GR

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
16 months agofilogic: support Telenor branded ZyXEL EX5700
Bjørn Mork [Tue, 28 Mar 2023 13:04:21 +0000 (15:04 +0200)]
filogic: support Telenor branded ZyXEL EX5700

Telenor quirks
--------------
The operator specific firmware running on the Telenor branded
ZyXEL EX5700 includes U-Boot modifications affecting the OpenWrt
installation.

Notable changes to U-Boot include
- environment is stored in RAM and reset to defaults when power
  cycled
- dual partition scheme with "nomimal" or "rescue" systems, falling
  back to "rescue" unless the OS signals success in 3 attempts
- several runtime additions to the device-tree

Some of these modifications have side effects requiring workarounds
- U-Boot modifies /chosen/bootargs in an unsafe manner, and will crash
  unless this node exists
- U-Boot verifies that the selected rootfs UBI volume exists, and
  refuses to boot if it doesn't. The chosen "rootfs" volume must contain
  a squashfs signature even for tftp or initramfs booting.
- U-Boot parses the "factoryparams" UBI volume, setting the "ethaddr"
  variable to the label mac.  But "factoryparams" does not always
  exist.  Instead there is a "RIP" volume containing all the factory
  data.  Copying the "RIP" volume to  "factoryparams" will fix this

Hardware
--------
SOC:   MediaTek MT7986
RAM:   1GB DDR4
FLASH: 512MB SPI-NAND (Mikron xxx)
WIFI:  Mediatek MT7986 802.11ax 5 GHz
       Mediatek MT7916 DBDC 802.11ax 2.4 + 6 GHz
ETH:   MediaTek MT7531 Switch + SoC
       3 x builtin 1G phy (lan1, lan2, lan3)
       2 x MaxLinear GPY211C 2.5 N-Base-T phy (lan4, wan)
USB:   1 x USB 3.2 Enhanced SuperSpeed port
UART:  3V3 115200 8N1 (Pinout: GND KEY RX TX VCC)

Installation
------------
1. Download the OpenWrt initramfs image. Copy the image to a TFTP server
   reachable at 192.168.1.2/24. Rename the image to C0A80101.img.

2. Connect the TFTP server to lan1, lan2 or lan3. Connect to the serial
   console, Interrupt the autoboot process by pressing ESC when prompted.

3. Download and boot the OpenWrt initramfs image.

   $ env set uboot_bootcount 0
   $ env set firmware nominal
   $ tftpboot
   $ bootm

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

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

Missing features
----------------

- The "lan1", "lan2" and "lan3" port LEDs are driven by the switch but
  OpenWrt does not correctly configure the output.
- The "lan4" and "wan" port LEDs are driven by the GPH211C phys and
  not configured by OpenWrt.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
16 months agomediatek: filogic: set wan label in preinit
Bjørn Mork [Thu, 18 May 2023 09:56:35 +0000 (11:56 +0200)]
mediatek: filogic: set wan label in preinit

Implement the functionality of
target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch
in userspace, since the driver patch has been rejected as a generic solution:
https://github.com/openwrt/openwrt/pull/11435

Signed-off-by: Bjørn Mork <bjorn@mork.no>
16 months agokernel: ubootenv-nvram: driver for RAM backed environments
Bjørn Mork [Tue, 28 Mar 2023 11:32:29 +0000 (13:32 +0200)]
kernel: ubootenv-nvram: driver for RAM backed environments

The vendor U-Boot implementaion on Telenor branded ZyXEL EX5700
devices does not store its environment on flash. It is instead
kept in a memory region.  This is persistent over reboots, but
not over power cycling.

The dual partition failsafe system used by the vendor U-Boot
requires the OS to modify a variable in this memory environment.
This driver allows the ordinary uboot-envtools to access a
memory region like it was a partition on NOR flash.

The specific vendor U-Boot adds a "no-map" /reserved-memory
section and a top level /ubootenv node pointing to the memory
environment.  The driver uses this device specific fact to
locate the region.  The matching and probing code will likely
have to be adjusted for any other devices to be supported.

Example partial device tree:

 / {
    ..
    ubootenv {
        memory-region = <&uenv>;
        compatible = "ubootenv";
    };
    ..
    reserved-memory {
        ..
        uenv: ubootenv@7ffe8000 {
            no-map;
            reg = <0 0x7ffe8000 0 0x4000>;
        };

Signed-off-by: Bjørn Mork <bjorn@mork.no>
16 months agoipq807x: add support for Netgear RAX120v2
Thomas Kupper [Fri, 5 May 2023 15:04:33 +0000 (17:04 +0200)]
ipq807x: add support for Netgear RAX120v2

Netgear Nighthawk RAX120v2 AX WIFI router with 5 1G and 1 5G ports.

The majority of the code is based on @jewwest's PR #11830.

Specifications:
    * CPU: Qualcomm IPQ8074 Quad core Cortex-A53 2.2GHz
    * RAM: 1024MB of DDR3 (Nanya NT5CC256M16EP-EK × 2)
    * Flash: SPI-NAND 512 MiB (Winbond W29N04GZBIBA)
    * Ethernet: 4x 10/100/1000 Mbps LAN,
                1x 10/100/1000 Mbps WAN (Qualcomm QCA8075),
                1x 10/100/1000/2500/5000 Mbps LAN/WAN (Aquantia AQR111B0 PHY)
    * Wi-Fi:
        * 2.4 GHz: Qualcomm QCN5024 4x4
        * 2x 5 GHz: Qualcomm QCN5054 4x4
    * USB: 2x USB 3.0
    * LEDs: Power, 2.4GHz & 5GHz Radio, WPS, WAN, USB1 & USB2, 5G LAN
    * Keys: LEDs On/Off, Power, Reset, RFKILL, WPS
    * UART: Marked J9003 VCC TX RX GND, beginning from "1". 3.3v, 115200n8
    * Power: 19 VDC, 3.1 A

Installation:
    * Flashing OpenWrt is done in two steps:
        a) Flash *-squashfs-web-ui-factory.img from stock UI (thanks to @wangyu-).
           This writes an initramfs based OpenWrt image onto the RAX120v2
        b) From OpenWrt flash the *-squashfs-sysupgrade.bin using LuCI or the commandline

    * U-Boot allows booting an initramfs image via TFTP:
    - Set ip of your PC to 192.168.1.100
        - At the serial console interrupt boot at "Hit any key to stop autoboot:"
        - In u-boot run `tftpsrv`
        - On your PC send the OpenWrt initramfs image:

          tftp 192.168.1.1 -m binary -c put openwrt-ipq807x-generic-netgear_rax120v2-initramfs-uImage.itb

Make 5G Aquantia phy work:
    For the 5G port labeled 'lan5' to work a firmware is needed. This can be loaded in
    u-boot by writing the firmware to the correct mtd partition.

    The firmware file found in the Netgear stock firmware under /lib/firmware/ named
    'AQR-G3_v4.3.C-AQR_DNI_DR-EQ35AX8-R-prov1_ID23888_VER1311.cld' is needed and has to
    be converted to a MBN file.

    The `mkheader.py` script used here can be found in the Netgear V1.2.8.40 GPL source,
    under 'git_home/u-boot.git/tools/mkheader.py'

    Convert the CLD file to MBN using:
    $ python2 mkheader.py 0x44000000 0x13 <*.cld file> aqr_4.3.C.mbn

    This MBN file can then be flashed to the MTD partition to be used by u-boot.

    The necessary files can also be found in
        https://github.com/boretom/openwrt-fork/tree/rax120v2/aquantia-firmware

    * Write MBN file to MTD partition to be loaded automatically by u-boot:

      U-boot automatically tries to load the firmware from nand at address 0x7e00000 which
      corresponds to `/dev/mtd25` in OpenWrt.

        - find ETHPHYFW partition while running OpenWrt (expected: /dev/mtd25)

          $ fgrep -i 'ethphyfw' /proc/mtd
          mtd25: 00080000 00020000 "ethphyfw

        - copy mbn file to /tmp/ folder of the router

          $ scp aqr-v4.3.C.mbn 192.168.1.1:/tmp/

        - write mbn file to ethphyfw partition

          $ mtd write /tmp/aqr_v4.3.C.mbn /dev/mtd25

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

References to RAX120v2 GPL source:
    https://www.downloads.netgear.com/files/GPL/RAX120-V1.2.8.40_gpl_src.zip

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Thomas Kupper <thomas.kupper@gmail.com>
16 months agoipq40xx: qca8k: add ageing setting support
Robert Marko [Sun, 13 Aug 2023 13:58:47 +0000 (15:58 +0200)]
ipq40xx: qca8k: add ageing setting support

qca8k driver we are currently based of is rather out of date and is lacking
support for setting the ageing time or fast ageing so until we update the
driver lets just backport support for those from qca8k.

Signed-off-by: Robert Marko <robimarko@gmail.com>
16 months agortl8812au-ct: bump to fix kernel 6.1 compile
John Thomson [Tue, 15 Aug 2023 22:11:45 +0000 (08:11 +1000)]
rtl8812au-ct: bump to fix kernel 6.1 compile

 9b2b203 fix usb_recv_tasklet -Wcast-function-type
 a027da5 fix kernel 6.1 80211 link_id
 7a9c802 fix build for kernel 6.1 prandom
 3a3eb24 fix build for kernel 5.17 PDE_DATA
 fe2afbd fix build for kernel 5.17 const netdev->dev_addr
 7275bae fix build for 5.17 kernel complete_and_exit
 c9c2aa7 Update usb_intf.c

revert the upstream 6.1 link_id (depend on kernel version) changes and
force 6.1 link_id

The downstream patch casting const off the direct dev_addr writes
triggers the runtime check from
Linux d07b26f5bbea ("dev_addr: add a modification check")

Fixes: #13261
Fixes: a07566ead82a ("rtl8812au-ct: fix even more compilation error with kernel 6.1")
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
16 months agoipq4019: add support for ZTE MF287 Pro aka DreiNeo Pro
Andreas Böhler [Mon, 10 Jul 2023 09:55:30 +0000 (11:55 +0200)]
ipq4019: add support for ZTE MF287 Pro aka DreiNeo Pro

The ZTE MF287 Pro is a LTE router used (exclusively?) by the network
operator "3". It is very similar to the MF287+, but the hardware layout
and partition layout have changed quite a bit.

Specifications
==============

SoC: IPQ4018
RAM: 256MiB
Flash: 8MiB SPI-NOR + 128MiB SPI-NAND
LAN: 4x GBit LAN
LTE: ZTE Cat12
WiFi: 802.11a/b/g/n/ac SoC-integrated
USB: 1x 2.0

MAC addresses
=============

LAN: from config + 2
WiFi 1: from config
WiFi 2: from config + 1

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

Option 1 - TFTP
---------------

TFTP installation using UART is preferred. Disassemble the device and
connect serial. Put the initramfs image as openwrt.bin to your TFTP server
and configure a static IP of 192.168.1.100. Load the initramfs image by
typing:

  setenv serverip 192.168.1.100
  setenv ipaddr 192.168.1.1
  tftpboot 0x82000000 openwrt.bin
  bootm 0x82000000

From this intiramfs boot you can take a backup of the currently installed
partitions as no vendor firmware is available for download:

  ubiattach -m17
  cat /dev/ubi0_0 > /tmp/ubi0_0
  cat /dev/ubi0_1 > /tmp/ubi0_1

Copy the files /tmp/ubi0_0 and /tmp/ubi0_1 somewhere save.

Once booted, transfer the sysupgrade image and run sysupgrade. You might
have to delete the stock volumes first:

  ubirmvol /dev/ubi0 -N ubi_rootfs
  ubirmvol /dev/ubi0 -N kernel

Option 2 - From stock firmware
------------------------------

The installation from stock requires an exploit first. The exploit consists
of a backup file that forces the firmware to download telnetd via TFTP from
192.168.0.22 and run it. Once exploited, you can connect via telnet and
login as admin:admin.

The exploit will be available at the device wiki page.

Once inside the stock firmware, you can transfer the -factory.bin file to
/tmp by using "scp" from the stock frmware or "tftp".

ZTE has blocked writing to the NAND. Fortunately, it's easy to allow write
access - you need to read from one file in /proc. Once done, you need to
erase the UBI partition and flash OpenWrt. Before performing the operation,
make sure that mtd13 is the partition labelled "rootfs" by calling
"cat /proc/mtd".

Complete commands:

  cd /tmp
  tftp -g -r factory.bin 192.168.0.22
  cat /proc/driver/sensor_id
  flash_erase /dev/mtd17 0 0
  dd if=/tmp/factory.bin of=/dev/mtdblock17 bs=131072

Afterwards, reboot your device and you should have a working OpenWrt
installation.

Restore Stock
=============

Option 1 - via UART
-------------------

Boot an OpenWrt initramfs image via TFTP as for the initial installation.
Transfer the two backed-up files to your box to /tmp.

Then, run the following commands - replace $kernel_length and $rootfs_size
by the size of ubi0_0 and ubi0_1 in bytes.

  ubiattach -m 17
  ubirmvol /dev/ubi0 -N kernel
  ubirmvol /dev/ubi0 -N rootfs
  ubirmvol /dev/ubi0 -N rootfs_data
  ubimkvol /dev/ubi0 -N kernel -s $kernel_length
  ubimkvol /dev/ubi0 -N ubi_rootfs -s $rootfs_size
  ubiupdatevol /dev/ubi0_0 /tmp/ubi0_0
  ubiupdatevol /dev/ubi0_1 /tmp/ubi0_1

Option 2 - from within OpenWrt
------------------------------

This option requires to flash an initramfs version first so that access
to the flash is possible. This can be achieved by sysupgrading to the
recovery.bin version and rebooting. Once rebooted, you are again in a
default OpenWrt installation, but no partition is mounted.

Follow the commands from Option 1 to flash back to stock.

LTE Modem
=========

The LTE modem is similar to other ZTE devices and controls some more LEDs
and battery management.

Configuring the connection using uqmi works properly, the modem
provides three serial ports and a QMI CDC ethernet interface.

Other Notes
===========

Contrary to the stock firmware, the USB port on the back can be used.

There is one GPIO Switch "Power button blocker" which, if enabled, does not
trigger a reset of the SoC if the modem reboots. If disabled, the SoC is
rebooted along with the modem. The modem can be rebooted via the exported
GPIO "modem-reset" in /sys/class/gpio.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
16 months agogeneric: 6.1: backport patch adding support for LED PHY
Christian Marangi [Wed, 16 Aug 2023 16:51:28 +0000 (18:51 +0200)]
generic: 6.1: backport patch adding support for LED PHY

Backport patch adding support for LED PHY directly in PHY ops struct.
Add new PHYLIB_LEDS config and refresh patches.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
16 months agopackages: nvram: add asus,rt-ac3100 to set_wireless_led_behaviour quirk
Arınç ÜNAL [Thu, 10 Aug 2023 12:23:10 +0000 (15:23 +0300)]
packages: nvram: add asus,rt-ac3100 to set_wireless_led_behaviour quirk

Add ASUS RT-AC3100 to the set wireless LED behaviour quirk.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
16 months agobcm53xx: add support for ASUS RT-AC3100
Arınç ÜNAL [Thu, 10 Aug 2023 12:23:09 +0000 (15:23 +0300)]
bcm53xx: add support for ASUS RT-AC3100

ASUS RT-AC3100 is ASUS RT-AC88U without the external switch.

OpenWrt forum users effortless and ktmakwana have confirmed that there are
revisions with either 4366b1 or 4366c0 wireless chips.

Therefore, include firmware for 4366b1 along with 4366c0. This way, all
hardware revisions of the router will be supported by having brcmfmac use
the firmware file for the wireless chip it detects.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
16 months agobcm53xx: backport DT changes for ASUS RT-AC3100 queued for v6.6
Arınç ÜNAL [Thu, 10 Aug 2023 12:23:08 +0000 (15:23 +0300)]
bcm53xx: backport DT changes for ASUS RT-AC3100 queued for v6.6

Backport the patch that adds the DT for ASUS RT-AC3100.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
16 months agohostapd: revert upstream commit to fix #13156
Stijn Tintel [Fri, 4 Aug 2023 07:03:10 +0000 (10:03 +0300)]
hostapd: revert upstream commit to fix #13156

Commit e978072baaca ("Do prune_association only after the STA is
authorized") causes issues when an STA roams from one interface to
another interface on the same PHY. The mt7915 driver is not able to
handle this properly. While the commits fixes a DoS, there are other
devices and drivers with the same limitation, so revert to the orginal
behavior for now, until we have a better solution in place.

Fixes: #13156
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
16 months agokernel: bump 5.15 to 5.15.127
John Audia [Wed, 16 Aug 2023 19:15:17 +0000 (15:15 -0400)]
kernel: bump 5.15 to 5.15.127

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

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>
16 months agokernel: bump 6.1 to 6.1.46
John Audia [Wed, 16 Aug 2023 18:17:57 +0000 (14:17 -0400)]
kernel: bump 6.1 to 6.1.46

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

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>
16 months agoRevert "kernel: switch back 5.15 to fw_devlink=permissive"
Rafał Miłecki [Fri, 18 Aug 2023 08:40:17 +0000 (10:40 +0200)]
Revert "kernel: switch back 5.15 to fw_devlink=permissive"

This reverts commit 79af0593a30bfe382b350e9540ecfafa133b6ac0.

A hack adjusting fw_devlink value was added to workaround issue with
probing device drivers caused by of_platform_populate(). With upstream
mtd commit (the one adding OF_POPULATED) backported there is no need for
that hack anymore.

Ref: 3eebb91317c6 ("kernel: backport proper fix for mtd preventing devices probing")
Ref: #10232
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
16 months agohostapd: fix bringing up mesh without supplicant when mcast rate is specified
Felix Fietkau [Thu, 17 Aug 2023 15:44:58 +0000 (17:44 +0200)]
hostapd: fix bringing up mesh without supplicant when mcast rate is specified

The iw command expects a specific command line argument

Signed-off-by: Felix Fietkau <nbd@nbd.name>
16 months agonetifd: update to the latest version
Felix Fietkau [Thu, 17 Aug 2023 15:14:37 +0000 (17:14 +0200)]
netifd: update to the latest version

4711f74479e2 netifd: fix disabling radio via config if reconf is being used

Signed-off-by: Felix Fietkau <nbd@nbd.name>
16 months agoipq40xx: remove DK01 and DK04 boards
Robert Marko [Fri, 11 Aug 2023 21:54:36 +0000 (23:54 +0200)]
ipq40xx: remove DK01 and DK04 boards

DK01 and DK04 board support has been in a form of 2 patches that we have
been carrying for a long time.
Both of the patches contain weird changes, dont follow any DT syntax and I
honestly doubt they are even valid.
DK01 and DK04 also have not been converted to DSA even after a long time
and I doubt that anybody in the community even has these boards as they are
QCA reference boards that are not even obtainable anymore.

Since patches for these 2 boards have been just causing us pain when trying
to update the kernel to a new major release or even point releases lets
remove the support for these boards, and if there are users they can easily
be reinstated.

Signed-off-by: Robert Marko <robimarko@gmail.com>
16 months agoipq40xx: Use SoC DTSI for Teltonika RUTX
Robert Marko [Fri, 11 Aug 2023 21:51:40 +0000 (23:51 +0200)]
ipq40xx: Use SoC DTSI for Teltonika RUTX

Teltonika RUTX currently is the only device pulling in DK01 DTSI and thus
preventing removal of DK01 and DK04 support.

So, lets add the missing nodes from DK01 DTSI and use the SoC DTSI instead.

Signed-off-by: Robert Marko <robimarko@gmail.com>
16 months agoipq40xx: add header to SCM cold boot address patch
Robert Marko [Sun, 13 Aug 2023 16:23:33 +0000 (18:23 +0200)]
ipq40xx: add header to SCM cold boot address patch

Lets add a proper commit title and description to the SCM cold boot
patch so it applies with a git apply or git-am.

Signed-off-by: Robert Marko <robimarko@gmail.com>
16 months agoipq40xx: update SCM SDI patches with pending upstream
Robert Marko [Sun, 13 Aug 2023 16:20:08 +0000 (18:20 +0200)]
ipq40xx: update SCM SDI patches with pending upstream

SCM SDI disable support is pending upstream, so lets use that instead.

Since the board check needs to be split out, export it with a header so
it applies with git-am.

Signed-off-by: Robert Marko <robimarko@gmail.com>
16 months agokernel: netsupport: kmod-sched: Add act_skbmod
Hauke Mehrtens [Sun, 13 Aug 2023 20:34:15 +0000 (22:34 +0200)]
kernel: netsupport: kmod-sched: Add act_skbmod

This adds act_skbmod.ko to kmod-sched.

Fixes: #13224
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
16 months agouboot-envtools: update to 2023.07.02
Stefan Kalscheuer [Sat, 12 Aug 2023 09:27:37 +0000 (11:27 +0200)]
uboot-envtools: update to 2023.07.02

Update to the latest stable version.

This update changes the default lockfile directory from /var/lock to
/run [1]. In OpenWRT we still use the "legacy" /var/lock and /run might
not even exist, so we add a patch to revert this particular change.

[1] https://source.denx.de/u-boot/u-boot/-/commit/aeb40f1166e072856f865d26d42a4bea1ec3a514

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
16 months agolinux/named-gpio-export: add support for OPEN_DRAIN and OPEN_SOURCE flag
Martin Schiller [Fri, 4 Aug 2023 10:59:03 +0000 (12:59 +0200)]
linux/named-gpio-export: add support for OPEN_DRAIN and OPEN_SOURCE flag

This change makes it possible to use the GPIO_OPEN_DRAIN /
GPIO_OPEN_SOURCE Flags when exporting GPIOs via dts.

We need to emulate the open-source or open-drain functionalities for the
initial value, because the used functions (gpiod_direction_output_raw)
do not take this into account.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
16 months agoarmsr: armv8: fix invalid symbol value for FSL_ENETC_QOS
Mathew McBride [Mon, 14 Aug 2023 06:13:28 +0000 (06:13 +0000)]
armsr: armv8: fix invalid symbol value for FSL_ENETC_QOS

The kernel FSL_ENETC_QOS option is only a compile time
option, it does not result in a separate module being built.

Set it to 'y' to resolve a warning from the kernel compile:

.config:2654:warning: symbol value 'm' invalid for FSL_ENETC_QOS

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c3151b6f045 ("armvirt: 64: add support for other SystemReady-compatible vendors")
16 months agoarmsr: armv8: enable AHCI/SATA controllers for mvebu,qoriq,juno
Mathew McBride [Thu, 10 Aug 2023 04:01:20 +0000 (04:01 +0000)]
armsr: armv8: enable AHCI/SATA controllers for mvebu,qoriq,juno

When comparing the generated OpenWrt .config to the Linux arm64
defconfig, I noticed these SATA controllers were not included.
As they may be used as a boot drive, they should be built into
the kernel.

CONFIG_SATA_MVEBU is for Marvell platforms.
CONFIG_SATA_QORIQ is for NXP Layerscape.
CONFIG_SATA_SIL24 is for Arm's Juno development board, see Linux
kernel commit d7c38ff1cd86 ("arm64: defconfig: Add Juno SATA
controller").

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: package and select MDIO driver for Thunder SoC's
Mathew McBride [Wed, 9 Aug 2023 07:20:07 +0000 (07:20 +0000)]
armsr: armv8: package and select MDIO driver for Thunder SoC's

This MDIO driver was already being built, but not installed due
to being selected by the ThunderX Ethernet driver.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: add Marvell (Cavium) ThunderX2 network driver
Mathew McBride [Wed, 9 Aug 2023 06:36:39 +0000 (06:36 +0000)]
armsr: add Marvell (Cavium) ThunderX2 network driver

The initial armv8 module incorrectly labelled the Thunder(v1) as
supporting the ThunderX2, when they have different drivers.

Add kmod-octeon-tx2 to support the newer devices.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: synchronize PCIE related options with arm64 defconfig
Mathew McBride [Thu, 10 Aug 2023 02:05:43 +0000 (02:05 +0000)]
armsr: armv8: synchronize PCIE related options with arm64 defconfig

This turns on various PCI related options which are enabled
in the Linux kernel arch/arm64/configs/defconfig but not
yet in the OpenWrt config.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: add bcmgenet (Raspberry Pi 4 GENET) to profile
Mathew McBride [Mon, 7 Aug 2023 05:06:43 +0000 (05:06 +0000)]
armsr: armv8: add bcmgenet (Raspberry Pi 4 GENET) to profile

kmod-bcmgenet is needed for Ethernet support on the
Raspberry Pi 4.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: add Broadcom GENET and MDIO modules
Mathew McBride [Fri, 23 Jun 2023 05:46:41 +0000 (05:46 +0000)]
armsr: armv8: add Broadcom GENET and MDIO modules

These are used by common Broadcom SoC's like
the BCM2711 (RPi4) and iProc network processor.

Tested on the RPi4B using the Raspberry Pi
UEFI+ACPI firmware[1].

Signed-off-by: Mathew McBride <matt@traverse.com.au>
[1] - https://github.com/pftf/RPi4

16 months agoarmsr: armv8: enable Broadcom arch'es
Mathew McBride [Tue, 20 Jun 2023 03:30:51 +0000 (03:30 +0000)]
armsr: armv8: enable Broadcom arch'es

This is part of an effort to reduce differences between
the OpenWrt armsr/armv8 config and Linux arm64 defconfig.

This enables CONFIG_ARCH_BCM and downstream
CONFIG_ARCH_BCM2835 (= BCM2711 like Raspberry Pi 4)
and CONFIG_ARCH_BCM_IPROC (Broadcom iProc packet processors).

The broadband specific SoC's (ARCH_BCMBCA) are left out
as it is assumed these will not be doing EFI boot.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: enable CONFIG_ARCH_RENESAS
Mathew McBride [Tue, 20 Jun 2023 01:53:23 +0000 (01:53 +0000)]
armsr: armv8: enable CONFIG_ARCH_RENESAS

Renesas markets several embedded Arm64 SoCs in the
RZ series (RZ/G, RZ/V), so should be enabled in
a general purpose target.

Automotive (R-Car) SoC's are not enabled by this change.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: fix NXP/Freescale i.MX family configuration
Mathew McBride [Wed, 7 Jun 2023 04:39:25 +0000 (04:39 +0000)]
armsr: armv8: fix NXP/Freescale i.MX family configuration

Due to an error on my part, Anton Antonov's
i.MX changes[1] did not fully make it into my
armvirt kernel 6.1 EFI pull request. I have updated
them using the options he supplied[1] as well
as comparing to the Linux arm64 defconfig.

The notable exception is:
CONFIG_USB_DWC3_OF_SIMPLE currently disabled
due to an issue with i.MX8P and i.MX8Q.

Fixes: 3efb3b8 ("armvirt: 64: Add NXP i.MX 8M Mini/Nano/Quad/Plus EVK support")
Signed-off-by: Mathew McBride <matt@traverse.com.au>
[1] - https://github.com/anta5010/openwrt/commit/ccf826c3444fd5fa8fac08aac05f66568ae0c242

16 months agoarmsr: enable ACPI_BUTTON
Mathew McBride [Mon, 14 Aug 2023 06:31:14 +0000 (06:31 +0000)]
armsr: enable ACPI_BUTTON

A review of the generated OpenWrt kernel .config
vs the Linux arm64 defconfig showed that this
option was not being enabled, as it is disabled
in OpenWrt's generic config.

ACPI_BUTTON is needed to report and respond to
power button events, so it should be enabled.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: sync CPU features, EFI, CMA and scheduler options with Linux defconfig
Mathew McBride [Tue, 20 Jun 2023 01:31:12 +0000 (01:31 +0000)]
armsr: armv8: sync CPU features, EFI, CMA and scheduler options with Linux defconfig

To bring the armsr/armv8 kernel configuration closer to the Linux
arm64 defconfig, synchronize options related to CPU features
(especially more recent Armv8.X variants), scheduler, EFI vars,
CMA and scheduler options.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agokernel: default ARM_PMU on for armsr/armv8
Mathew McBride [Tue, 15 Aug 2023 03:47:23 +0000 (03:47 +0000)]
kernel: default ARM_PMU on for armsr/armv8

CONFIG_ARM_PMU (Arm Performance Monitor Unit) is a requirement
to use KVM (virtualization) from Linux 5.11+, as the virtualised
guest has virtualized PMU access.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: enable KVM host
Mathew McBride [Tue, 20 Jun 2023 01:23:17 +0000 (01:23 +0000)]
armsr: armv8: enable KVM host

x86/64 enables support for KVM so I can't see a reason why
not on armsr/armv8 as well.

Arm CPU errata workaround items related to virtualization
are also enabled by this change.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoarmsr: armv8: sync Arm64 erratum options with kernel defconfig
Mathew McBride [Wed, 7 Jun 2023 01:04:03 +0000 (01:04 +0000)]
armsr: armv8: sync Arm64 erratum options with kernel defconfig

To reduce differences with the Linux arm64 defconfig,
sync the enabled erratum items with defconfig.

There are still some options not selected due to
CONFIG_KVM or other options not enabled in OpenWrt
by default.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
16 months agoscripts: qemustart: Fix x86/legacy bootup
Hauke Mehrtens [Mon, 14 Aug 2023 21:33:49 +0000 (23:33 +0200)]
scripts: qemustart: Fix x86/legacy bootup

The ide-drive option was renamed to ide-hd in qemu 6.0.
With this change qemu is starting again on Debian 12.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
16 months agotools/pkgconf: update to 2.0.1
Rosen Penev [Sat, 12 Aug 2023 02:13:41 +0000 (19:13 -0700)]
tools/pkgconf: update to 2.0.1

Changes from 2.0.0 to 2.0.1:
----------------------------

* The behavior of --modversion was largely reverted back to the traditional
  pkg-config behavior, but still operates on a solved dependency graph.

  The order of --modversion output is based on the dependency resolution
  queue which is passed to the solver, which itself generally maps to the
  order of the constrants provided on the command line.

* A new flag, --verbose, has been added.  When used with `--modversion`, it
  is possible to disambiguate which version belongs to which module:

    % pkgconf --modversion --verbose foo bar
    foo: 1.2.3
    bar: 1.3

Changes from 1.9.5 to 2.0.0:
----------------------------

* When flattening the dependency graph, retain the latest seen edges
  rather than the earliest.

* Fix a long-standing bug where the dependency resolution queue was
  evaluated in reverse.  This bug masked the aforementioned dependency
  flattening bug in many cases.

* Fix handling of --with-path, which was appending paths to the search
  list rather than prepending them as intended.

* Error when --modversion is requested with more than one package, as
  the output is ambiguous.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
16 months agoprereq-build: increase GCC requirement to 8
Rosen Penev [Thu, 16 Mar 2023 03:02:45 +0000 (20:02 -0700)]
prereq-build: increase GCC requirement to 8

The current minimum OS requirement for OpenWrt is Ubuntu 18.04, which
includes 7 and 8. 8 is necessary for ccache.

gcc and g+++ are now symlinked to staging_dir, similar to Python.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
16 months agotools/meson: update to 1.2.1
Rosen Penev [Sat, 12 Aug 2023 02:17:26 +0000 (19:17 -0700)]
tools/meson: update to 1.2.1

Remove PKG_RELEASE as it's not really used with tools.

Changelog: https://mesonbuild.com/Release-notes-for-1-2-0.html

Signed-off-by: Rosen Penev <rosenp@gmail.com>
16 months agotools: mold: update to 2.1.0
Andre Heider [Sun, 30 Jul 2023 11:24:25 +0000 (13:24 +0200)]
tools: mold: update to 2.1.0

v2.0.0:
- transition from AGPL to MIT
- Previously, mold could not produce an object file with more than 65520
  sections using the --relocatable option. Now the bug has been fixed.
- mold now interprets -undefined as a synonym for --undefined instead of
  -u ndefined. This seems inconsistent, as -ufoo is generally treated as
  -u foo (which is an alias for --undefined foo), but this is the behavior
  of the GNU linkers and LLVM lld, so we prioritize compatibility over
  consistency.
- -nopie is now handled as a synonym for --no-pie.
- [RISC-V] R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 relocation types are
  now supported (4bffe261ac5fe7)
- [PPC64] R_PPC64_REL32 relocation type is now supported. (ebd780e)

v2.1.0:

- Loongson's LoongArch CPU has been supported. (03b1a1c)
- -z nosectionheader has been added to eliminate section headers from the
  output file. (084ca55)
- Previously, linking with the -z pack-relative-relocs option produces an
  executable that glibc 2.38 refuses to run with DT_RELR without
  GLIBC_ABI_DT_RELR dependency error. Now, mold produces binaries compatible
  with glibc 2.38. (f467ad1)
- [ARM64] R_AARCH64_ADR_PREL_PG_HI21_NC relocation type has been supported.
  (17a5c3e)
- [ARM64] R_AARCH64_MOVW_UABS_G3 relocation type has now been handled as a
  PLT-generating relocation to fix an issue when main is not defined in the
  main executable but rather in a .so file. (e764557)
- [RISC-V] We now merge input .riscv.attributes contents. Previously, we
  just concatenated them. (aa64491)

Signed-off-by: Andre Heider <a.heider@gmail.com>
16 months agox86: Add virtualization time sync support
Hauke Mehrtens [Sun, 13 Aug 2023 21:02:03 +0000 (23:02 +0200)]
x86: Add virtualization time sync support

This compiles the CONFIG_PTP_1588_CLOCK support into the kernel binary
and activates the drivers for KVM and VMware which allow syncing the
host time with the VM when OpenWrt is running in a VM. With this change
the CONFIG_HYPERV_UTILS driver is now build into the kernel, because it
depends on the PTP framework being compiled in. CONFIG_HYPERV_UTILS was
build as a module, but not packages before.

Fixes: #13277
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
16 months agox86: Activate CONFIG_PCIEASPM
Hauke Mehrtens [Sun, 13 Aug 2023 20:50:19 +0000 (22:50 +0200)]
x86: Activate CONFIG_PCIEASPM

This activates PCI Express ASPM control in Linux. Without this option it
is completely controlled by the BIOS, now Linux will take over and apply
some workarounds if needed.

Fixes: #13248
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>