openwrt/staging/svanheule.git
2 years agoutil-linux: update to 2.38
Rosen Penev [Mon, 2 May 2022 03:58:33 +0000 (20:58 -0700)]
util-linux: update to 2.38

Various fixes.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoath79: ZTE MF286[A,R]: add "Power button blocker" GPIO switch
Lech Perczak [Sat, 14 May 2022 12:50:02 +0000 (14:50 +0200)]
ath79: ZTE MF286[A,R]: add "Power button blocker" GPIO switch

ZTE MF286A and MF286R feature a "power switch override" GPIO in stock
firmware as means to prevent power interruption during firmware update,
especially when used with internal battery.
To ensure that this GPIO is
properly driven as in stock firmware, configure it with userspace GPIO
switch.

It was observed that on some units, the modem would not be
restarted together with the board itself on reboot, this should help
with that as well.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2 years agoipq40xx: revert Cell-C RTL30VW to legacy caldata extraction
Pawel Dembicki [Wed, 11 May 2022 15:29:21 +0000 (17:29 +0200)]
ipq40xx: revert Cell-C RTL30VW to legacy caldata extraction

This partially reverts
commit cfc13c44595d ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data").

After switching to nvmem RTL30VW, wifi was broken:

[   19.118319] ath10k_ahb a000000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   19.118377] ath10k_ahb a000000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   19.130285] ath10k_ahb a000000.wifi: firmware ver 10.4b-ct-4019-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 6b2b5c5b
[   19.159092] ath10k_ahb a000000.wifi: failed to fetch board data for bus=ahb,vendor=0000,device=0000,subsystem-vendor=0000,subsystem-device=0000,variant=cellc,rtl30vw from ath10k/QCA4019/hw1.0/board-2.bin
[   19.238764] ath10k_ahb a000000.wifi: failed to fetch board-2.bin or board.bin from ath10k/QCA4019/hw1.0
[   19.238847] ath10k_ahb a000000.wifi: failed to fetch board file: -12
[   19.247362] ath10k_ahb a000000.wifi: could not probe fw (-12)
[   20.190797] ath10k_ahb a800000.wifi: qca4019 hw1.0 target 0x01000000 chip_id 0x003b00ff sub 0000:0000
[   20.190853] ath10k_ahb a800000.wifi: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   20.202893] ath10k_ahb a800000.wifi: firmware ver 10.4b-ct-4019-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 6b2b5c5b
[   20.231357] ath10k_ahb a800000.wifi: failed to fetch board data for bus=ahb,vendor=0000,device=0000,subsystem-vendor=0000,subsystem-device=0000,variant=cellc,rtl30vw from ath10k/QCA4019/hw1.0/board-2.bin
[   20.317318] ath10k_ahb a800000.wifi: failed to fetch board-2.bin or board.bin from ath10k/QCA4019/hw1.0
[   20.317399] ath10k_ahb a800000.wifi: failed to fetch board file: -12
[   20.326098] ath10k_ahb a800000.wifi: could not probe fw (-12)

Bootloader mangles in NAND partitions and removes precal@X nodes in
working system:

root@OpenWrt:~# echo $(cat /sys/firmware/devicetree/base/soc/spi@78b5000/flash@0/partitions/partition@170000/label)
0:ART
root@OpenWrt:~# ls /sys/firmware/devicetree/base/soc/spi@78b5000/flash@0/partitions/partition@170000/
label  name   reg

Revert to legacy method fixed the problem.

Fixes: cfc13c44595d ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2 years agoath79: fix I2C on GL-AR300M devices
Ptilopsis Leucotis [Wed, 11 May 2022 16:55:05 +0000 (19:55 +0300)]
ath79: fix I2C on GL-AR300M devices

On GL-AR300M Series GPIO17 described as I2C SDA in Device Tree.
Because of GPIO_OUT_FUNCTION4 register was not initialized on start,
GPIO17 was uncontrollable, it always in high state. According to QCA9531
documentation, default setting of GPIO17 is SYS_RST_L. In order to make
GPIO17 controllable, it should write value 0x00 on bits [15:8] of
GPIO_OUT_FUNCTION4 register, located at 0x1804003C address.

Signed-off-by: Ptilopsis Leucotis <PtilopsisLeucotis@yandex.com>
2 years agolibubox: update to the latest version
Felix Fietkau [Sun, 15 May 2022 13:19:49 +0000 (15:19 +0200)]
libubox: update to the latest version

f2d6752901f2 blob: clear buf->head when freeing a buffer
45210ce14136 list.h: add container_of_safe macro
cfa372ff8aed blobmsg: implicitly reserve space for 0-terminator in string buf alloc
d2223ef9da71 blobmsg: work around false positive gcc -Warray-bounds warnings

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agompc85xx: enable error reporting for RAM and PCIe
Josef Schlehofer [Fri, 6 May 2022 17:13:05 +0000 (19:13 +0200)]
mpc85xx: enable error reporting for RAM and PCIe

All Freescale processors used in this target are capable to detect error
and correction. [1] It can not be used as kernel module. [2] This is
helpful to report hardware errors.

It enables three kernel options:

- EDAC, which is a subsystem
- EDAC_LEGACY_SYSFS, it enables sysfq nodes
- MP85XX, support for Freescale MPC8349, MPC8560, MPC8540, MPC8548, T4240

EDAC is already enabled for following targets:
qoriq, octeon, octeontx and zynq.

[1] https://cateee.net/lkddb/web-lkddb/EDAC.html
[2] https://patchwork.ozlabs.org/patch/554908/

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agouboot-fritz4040: Add support for Toshiba NAND
Christian Lamparter [Fri, 13 May 2022 19:44:30 +0000 (21:44 +0200)]
uboot-fritz4040: Add support for Toshiba NAND

From Andreas Böhler:

"Some revisions of the FRITZ!7530 use a Toshiba NAND with 8 bit ECC
in contrast to the Macronix NAND with 4 bit ECC.".

Uboot needs to know this in order to have a chance to load from
the NAND.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoipq-wifi: drop upstreamed board-2.bin
Christian Lamparter [Fri, 13 May 2022 20:25:36 +0000 (22:25 +0200)]
ipq-wifi: drop upstreamed board-2.bin

The BDFs for the:
Aruba AP-303
ASUS RT-AC42U
AVM FRITZ!Repeater 1200
Buffalo WTR-M2133HP
Cell C RTL30VW
D-Link DAP-2610
EnGenius EAP2200
EnGenius EMD1
EnGenius EMR3500
EnGenius EMR5000
EZVIZ CS-W3-WD1200G EUP
Google Wifi
Linksys MR8300 V1.0
Luma WRTQ-329ACN
MobiPromo CM520-79F
NEC Platforms WG2600HP3
Plasma Cloud PA1200 (updated version)
Plasma Cloud PA2200
ZTE MF286D

were upstreamed to the ath10k-firmware repository
and landed in linux-firmware.git.

Furthermore the BDFs for the:
8devices Habanero
OpenMesh A62
OpenMesh A42
AVM FRITZ!Box 4040

have been updated.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agolinux-firmware: take linux-firmware.git's qca99x0 boardfile
Christian Lamparter [Fri, 13 May 2022 20:07:59 +0000 (22:07 +0200)]
linux-firmware: take linux-firmware.git's qca99x0 boardfile

Kalle Valo managed to add the qca9980's boardfile in the
upstream repository. Sourcing the file from his repository
is no longer needed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agolinux-firmware: Update to version 20220509
Christian Lamparter [Fri, 13 May 2022 19:55:46 +0000 (21:55 +0200)]
linux-firmware: Update to version 20220509

git log --pretty=oneline --abbrev-commit 20220411..20220509 (sorted)

amdgpu:
480d6c2 amdgpu: update dcn_3_1_6_dmcub firmware
b4994be amdgpu: update gc_10_3_7_rlc firmware
61eb408 amdgpu: update psp_13_0_8 firmware
fcf9d8c amdgpu: update yellow carp DMCUB firmware

ath10k:
73743b8 ath10k: QCA4019 hw1.0: update board-2.bin
6ad0930 ath10k: QCA6174 hw3.0: update board-2.bin
729bd7f ath10k: QCA6174 hw3.0: update firmware-6.bin to WLAN.RM.4.4.1-00288-QCARMSWPZ-1
9fce09f ath10k: QCA9888 hw2.0: update board-2.bin
b155d85 ath10k: QCA9888 hw2.0: update firmware-5.bin to 10.4-3.9.0.2-00156
44b8aee ath10k: QCA9984 hw1.0: update board-2.bin
4ad3bd3 ath10k: QCA9984 hw1.0: update firmware-5.bin to 10.4-3.9.0.2-00156
1962cba ath10k: QCA99X0 hw2.0: add board-2.bin

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoipq40xx: Lyra: update RGB LED-Controller node for 5.10+
Christian Lamparter [Sat, 7 May 2022 17:41:55 +0000 (19:41 +0200)]
ipq40xx: Lyra: update RGB LED-Controller node for 5.10+

Add the reg and color property to each channel node. This
update is to accommodate the multicolor framework.

Refer to:
<https://lore.kernel.org/all/20200622185919.2131-9-dmurphy@ti.com>
<https://lore.kernel.org/all/20210818070209.1540451-1-michal.vokac@ysoft.com>

Note:

There is only a single extremely bright RGB-LED.
The RGB-color channels (i.e.: blue-0, blue-1 and blue-2)
are running in parallel to increase the current delivery
beyond what a single PWM-output on the LED controller
could do.

BugLink: https://github.com/openwrt/openwrt/issues/9851
Reported-By: Thomas Bøge <thomas@boegenielsen.dk>
Tested-By: Thomas Bøge <thomas@boegenielsen.dk>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoapm821xx: use nested fixed-partitions
Christian Lamparter [Sat, 14 May 2022 08:44:58 +0000 (10:44 +0200)]
apm821xx: use nested fixed-partitions

This makes it possible to fix Netgear WNDAP620+660 DTS ugliness.
Bring back the dtb and firmware partitions for the WNDR4700.
Thank you, mans0n.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agobcm53xx: remove MR32's specific get_leds_dt code
Christian Lamparter [Wed, 9 Mar 2022 19:20:20 +0000 (20:20 +0100)]
bcm53xx: remove MR32's specific get_leds_dt code

the existing diag.sh code will pick up the LED
by itself. This is not/no longer needed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agolantiq: xway: disable unused switch drivers
Aleksander Jan Bajkowski [Tue, 21 Dec 2021 21:57:27 +0000 (22:57 +0100)]
lantiq: xway: disable unused switch drivers

None of the devices supported by target xway are using Realtek
RTL8366S, RTL8367A and RTL8367B switches. The switches mentioned
earlier were enabled when bumping the kernel version to 3.7 in
commit 3a948770cf46 ("add linux-v3.7").

Switches used by individual devices are listed below.

Device Switch PHY
Arcadyan ARV4510PW Infineon ADM6996I int. switch
Arcadyan ARV4519PW Atheros AR8216 int. switch
Arcadyan ARV7506PW11 Realtek RTL8306G int. switch
Arcadyan ARV7510PW22 Atheros AR8216 int. switch
Arcadyan ARV7518PW Atheros AR8216 int. switch
Arcadyan ARV7519PW Atheros RTL8306G int. switch
Arcadyan ARV7525PW N/A IC+ IP101A
Arcadyan ARV752DPW Realtek RTL8306G int. switch
Arcadyan ARV752DPW22 Atheros AR8216 int. switch
Arcadyan ARV8539PW22 Atheros AR8216 int. switch
AVM Fritzbox 7312 int. SoC Atheros AR8030-A
AVM Fritzbox 7320 int. SOC Lantiq PEF7071V
AudioCodes MediaPack MP-252 Infineon ADM6996I int. switch
BT Home Hub 2B Infineon ADM6996I int. switch
BT Home Hub 3A Infineon PSB6972 Lantiq PEF7071V
Buffalo WBMR-HP-G300H-A Atheros AR8316 int. switch
Buffalo WBMR-HP-G300H-B Atheros AR8316 int. switch
Lantiq EASY50712 Infinein ADM6996I int. switch
Netgear DGN3500 Realtek RTL8366RB int. switch
Netgear DGN3500B Realtek RTL8366RB int. switch
Siemens Gigaset sx76x Infineon ADM6996I int. switch
ZTE H201L Realtek RTL8306G int. switch
ZyXEL P-2601HN-F1 Realtek RTL8306E int. switch
ZyXEL P-2601HN-F3 Realtek RTL8306E int. switch

Reduces uncompressed kernel size by 36 kB.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
(checkpatch.pl fixes)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoramips: fix booting on Samknows SK-WB8
Piotr Dymacz [Fri, 13 May 2022 11:35:59 +0000 (13:35 +0200)]
ramips: fix booting on Samknows SK-WB8

This fixes a well known "LZMA ERROR 1" error, reported previously on
numerous of similar devices.

Fixes: #9824
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2 years agoimage: drop unused 'BuildKernel/MkFIT'
Piotr Dymacz [Fri, 1 Apr 2022 15:35:42 +0000 (17:35 +0200)]
image: drop unused 'BuildKernel/MkFIT'

The 'MkFIT' recipe is no longer used across whole codebase.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2 years agorealtek: do not reset SerDes on link change
Birger Koblitz [Sun, 24 Apr 2022 20:01:31 +0000 (22:01 +0200)]
realtek: do not reset SerDes on link change

Do not reset the RTL930x SerDes on link changes, instead set up
the SDS with internal PHYs for the SFP+ ports only.
This fixes the 8 1GBit ports on the Zyxel XGS1250 which
do not work without this patch.

A complete SerDes reset was performed on all SerDes links. For copper
1Gbit ports, this is commonly a single XGMII link to an RTL8218D. There
is however no support for setting up the XGMII link on RTL9300/RTL9310,
thereby wiping the (RX/TX) setup done by u-boot and breaking the 1GBit
ports. No SerDes reset should be done for these links.

The handling of SGMII/HiSGMII, 1000BX or 10GR links is actually entirely
different. All these modes need to be suitably RX calibrated and the
pre- main and post- amplifiers set up properly for TX.

The 10GBit SFP+ fiber links are recalibrated instead of reset, which
e.g. is necessary when someone pulls a module out and puts another in.
This makes swapping out 10GBit fiber modules possible. 1GBit modules are
not yet supported, nor any modules with an internal phy.

Tested-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
[rewrite commit message based on discussion]
Link: http://lists.infradead.org/pipermail/openwrt-devel/2022-May/038623.html
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agokernel: bump 5.15 to 5.15.38
Rui Salvaterra [Mon, 9 May 2022 08:41:30 +0000 (09:41 +0100)]
kernel: bump 5.15 to 5.15.38

Deleted (upstreamed):
mediatek/patches-5.15/120-10-v5.18-mtd-nand-fix-ecc-parameters-for-mt7622.patch [1]

Other patches automatically rebased.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.38&id=3ec920d755ae69c201b358e8d8e96c32f51145d8

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.15 to 5.15.37
Rui Salvaterra [Sun, 1 May 2022 21:23:46 +0000 (22:23 +0100)]
kernel: bump 5.15 to 5.15.37

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.15 to 5.15.36
Rui Salvaterra [Sat, 30 Apr 2022 23:40:39 +0000 (00:40 +0100)]
kernel: bump 5.15 to 5.15.36

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agoramips: add support for Cudy X6
Alessio Prescenzo [Wed, 22 Sep 2021 14:45:19 +0000 (16:45 +0200)]
ramips: add support for Cudy X6

Specifications:

SoC: MediaTek MT7621
RAM: 256 MB
Flash: 32 MB
WiFi: MediaTek MT7915E
Switch: 1 WAN, 4 LAN (Gigabit)
Ports: 1 USB 3.0
Buttons: Reset, WPS
LEDs: Power, System, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G, WPS, USB
Power: DC 12V 1A tip positive
Installation:

Download and flash the manufacturer's built OpenWRT image available at
http://www.cudytech.com/openwrt_software_download
Install the new OpenWRT image via luci (System -> Backup/Flash firmware)
Be sure to NOT keep settings. The force upgrade may need to be checked
due to differences in router naming conventions.

Recovery:

Loads only signed manufacture firmware due to bootloader RSA verification
serve tftp-recovery image as /recovery.bin on 192.168.1.88/24
connect to any lan ethernet port
power on the device while holding the reset button
wait at least 8 seconds before releasing reset button for image to
download

Signed-off-by: Alessio Prescenzo <alessioprescenzo@gmail.com>
[ensure unique wireless MAC, fix GPIO pingroup]
Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agorealtek: Trap all frames with switch as destination to CPU-port
Birger Koblitz [Sun, 24 Apr 2022 18:37:33 +0000 (20:37 +0200)]
realtek: Trap all frames with switch as destination to CPU-port

This fixes a bug where frames sent to the switch itself were
flooded to all ports unless the MAC address of the CPU-port
was learned otherwise.

Tested-by: Wenli Looi <wlooi@ucalgary.ca>
Tested-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
[fix code formatting]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agorealtek: add support for ZyXEL GS1900-16
Raylynn Knight [Sun, 10 Apr 2022 07:26:59 +0000 (03:26 -0400)]
realtek: add support for ZyXEL GS1900-16

The ZyXEL GS1900-16 is a 16 port gigabit switch similar to other GS1900 switches.

Specifications
--------------
* Device:    ZyXEL GS1900-16
* SoC:       Realtek RTL8382M 500 MHz MIPS 4KEc
* Flash:     16 MiB Macronix MX25L12835F
* RAM:       128 MiB DDR2 SDRAM Nanya NT5TU128M8HE
* Ethernet:  16x 10/100/1000 Mbps
* LEDs:      1 PWR LED (green, not configurable)
             1 SYS LED (green, configurable)
             16 ethernet port link/activity LEDs (green, SoC controlled)
* Buttons:   1 "RESET" button on front panel
* Power      120-240V AC C13
* UART:      1 serial header (J12) with populated standard pin connector on
             the right back of the PCB.
             Pinout (front to back):
             + Pin 1 - VCC marked with white dot
             + Pin 2 - RX
             + Pin 3 - TX
             + PIn 4 - GND

Serial connection parameters:  115200 8N1.

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

OEM upgrade method:

* Log in to OEM management web interface
* Navigate to Maintenance > Firmware
* Select the HTTP radio button
* Select the Active radio button
* Use the browse button to locate the
realtek-generic-zyxel_gs1900-16-initramfs-kernel.bin
file amd select open so File Path is update with filename.
* Select the Apply button. Screen will display "Prepare
for firmware upgrade ...".
*Wait until screen shows "Do you really want to reboot?"
then select the OK button
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
   > sysupgrade -n /tmp/realtek-generic-zyxel_gs1900-16-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-16 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-16-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-16-squashfs-sysupgrade.bin
   it may be necessary to restart the network (/etc/init.d/network restart) on
   the running initramfs image.

Signed-off-by: Raylynn Knight <rayknight@me.com>
[removed duplicate patch title, align RAM specification]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agokernel: backports: add Huawei MA5671A tx-fault workaround
Matthew Hagan [Wed, 4 May 2022 07:26:44 +0000 (08:26 +0100)]
kernel: backports: add Huawei MA5671A tx-fault workaround

This workaround will allow the MA5671A to function, ignoring the
persistently asserted tx-fault.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
(added 5.15 backport)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoapm821xx: add support for kernel 5.15 for testing
Christian Lamparter [Thu, 5 May 2022 16:16:25 +0000 (18:16 +0200)]
apm821xx: add support for kernel 5.15 for testing

This patch copies over refreshed config and patches from 5.10
with the following changes:

 - dropped superfluous tc654/tc655 variant detection patch
   (tc654 support will become available upstream starting with
   5.17-rc7+).

 - dropped xhci msi(x) workaround... as the broken MSI(X)
   is now gone.

 - dropped dwc2 workaround since the driver was fixed and it
   works without it.

Please note: Netgear WNDAP660 & WNDAP620 users:

Due to the kernel's size increase, uboot will likely break
because it is overwrite the kernel during decompression.

To fix this (and debrick affected devices, no reflash
necessary), attach the RJ45-Serial-Console cable and
enter the following in the uboot prompt during bootup:

 setenv kernel_addr_r 1100000
 saveenv
 run bootcmd

to restore the old/previous behavior:

 setenv kernel_addr_r 600000
 saveenv
 run bootcmd

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: usb-xhci-pci-renesas: remove LINUX_5_10 dependency symbol
Christian Lamparter [Thu, 5 May 2022 19:15:57 +0000 (21:15 +0200)]
kernel: usb-xhci-pci-renesas: remove LINUX_5_10 dependency symbol

With 5.4 out of the picture, remove LINUX_5_10 here. This is
needed for the WNDR4700 as otherwise kmod-usb3 isn't available
for 5.15.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agogeneric: 5.15: add missing symbol
Christian Lamparter [Thu, 5 May 2022 18:19:32 +0000 (20:19 +0200)]
generic: 5.15: add missing symbol

Found during apm821xx refresh.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel/x86: move x86' specific watchdogs to the x86 target
Christian Lamparter [Sun, 1 May 2022 12:10:43 +0000 (14:10 +0200)]
kernel/x86: move x86' specific watchdogs to the x86 target

upstream linux have these watchdogs locked behind X86.
These will not build on other architectures. So move them
to target/linux/x86/modules.mk

drivers/watchdog/Kconfig:

|config F71808E_WDT
| tristate "Fintek F718xx, F818xx Super I/O Watchdog"
| depends on X86
|[...]
|config IT87_WDT
| tristate "IT87 Watchdog Timer"
| depends on X86
|[...]
|config ITCO_WDT
| tristate "Intel TCO Timer/Watchdog"
| depends on (X86 || IA64) && PCI
|[...]
|config W83627HF_WDT
| tristate "Watchdog timer for W83627HF/W83627DHG and compatibles"
| depends on X86
|[...]

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agox86: detangle meraki-mx100 / nu801 build confusion
Christian Lamparter [Sun, 1 May 2022 12:10:35 +0000 (14:10 +0200)]
x86: detangle meraki-mx100 / nu801 build confusion

Grommish reported the dreaded build error that happend with 5.4
since the kernel didn't have the cgpio v2 interface. His reason
for the removed 5.4 was that the octeon target had a memory leak
issue, so he had to backport the removed 5.4 kernel for his tests.

Chen Minqiang chimed in and noted that no matter what (i.e.
@TARGET_x86 in depends) didn't prevent the package from being build
on other targets.

From what I can tell, the reason for this was that +nu801 meant
that kmod-meraki-mx100 pulled in an unconditional dependency as
part of to the kernel build.

|scripts/package-metadata.pl mk tmp/.packageinfo
|
|$(curdir)/kernel/linux/compile += $(curdir)/firmware/linux-firmware/compile \
| $(curdir)/firmware/prism54-firmware/compile \
| $(curdir)/kernel/gpio-button-hotplug/compile \
| >>> $(curdir)/system/gpio-cdev/nu801/compile <<<

change this by making the dependency conditional on the
meraki-mx100 module itself. Note that the nu801 enables/sets
the  KCONFIG for the cgpio v2 interface itself, since the
userspace program and not the kernel meraki-mx100 relies on it.

Reference: <https://github.com/openwrt/openwrt/commit/eeb8fd4ce7e9>
Reported-by: Grommish <grommish@gmail.com>
Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agox86: add ib700wdt module for x86 qemu watchdogs
Christian Lamparter [Sun, 1 May 2022 12:10:25 +0000 (14:10 +0200)]
x86: add ib700wdt module for x86 qemu watchdogs

QEMU+Libvirt can emulate the ib700wdt watchdogs
which due to its I/O-Port mapping makes it x86
specific.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoarmvirt: 64: enable driver for QEMU' supported watchdog
Christian Lamparter [Sun, 1 May 2022 12:10:18 +0000 (14:10 +0200)]
armvirt: 64: enable driver for QEMU' supported watchdog

QEMU can emulate several watchdogs:
aspeed SoC, i6300esb, ib700wdt, imx2, cmsdk-apb and sbsa_gwdt.

Out of these, the ARM SBSA Generic Watchdog (sbsa_gwdt)
makes the most sense for the armvirt' 64 target. Both imx2 and
aspeed are guarded by special vendor specific CONFIG_ in the
upstream kernel.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: provide i6300esb for qemu/libvirt
Christian Lamparter [Sun, 1 May 2022 12:10:07 +0000 (14:10 +0200)]
kernel: provide i6300esb for qemu/libvirt

the Intel i6300esb is QEMU's default watchdog. And unlike
the real "Intel i6300ESB I/O Controller hub" hardware, the
i6300esb watchdog driver works on non-x86 targets like for
ARM (armvirt 32bit) and potentially virtual PowerPC and MIPS
targets (if there was any).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: fix corrupted padding on small packets with mt753x dsa
Felix Fietkau [Fri, 6 May 2022 19:54:48 +0000 (21:54 +0200)]
kernel: fix corrupted padding on small packets with mt753x dsa

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: backport flow offload fixes to 5.10
Felix Fietkau [Fri, 6 May 2022 13:49:58 +0000 (15:49 +0200)]
kernel: backport flow offload fixes to 5.10

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: fix flow offload issues with pppoe
Felix Fietkau [Fri, 6 May 2022 13:49:58 +0000 (15:49 +0200)]
kernel: fix flow offload issues with pppoe

sync xt_FLOWOFFLOAD code with latest version of nft_flow_offload

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoipq40xx: consolidate ar40xx driver files
Sungbo Eo [Wed, 4 May 2022 15:54:43 +0000 (00:54 +0900)]
ipq40xx: consolidate ar40xx driver files

Commit f4fb63d2ab4f ("ipq40xx: 5.10: move AR40xx to MDIO drivers") moved
the ar40xx driver files to kernel version specific directories to place
them in different subdirectory in kernel tree. But now kernel 5.4 is
gone and there is no reason to keep them separate. Move them back to
common files/ directory.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoipq40xx: 5.15: fix ar40xx driver
Nick Hainke [Sun, 1 May 2022 19:06:52 +0000 (21:06 +0200)]
ipq40xx: 5.15: fix ar40xx driver

Also apply commit ab7e53e5cce7 ("ipq40xx: 5.10: fix ar40xx driver") to
5.15 driver.

The commit fixes the data corruption on TX packets. Packets are
transmitted, but their contents are replaced with zeros. This error is
caused by the lack of guard (50 ms) intervals between calibration phases.
This error is treated by adding mdelay(50) to the calibration function
code. In the original qca-ssda code, these mdelays were existing, but in
the ar41xx.c they are gone.

Fixes: 87318eb17936 ("ipq40xx: 5:15: copy config and patch from 5.10")
Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoramips: add i2c in dts for GL-MT300N-V2
Ptilopsis Leucotis [Sat, 30 Apr 2022 20:57:04 +0000 (23:57 +0300)]
ramips: add i2c in dts for GL-MT300N-V2

According wiki https://docs.gl-inet.com/en/2/hardware/mt300n-v2/
GL-MT300N-V2 have I2C interface on GPIO4, GPIO5.
Adding I2C in device tree make possible using I2C on this device.

Signed-off-by: Ptilopsis Leucotis <PtilopsisLeucotis@yandex.com>
2 years agoipq806x: add support for Arris TR4400 v2 / RAC2V1A
Rodrigo Balerdi [Thu, 7 Apr 2022 06:18:59 +0000 (03:18 -0300)]
ipq806x: add support for Arris TR4400 v2 / RAC2V1A

Hardware specs:
  SoC: Qualcomm IPQ8065 (dual core Cortex-A15)
  RAM: 512 MB DDR3
  Flash: 256 MB NAND, 32 MB NOR
  WiFi: QCA9983 2.4 GHz, QCA9984 5 GHz
  Switch: QCA8337
  Ethernet: 5x 10/100/1000 Mbit/s
  USB: 1x USB 3.0 Type-A
  Buttons: WPS, Reset
  Power: 12 VDC, 2.5 A

Ethernet ports:
  1x WAN: connected to eth2
  4x LAN: connected via the switch to eth0 and eth1
          (eth0 is disabled in OEM firmware)

MAC addresses (OEM and OpenWrt):
  fw_env @ 0x00  d4:ab:82:??:??:?a  LAN (eth1)
  fw_env @ 0x06  d4:ab:82:??:??:?b  WAN (eth2)
  fw_env @ 0x0c  d4:ab:82:??:??:?c  WLAN 2.4 GHz (ath1)
  fw_env @ 0x12  d4:ab:82:??:??:?d  WLAN 5 GHz (ath0)
  fw_env @ 0x18  d4:ab:82:??:??:?e  OEM usage unknown (eth0 in OpenWrt)

  OID d4:ab:82 is registered to:
  ARRIS Group, Inc., 6450 Sequence Drive, San Diego CA 92121, US

More info:
  https://openwrt.org/inbox/toh/arris/tr4400_v2

IMPORTANT:

This port requires moving the 'fw_env' partition prior to first boot to
consolidate 70% of the usable space in flash into a contiguous partition.
'fw_env' contains factory-programmed MAC addresses, SSIDs, and passwords.
Its contents must be copied to 'rootfs_1' prior to booting via initramfs.
Note that the stock 'fw_env' partition  will be wiped during sysupgrade.

A writable 'stock_fw_env' partition pointing to the old, stock location
is included in the port to help rolling back this change if desired.

Installation:

- Requires serial access and a TFTP server.
- Fully boot stock, press ENTER, type in:
mtd erase /dev/mtd21
dd if=/dev/mtd22 bs=128K count=1 | mtd write - /dev/mtd21
umount /config && ubidetach -m 23 && mtd erase /dev/mtd23
- Reboot and interrupt U-Boot by pressing a key, type in:
set mtdids 'nand0=nand0'
set mtdparts 'mtdparts=nand0:155M@0x6500000(mtd_ubi)'
set bootcmd 'ubi part mtd_ubi && ubi read 0x44000000 kernel && bootm'
env save
- Setup TFTP server serving initramfs image as 'recovery.bin', type in:
set ipaddr 192.168.1.1
set serverip 192.168.1.2
tftpboot recovery.bin && bootm
- Use sysupgrade to install squashfs image.

This port is based on work done by AmadeusGhost <amadeus@jmu.edu.cn>.

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
[add 5.15 changes for 0069-arm-boot-add-dts-files.patch]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agopackages: nvram: add NVRAM quirks for bcm53xx target
Arınç ÜNAL [Wed, 4 May 2022 08:34:29 +0000 (11:34 +0300)]
packages: nvram: add NVRAM quirks for bcm53xx target

Add NVRAM quirks script for the bcm53xx target. Split NVRAM quirks for the
bcm47xx and bcm53xx targets. Move clear partialboot NVRAM quirk for Linksys
EA9500 here. Add set wireless LED behaviour quirk for Asus RT-AC88U.

Use boot() instead of start() as nvram commands are meant to be executed
only once, at boot.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2 years agofirewall: config: remove restictions on DHCPv6 allow rule
Tiago Gaspar [Wed, 4 May 2022 09:36:07 +0000 (10:36 +0100)]
firewall: config: remove restictions on DHCPv6 allow rule

Remove restrictions on source and destination addresses, which aren't
specified on RFC8415, and for some reason in openwrt are configured
to allow both link-local and ULA addresses.
As cleared out in issue #5066 there are some ISPs that use Gloabal
Unicast addresses, so fix this rule to allow them.

Fixes: #5066
Signed-off-by: Tiago Gaspar <tiagogaspar8@gmail.com>
[rebase onto firewall3, clarify subject, bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 years agoltq-vdsl-app: disconnect when service is stopped
Jan Hoffmann [Wed, 27 Apr 2022 17:40:50 +0000 (19:40 +0200)]
ltq-vdsl-app: disconnect when service is stopped

Stop the connection when the control daemon is terminated. The code is
a modified version of the termination routine in version 4.23.1 of the
daemon (which doesn't support VR9 modems anymore).

This could also be implemented by calling the acos and acs commands via
dsl_cpe_pipe.sh in the init script. However, doing it in the daemon
itself has the advantage of also working if it is terminated in another
way (for example during sysupgrade).

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agoltq-vdsl/ltq-adsl: fix elapsed time calculation
Jan Hoffmann [Mon, 25 Apr 2022 19:52:39 +0000 (21:52 +0200)]
ltq-vdsl/ltq-adsl: fix elapsed time calculation

The driver maintains elapsed times by repeatedly accumulating the time
since the previous update in a loop. For the elapsed showtime time, the
time difference is truncated to seconds before adding it, leading to a
sizable error over time.

Move the truncation to before calculation of the time difference in
order to remove this error. Also maintain the total elapsed time in the
same way in full seconds, to prevent the unsigned 32-bit counter from
wrapping around after about 50 days.

Testing on a VR9 device shows that the reported line uptime now matches
the actual elapsed wall time. The ADSL variant is only compile-tested,
but it should also work as the relevant code is identical.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agoltq-atm/ltq-ptm: avoid unnecessary build dependencies
Jan Hoffmann [Mon, 25 Apr 2022 19:43:50 +0000 (21:43 +0200)]
ltq-atm/ltq-ptm: avoid unnecessary build dependencies

Right now, both ltq-adsl-mei and ltq-vdsl-mei are always built, even
when they aren't necessary for the selected variant. This can cause the
build to fail, for example ltq-vdsl-mei doesn't build successfully here
on xway target due to the vectoring callback.

Make these dependencies conditional on the specific package variants,
so they are only built when actually needed.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agouqmi: update to git HEAD
Daniel Golle [Wed, 4 May 2022 00:32:17 +0000 (01:32 +0100)]
uqmi: update to git HEAD

 56cb2d4 nas: add decoding of cell_id
 9a9019a uqmi: wms - added storage to read text messages

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agofstools: update to git HEAD
Daniel Golle [Tue, 3 May 2022 01:10:37 +0000 (02:10 +0100)]
fstools: update to git HEAD

 9e11b37 fstools: remove SELinux restorecon hack

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoprocd: update to git HEAD
Daniel Golle [Tue, 3 May 2022 01:07:40 +0000 (02:07 +0100)]
procd: update to git HEAD

 652e6df init: restore SELinux labels after policy is loaded

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agobase-files: simplify restorecon logic
Daniel Golle [Mon, 2 May 2022 20:07:16 +0000 (21:07 +0100)]
base-files: simplify restorecon logic

Remove forgotten redundant selinuxenabled call and skip the whole
thing in case $IPKG_INSTROOT is set as labels are anyway applied only
later on in fakeroot when squashfs is created.

Fixes: 6d7272852e ("base-files: add missing $IPKG_INSTROOT to restorecon call")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoselinux-policy: update to version 1.1
Dominick Grift [Sat, 16 Apr 2022 13:10:39 +0000 (15:10 +0200)]
selinux-policy: update to version 1.1

try to clean up some labeling inconsistencies
iwinfo loose ends
ucode loose ends
Makefile: adjust mintesttgt (adds blockmount/blockd)
nftables: reads inherited netifd pipe
ucode: reads inherited netifd pipes
mountroot: fowner
sandbox: writes inherited dropbear pipes
unbound related to /tmp/etc/ssl
unbound loose ends
adds a sslconftmpfile for /tmp/etc/ssl
README: maintain a wish list in the README
iwinfo: netifd forgot write
gptfdisk loose ends
iwinfo: netifd wpad reads/writes inherited netifd fifo files
netifd (mac80211.sh) executes iwinfo
luci: executes wireguard
luci-cgi: audits xtables execute access
rcuhttpd: lists ssl certfile dirs
iwinfo, wifi,nftables usage of ttyd pty if available
urandomseed: seedrng needs cap_sys_admin
iwinfo iwinfo, nftables and some chronyd rules related to ntp nts server
nftables, wifi and adds iwinfo skel
nftables, rpcd, ucode
nftables, ucode and seedrng ucode, fw3/nftables, luci
adds ucode skel and some fw3/nftables related
urandomseed: some seedrng rules
fw3 adds some support for fw4
urandomseed: /etc/seedrng is for seed.credit
hotplugcal: runs ucode which is interpreter like
adds a nftables skeleton and makes xtables optional
agent: allow all agents to write inherited dropbear pipes
urandomseed: this seems to be replaced by seedrng
kmodloader: label /etc/modules.conf kmodloader.conffile
Revert "shelexecfile: remove auditallow rule"
Makefile: sort the modules to process by secilc
Moves back to git.defensec.nl
unbound odhcpd (ip) reads net proc
tcp dump
shelexecfile: remove auditallow rule
rrd.cil: fixes indent
Target rddtool from cgi-io instead of runnit it without transition
rrd.cil related
rrd, rpcd, cgiio clean ups related to luci-app-statistics
Rules for rrd files and luci-statistics
unboundcontrol ordering
Several missing permissions
blockmount, dnsmasq, hotplugcall, rpcd, unbound
adds mctp_socket (linux 5.15)
ip: forgot tc-tiny type transition to go along with the fc spec
ip: adds a fc spec for tc-tiny (called by sqm)
adds ttyACM fc spec and various assorted loose ends
.gitattributes: do not export the github workflows
workflow use selinux 3.3

project moved back to https://git.defensec.nl/selinux-policy.git

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
2 years agoipq40xx: fix BDF file for pcie wifi chip on the GL.Inet GL-B2200
Enrico Mioso [Thu, 28 Apr 2022 06:57:24 +0000 (08:57 +0200)]
ipq40xx: fix BDF file for pcie wifi chip on the GL.Inet GL-B2200

After the switch to pre-calibration, ath10k would fail to initialize
the PCIE Wi-Fi on the GL-B200 as follows:

ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[...]
ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=16,variant=GL-B2200 from ath10k/QCA9888/hw2.0/board-2.bin
ath10k_pci 0000:01:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9888/hw2.0
ath10k_pci 0000:01:00.0: failed to fetch board file: -12
ath10k_pci 0000:01:00.0: could not probe fw (-12)

Repackage the BDF file after renaming relevant fields and files to
allow for the Wi-Fi interface to start again.

Fixes: 80d34d9d593 ("ipq40xx: document pcie wifi chip on the GL.Inet GL-B2200")
CC: Christian Lamparter <chunkeey@gmail.com>
CC: Robert Marko <robimarko@gmail.com>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
2 years agobase-files: add missing $IPKG_INSTROOT to restorecon call
Daniel Golle [Mon, 2 May 2022 18:58:56 +0000 (19:58 +0100)]
base-files: add missing $IPKG_INSTROOT to restorecon call

Update to overlooked v2 version of Dominick Grift's patch.

Fixes: 5109bd164c ("base-files: address sed in-place without SELinux awareness")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agodnsmasq: fix jail_mount for serversfile
Bruno Victal [Fri, 15 Apr 2022 14:30:01 +0000 (15:30 +0100)]
dnsmasq: fix jail_mount for serversfile

Fix 'serversfile' option not being jail_mounted by the init script.

Signed-off-by: Bruno Victal <brunovictal@outlook.com>
2 years agobase-files: address sed in-place without SELinux awareness
Dominick Grift [Sun, 1 May 2022 17:54:04 +0000 (19:54 +0200)]
base-files: address sed in-place without SELinux awareness

sed(1) in busybox does not support this functionality:
https://git.savannah.gnu.org/cgit/sed.git/tree/sed/execute.c#n598

This causes /etc/group to become mislabeled when a package requests
that a uid/gid be added on OpenWrt with SELinux

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
[move restorecon inside lock]
Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
2 years agobase-files: fix sysupgrade for kernel-out-of-UBI
Rodrigo Balerdi [Mon, 2 May 2022 08:33:01 +0000 (05:33 -0300)]
base-files: fix sysupgrade for kernel-out-of-UBI

Commit ecbcc0b59551 bricks devices on which the raw kernel and UBI mtd
partitions overlap.

This is the case of the ZyXEL NR7101 for example. Its OEM bootloader has
no UBI support. OpenWrt splits the stock kernel mtd partition into a raw
kernel part used by the bootloader and a UBI part used to store rootfs
and rootfs_data. Running mtd erase on the complete partition during
sysupgrade erases the UBI part and results in a soft brick.

Arguably the best solution would be to fix the partition layouts so that
kernel and UBI partitions do not overlap, also including a stock_kernel
partition to help reverting to stock firmware. This would have the added
benefit of protecting UBI from kernel images that are excessively large.

Fixes: ecbcc0b59551 ("base-files: safer sysupgrade.tar for kernel-out-of-UBI")
Reported-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
2 years agofstools: update to git HEAD
Daniel Golle [Sun, 1 May 2022 16:00:47 +0000 (17:00 +0100)]
fstools: update to git HEAD

 f0fc66a libfstools: check for overlay mounting errors
 128ecaf Update / fix extroot comments
 8a0ba3b libfstools: get rid of "extroot_prefix" global variable
 649cd3f libfstools: use variable for overlay mount-point
 922f1b3 libfstools: avoid segfault in find_mount_point
 ce5eacb libfstools: mtd: improve error handling
 898b328 blockd: restore device_move semantics
 0917d22 block: don't probe mtdblock on NAND (with legacy exceptions)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoramips: ethernet: ralink: add led_source dts-binding
Tamas Balogh [Fri, 15 Apr 2022 09:16:37 +0000 (11:16 +0200)]
ramips: ethernet: ralink: add led_source dts-binding

this adds the new dts-binding "mediatek,led_source"
currently for MT7628AN and MT7688 built-in switches,
which is documented as a 3-bit field configuring the
switch LEDs for various control schemes from 0 to 3.

Normally this is not needed, but e.g. for Asus RT-AC1200-V2
it is a must to set it to the anyway undocumented value
of 4, to have the switch LEDs react correctly on link/act
events. This is an MT7628DAN device, but I doubt this is
a speciality of this particular SoC.

Also added the RT305X_ESW_LED_OFF value to LED states.
Did also rename the register RT5350_EWS_REG_LED_POLARITY
to RT5350_EWS_REG_LED_CONTROL, which is the correct name.
Also making use of defines for some hardcoded values.

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2 years agokirkwood: set testing kernel version to 5.15
Pawel Dembicki [Mon, 25 Apr 2022 07:36:39 +0000 (09:36 +0200)]
kirkwood: set testing kernel version to 5.15

This patch configures kernel testing version for kirkwood target.

Compile tested: all
Run tested: Endian 4i

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2 years agokirkwood: refresh 5.15 kernel config
Pawel Dembicki [Fri, 22 Apr 2022 07:26:20 +0000 (09:26 +0200)]
kirkwood: refresh 5.15 kernel config

Done by "make kernel_oldconfig".

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2 years agogeneric: 5.15: add missing symbol
Pawel Dembicki [Fri, 22 Apr 2022 07:24:34 +0000 (09:24 +0200)]
generic: 5.15: add missing symbol

Found durring kirkwood refreshing.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2 years agokirkwood: copy config and patches to 5.15
Pawel Dembicki [Fri, 22 Apr 2022 07:05:52 +0000 (09:05 +0200)]
kirkwood: copy config and patches to 5.15

This patch makes only a copy of 5.10 config and patches.

Patches merged in upstream was omited.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2 years agoipq40xx: 5.15: refresh subtarget config
Sungbo Eo [Sat, 30 Apr 2022 17:14:23 +0000 (02:14 +0900)]
ipq40xx: 5.15: refresh subtarget config

Update config with `make kernel_oldconfig CONFIG_TARGET=subtarget`.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoipq40xx: 5.15: refresh config
Robert Marko [Mon, 25 Apr 2022 11:10:15 +0000 (13:10 +0200)]
ipq40xx: 5.15: refresh config

Refresh 5.15 kernel config for IPQ40xx due to large number of generic
config changes.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 years agoipq40xx: 5.15: drop upstreamed sleep clock patch
Robert Marko [Mon, 25 Apr 2022 11:09:18 +0000 (13:09 +0200)]
ipq40xx: 5.15: drop upstreamed sleep clock patch

Patch that corrects sleep clock frequency has already been backported
to 5.15 stable so remove the duplicate patch.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 years agoipq40xx: 5.15: add testing kernel version
Ansuel Smith [Mon, 28 Mar 2022 00:55:40 +0000 (02:55 +0200)]
ipq40xx: 5.15: add testing kernel version

Add 5.15 kernel as a testing kernel version in the Makefile.

Linksys EA6350v3/EA8300/MR8300 will not build with buildbot settings and
should be disabled when the target is switched, unless the image size is
reduced again.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
[add comment for increased kernel size]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoipq40xx: 5.15: refresh kernel patches
Ansuel Smith [Sun, 27 Mar 2022 22:12:55 +0000 (00:12 +0200)]
ipq40xx: 5.15: refresh kernel patches

Refresh kernel patches.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
2 years agoipq40xx: refresh ess driver and phy with new api
Ansuel Smith [Sat, 20 Nov 2021 22:10:20 +0000 (23:10 +0100)]
ipq40xx: refresh ess driver and phy with new api

Kernel 5.15 have some new api for ethtool and phy.
Add ifdef to fix compilation error.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
2 years agoipq40xx: fix wrong nand definition for wpj419
Ansuel Smith [Sat, 20 Nov 2021 22:08:25 +0000 (23:08 +0100)]
ipq40xx: fix wrong nand definition for wpj419

Fix wrong nand definition for wpj419 that differ from the upstream
node name.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agoipq40xx: 5:15: refresh config
Ansuel Smith [Sat, 20 Nov 2021 22:07:21 +0000 (23:07 +0100)]
ipq40xx: 5:15: refresh config

Refresh config for kernel 5.15 using make kernel_menuconfig

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agoipq40xx: 5:15: refresh patches
Ansuel Smith [Sat, 20 Nov 2021 22:06:34 +0000 (23:06 +0100)]
ipq40xx: 5:15: refresh patches

- Drop upstream patch
- Refresh dts patch

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agoipq40xx: 5:15: copy config and patch from 5.10
Ansuel Smith [Sat, 20 Nov 2021 22:05:02 +0000 (23:05 +0100)]
ipq40xx: 5:15: copy config and patch from 5.10

Copy config and patch from 5.10 to 5.15

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agoramips: zbt-wg2626: Fix the LAN ports names
Alban Bedel [Sat, 23 Apr 2022 09:28:51 +0000 (11:28 +0200)]
ramips: zbt-wg2626: Fix the LAN ports names

The current names don't match with the labels on the case, reverse
the LAN ports order so they match.

Signed-off-by: Alban Bedel <albeu@free.fr>
2 years agoramips: zbt-wg2626: Add the reset gpio for PCIe port 1
Alban Bedel [Sat, 30 Apr 2022 08:42:33 +0000 (10:42 +0200)]
ramips: zbt-wg2626: Add the reset gpio for PCIe port 1

The 2.4GHz interface doesn't come up properly with the log showing:

    mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

As seen on other MT7621 boards this is caused by a missing reset GPIO.
The MT7621 dtsi set GPIO 19 as PCIe reset GPIO, which on this board
reset the 5GHz interface on port 0. Add GPIO 8 to the PCIe reset GPIO
list to also reset the 2.4GHz interface on port 1.

Signed-off-by: Alban Bedel <albeu@free.fr>
2 years agomdadm: update to 4.2
Nick Hainke [Sun, 10 Apr 2022 07:00:59 +0000 (09:00 +0200)]
mdadm: update to 4.2

Refreshed patches:
- 100-cross_compile.patch

Manually refreshed patches:
- 200-reduce_size.patch

Removed patches:
- 101-mdadm.h-Undefine-dprintf-before-redefining.patch
- 102-Add-missing-include-file-sys-sysmacros.h.patch

Changes:

 e30ca260 Release mdadm-4.2
 8c80d305 Monitor: print message before quit for no array to monitor
 ced5fa8b mdadm: block creation with long names
 b71de056 Correct checking if file descriptors are valid
 b2e4f084 Incremental: Close unclosed mdfd in IncrementalScan()
 195d1d76 imsm: assert if there is migration but prev_map doesn't exist
 75f3ba25 imsm: free allocated memory in imsm_fix_size_mismatch
 bce0eab3 Release mdadm-4.2-rc3
 4389ce73 imsm: introduce helpers to manage file descriptors
 8e1a258e mdadm/Detail: Can't show container name correctly when unpluging disks
 a35aa68f mdadm/lib: Define a new helper function is_dev_alived
 1c66260d Fix 2 dc stream buffer
 d64a37b9 Assemble: apply sysfs rules
 5f6dedfb Fix potential overlap dest buffer
 a0422106 disallow create or grow clustered bitmap with writemostly set
 cf16a350 Fix buffer size warning for strcpy
 60815698 Refactor parse_num and use it to parse optarg.
 f7889e51 Fix error message when creating raid 4, 5 and 10
 54604768 mdadm: fix coredump of mdadm --monitor -r
 feeb2785 Utils: Change sprintf to snprintf
 b8bbf264 Release mdadm-4.2-rc2
 e6878148 Assemble: skip devices that don't match uuid instead of aborting the assembly.
 0663137c Add monitor delay parameter to mdadm.conf
 2b2c5668 tests: Avoid passing chunk size when creating RAID 1
 7d374a18 Fix memory leak after "mdadm --detail"
 92a647c8 Assemble: start dirty and degraded array.
 1c275381 imsm: fix num_data_stripes after raid0 takeover
 5b30a34a Add error handling for chunk size in RAID1
 3a85bf0e imsm: Fix possible memory leaks and refactor freeing struct dl
 ccd61ebf mdadm: Fix building errors
 601ffa78 Don't associate spares with other arrays during RAID Examine
 8d69bf14 Remove Spare drives line from details for external metadata
 7d8935cb imsm: correct offset for 4k disks in --examine output
 dca80fcd Use dev_open in validate geometry container
 f421731c mdadm/super1: It needs to specify int32 for bitmap_offset
 1f5d54a0 Manage: Call validate_geometry when adding drive to external container
 8662f92d imsm: Limit support to the lowest namespace
 fcebeb77 imsm: add devpath_to_char method
 7c798f87 imsm: add generic method to resolve "device" links
 0530e2e0 Prevent user from using --stop with ambiguous args
 83b3de77 Fix some building errors
 ff904202 imsm: change wrong size verification
 c11b1c3c Release mdadm-4.2-rc1
 aec01630 super-intel.c: Handle errors from calls to get_dev_sector_size()
 78c93b00 mdadm: fix growing containers
 af3396da Monitor: make libudev dependency optional
 f94df5cf imsm: support for third Sata controller
 d835518b imsm: nvme multipath support
 4036e7ee imsm: extend curr_migr_unit to u64
 bdbe7f81 Grow: Block reshape when external metadata and write-intent bitmap
 848d71c9 Create: Block automatic enabling bitmap for external metadata
 19ad203e imsm: Update-subarray for write-intent bitmap
 dc95f821 Add "bitmap" to allowed command-line values
 69d40de4 imsm: Adding a spare to an existing array with bitmap
 fbc42556 imsm: Write-intent bitmap support
 b554ab5c Enable bitmap support for external metadata
 b090e910 Modify mdstat parsing for volumes with the bitmap
 db537788 It should be FAILED when raid has not enough active disks
 c7b8547c imsm: add verbose flag to compare_super
 49b69533 mdmonitor: check if udev has finished events processing
 0d583954 Document PPL in man md
 2f86fda3 imsm: use saved fds during migration
 f7a6246b super1.c: avoid useless sync when bitmap switches from clustered to none
 e6561c4d super1: fix Floating point exception
 8818d4e7 Grow: be careful of corrupt dev_roles list
 4ae96c80 mdadm: fix reshape from RAID5 to RAID6 with backup file
 1fe2e100 mdadm/bitmap: locate bitmap calcuate bitmap position wrongly
 75562b57 Dump: get stat from a wrong metadata file when restoring metadata
 69068584 Incremental: Remove redundant spare movement logic
 a64f1263 udev: start grow service automatically
 b4a5ad49 Make target to install binaries only
 9c030dad mdadm/Detail: show correct state for clustered array
 ff6bb131 mdadm: Unify forks behaviour
 a8f3cfd5 imsm: limit support to first NVMe namespace
 ca4b156b Monitor: don't use default modes when creating a file
 b65c1f4a imsm: remove redundant calls to imsm_get_map
 895ffd99 imsm: update num_data_stripes according to dev_size
 ce559078 Create.c: close mdfd and generate uevent
 c3129b39 Detail: fix segfault during IMSM raid creation
 97b51a2c Super1: allow RAID0 layout setting to be removed.
 7f3b2d1d Check if other Monitor instance running before fork.
 cab9c67d mdmonitor: set small delay once
 007087d0 Monitor: stop notifing about containers.
 e2308733 Monitor: refresh mdstat fd after select
 2ce09172 Don't create bitmap for raid5 with journal disk
 64bf4dff Detail: show correct raid level when the array is inactive
 5f418455 manual: update --examine-badblocks
 5e592e1e mdadm/md.4: update path to in-kernel-tree documentation
 138a9e9b Specify nodes number when updating cluster nodes
 77b72fa8 mdadm/Grow: prevent md's fd from being occupied during delayed time
 bcf40dbb Update link to Intel page for IMSM
 8e41153c Use more secure HTTPS URLs
 2cf04330 Detect too-small device: error rather than underflow/crash
 7758ada9 Block overwriting existing links while manual assembly
 d92cee7b restripe: fix ignoring return value of ‘read’ and lseek
 7d90f760 Include count for \0 character when using strncpy to implement strdup.
 f4c8a605 uuid.c: split uuid stuffs from util.c
 03ab9763 Makefile: add EXTRAVERSION support
 3b7aae92 mdcheck: Log when done
 7b99edab Assemble.c: respect force flag.
 ec7d7cee clean up meaning of small typo
 5cfb79de Assemble: print error message if mdadm fails assembling with --uuid option
 12724c01 Manage, imsm: Write metadata before add
 1c294b5d Detail: adding sync status for cluster device
 185ec439 Monitor: improve check_one_sharer() for checking duplicated process
 e1b92ee0 udev: Ignore change event for imsm
 ba1b3bc8 imsm: show Subarray and Volume ID in --examine output
 e48aed3c imsm: support the Array Creation Time field in metadata
 9e449405 Detail: show correct bitmap info for cluster raid device
 06a6101c imsm: Correct minimal device size.
 45c43276 imsm: Remove --dump/--restore implementation
 3364781b imsm: pass subarray id to kill_subarray function
 fd38b8ea Remove the legacy whitespace
 2551061c mdadm.8: add note information for raid0 growing operation
 1e93d0d1 imsm: fill working_disks according to metadata.
 42e641ab Add support for Tebibytes
 4431efeb imsm: Update grow manual.
 e1512e7b mdcheck service can't start succesfully because of syntax error
 1a874930 Change warning message
 aced6fc9 Respect $(CROSS_COMPILE) when $(CC) is the default
 027c099f Assemble: add support for RAID0 layouts.
 329dfc28 Create: add support for RAID0 layouts.
 6da53c0e imsm: Change the way of printing nvme drives in detail-platform.
 b771faef imsm: return correct uuid for volume in detail
 4b31846f Remove unused code
 9cf361f8 Fix up a few formatting issues
 02af3793 Remove last traces of HOT_ADD_DISK
 1cc3965d Manage: Remove the legacy code for md driver prior to 0.90.03
 761e3bd9 super-intel: don't mark structs 'packed' unnecessarily
 85b83a79 SUSE-mdadm_env.sh: handle MDADM_CHECK_DURATION
 4ca799c5 mdcheck: use ${} to pass variable to mdcheck
 6636788a mdcheck: when mdcheck_start is enabled, enable mdcheck_continue too.
 1a1ced1e imsm: allow to specify second volume size
 b6180160 imsm: save current_vol number
 7bd59e79 udev: allow for udev attribute reading bug.
 61109314 Don't need to check recovery after re-add when no I/O writes to raid
 8063fd0f Init devlist as an array
 e53cb968 mdadm/md.4: add the descriptions for bitmap sysfs nodes
 2c2d9c48 mdadm: force a uuid swap on big endian
 43ebc910 mdadm: Introduce new array state 'broken' for raid0/linear
 fd5b09c9 mdadm: check value returned by snprintf against errors
 91c97c54 imsm: close removed drive fd.
 1a52f1fc udev: add --no-devices option for calling 'mdadm --detail'
 d11abe4b mdadm: add --no-devices to avoid component devices detail information
 452dc4d1 mdadm.h: include sysmacros.h unconditionally
 b0681598 mdadm: load default sysfs attributes after assemblation
 486720e0 super-intel: Use put_unaligned in split_ull
 7039d1f8 mdadm.h: Introduced unaligned {get,put}_unaligned{16,32}()
 a4f7290c super-intel: Fix issue with abs() being irrelevant
 4ec389e3 Enable probe_roms to scan more than 6 roms.
 ae7d61e3 mdmon: fix wrong array state when disk fails during mdmon startup
 3c9b46cf udev: Add udev rules to create by-partuuid for md device
 22dc741f Create: Block rounding size to max
 05501181 imsm: fix spare activation for old matrix arrays
 227aeaa8 add missing units to --examine
 2b57e4fe Assemble: Fix starting array with initial reshape checkpoint
 d2e11da4 mdmon: wait for previous mdmon to exit during takeover
 69d08478 mdmon: don't attempt to manage new arrays when terminating
 76b906d2 mdadm/tests: add one test case for failfast of raid1
 cab114c5 Fix reshape for decreasing data offset
 e3615ecb Detail.c: do not skip first character when calling xstrdup in Detail()
 ebf3be99 Fix spelling typos.
 9f421827 imsm: fix reshape for >2TB drives
 a4e96fd8 imsm: finish recovery when drive with rebuild fails
 757e5543 policy.c: Fix for compiler error
 467e6a1b policy.c: prevent NULL pointer referencing
 76d505de Grow: report correct new chunk size.
 085df422 Grow: avoid overflow in compute_backup_blocks()
 563ac108 Assemble: mask FAILFAST and WRITEMOSTLY flags when finding the most recent device
 d7a1fda2 imsm: update metadata correctly while raid10 double degradation
 7cd7e91a Monitor: add system timer to run --oneshot periodically
 4199d3c6 mdcheck: add systemd unit files to run mdcheck.
 cd72f9d1 policy: support devices with multiple paths.
 6b611284 Document PART-POLICY lines
 0833f9c3 Assemble: keep MD_DISK_FAILFAST and MD_DISK_WRITEMOSTLY flag

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agof2fs-tools: fix resize.f2fs (#9800)
Kerma Gérald [Thu, 28 Apr 2022 22:08:09 +0000 (00:08 +0200)]
f2fs-tools: fix resize.f2fs (#9800)

resolve issue
- https://github.com/openwrt/openwrt/issues/9800
add the upstream patch:
- f2fs-tools.git/patch/?id=f056fbeff08d30a6d9acdb9e06704461ceee3500

Signed-off-by: Kerma Gérald <gandalf@gk2.net>
2 years agouboot-mvebu: update to version v2022.04
Josef Schlehofer [Thu, 28 Apr 2022 11:34:35 +0000 (13:34 +0200)]
uboot-mvebu: update to version v2022.04

Release announcement:
https://lore.kernel.org/u-boot/20220404143253.GQ14476@bill-the-cat/

Release notes between tags:
https://source.denx.de/u-boot/u-boot/-/compare/v2022.01...v2022.04?from_project_id=531

All patches were removed, since they are included in this release.

Run tested: Turris Omnia, mvebu/cortex-a9, OpenWrt daily snapshots

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agouboot-mvebu: remove enabled CONFIG_CMD_SETEXPR
Josef Schlehofer [Thu, 28 Apr 2022 13:50:20 +0000 (15:50 +0200)]
uboot-mvebu: remove enabled CONFIG_CMD_SETEXPR

We don't need to make sure that we want to have enabled
CONFIG_CMD_SETEXPR by default, since this is already done in U-boot [1].
This was actually needed only for clearfog board [2], which was added in
commit: da0005a6d08ae33d958a6d8a6c0c12dc07b5b2b8 ("uboot-mvebu: add
patch to enable setexpr for clearfog boards) and send to U-boot to fix
it properly. After a while, there was added support for Turris Omnia,
which uses setexpr as well [3], but for this board, there are no fixes
needed in U-boot and that's why we can remove this option here.

It is helpful with shell scripting. If some downstream distributions are
using it, they should correct it in defconfig for related boards.

[1] https://source.denx.de/u-boot/u-boot/-/blob/e95afa56753cebcd20a5114b6d121f281b789006/cmd/Kconfig#L1504

[2] https://github.com/openwrt/openwrt/blob/852126680e21edc71c0c66561ae5a6d7479dcc67/target/linux/mvebu/image/clearfog.bootscript#L7

[3] https://github.com/openwrt/openwrt/blob/852126680e21edc71c0c66561ae5a6d7479dcc67/target/linux/mvebu/image/turris-omnia.bootscript#L2

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agouboot-mvebu: add patch to enable setexpr for clearfog boards
Josef Schlehofer [Fri, 29 Apr 2022 15:52:29 +0000 (17:52 +0200)]
uboot-mvebu: add patch to enable setexpr for clearfog boards

Option CMD_SETEXPR is already default in U-boot [1], since this was
disabled since initial version for this board, there is send this
patch to U-boot mailing list to enable it.

It is required to use in OpenWrt bootscript for these boards [2].

[1] https://source.denx.de/u-boot/u-boot/-/blob/e95afa56753cebcd20a5114b6d121f281b789006/cmd/Kconfig#L1504

[2] https://github.com/openwrt/openwrt/blob/852126680e21edc71c0c66561ae5a6d7479dcc67/target/linux/mvebu/image/clearfog.bootscript#L7

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agoath79: add Netgear WNDAP360
Nick Hainke [Sun, 20 Mar 2022 16:57:22 +0000 (17:57 +0100)]
ath79: add Netgear WNDAP360

SoC: Atheros AR7161
RAM: DDR 128 MiB (hynix h5dU5162ETR-E3C)
Flash: SPI-NOR 8 MiB (mx25l6406em2i-12g)
WLAN: 2.4/5 GHz
2.4 GHz: Atheros AR9220
5 GHz: Atheros AR9223
Ethernet: 4x 10/100/1000 Mbps (Atheros AR8021)
LEDs/Keys: 2/2 (Internet + System LED, Mesh button + Reset pin)
UART: RJ45 9600,8N1
Power: 12 VDC, 1.0 A

Installation instruction:
0. Make sure you have latest original firmware (3.7.11.4)
1. Connect to the Serial Port with a Serial Cable RJ45 to DB9/RS232
   (9600,8N1)
   screen  /dev/ttyUSB0 9600,cs8,-parenb,-cstopb,-hupcl,-crtscts,clocal
2. Configure your IP-Address to 192.168.1.42
3. When device boots hit spacebar
3. Configure the device for tftpboot
   setenv ipaddr 192.168.1.1
   setenv serverip 192.168.1.42
   saveenv
4. Reset the device
   reset
5. Hit again the spacebar
6. Now load the image via tftp:
   tftpboot 0x81000000 INITRAMFS.bin
7. Boot the image:
   bootm 0x81000000
8. Copy the squashfs-image to the device.
9. Do a sysupgrade.

https://openwrt.org/toh/netgear/wndap360

The device should be converted from kmod-owl-loader to nvmem-cells in the
future. Nvmem cells were not working. Maybe ATH9K_PCI_NO_EEPROM is missing.
That is why this commit is still using kmod-owl-loader. In the future
the device tree may look like this:

&ath9k0 {
       nvmem-cells = <&macaddr_art_120c>, <&cal_art_1000>;
       nvmem-cell-names = "mac-address", "calibration";
};

&ath9k1 {
       nvmem-cells = <&macaddr_art_520c>, <&cal_art_5000>;
       nvmem-cell-names = "mac-address", "calibration";
};

&art {
...
cal_art_1000: cal@1000 {
reg = <0x1000 0xeb8>;
};

cal_art_5000: cal@5000 {
reg = <0x5000 0xeb8>;
};
};

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoath79: add USB power control for GL-AR300M series
PtilopsisLeucotis [Sat, 16 Apr 2022 10:21:58 +0000 (13:21 +0300)]
ath79: add USB power control for GL-AR300M series

Add USB power control in DTS for GL.iNet models:
- AR300M;
- AR300M-Ext;
- AR300M16;
- AR300M16-Ext.

Signed-off-by: PtilopsisLeucotis <PtilopsisLeucotis@yandex.com>
2 years agoath79: add support for TP-Link Deco M4R v1 and v2
Foica David [Thu, 21 Apr 2022 01:20:57 +0000 (04:20 +0300)]
ath79: add support for TP-Link Deco M4R v1 and v2

This commit adds support for the TP-Link Deco M4R (it can also be M4,
TP-Link uses both names) v1 and v2. It is similar hardware-wise to the
Archer C6 v2. Software-wise it is very different. V2 has a bit different
layout from V1 but the chips are the same and the OEM firmware is the same
for both versions.

Specifications:
SoC: QCA9563-AL3A
RAM: Zentel A3R1GE40JBF
Wireless 2.4GHz: QCA9563-AL3A (main SoC)
Wireless 5GHz: QCA9886
Ethernet Switch: QCA8337N-AL3C
Flash: 16 MB SPI NOR

Flashing:

The device's bootloader only accepts images that are signed using
TP-Link's RSA key, therefore this way of flashing is not possible. The
device has a web GUI that should be accessible after setting up the device
using the app (it requires the app to set it up first because the web GUI
asks for the TP-Link account password) but for unknown reasons, the web
GUI also refuses custom images.

There is a debug firmware image that has been shared on the device's
OpenWrt forum thread that has telnet unlocked, which the bootloader will
accept because it is signed. It can be used to transfer an OpenWrt image
file over to the device and then be used with mtd to flash the device.

Pre-requisites:

- Debug firmware.
- A way of transferring the file to the router, you can use an FTP server
  as an example.
- Set a static IP of 192.168.0.2/255.255.255.0 on your computer.
- OpenWrt image.

Installation:

- Unplug your router and turn it upside down. Using a long and thin object
  like a SIM unlock tool, press and hold the reset button on the router and
  replug it. Keep holding it until the LED flashes yellow.
- Open 192.168.0.1. You should see the bootloader recovery's webpage.
  Choose the debug firmware that you downloaded and flash it. Wait until the
  router reboots (at this stage you can remove the static IP).

- Open a terminal window and connect to the router via telnet (the primary
  router should have a 192.168.0.1 IP address, secondary routers are
  different).
- Transfer the file over to the router, you can use curl to download it
  from the internet (use the insecure flag and make sure your source accepts
  insecure downloads) or from an FTP server.
- The router's default mtd partition scheme has kernel and rootfs
  separated. We can use dd to split the OpenWrt image file and flash it with
  mtd:

   dd if=openwrt.bin of=kernel.bin skip=0 count=8192 bs=256
   dd if=openwrt.bin of=rootfs.bin skip=8192 bs=256

- Once the images are ready, you have to flash the device using mtd
  (make sure to flash the correct partitions or you may be left with a
  hard bricked router):

   mtd write kernel.bin kernel
   mtd write rootfs.bin rootfs

- Flashing is done, reboot the device now.

Signed-off-by: Foica David <superh552@gmail.com>
2 years agoramips: add support for Wavlink WL-WN533A8
Davide Fioravanti [Mon, 18 Apr 2022 15:35:33 +0000 (17:35 +0200)]
ramips: add support for Wavlink WL-WN533A8

The Wavlink WL-WN533A8 is an AC3000 router with 5 gigabit ethernet ports
and one USB 3.0 port.
It's also known as Wavlink QUANTUM T8.

Hardware
--------
SoC:   Mediatek MT7621A
RAM:   128MB (Nanya NT5CB64M16GP-EK)
FLASH: 16MB NOR (GigaDevice GD25Q127CSIG3)
ETH:
  - 5x 10/100/1000 Mbps Ethernet (4x LAN + 1x WAN)
WIFI:
  - 1x MT7615DN (2x 2x2:2) 2.4GHz and 5GHz DBDC
  - 1x MT7615NE (4x4:4) 5GHz
  - 8 external antennas
BTN:
  - 1x Reset button
  - 1x WPS button
  - 1x Turbo button
  - 1x Touchlink button
  - 1x ON/OFF switch
LEDS:
  - 1x Red led (system status)
  - 1x Blue led (system status)
  - 7x Blue leds (wifi led + 5 ethernet ports + power)
USB:
  - 1x USB 3.0 port
UART:
  - 57600-8-N-1
    J4

Everything works correctly.

Installation
------------
Flash the initramfs image in the OEM firmware interface
(http://192.168.10.1/update.shtml).
When Openwrt boots, flash the sysupgrade image otherwise you won't be
able to keep configuration between reboots.
(Procedure tested on fw M33A8.V5030.190716 and M33A8.V5030.201204)

Restore OEM Firmware
--------------------
Flash the firmware update available online directly from LUCI.
You can download it from:
https://www.wavlink.com/en_us/firmware/details/f2d247ecba.html
Warning: Remember to not keep settings!
Warning2: Remember to force the flash.

Notes
-----
1) Router mac addresses:
   LAN XX:XX:XX:XX:XX:63 (factory @ 0xe006)
   WAN XX:XX:XX:XX:XX:64 (factory @ 0xe000)
   WIFI 2G/5G XX:XX:XX:XX:XX:65 (factory @ 0x04)
   WIFI 5G XX:XX:XX:XX:XX:66 (factory @ 0x8004)

   LABEL XX:XX:XX:XX:XX:65

   In OEM firmware the DBDC wifi interfaces have these mac addresses:
     2G) 82:XX:XX:XX:XX:65
     5G) 80:XX:XX:XX:XX:65

   While in OpenWrt the addresses are:
     2G) 80:XX:XX:XX:XX:65
     5G) 02:XX:XX:XX:XX:65

2) radio0 will show as 2G/5G interface but only 2G is really usable.

3) There is just one wifi led for all wifi interfaces.
   It currently shows only the radio0 GHz wifi activity.

4) My unit was shipped with M33A8.V5030.190716 firmware which contains
   the http://192.168.10.1/webcmd.shtml page. Entering "telnetd" in
   the input box it will start the telnet daemon. Now you can access
   the telnet console on port 2323 with these credentials:
     username: admin2860
     password: admin

5) The M33A8.V5030.201204 firmware version, doesn't contain anymore the
   webcmd.shtml page. If your router is shipped with a previous firmware
   version and you want to back it up, you can follow the back up
   procedure of the WS-WN583A6.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2 years agoramips: create shared DTSI for Wavlink WN53XAX devices
Davide Fioravanti [Mon, 18 Apr 2022 14:54:40 +0000 (16:54 +0200)]
ramips: create shared DTSI for Wavlink WN53XAX devices

Most of the definitions for WN531A6 will be shared with WN533A8 in a
future commit, so put them in a shared DTSI.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2 years agompc85xx: Fix output location of padded dtb
Martin Kennedy [Tue, 26 Apr 2022 21:04:06 +0000 (17:04 -0400)]
mpc85xx: Fix output location of padded dtb

In commit 7e614820a892 ("mpc85xx: add support for Extreme Networks
WS-AP3825i"), we borrowed a recipe convention from apm821xx for device
tree blob padding. Unfortunately, in the apm821xx target, the image
recipes name the device tree blob differently, meaning that in
mpc85xx, the padded dtb is never consumed.

Change the definition of `Build/dtb` so that it outputs the padded dtb
to the correct location for it to be consumed.

Also, rename the recipe to `Build/pad-dtb`, so it is clear we
are building and padding the device tree blob.

This change fixes Github issue #9779 [1].

[1]: https://github.com/openwrt/openwrt/issues/9779

Fixes: 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i")
Signed-off-by: Martin Kennedy <hurricos@gmail.com>
2 years agobuild: don't remove BUILD_LOG_DIR in _clean
Huangbin Zhan [Sun, 24 Apr 2022 01:58:25 +0000 (09:58 +0800)]
build: don't remove BUILD_LOG_DIR in _clean

targetclean should not remove BUILD_LOG

Fixes: db34b93331e9 (add a version that can be bumped to force toolchain/target rebuild)
Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
2 years agokernel: 5.15: add missing symbol
Robert Marko [Sat, 30 Apr 2022 18:17:24 +0000 (20:17 +0200)]
kernel: 5.15: add missing symbol

CONFIG_QCOM_SPMI_ADC_TM5 gets uncovered while building IPQ40xx with 5.15.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 years agokernel: bump 5.10 to 5.10.113
John Audia [Wed, 27 Apr 2022 18:14:45 +0000 (14:14 -0400)]
kernel: bump 5.10 to 5.10.113

All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
2 years agomediatek: build ubnt-ledbar as a module
Chuanhong Guo [Sat, 30 Apr 2022 15:08:00 +0000 (23:08 +0800)]
mediatek: build ubnt-ledbar as a module

The config for LEDS_UBNT_LEDBAR doesn't stay in mt7629 kconfig because
of its I2C dependency. Build it as a module and let buildroot handle
this config option instead.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7629: disable auxadc in kconfig
Chuanhong Guo [Sat, 30 Apr 2022 14:49:26 +0000 (22:49 +0800)]
mediatek: mt7629: disable auxadc in kconfig

manually edit kconfig to disable MT6577_AUXADC

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7623: disable various input devices
Chuanhong Guo [Sat, 30 Apr 2022 14:35:27 +0000 (22:35 +0800)]
mediatek: mt7623: disable various input devices

Disable support for joysticks, micee and tablets. There's no actual
driver selected in kconfig, and including kernel support is just a
waste of space. Besides that, I believe nobody wants these on a router.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7622: add irq for spi-nor controller
Chuanhong Guo [Sat, 30 Apr 2022 12:24:07 +0000 (20:24 +0800)]
mediatek: mt7622: add irq for spi-nor controller

Save some CPU from unnecessary polling and make SPI flash reading
a tiny bit faster.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: remove left-overs from Linux 5.10
Daniel Golle [Sat, 30 Apr 2022 14:51:21 +0000 (15:51 +0100)]
mediatek: remove left-overs from Linux 5.10

Remove patches and configuration for Linux 5.10 which have been left
in the tree despite the target having been switched to Linux 5.15.

Fixes: c283defa88 ("mediatek: switch to 5.15")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: enable multi-core scheduling
Daniel Golle [Sat, 30 Apr 2022 14:48:58 +0000 (15:48 +0100)]
mediatek: enable multi-core scheduling

Set CONFIG_SCHED_MC in config-5.15 to have make the scheduler aware
of shared caches.

Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: refresh patches for Linux 5.15
Daniel Golle [Sat, 30 Apr 2022 14:17:46 +0000 (15:17 +0100)]
mediatek: refresh patches for Linux 5.15

Run `make target/linux/refresh` to align patches with OpenWrt style.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: backport recent DTS improvements for MT7622 SoC
Daniel Golle [Sat, 30 Apr 2022 14:41:13 +0000 (15:41 +0100)]
mediatek: backport recent DTS improvements for MT7622 SoC

Daniel Golle:
 190-arm64-dts-mediatek-mt7622-fix-GICv2-range.patch

Rui Salvaterra:
 191-arm64-dts-mt7622-specify-the-L2-cache-topology.patch
 192-arm64-dts-mt7622-specify-the-number-of-DMA-requests.patch

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agokernel: don't parse FIT partition on NAND-backed mtdblock
Daniel Golle [Sat, 30 Apr 2022 14:14:01 +0000 (15:14 +0100)]
kernel: don't parse FIT partition on NAND-backed mtdblock

ubiblock devices should be used on NAND flash to store the uImage.FIT
in case the bootloader supports that -- otherwise only rootfs is stored
in UBI while the uImage.FIT contains only the kernel and dtb.
Hence there is no need to enable parsing partitions on NAND mtdblock
devices, it is even responsible for the ugly warning on-opening of the
mtdblock device now. Just don't do it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agokernel: backport patch to relax mtdblock NAND warning
Daniel Golle [Sat, 30 Apr 2022 13:24:41 +0000 (14:24 +0100)]
kernel: backport patch to relax mtdblock NAND warning

Instead of warning loudly about mtdblock devices being created, rather
just warn if they are actually used.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: mt7629: disable mtk thermal
Chuanhong Guo [Fri, 29 Apr 2022 03:47:04 +0000 (11:47 +0800)]
mediatek: mt7629: disable mtk thermal

Manually edit kconfig to disable CONFIG_MTK_THERMAL

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7623: disable ecc engine support
Chuanhong Guo [Fri, 29 Apr 2022 03:32:51 +0000 (11:32 +0800)]
mediatek: mt7623: disable ecc engine support

There's no board using nand on this target atm.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agomediatek: mt7623 enable arch-timer with a patch
Chuanhong Guo [Fri, 29 Apr 2022 02:44:51 +0000 (10:44 +0800)]
mediatek: mt7623 enable arch-timer with a patch

Last attempt on this has a typo and doen't work.
It seems that this is a common problem occurring on every kernel bump,
so let's enforce arch timer support for mt7623 with a patch instead.

Fixes: 9a22943eb2 ("mediatek: 5.15: re-enable arch timer on MT7623 as well")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 years agoipq40xx: 5.10: fix ar40xx driver
Nick Hainke [Mon, 18 Apr 2022 13:04:25 +0000 (15:04 +0200)]
ipq40xx: 5.10: fix ar40xx driver

This commit is completely based on the work of adron-s:
https://github.com/openwrt/openwrt/pull/4721#issuecomment-1101108651

The commit fixes the data corruption on TX packets. Packets are
transmitted, but their contents are replaced with zeros. This error is
caused by the lack of guard (50 ms) intervals between calibration phases.
This error is treated by adding mdelay(50) to the calibration function
code. In the original qca-ssda code [0], these mdelays were existing, but
in the ar41xx.c they are gone.

Tested on:
- Fritz!Box 4040
- Fritz!Box 7530
- Mikrotik SXTsq 5AC
- ZyXEL NBG6617

- [0] https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk/-/blob/NHSS.QSDK.11.4/src/init/ssdk_init.c#L2072

Suggested-by: Serhii Serhieiev <adron@mstnt.com>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Nick Hainke <vincent@systemli.org>