openwrt/openwrt.git
2 years agorealtek: add ZyXEL GS1900-24HPv2 support
Soma Zambelly [Tue, 24 Aug 2021 21:46:08 +0000 (23:46 +0200)]
realtek: add ZyXEL GS1900-24HPv2 support

The ZyXEL GS1900-24HPv2 is a 24 port PoE switch with two SFP ports, similar to the other GS1900 switches.

Specifications
--------------
* Device:    ZyXEL GS1900-24HPv2
* SoC:       Realtek RTL8382M 500 MHz MIPS 4KEc
* Flash:     16 MiB
* RAM:       W631GG8MB-12 128 MiB DDR3 SDRAM
             (stock firmware is configured to use only 64 MiB)
* Ethernet:  24x 10/100/1000 Mbps, 2x SFP 100/1000 Mbps
* LEDs:      1 PWR LED (green, not configurable)
             1 SYS LED (green, configurable)
             24 ethernet port link/activity LEDs (green, SoC controlled)
             24 ethernet port PoE status LEDs
             2 SFP status/activity LEDs (green, SoC controlled)
* Buttons:   1 "RESTORE" button on front panel
             1 "RESET" button on front panel
* Power      120-240V AC C13
* UART:      1 serial header (J41) with populated standard pin connector on
             the left edge of the PCB, angled towards the side.
             The casing has a rectangular cutout on the side that provides
             external access to these pins.
             Pinout (front to back):
             + GND
             + TX
             + RX
             + VCC

Serial connection parameters for both devices: 115200 8N1.

Installation
------------

OEM upgrade method:

(Possible on master once https://patchwork.ozlabs.org/project/openwrt/patch/20210624210408.19248-1-bjorn@mork.no/ is merged)

* Log in to OEM management web interface
* Navigate to Maintenance > Firmware > Management
* If "Active Image" has the first option selected, OpenWrt will need to be
  flashed to the "Active" partition. If the second option is selected,
  OpenWrt will need to be flashed to the "Backup" partition.
* Navigate to Maintenance > Firmware > Upload
* Upload the openwrt-realtek-generic-zyxel_gs1900-24hp-v2-initramfs-kernel.bin
  file by your preferred method to the previously determined partition.
  When prompted, select to boot from the newly flashed image, and reboot the switch.
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
   > sysupgrade -n /tmp/openwrt-realtek-generic-zyxel_gs1900-24hp-v2-squashfs-sysupgrade.bin
   it may be necessary to restart the network (/etc/init.d/network restart) on
   the running initramfs image.

U-Boot TFTP method:

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10).
* Set up a TFTP server on your client and make it serve the initramfs image.
* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:
   > rtk network on
* Since the GS1900-24HPv2 is a dual-partition device, you want to keep the OEM
  firmware on the backup partition for the time being. OpenWrt can only boot
  from the first partition anyway (hardcoded in the DTS). To make sure we are
  manipulating the first partition, issue the following commands:
  > setsys bootpartition 0
  > savesys
* Download the image onto the device and boot from it:
   > tftpboot 0x84f00000 192.168.1.10:openwrt-realtek-generic-zyxel_gs1900-24hp-v2-initramfs-kernel.bin
   > bootm
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
   > sysupgrade -n /tmp/openwrt-realtek-generic-zyxel_gs1900-24hp-v2-squashfs-sysupgrade.bin
   it may be necessary to restart the network (/etc/init.d/network restart) on
   the running initramfs image.

Signed-off-by: Soma Zambelly <zambelly.soma@gmail.com>
2 years agosunxi: enable MUSB in A7 subtarget
Zhao Yu [Sat, 28 Aug 2021 02:26:11 +0000 (10:26 +0800)]
sunxi: enable MUSB in A7 subtarget

like commit 78c1ed6. Without this,Some USB port on H3 baseboard
can' work. So, need enable MUSB support on this target.

Signed-off-by: Zhao Yu <574249312@qq.com>
2 years agokernel: add package kmod-iio-ads1015 and remove kmod-hwmon-ads1015
Christian Pointner [Sun, 5 Sep 2021 02:37:14 +0000 (04:37 +0200)]
kernel: add package kmod-iio-ads1015 and remove kmod-hwmon-ads1015

The hwmon driver for the ADC ADS1015 has been removed in Linux 5.4 in
favor of a driver in the iio system. For details see:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c9d5b5e

This fixes: https://bugs.openwrt.org/index.php?do=details&task_id=4005

Run-tested: ramips/mt76x8 (Onion Omega 2+)

Signed-off-by: Christian Pointner <equinox@spreadspace.org>
2 years agokernel: backport switchdev fix for bridge in bridge configurations
Fabian Bläse [Sun, 29 Aug 2021 19:21:35 +0000 (21:21 +0200)]
kernel: backport switchdev fix for bridge in bridge configurations

This patch fixes the forwarding behavior of bridge in bridge
configurations with DSA.

Without it, the configuration of the upper bridge might overwrite
settings of the lower bridge. For example, a vlan-aware bridge
with DSA interfaces in it might be offloaded to the DSA hardware. If the
bridge interface itself gets slave of a different bridge without vlan
filtering, the vlan filtering setting of the lower bridge is overwritten
by the upper bridge, which results in an incorrect hardware
configuration.

This was backported from kernel 5.7.

Ref: https://lore.kernel.org/netdev/20191222192235.GK25745@shell.armlinux.org.uk/
Fixes: FS#3996
Signed-off-by: Fabian Bläse <fabian@blaese.de>
2 years agokernel: bump 5.4 to 5.4.145
John Audia [Mon, 13 Sep 2021 12:26:19 +0000 (08:26 -0400)]
kernel: bump 5.4 to 5.4.145

Removed upstreamed:
  generic-backport/040-ARM-8918-2-only-build-return_address-if-needed.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agokernel: bump 5.4 to 5.4.144
John Audia [Sat, 4 Sep 2021 23:54:35 +0000 (19:54 -0400)]
kernel: bump 5.4 to 5.4.144

Manually rebased:
  backport-5.4/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agokernel: bump 5.10 to 5.10.64
John Audia [Sun, 12 Sep 2021 08:54:32 +0000 (04:54 -0400)]
kernel: bump 5.10 to 5.10.64

All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800
Run-tested: bcm2711/RPi4B, ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agokernel: fix jffs2 compilation with GCC_PLUGIN_RANDSTRUCT enabled
Matt Merhar [Mon, 6 Sep 2021 23:32:48 +0000 (19:32 -0400)]
kernel: fix jffs2 compilation with GCC_PLUGIN_RANDSTRUCT enabled

Designated initializers are required when using the randstruct GCC
plugin, otherwise an error like the following is seen:

./include/linux/lzma.h:60:31: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]

Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
2 years agokernel: Add missing kernel config options
Hauke Mehrtens [Sun, 12 Sep 2021 11:05:30 +0000 (13:05 +0200)]
kernel: Add missing kernel config options

These options are selectable when some of the kernel debug options like
KERNEL_SOFTLOCKUP_DETECTOR are selected.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agobuild: Replace KERNEL_LOCKUP_DETECTOR with KERNEL_SOFTLOCKUP_DETECTOR
Hauke Mehrtens [Sun, 12 Sep 2021 10:56:48 +0000 (12:56 +0200)]
build: Replace KERNEL_LOCKUP_DETECTOR with KERNEL_SOFTLOCKUP_DETECTOR

The LOCKUP_DETECTOR configuration option split into the
SOFTLOCKUP_DETECTOR and HARDLOCKUP_DETECTOR configuration option some
time ago. The HARDLOCKUP_DETECTOR option is only working on some
architectures, but SOFTLOCKUP_DETECTOR should work everywhere. Replace
KERNEL_LOCKUP_DETECTOR with KERNEL_SOFTLOCKUP_DETECTOR.

LOCKUP_DETECTOR will be selected by SOFTLOCKUP_DETECTOR automatically.

Fixes: b951f53fbae3 ("build: Add additional kernel debug options")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agoipq806x: switch to kernel 5.10
Ansuel Smith [Tue, 7 Sep 2021 19:47:14 +0000 (21:47 +0200)]
ipq806x: switch to kernel 5.10

Move kernel version to 5.10 as has been tested by many users
with positive feedback.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[Tested on: ipq8064/g10; ipq8065/nbg6817]
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
2 years agoipq-wifi: Drop empty wifi package for Netgear WAC510
Sven Eckelmann [Sat, 11 Sep 2021 07:16:11 +0000 (09:16 +0200)]
ipq-wifi: Drop empty wifi package for Netgear WAC510

The ipq-wifi-netgear_wac510 package is not selected by any device and would
be empty anyway. The default board-2.bin from ath10k-board-qca4019 is
therefore used for this device and the package doesn't provide any visible
features.

Fixes: b126d9c3a3d3 ("ipq40xx: add netgear wac510 support")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2 years agoipq40xx: Fix board-2.bin package name for Plasma Cloud PA2200
Sven Eckelmann [Sat, 11 Sep 2021 06:33:30 +0000 (08:33 +0200)]
ipq40xx: Fix board-2.bin package name for Plasma Cloud PA2200

The board data file for the Plasma Cloud PA2200 is not part of the default
board-2.bin which is shipped by ath10k-board-qca4019. A typo in the device
package name resulted in a not correctly selected package for the device
specific board-2.bin. The wifi driver has therefore loaded the wrong
calibration information into the wifi chip.

Fixes: 4871fd2616ac ("ipq40xx: add support for Plasma Cloud PA2200")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2 years agoipq40xx: Fix board-2.bin package name for Plasma Cloud PA1200
Sven Eckelmann [Sat, 11 Sep 2021 06:33:30 +0000 (08:33 +0200)]
ipq40xx: Fix board-2.bin package name for Plasma Cloud PA1200

The board data file for the Plasma Cloud PA1200 is not part of the default
board-2.bin which is shipped by ath10k-board-qca4019. A typo in the device
package name resulted in a not correctly selected package for the device
specific board-2.bin. The wifi driver has therefore loaded the wrong
calibration information into the wifi chip.

Fixes: ea5bb6bbfee0 ("ipq40xx: add support for Plasma Cloud PA1200")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2 years agoipq40xx: Select correct board-2.bin for EnGenius EMR3500
Sven Eckelmann [Sat, 11 Sep 2021 06:33:30 +0000 (08:33 +0200)]
ipq40xx: Select correct board-2.bin for EnGenius EMR3500

The board data file for the EnGenius EMR3500 is not part of the default
board-2.bin which is shipped by ath10k-board-qca4019. As result, the wrong
calibration information will be loaded into the wifi chip.

Fixes: 3f61e5e1b97e ("ipq40xx: add support for EnGenius EMR3500")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2 years agoipq40xx: Select correct board-2.bin for EnGenius EMD1
Sven Eckelmann [Sat, 11 Sep 2021 06:33:30 +0000 (08:33 +0200)]
ipq40xx: Select correct board-2.bin for EnGenius EMD1

The board data file for the EnGenius EMD1 is not part of the default
board-2.bin which is shipped by ath10k-board-qca4019. As result, the wrong
calibration information will be loaded into the wifi chip.

Fixes: 51f303597839 ("ipq40xx: add support for EnGenius EMD1")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2 years agoglibc: update to latest 2.33 HEAD (bug 28213)
Hans Dedecker [Sun, 12 Sep 2021 13:59:51 +0000 (15:59 +0200)]
glibc: update to latest 2.33 HEAD (bug 28213)

9b01145592 MIPS: Setup errno for {f,l,}xstat
9c676ef514 RISC-V: Update rv64 ULPs
c6cadbf83a linux: Remove shmmax check from tst-sysvshm-linux
22d37364ae librt: add test (bug 28213)
27a78fd712 librt: fix NULL pointer dereference (bug 28213)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 years agokernel: bump 5.10 to 5.10.63
Rui Salvaterra [Wed, 8 Sep 2021 08:52:40 +0000 (09:52 +0100)]
kernel: bump 5.10 to 5.10.63

No patches refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.10 to 5.10.62
Rui Salvaterra [Fri, 3 Sep 2021 09:54:20 +0000 (10:54 +0100)]
kernel: bump 5.10 to 5.10.62

Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agofirmware-utils: tplink-safeloader: use revision field
Sander Vanheule [Wed, 1 Sep 2021 19:15:57 +0000 (21:15 +0200)]
firmware-utils: tplink-safeloader: use revision field

The structured soft-version partition has a field which contains a
(source) revision number. Factory images used to include this, but
it was accidentaly removed during an earlier refactoring.

Include the source revision number again in the generated soft-version
partition. Additionaly, also show this revision number when printing
image info.

Fixes: 1a211af2cb3b ("firmware-utils: tplink-safeloader: refactor meta-partition generation")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agomvebu: add support for iEi Puzzle-M901/Puzzle-M902
Ian Chang [Thu, 2 Sep 2021 09:47:20 +0000 (17:47 +0800)]
mvebu: add support for iEi Puzzle-M901/Puzzle-M902

 Hardware specification
 ----------------------
 * CN9130 SoC, Quad-core ARMv8 Cortex-72 @ 2200 MHz
 * 4 GB DDR
 * 4 GB eMMC
 * mmcblk0
 - mmcblk0p1    64M  kernel_1
 - mmcblk0p2    64M  kernel_2
 - mmcblk0p3   512M  rootfs_1
 - mmcblk0p4   512M  rootfs_2
 - mmcblk0p5   512M  Reserved
 - mmcblk0p6    64M  Reserved
 - mmcblk0p7   1.8G  rootfs_data

 * 4 MB (SPI Flash)
 * 6 x 2.5 Gigabit  ports (Puzzle-M901)
 - External PHY with 6 ports (AQR112R)

 * 6 x 2.5 Gigabit ports (Puzzle-M902)
 - External PHY with 6 ports (AQR112R)
   3 x 10 Gigabit ports (Puzzle-M902)
 - External PHY with 3 ports (AQR113R)

 * 4 x Front panel LED
 * 1 x USB 3.0
 * Reset button on Rear panel
 * UART (115200 8N1,header on PCB)

 Flash instructions:
    The original firmware is based on OpenWrt.
    Flash firmware using LuCI and CLI

Signed-off-by: Ian Chang <ianchang@ieiworld.com>
2 years agomvebu: backport CN9130 dts necessary files changes to 5.4
Ian Chang [Thu, 2 Sep 2021 09:47:01 +0000 (17:47 +0800)]
mvebu: backport CN9130 dts necessary files changes to 5.4

 1. Add support for Marvell CN9130 SoC
 2. Add support for CP115,and create an armada-cp11x.dtsi file which will be used to instantiate both CP110 and CP115
 3. Add support for AP807/AP807-quad,AP807 is a major component of CN9130 SoC series
 4. Drop PCIe I/O ranges from CP11x file and externalize PCIe macros from CP11x file

Signed-off-by: Ian Chang <ianchang@ieiworld.com>
2 years agoiproute2: m_xt.so depends on dynsyms.list
Roman Yeryomin [Fri, 3 Sep 2021 14:31:11 +0000 (17:31 +0300)]
iproute2: m_xt.so depends on dynsyms.list

When doing parallel build on a fast machine with bottleneck in i/o,
m_xt.so may start linking faster than dynsyms.list gets populated,
resulting in error:

ld:dynsyms.list:0: syntax error in dynamic list

Fix this by adding dynsyms.list as make dependency to m_xt.so
Described also here:
https://bugs.openwrt.org/index.php?do=details&task_id=3353

Change from v1:
- add dynsysms.list dependancy only when shared libs are enabled

Signed-off-by: Roman Yeryomin <roman@advem.lv>
Fixes: FS#3353
2 years agokernel: Set CONFIG_RCU_CPU_STALL_TIMEOUT=21
Hauke Mehrtens [Sun, 29 Aug 2021 15:52:28 +0000 (17:52 +0200)]
kernel: Set CONFIG_RCU_CPU_STALL_TIMEOUT=21

The default value for CONFIG_RCU_CPU_STALL_TIMEOUT was changed from 60
seconds to 21 seconds in 2012 in the upstream kernel. Some targets
already use 21 seconds.

This patch changes the default value in the generic configuration to 21
seconds and removes the target specific configuration options.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agox86: switch to kernel 5.10
Paul Spooren [Tue, 7 Sep 2021 21:39:08 +0000 (11:39 -1000)]
x86: switch to kernel 5.10

Seems to be working fine in QEMU and the wild.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agomvebu: switch to kernel 5.10
Rui Salvaterra [Tue, 7 Sep 2021 21:36:14 +0000 (22:36 +0100)]
mvebu: switch to kernel 5.10

It's been brewing on my cortexa9 subtarget (Turris Omnia) for months.
Perfectly stable.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
[modify subject to match previous updates]
Signed-off-by: Paul Spooren <mail@aparcar.org>
2 years agotools/libtool: update to 2.4.2
Ivan Pavlov [Sun, 5 Sep 2021 19:54:12 +0000 (22:54 +0300)]
tools/libtool: update to 2.4.2

Refresh patches.
Remove upstreamed: 001-fix-func_append.patch

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
2 years agobcm53xx: specify switch ports for more devices
Rafał Miłecki [Tue, 7 Sep 2021 11:22:41 +0000 (13:22 +0200)]
bcm53xx: specify switch ports for more devices

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agolinux: backport DSA b53 driver fixes for switch ports
Rafał Miłecki [Tue, 7 Sep 2021 07:56:49 +0000 (09:56 +0200)]
linux: backport DSA b53 driver fixes for switch ports

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agofirmware-utils: seama.h: replace LGPL-2.1-or-later boilerplate with SPDX
Rafał Miłecki [Fri, 6 Aug 2021 10:59:56 +0000 (12:59 +0200)]
firmware-utils: seama.h: replace LGPL-2.1-or-later boilerplate with SPDX

This was missed because scancode license scanner was confused by a
slightly different than expected license text (96,75% license score).

License text included "file" instead of "library" in the main part of
the licensing info. It also used "The GNU C Library" instead of the
standard "This library" in 2nd and 3rd paragraphs.

The first paragraph clearly mentions LGPL-2.1-or-later and the use of
"file" instead of "library" should not affect licensing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agomac80211: revert faulty change that was breaking broadcast tx
Felix Fietkau [Mon, 6 Sep 2021 10:00:56 +0000 (12:00 +0200)]
mac80211: revert faulty change that was breaking broadcast tx

Fixes: 0f6887972adc ("mac80211: add missing change for encap offload on devices with sw rate control")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agotools/findutils: fix build on macos
Kevin Darbyshire-Bryant [Sun, 5 Sep 2021 22:28:16 +0000 (23:28 +0100)]
tools/findutils: fix build on macos

Use same fix as homebrew:

https://github.com/Homebrew/homebrew-core/pull/69761

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2 years agoramips: add support for Sitecom WLR-4100 v1 002
Andrea Poletti [Fri, 23 Jul 2021 16:15:00 +0000 (18:15 +0200)]
ramips: add support for Sitecom WLR-4100 v1 002

Sitecom WLR-4100 v1 002 (marked as X4 N300) is a wireless router
Specification:
SoC: MT7620A
RAM: 64 MB DDR2
Flash: MX25L6405D SPI NOR 8 MB
WIFI: 2.4 GHz integrated
Ethernet: 5x 10/100/1000 Mbps QCA8337
USB: 1x 2.0
LEDS: 2x GPIO controlled, 5x switch
Buttons: 1x GPIO controlled
UART: row of 4 unpopulated holes near USB port, starting count from
      white triangle on PCB:

    VCC 3.3V
    GND
    TX
    RX

    baud: 115200, parity: none, flow control: none

Installation

    Connect to one of LAN (yellow) ethernet ports,
    Open router configuration interface,
    Go to Toolbox > Firmware,
    Browse for OpenWrt factory image with dlf extension and hit Apply,
    Wait few minutes, after the Power LED will stop blinking, the router is
    ready for configuration.

Known issues
Some USB 2.0 devices work at full speed mode 1.1 only

MAC addresses

factory partition only contains one (binary) MAC address in 0x4.
u-boot-env contains four (ascii) MAC addresses, of which two appear
to be valid.

  factory     0x4       **:**:**:**:b9:84  binary
  u-boot-env  ethaddr   **:**:**:**:b9:84  ascii
  u-boot-env  wanaddr   **:**:**:**:b9:85  ascii
  u-boot-env  wlanaddr  00:AA:BB:CC:DD:12  ascii
  u-boot-env  iNICaddr  00:AA:BB:CC:DD:22  ascii

The factory firmware only assigns ethaddr. Thus, we take the
binary value which we can use directly in DTS.

Additional information
OEM firmware shell password is: SitecomSenao
useful for creating backup of original firmware.
There is also another revision of this device (v1 001), based on RT3352 SoC

Signed-off-by: Andrea Poletti <polex73@yahoo.it>
[remove config DT label, convert to nvmem, remove MAC address
 setup from u-boot-env, add MAC address info to commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoath79: add support for TP-Link TL-WA1201 v2
Robert Balas [Thu, 2 Sep 2021 15:07:14 +0000 (17:07 +0200)]
ath79: add support for TP-Link TL-WA1201 v2

This device is a wireless access point working on the 2.4 GHz and 5 GHz
band, based on Qualcomm/Atheros QCA9563 + QCA9886.

Specification
- 775 MHz CPU
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- QCA9563: 2.4 GHz 3x3
- QCA9886: 5 GHz
- AR8033: 1x 1 Gbs Ethernet
- 4x LED, WPS factory reset and power button
- bare UART on PCB (accessible through testpoints)

Methods for Flashing:
- Apply factory image in OEM firmware web-gui. Wait a minute after the
  progress bar completes and restart the device.
- Sysupgrade on top of existing OpenWRT image
- Solder wires onto UART testpoints and attach a terminal.
  Boot the device and press enter to enter u-boot's menu. Then issue the
  following commands
  1. setenv serverip your-server-ip
     setenv ipaddr your-device-ip
  2. tftp 0x80060000 openwrt-squashfs.bin (Rembember output of size in
    hex, henceforth "sizeinhex")
  3. erase 0x9f030000 +"sizeinhex"
  4. cp.b 0x80060000 0x9f030000 0x"sizeinhex"
  5. reboot

Recover:
- U-boot serial console

Signed-off-by: Robert Balas <balasr@iis.ee.ethz.ch>
[convert to nvmem]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agotools/libressl: update to 3.3.4
Rosen Penev [Thu, 2 Sep 2021 02:29:40 +0000 (19:29 -0700)]
tools/libressl: update to 3.3.4

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/cmake: update to 3.21.2
Rosen Penev [Thu, 2 Sep 2021 02:32:36 +0000 (19:32 -0700)]
tools/cmake: update to 3.21.2

Refreshed patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/bison: update to 3.7.6
Rosen Penev [Thu, 2 Sep 2021 02:53:39 +0000 (19:53 -0700)]
tools/bison: update to 3.7.6

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/dosfstools: update to 4.2
Rosen Penev [Thu, 2 Sep 2021 02:57:58 +0000 (19:57 -0700)]
tools/dosfstools: update to 4.2

Remove upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/findutils: update to 4.8.0
Rosen Penev [Thu, 2 Sep 2021 03:03:01 +0000 (20:03 -0700)]
tools/findutils: update to 4.8.0

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/tar: update to 1.34
Rosen Penev [Thu, 2 Sep 2021 03:04:43 +0000 (20:04 -0700)]
tools/tar: update to 1.34

Refresh patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/zstd: update to 1.5.0
Rosen Penev [Thu, 2 Sep 2021 03:28:06 +0000 (20:28 -0700)]
tools/zstd: update to 1.5.0

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agobusybox: update to version 1.34.0
Hannu Nyman [Tue, 31 Aug 2021 15:12:44 +0000 (18:12 +0300)]
busybox: update to version 1.34.0

Update busybox to version 1.34.0

* Remove upstreamed patches (205, 530, 540)

* Remove one old patch that does not apply any more. (203)
  That was originally introduced in 2008 with 563d23459,
  but does not apply after busybox restructuring with
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=e6007c4911c3ea26925f9473b9f156a692585f30
  and
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=1c7253726fcbab09917f143f0b703efbd2df55c3

* Refresh config and patches.

* Backport upstream fixes for
   - MIPS compilation breakage and
   - process substitution regression

Config refresh:

Refresh commands, run after busybox is first built once:

cd utils/busybox/
cd config/
../convert_menuconfig.pl ../../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0
cd ..
./convert_defaults.pl < ../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0/.config > Config-defaults.in

Manual edits needed afterward:

* Config-defaults.in:  OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6
* Config-defaults.in:  OpenWrt configTARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)
* Config-defaults.in:  OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)
  BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE (just "")
* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)
* config/shell/Config.in : change at "Options common to all shells"  the symbol
  SHELL_ASH  -->  BUSYBOX_CONFIG_SHELL_ASH
   (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
     Apparently our script does not see the hidden option while
     prepending config options with "BUSYBOX_CONFIG_" which leads to a
     missed dependency when the options are later evaluated.)
* Edit Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2 years agomediatek: add support for TOTOLINK A8000RU
Chuanhong Guo [Mon, 23 Aug 2021 16:18:23 +0000 (00:18 +0800)]
mediatek: add support for TOTOLINK A8000RU

Specifications:
- SoC: MT7622
- RAM: 512MB
- Flash: MX35LF1GE4AB 128MB SPI NAND
- Ethernet: RTL8367S 5x1GbE
- WiFi: 2.4G: MT7622 5G: MT7615N x2
- Other ports: USB3.0 x1

Flash instruction:
*important*: upgrade vendor firmware to at least V7.1cu.643_B20200521
1. hold the reset button and power on the device. wait for about 10s
   before releasing the reset button.
2. upload sysupgrade.bin via u-boot recovery page on http://192.168.1.1

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agoucode: update to latest Git HEAD
Jo-Philipp Wich [Sun, 11 Jul 2021 18:37:45 +0000 (20:37 +0200)]
ucode: update to latest Git HEAD

929c862 vm: fix toplevel function call protocol
8f34d70 fs: fix chown() and rename() error return values
03ca445 tests: disable fuzz tests for now
3b1be3d types: mark further GC roots
d49af4e types: fix comparison of differently signed integers
c79ff39 types: handle conversion errors when dealing with negative error indexes
3315b1f types: allow negative array indexes
d5b25f9 treewide: harmonize function naming
cc4ce8d module: remove unused defines
f5d7526 examples: add libucode usage examples
559eff2 types, vm: adjust GC api
e5e7e62 treewide: move header files into dedicated directory
ff6168a build: install header files
7e6ce0f main: introduce new flag `-x` to allow disabling specific functions
b1817b3 vm: fix invalid memory access on GC'ing uninitialized VM context
498fe87 main: refactor option parsing and VM setup
ff52440 treewide: consolidate typedef naming
1d60418 vm: add API to control trace mode
48f33ad vm: make root exception handler configurable
0f69f09 vm: fix invalid memory access on toplevel function calls
6bcc318 vm: fix handling exceptions in top-level function calls
4ae0568 lib, vm: reimplement exit() as exception type
2f77657 vm: extend API to allow returning result value from VM execution
111645a vm: remove module preloading logic
38ff6de main: preload modules ourselves
d5bc223 vm: add uc_vm_invoke() helper
ef0baf1 vm: cosmetic fix for outputting exceptions without source context
b11a2fa vm: move global scope allocation into uc_vm_init()
900b2a3 vm: add getter and setter for vm globals scope
0179576 lib: rename uc_add_proto_functions() to uc_add_functions()
98b9c84 lib: expose stdlib function array
1adfba0 treewide: eliminate dead code and unused functions
3974e71 treewide: replace a number of unnecessary type casts
bf85226 treewide: move ressource type registry into vm instance
e2b3d2e build: split into libucode and ucode cli
dad8f3a types: properly deal with circular data in GC mark phase
62dbd64 lexer: rename UT_ prefixed constants to UC_
bc8e465 types: fix wrong assert() on tearing down object trees
853b9f1 vm: fix potential invalid memory access in uc_vm_get_error_context()
6f05cdd lib: fix refcount imbalance in uc_require_path()
96f140b lib, vm: ensure that require() compiles modules only once
df5db5f compiler: don't segfault on invalid declaration expressions
a97c7a1 lexer: transition into EOF state on unrecognized character
2a838d1 compiler: improve mapping of binary operator tokens to instructions
9872f65 vm: add support for I_LE and I_GE instructions
4e410c3 treewide: let uc_cmp() use instruction instead of token numbers
ce6081d lexer, vm: reorder token and instruction numbers
234a4f6 lib: implement b64enc() and b64dec() functions
856a0c0 lib: only consider context of calling function for callbacks
86fb130 lib: implement min() and max() functions
3e893e6 lib: pass-through "this" context to library function callbacks
42de7ab lib: implement `sourcepath()` function
05c80a7 lib: fix negative uc_index() return value on 32bit systems
9874562 lexer: implement raw code mode
3b665c8 lexer: drop value union from keyword table
44354cf lexer, compiler: separate TK_BOOL token into TK_TRUE and TK_FALSE tokens
5879bdf syntax: drop Infinity and NaN keywords
d4edadc lib: rename uc_lib_init() to uc_load_stdlib()
d81bad7 main, lib: move allocation of globals object into lib function
c4f4b38 main: simplify REQUIRE_SEARCH_PATH initialization
54ca3aa types: fix uninitialized memory on setting non-contiguous array indexes
cbc0d78 build: let require search patch default to CMAKE_INSTALL_PREFIX
5714705 syntax: introduce `const` support
ed32c42 compiler, lexer: add NO_LEGACY define to disable legacy syntax features
ff6811f syntax: implement `delete` as proper operator
5803d86 lib: implement wildcard() function
dfb7379 fs: implement chmod(), chown(), rename() and glob() functions
1ddf5b6 lexer: skip interpreter line in any source buffer
9951a00 build: lower minimum required CMake version to v3.13
7b81ab2 main: expose argv as global ARGV array to ucode scripts
7283a70 tests: rename misnamed testcases for consistency
3f80116 compiler: fix local for-loop initializer variable declarations
f20b56f compiler: properly parse slashes in parenthesized division expressions
5c4e1ea lib: implement regexp(), a function to construct regexp instances at runtime
e546bba lib: implement render(), an include variant capturing output in a string
0cb10c6 vm: implement mechanism to change output file descriptor
eb8a64d lib: fix uc_sort()
f1ffc9f vm: truncate long values after 60 chars in trace output
850612f compiler: properly handle break/continue in nested scopes
f0a9875 compiler: properly handle keyword in parenthesized property access expression
1660433 compiler: fix stack mismatch on compiling `use strict` statements
a36e0df syntax: implement support for 'use strict' pragma
827a34a vm, compiler: get rid of unused struct members
594cdf3 lib: implement assert()
c4d1648 lib: add support for pretty printing JSON to printf() and sprintf()
f2eaea3 lib: gracefully handle truncated format strings in uc_printf_common()
02629b8 lexer: fix infinite loop on parsing unterminated comments
2bc9bac lexer: fix infinite loop on parsing unterminated expression blocks
f73e201 lexer: fix infinite loop when parsing regexp literal at EOF
86b4863 compiler: fix segfault on parsing invalid pre/post increment expressions
0e24509 lib: fix reporting source context lines at EOF
e66b2ad compiler, lexer: improve lexical state handling
e29b574 lib: fix uc_split() quirks
64eec7f treewide: ISO C / pedantic compliance
4af803d build: output error messages on test failures
9ef693e vm: improve context for early errors
6def9fc tests: pass ucode library path through environment
d5dd183 treewide: address various sign-compare warnings
28825ac types: support creating ressource values without associated type
9c5106a types: fix potential memory leaks and null pointer accesses
c51934a types: fix potential leak of key in ucv_object_add()
7b28727 main: fix ineffective EOF check in parse()
4cf897c lib: uc_system(): fix invalid free() of non-heap memory
35af4ba treewide: rework internal data type system
f2c4b79 treewide: fix issues reported by clang code analyzer
93ededb tests: allow executing run_tests.sh from any directory
0e4a387 Add initial GitLab and GitHub CI support
df73b25 tests: add more tests
41d33d0 tests: custom: return exit code if tests fails
1c548a6 cmake: do not output binaries into lib directory
2b59097 tests: create custom tests from current tests cases
8039361 main: provide just binary name in help output
778e4f7 lexer: fix incomplete struct initializers
502ecdc cmake: enable extra compiler checks
3c2aeff cmake: fix includes and libraries
617a114 cmake: make 3.0 minimum version
f360350 lib: implement sleep(ms) function
7f0ff91 lib: allow parsing non-array, non-object value in json()

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 years agofirewall4: update to latest Git HEAD
Jo-Philipp Wich [Wed, 1 Sep 2021 13:34:15 +0000 (15:34 +0200)]
firewall4: update to latest Git HEAD

cf835ce treewide: convert deprecated syntax
c9a3bf5 tests: adapt to latest ucode

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 years agokernel: add missing CONFIG_SECURITY_NETWORK_XFRM ksym
Rui Salvaterra [Wed, 1 Sep 2021 08:02:20 +0000 (09:02 +0100)]
kernel: add missing CONFIG_SECURITY_NETWORK_XFRM ksym

Paul noticed a build failure [1] due to this missing symbol. Add it as disabled
to both generic kconfigs.

[1] https://github.com/aparcar/openwrt/runs/3480872706?check_suite_focus=true#step:11:63

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agoethtool: fix recursive dependency
Eneas U de Queiroz [Thu, 12 Aug 2021 13:57:07 +0000 (10:57 -0300)]
ethtool: fix recursive dependency

Change the CONFLICTS definition from the alternative package
(ethtool-full) to the main one.

The CONFLICTS line creates a dependency to the conflicting package.

Right now, the dependency would be created in the PACKAGE_ethtool-full
symbol:

config PACKAGE_ethtool-full
        depends on m || (PACKAGE_ethtool != y)

When the main package is selected by airmon-ng, it selects
PACKAGE_ethtool, *depending* on the value of PACKAGE_ethtool-full:

config PACKAGE_airmon-ng
        select PACKAGE_ethtool if PACKAGE_ethtool-full<PACKAGE_airmon-ng

In the first block, the value of PACKAGE_ethtool-full depends on the
value of PACKAGE_ethtool.  In the second block, the opposite is true:
the value of PACKAGE_ethtool depends on the value of
PACKAGE_ethtool-full.  This is a recursive dependency.

Fix it by changing the package where the dependency is created, so that
only the value of PACKAGE_ethtool will depend on PACKAGE_ethtool-full.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2 years agoprocd: fix issue mounting overlay fs
Daniel Golle [Tue, 31 Aug 2021 11:28:56 +0000 (12:28 +0100)]
procd: fix issue mounting overlay fs

The previous procd update broke mounting overlayfs in an attempt to
fix an off-by-one error. Revert that broken fix and apply fix from
Nick Hainke <vincent@systemli.org> instead to bring things back to
life.

 20adf53 Revert "initd: fix off-by-one error in mkdev.c"
 773e8da initd: fix off-by-one error in mkdev.c

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agofirmware-utils: mkmerakifw-old: Add le32 support
Matthew Hagan [Thu, 5 Aug 2021 22:24:40 +0000 (22:24 +0000)]
firmware-utils: mkmerakifw-old: Add le32 support

mkmerakifw-old was created for the z1 which uses the AR9344 SoC with
be32 addressing. The MX64/MX65 devices use the same header style, however
these boards use a BCM NSP SoC with le32 addressing.

Since we may be booting initramfs images with this header, which may be
of any size, within reason, board->imagelen is set to 0. The kernel
image shoule be limited in the image Makefile.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm53xx: switch to the kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 07:40:54 +0000 (09:40 +0200)]
bcm53xx: switch to the kernel 5.10

With PCI and USB regressions fixed it should be safe to switch now.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 09:13:38 +0000 (11:13 +0200)]
bcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10

I2C_BCM_IPROC selects I2C_SLAVE which in turn makes two new symbols
available: I2C_SLAVE_EEPROM and I2C_SLAVE_TESTUNIT. That was causing:

I2C support (I2C) [M/n/y/?] m
  Enable compatibility bits for old user-space (I2C_COMPAT) [N/y/?] n
  I2C device interface (I2C_CHARDEV) [M/n/?] m
  I2C bus multiplexing support (I2C_MUX) [N/m/?] n
  Autoselect pertinent helper modules (I2C_HELPER_AUTO) [N/y/?] n
    SMBus-specific protocols (I2C_SMBUS) [N/m/?] n
  I2C/SMBus Test Stub (I2C_STUB) [N/m/?] n
  I2C slave support (I2C_SLAVE) [Y/?] y
    I2C eeprom slave driver (I2C_SLAVE_EEPROM) [N/m/?] n
    I2C eeprom testunit driver (I2C_SLAVE_TESTUNIT) [N/m/?] (NEW)

Ideally I2C_SLAVE should probably be packaged as kmod-i2c-slabe. For now
just modify kmod-i2c-bcm-iproc to fix kernel compilation.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm53xx: fix USB in kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 07:33:47 +0000 (09:33 +0200)]
bcm53xx: fix USB in kernel 5.10

This makes USB controller driver work with USBs that are always powered
on (don't require toggling any GPIO).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agolibjson-c: remove old math patch
Rosen Penev [Tue, 24 Nov 2020 09:49:17 +0000 (01:49 -0800)]
libjson-c: remove old math patch

Remove old math patch meant for old GCC versions. It's not needed
for GCC and causes issues with clang.

Add CMake patch to identify clang properly and apply the proper
flags. Fixes the following warnings/errors:

json_pointer.c:230:7: warning: implicit declaration of function
'vasprintf' is invalid in C99 [-Wimplicit-function-declaration]
        rc = vasprintf(&path_copy, path_fmt, args);
             ^
json_pointer.c:317:7: warning: implicit declaration of function
'vasprintf' is invalid in C99 [-Wimplicit-function-declaration]
        rc = vasprintf(&path_copy, path_fmt, args);
             ^
/usr/include/bits/mathcalls.h:177:23: error: cannot redeclare builtin
function '__builtin_isinf'
__MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf)
                      ^
/usr/include/bits/mathcalls.h:177:23: note: '__builtin_isinf' is a
builtin with type 'int ()'
/usr/include/bits/mathcalls.h:213:23: error: cannot redeclare builtin
function '__builtin_isnan'
__MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan)

The clang patch is an upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoramips: minew g1-c: use default static address for lan instead of dhcp
Alexander Couzens [Mon, 30 Aug 2021 23:43:31 +0000 (01:43 +0200)]
ramips: minew g1-c: use default static address for lan instead of dhcp

As Adrian Schmutzler suggested on github [1] the device should follow the
default behaviour on ethernet using a static address instead using dhcp.

[1] https://github.com/openwrt/openwrt/commit/8d497b65704f62294a4bbc0e1f5aa4eb1dbf9e24

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2 years agoprocd: update to git HEAD
Daniel Golle [Mon, 30 Aug 2021 23:52:47 +0000 (00:52 +0100)]
procd: update to git HEAD

 96d8bf2 trace: fix potential use-after-free occurence
 8eb1d78 initd: fix off-by-one error in mkdev.c
 86f82f3 utils: don't ignore open() return value
 f5fe04b jail: actually check calloc return value
 269c9e4 trace: preload: avoid NULL-dereference here as well

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoprocd: update to git HEAD
Daniel Golle [Mon, 30 Aug 2021 19:34:45 +0000 (20:34 +0100)]
procd: update to git HEAD

 df251c2 uxc: move mountpoint of persistent config to /var/run/uxc
 e5b38fd trace: free memory allocated by blobmsg_format_json_indent()

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agowireguard-tools: bump to 20210424
Kevin Darbyshire-Bryant [Wed, 25 Aug 2021 10:06:11 +0000 (11:06 +0100)]
wireguard-tools: bump to 20210424

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2 years agobcm53xx: backport missed DT patch cleaning up CRU block
Rafał Miłecki [Mon, 30 Aug 2021 06:54:29 +0000 (08:54 +0200)]
bcm53xx: backport missed DT patch cleaning up CRU block

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agoramips: w2914ns-v2: consolidate leds nodes into dtsi
Sungbo Eo [Sun, 1 Aug 2021 15:02:49 +0000 (00:02 +0900)]
ramips: w2914ns-v2: consolidate leds nodes into dtsi

w2914ns-v2, 11acnas, and freezio use almost same board and thus share a
common dtsi file. Now that LED labels do not contain "devicename" since
commit c846dd91f0a6 ("ramips: remove model name from LED labels"), let's
move the leds nodes to dtsi and remove them from dts.

Note that freezio has only one USB 3.0 port and adding &ehci_port2 trigger
does not incur any visible changes.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoramips: provide default BLOCKSIZE for Device/seama
Adrian Schmutzler [Sun, 29 Aug 2021 22:18:53 +0000 (00:18 +0200)]
ramips: provide default BLOCKSIZE for Device/seama

The Device/seama shared definition requires BLOCKSIZE, so it should
have a default value for this variable.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoipq806x: add missing enclosing partitions block for TP-Link C2600
Filip Matijević [Sat, 28 Aug 2021 08:47:09 +0000 (10:47 +0200)]
ipq806x: add missing enclosing partitions block for TP-Link C2600

The partitions that have compatible property set are skipped by mtd if
they are not contained inside a partitions node and this breaks
fetching MAC address from "default-mac" partition.

Fix this by defining all the partitions inside partitions node with
compatible = "fixed-partitions" as nvmem requires the standard
partitions scheme to work correctly.

Fixes: FS#3945
Fixes: cd36d71655ee ("ipq806x/dts: Add Archer C2600 DTS")
Fixes: 0458a8993ca1 ("ipq806x: convert mtd-mac-address to nvmem
implementation")

Signed-off-by: Filip Matijević <filip.matijevic.pz@gmail.com>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
[adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoath79: remove redundant BLOCKSIZE of 64k from devices
Adrian Schmutzler [Sat, 28 Aug 2021 16:14:54 +0000 (18:14 +0200)]
ath79: remove redundant BLOCKSIZE of 64k from devices

BLOCKSIZE = 64k is set in Device/Default, i.e. global default on
the target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agobcm53xx: backport the latest upstream DT changes
Rafał Miłecki [Sun, 29 Aug 2021 20:53:55 +0000 (22:53 +0200)]
bcm53xx: backport the latest upstream DT changes

This includes:
1. BCM5301X changes from 5.14 and queued 5.15 stuff
2. NSP changes from 5.11 - 5.15 for kernel 5.10

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agokernel: move two symbols to the generic kconfigs
Rui Salvaterra [Sun, 22 Aug 2021 13:50:08 +0000 (14:50 +0100)]
kernel: move two symbols to the generic kconfigs

CONFIG_RCU_{NEED_SEGCBLIST,STALL_COMMON} are set basically everywhere. Move them
to the generic kconfigs. And resort the generic kconfigs while at it.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: disable CONFIG_RCU_EXPERT and friends
Rui Salvaterra [Sun, 22 Aug 2021 13:50:07 +0000 (14:50 +0100)]
kernel: disable CONFIG_RCU_EXPERT and friends

Based on the existing documentation [1][2], I dare anyone to demonstrate that
we need to fine-tune these RCU parameters. The (performance) breakage potential
for doing so is immense, so let's just please put down this loaded footgun.

Disable CONFIG_RCU_EXPERT and its dependent symbols. Additionally, remove the
CONFIG_RCU_EXPERT symbol from the target kconfigs which contain it.

[1] https://www.kernel.org/doc/Documentation/RCU/Design/Data-Structures/Data-Structures.html
[2] https://lwn.net/Articles/777214/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: fix warning about unused try_to_force_load
Ansuel Smith [Sat, 28 Aug 2021 14:30:03 +0000 (16:30 +0200)]
kernel: fix warning about unused try_to_force_load

There is a longlasting warn about unused defined try_to_force_load.
Fix this by including this function only when actually used.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agokernel: bump 5.4 to 5.4.143
John Audia [Thu, 26 Aug 2021 18:09:35 +0000 (14:09 -0400)]
kernel: bump 5.4 to 5.4.143

Manually rebased:
  bcm27xx/patches-5.4/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch

Removed upstreamed:
  mvebu/patches-5.4/100-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agokernel: bump 5.10 to 5.10.61
John Audia [Sat, 28 Aug 2021 11:40:00 +0000 (07:40 -0400)]
kernel: bump 5.10 to 5.10.61

Manually rebased:
  bcm27xx/patches-5.10/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch

Removed upstreamed:
  mvebu/patches-5.10/101-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agoath79: fix spelling of DEVICE_MODEL for D-Link DAP-2695
Sebastian Schaper [Mon, 23 Aug 2021 20:34:43 +0000 (22:34 +0200)]
ath79: fix spelling of DEVICE_MODEL for D-Link DAP-2695

Change `DAP-2965` to `DAP-2695` for device selection in menuconfig.

Fixes: cd09f26660b6 ("ath79: add support for D-Link DAP-2695-A1")
Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[add Fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoramips: add label-mac for TL-MR3020 v3
David Bauer [Fri, 27 Aug 2021 23:34:08 +0000 (01:34 +0200)]
ramips: add label-mac for TL-MR3020 v3

The TP-Link TL-MR3020 v3 only has a single MAC address assigned for
ethernet LAN as well as WiFi. This MAC address is also printed on the
casing.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoramips: enable fast-read for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:42:53 +0000 (23:42 +0200)]
ramips: enable fast-read for TL-MR3020 v3

The GigaDevices GD25Q64B found on the TL-MR3020 v3 supports the fast
read instruction. Add the required DT property in order to enable usage
of this property.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoramips: increase SPI frequency for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:41:23 +0000 (23:41 +0200)]
ramips: increase SPI frequency for TL-MR3020 v3

The GigaDevices GD25Q64B supports higher SPI clocks than 10 MHz. While
100 MHz do not work reliably, 50 MHz works without issues.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoramips: fix input type for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:31:41 +0000 (23:31 +0200)]
ramips: fix input type for TL-MR3020 v3

The modec{1,2} keys are actually switches.

Add the respective DTS properties to avoid accidental activation of
failsafe mode.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: enable proxy-arp support for hostapd-full
David Bauer [Wed, 18 Aug 2021 10:39:33 +0000 (12:39 +0200)]
hostapd: enable proxy-arp support for hostapd-full

The hostapd.sh script already has support for configuring proxy-ARP,
however no built variant has support for it enabled.

Enable proxy-ARP support for hostapd-full builds in order to allow users
to actually use this feature.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: fix Proxy-ARP with Hotspot 2.0 disabled
David Bauer [Wed, 18 Aug 2021 22:58:19 +0000 (00:58 +0200)]
hostapd: fix Proxy-ARP with Hotspot 2.0 disabled

The disable_dgaf config fiels is only available in case Hostapd is
compiled with Hotspot 2.0 support, however Proxy-ARP does not depend on
Hotspot 2.0.

Only add the code related to this config field when Hotspot 2.0 is
enabled to fix compilation with the aformentioned preconditions.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: refresh patches
David Bauer [Wed, 18 Aug 2021 22:59:55 +0000 (00:59 +0200)]
hostapd: refresh patches

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agokernel: properly handle paging errors in fit partition parser
Daniel Golle [Fri, 27 Aug 2021 20:30:32 +0000 (21:30 +0100)]
kernel: properly handle paging errors in fit partition parser

The uImage.FIT partition uses page mapping without properly handling
paging errors. This can lead to Kernel Oops in case of read errors
while trying to parse uImage.FIT partitions.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: mt7623: replace kconfig symbol for snand driver
Chuanhong Guo [Fri, 27 Aug 2021 14:22:29 +0000 (22:22 +0800)]
mediatek: mt7623: replace kconfig symbol for snand driver

this change was missing during the spi-nand driver replacement, causing
build failure.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7629: manually add missing kconfig
Chuanhong Guo [Fri, 27 Aug 2021 07:40:27 +0000 (15:40 +0800)]
mediatek: mt7629: manually add missing kconfig

These options doesn't show up unless some kernel packages are selected,
so they are not covered by kernel_menuconfig.
Manually add them so that a build with all kmods can pass without user
interaction.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7629: build with linux 5.10
Chuanhong Guo [Tue, 24 Aug 2021 12:03:52 +0000 (20:03 +0800)]
mediatek: mt7629: build with linux 5.10

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: bmt: set default bmt oob offset to 0
Chuanhong Guo [Tue, 24 Aug 2021 03:23:21 +0000 (11:23 +0800)]
mediatek: bmt: set default bmt oob offset to 0

there's no driver level remapping of oob data in the new spi-nand
driver and bmt oob signature starts at 0x0 of the dumped oob data.
change the default value to 0 for the new spi-nand driver.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mtk-snand: check request size against chip info
Chuanhong Guo [Mon, 23 Aug 2021 16:31:17 +0000 (00:31 +0800)]
mediatek: mtk-snand: check request size against chip info

mtd->size will be overrided by BMT which makes all mtd requests made by
bmt fail in request size checking.
this commit changes the driver to check against actual chip size in chip
info as a workaround.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: attach bmt to the new snand driver
Chuanhong Guo [Fri, 20 Aug 2021 07:21:40 +0000 (15:21 +0800)]
mediatek: attach bmt to the new snand driver

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: change dts to use the new snand driver
Chuanhong Guo [Tue, 24 Aug 2021 04:04:51 +0000 (12:04 +0800)]
mediatek: change dts to use the new snand driver

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: remove spi-nand hacks from 5.10
Chuanhong Guo [Fri, 20 Aug 2021 06:23:38 +0000 (14:23 +0800)]
mediatek: remove spi-nand hacks from 5.10

we now have a standalone mtd driver and the old spi-mem driver along
with the hack in spi-nand core can be removed.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: enable new spi-nand driver for kernel 5.10
Weijie Gao [Tue, 25 May 2021 13:26:09 +0000 (21:26 +0800)]
mediatek: enable new spi-nand driver for kernel 5.10

This patch enables new spi-nand driver for mt7622 and mt7629.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: add a new spi-nand driver for kernel 5.10
Weijie Gao [Tue, 25 May 2021 13:25:14 +0000 (21:25 +0800)]
mediatek: add a new spi-nand driver for kernel 5.10

This patch adds a new spi-nand driver which implements the SNFI of mt7622
and mt7629.

Unlike the existing snfi driver which makes use of the spi-mem framework
and the spi-nand framework with modified ecc support, this driver is
implemented directly on the mtd framework with other components untouched,
and provides better performance, and behaves exactly the same as the nand
framework.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2 years agoopenssl: bump to 1.1.1l
Eneas U de Queiroz [Thu, 26 Aug 2021 17:34:28 +0000 (14:34 -0300)]
openssl: bump to 1.1.1l

This version fixes two vulnerabilities:
  - SM2 Decryption Buffer Overflow (CVE-2021-3711)
    Severity: High

  - Read buffer overruns processing ASN.1 strings (CVE-2021-3712)
    Severity: Medium

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2 years agoath9k: owl-loader: remove obsolete AR71XX patch
Christian Lamparter [Fri, 20 Aug 2021 22:39:47 +0000 (00:39 +0200)]
ath9k: owl-loader: remove obsolete AR71XX patch

this is no longer necessary as the AR71XX target
was superseded by ath79.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoath79: remove obsolete pci-ath9k-fixup.[c,h] files
Christian Lamparter [Sun, 22 Aug 2021 09:27:08 +0000 (11:27 +0200)]
ath79: remove obsolete pci-ath9k-fixup.[c,h] files

This was old code from the AR71XXs target days that
doesn't get compiled and used anymore.

Bringing up AR92xx and earlier chips from their
OWL-Emulator state is currently done by the upstream
ath9k-pci-owl-loader module. (see the kmod-owl-loader
package).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agogpio-button-hotplug: convert to gpio descriptor (gpiod_) API
Christian Lamparter [Thu, 5 Aug 2021 13:29:25 +0000 (15:29 +0200)]
gpio-button-hotplug: convert to gpio descriptor (gpiod_) API

OpenWrt's special gpio-button-hotplug driver is still using
exclusively the legacy GPIO Subsystem gpio_ API.

While it still does work fine for most devices, upstream
linux is starting to convert platform support like that of
the APU2/3/4 to the new GPIOD LOOKUP tables that are not
supported by it.

Hence, this patch replaces the gpio_ calls present in
gpio-button-hotplug with gpiod_ equivalent wherever
it's possible. This allows the driver to use the
gpiod lookup tables and still have a fallback for
legacy platform data code that just sets button->gpio
set to the real button/switch GPIO.

As a bonus: the active_low logic is now being handled
by the linux's gpio subsystem too. Another issue that
was address is the of_handle leak in the dt parser
error path.

Tested with legacy platform data: x86_64: APU2, MX-100
Tested on OF: ATH79; MR18, APM821xx: Netgear WNDR4700,
      RAMIPS: WL-330N3G
      LANTIQ: AVM FritzBox 7360v1

Reported-by: Chris Blake <chrisrblake93@gmail.com>
Tested-by: Chris Blake <chrisrblake93@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoath79: add support for onion omega
Jan-Niklas Burfeind [Mon, 23 Aug 2021 13:07:38 +0000 (15:07 +0200)]
ath79: add support for onion omega

The Onion Omega is a hardware development platform with built-in WiFi.

https://onioniot.github.io/wiki/

Specifications:
 - QCA9331 @ 400 MHz (MIPS 24Kc Big-Endian Processor)
 - 64MB of DDR2 RAM running at 400 MHz
 - 16MB of on-board flash storage
 - Support for USB 2.0
 - Support for Ethernet at 100 Mbps
 - 802.11b/g/n WiFi at 150 Mbps
 - 18 digital GPIOs
 - A single Serial UART
 - Support for SPI
 - Support for I2S

Flash instructions:
The device is running OpenWrt upon release using the ar71xx target.
Both a sysupgrade
and uploading the factory image using u-boots web-UI do work fine.

Depending on the ssh client, it might be necessary to enable outdated
KeyExchange methods e.g. in the clients ssh-config:

Host 192.168.1.1
        KexAlgorithms +diffie-hellman-group1-sha1

The stock credentials are: root onioneer

For u-boots web-UI manually configure `192.168.1.2/24` on your computer,
connect to `192.168.1.1`.

MAC addresses as verified by OEM firmware:
2G       phy0      label
LAN      eth0      label - 1

LAN is only available in combination with an optional expansion dock.

Based on vendor acked commit:
commit 5cd49bb067ca ("ar71xx: add support for Onion Omega")

Partly reverts:
commit fc553c7e4c8e ("ath79: drop unused/incomplete dts")

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2 years agoustp: add OpenWrt STP/RSTP daemon
Felix Fietkau [Tue, 24 Aug 2021 15:40:28 +0000 (17:40 +0200)]
ustp: add OpenWrt STP/RSTP daemon

This integrates with netifd in order to provide STP/RSTP protocol support
in user space. It defaults to using RSTP for bridges with stp enabled.
This daemon has no config files, it uses the configuration passed from
netifd via ubus

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agofstools: update to git HEAD
Daniel Golle [Wed, 25 Aug 2021 21:49:00 +0000 (22:49 +0100)]
fstools: update to git HEAD

 50e6b20 libfstools: handle open() return value properly in F2FS check
 e1b6811 blockd: include missing libubox/utils.h

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agobmips: backport accepted watchdog patch
Álvaro Fernández Rojas [Wed, 25 Aug 2021 08:24:33 +0000 (10:24 +0200)]
bmips: backport accepted watchdog patch

This patch has been accepted for linux v5.14.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2 years agoramips: expose ephy leds for miwifi-mini
David Yang [Sun, 11 Jul 2021 15:17:43 +0000 (23:17 +0800)]
ramips: expose ephy leds for miwifi-mini

Give users more control by exposing ephy leds.

Signed-off-by: David Yang <mmyangfl@gmail.com>
[remove execute bit on 01_leds, add status for gpio2]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoramips: lock u-boot partition and unlock u-boot-env for miwifi-mini
David Yang [Sun, 11 Jul 2021 14:16:54 +0000 (22:16 +0800)]
ramips: lock u-boot partition and unlock u-boot-env for miwifi-mini

Generally u-boot should keep read-only to avoid mis-overwriting and
bricking the device, but u-boot-env could be safely modified with u-boot
setenv tool.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2 years agoramips: increase flash freq for miwifi-mini
David Yang [Sun, 11 Jul 2021 14:13:21 +0000 (22:13 +0800)]
ramips: increase flash freq for miwifi-mini

The flash is Winbond 25Q128. As it has large rom, better to increase flash
frequency to 70MHz according to the flash spec and enable fast-read.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2 years agoramips: add support for D-Link DAP-1325-A1
Giovanni Cascione [Thu, 8 Jul 2021 16:30:53 +0000 (18:30 +0200)]
ramips: add support for D-Link DAP-1325-A1

This patch adds support for D-Link DAP-1325-A1 (Range Extender Wi-Fi N300)

Specifications:
- SoC: 580Mhz MT7628NN
- RAM: 64MB, DDR2 SDRAM
- Storage: 8MB, SPI (W25Q64JVSSIQ)
- Ethernet: 1x 10/100 LAN port
- WIFI: 2.4 GHz 802.11bgn
- LED: Status (2x to provide 3 colors), Wi-Fi Signal Strength (4x)
- Buttons: Reset, WPS
- UART: Serial console (57600, 8n1)
Row of 4 holes near LAN port, starting from square hole:
3.3V, TX,RX,GND
- FCC ID: fccid.io/KA2AP1325A1/

Installation:

Failsafe UI
Firmware can be uploaded with Failsafe UI web page:
- turn device off
- press and hold reset button
- turn device on
- keep holding reset until red wifi strength led turns on (ab. 10sec)
- connect to device through LAN port
PC must be configured with static ip (192.168.0.x)
- connect to 192.168.0.50
- select image to be flashed and upload.
Device will reboot after successful update

Serial port/TFTP server
- Connect through serial connectors on PCB (e.g. with teraterm)
- Set up a TFTP server, and connect through LAN with static IP
- Put image file in the root of the server
- Boot the device and select '2' at U-Boot startup
- Set device IP, server IP and image file name
- Start upload and flash

Signed-off-by: Giovanni Cascione <ing.cascione@gmail.com>
[fix whitespaces in DTS, convert to nvmem, add mtd-eeprom]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 years agoath79: add support for Compex WPJ558 (16M)
Romain Mahoux [Tue, 8 Jun 2021 09:52:18 +0000 (11:52 +0200)]
ath79: add support for Compex WPJ558 (16M)

Specifications:
- SoC: QCA9558
- DRAM: 128MB DDR2
- Flash: 16MB SPI-NOR
- Wireless: on-board abgn 2×2 2.4GHz radio
- Ethernet: 2x 10/100/1000 Mbps (1x 802.11af PoE)
- miniPCIe slot

Flash instruction:
- From u-boot

tftpboot 0x80500000 openwrt-ath79-generic-compex_wpj558-16m-squashfs-sysupgrade.bin
erase 0x9f030000 +$filesize
cp.b $fileaddr 0x9f030000 $filesize
boot

- From cpximg loader

The cpximg loader can be started either by holding the reset button
during power up. Once it's running, a TFTP-server under 192.168.1.1 will accept
the image appropriate for the board revision that is etched on the board.

For example, if the board is labelled '6A07':

tftp -v -m binary 192.168.1.1 -c put openwrt-ath79-generic-compex_wpj558-16m-squashfs-cpximg-6a07.bin

Signed-off-by: Romain Mahoux <romain@mahoux.fr>
[convert to nvmem, remove redundant lan_mac in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>