Commit Graph

27332 Commits

Author SHA1 Message Date
Olliver Schinagl
44e0785285 realtek: Migrate to upstream generic MIPS addresses
Upstream generic MIPS uses 0x80100000 and 0x80100400 for the LOADADDR
and ENTRY addresses. As we do not want to diverge from upstream and
patch upstream when not needed, adjust our addresses as well to be
future proof.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Tested-by: Jan Hoffmann <jan@3e8.eu> # HPE 1920-8G, HPE 1920-48G
2023-01-05 21:59:20 +01:00
Ignas Poklad
7801e814dd ramips: add Unielec U7621-06 32M build target
Add 32M build target

Rest of the details as per commit 46ab81e405 ("ramips add support for
UniElec U7621-06")

Signed-off-by: Ignas Poklad <ignas2526@gmail.com>
2023-01-05 00:10:14 +01:00
Nick Hainke
aa6c8c38ea ath79: convert Netgear WNDAP360 WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Merge art into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-04 23:59:09 +01:00
Florian Maurer
0820d62012 lantiq-xrx200: fix wan LED on o2 box 6431
The WIFI LED already worked for me with the latest openwrt 22.03 version.
Wifi LED did not with an older 22.x version (in gluon - there phy0radio did nothing but phy0tpt did show activity

the WAN interface has the name "wan" and not "pppoe-wan" on this device

fixes #7757 (and FS#2987)

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
2023-01-04 23:50:48 +01:00
Shiji Yang
6760c7cbe5 ramips: enable Wi-Fi LED support for Afoundry EW1200
Add LED properties to PCIe node to enable Wi-Fi LED support.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-01-04 23:32:27 +01:00
Shiji Yang
0eefea2ed7 ramips: enable Wi-Fi LED support for Zbtlink ZBT-WE1326
Add LED properties to PCIe node to enable Wi-Fi LED support.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-01-04 23:32:27 +01:00
Nikolay Martynov
665c2154ef ramips: add basic support for tp-link er605-v2
This is a MT7621-based device with 128MB NAND flash, 256MB RAM, and a USB port.
The board has headers to attach console. In order for them to work two solder
bridges near those pads need to be made.

The defice has the following partition table:

```
0x000000000000-0x000000080000 : "u-boot"
0x000000080000-0x000000100000 : "u-boot-env"
0x000000100000-0x000000140000 : "factory"
0x000000140000-0x000007e00000 : "firmware"
0x000007e00000-0x000008000000 : "panic-ops"
```

`firmware` partition contains UBI volumes. Unfortunately I accidentally wiped
partition and I no longer have access to it.

`firmware` partition contains 'secondary' U-Boot which is run by 'first' u-boot.
It also contains various configuration partitions that include device info and
MAC address. There also seems to be 'primary' and 'backup' set of 'main' volumes.

U-boot has `mtkupgrade` command that just overrides data on firmware partitions.
Firmware file provided by TP-Link cannot be used with that command.

U-boot also has 'recovery' http server. Unfortunately I was not able to make it
work with manufacturer's firmware.

Manufacturer's firmware essentially contains multiple UBI volumes along with
'partition table'. Unfortunately I no longer can properly run manufacturer's
firmware so I cannot at the moment try to a support for building 'factory' images.

This patch adds support for initramfs image as well as sysupgrade image.

This seems to be pretty standard MT7621 board otherwise.

Things that work:
* network
* leds
* usb
* factory MAC detection

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
2023-01-04 23:19:19 +01:00
Marian Sarcinschi
c4b806d5c4 ramips: add missing LEDs to Asus RT-AX53U
This patch adds the missing LEDs to Asus RT-AX53U.
Based on PR #10400 and patch provided in #11068
 - enable the two LEDs controlled by mt7915e for wireless;
 - add label to power LED so it works properly and fix formatting;
 - add the USB LED;
 - switch LEDs are best left to be controlled by hardware for now.

Co-Authored-By: Ivan Rozhuk <rozhuk.im@gmail.com>
Co-Authored-By: Shiji Yang <yangshiji66@qq.com>
Co-Authored-By: Hartmut Birr <e9hack@gmail.com>
Tested-by: Felix Baumann <felix.bau@gmx.de>
Tested-by: Marian Sarcinschi <znevna@gmail.com>
Signed-off-by: Marian Sarcinschi <znevna@gmail.com>
2023-01-04 21:56:49 +01:00
Bjoern Dobe
1036545b00
ipq40xx: fix wlan mac address for Aruba AP-303H
Assigns the correct mac address from nvmen to the wlan interfaces.
This Mac address corresponds to the label "Wireless MAC" on the device
and the stock firmware.
Removes duplicate entry of calibration variant for both radios.

Fixes: cfc13c4459 ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data")
Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Bjoern Dobe <bjoern@dobecom.de>
2023-01-04 19:17:56 +01:00
Christian Marangi
f4d949b404
generic: 5.15: backport qca8k fixup for mgmt and mdio read/write
Backport qca8k fixup for mgmt and mdio read/write for kernel 5.15 fixup
port dropping and configuration issue.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Robert Marko <robimarko@gmail.com>
2023-01-04 16:54:19 +01:00
Seth David Schoen
68f983ba41 generic: 5.10: backport Treat IPv4 segment's lowest address as unicast
Backport patch from kernel 5.14.

Treat only the highest, not the lowest, IPv4 address within a local
subnet as a broadcast address, as subnets do not need two different
broadcast addresses and networking documentation consistently prefers
the highest address as broadcast.

This patch was merged in upstream net-next tree in May 2021 at

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=94c821c74bf5

This eventually frees up one address per subnet. It matches behavior
suggested in our Internet-Draft, and also the default behavior of OpenBSD
and FreeBSD.

Signed-off-by: Seth David Schoen <schoen@loyalty.org>
2023-01-04 00:48:15 +01:00
John Audia
738b04c881 kernel: bump 5.15 to 5.15.86
Removed upstreamed:
  pending-5.15/101-Use-stddefs.h-instead-of-compiler.h.patch[1]
  ipq806x/patches-5.15/122-01-clk-qcom-clk-krait-fix-wrong-div2-functions.patch[2]
  bcm27xx/patches-5.15/950-0198-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch[3]

Manually rebased:
  ramips/patches-5.15/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch[4]

Added patch/backported:
  ramips/patches-5.15/107-PCI-mt7621-Add-sentinel-to-quirks-table.patch[5]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=c160505c9b574b346031fdf2c649d19e7939ca11
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=a051e10bfc6906d29dae7a31f0773f2702edfe1b
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=ec1727f89ecd6f2252c0c75e200058819f7ce47a
4. Quilt gave this output when I applied the patch to rebase it:
% quilt push -f
Applying patch platform/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch
patching file arch/mips/ralink/Kconfig
patching file drivers/pci/controller/Kconfig
patching file drivers/pci/controller/Makefile
patching file drivers/staging/Kconfig
patching file drivers/staging/Makefile
patching file drivers/staging/mt7621-pci/Kconfig
patching file drivers/staging/mt7621-pci/Makefile
patching file drivers/staging/mt7621-pci/TODO
patching file drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt
patching file drivers/staging/mt7621-pci/pci-mt7621.c
Hunk #1 FAILED at 1.
Not deleting file drivers/staging/mt7621-pci/pci-mt7621.c as content differs from patch
1 out of 1 hunk FAILED -- saving rejects to file drivers/staging/mt7621-pci/pci-mt7621.c.rej
patching file drivers/pci/controller/pcie-mt7621.c
Applied patch platform/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch (forced; needs refresh)

Upon inspecting drivers/staging/mt7621-pci/pci-mt7621.c.rej, it seems that
the original patch wants to delete drivers/staging/mt7621-pci/pci-mt7621.c
but upstream's version was not an exact match.  I opted to delete that
file.

5. Suggestion by hauke: 19098934f9
"This patch is in upstream kernel, but it was backported to the old
staging driver in kernel 5.15."

Build system: x86_64
Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-01-03 23:55:45 +01:00
Robert Marko
a80e630131 oxnas: sata_oxnas: use ata_link_err
Kernel 5.15.86 has backported ("ata: libata: move ata_{port,link,dev}_dbg
to standard pr_XXX() macros") and this is now causing compilation errors
for oxnas SATA driver due to usage of ata_link_printk().

Upstream has migrated to using the appropriate
ata_link_{err, warn, notice, info} calls a while ago so its not affected.

Lets do the same for oxnas SATA driver and use ata_link_err() instead of
ata_link_printk().

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-01-03 23:40:30 +01:00
Nick Hainke
b069d4ac6d octeontx: add 5.15 testing kernel
Add 5.15 as testing.

Refreshed:
- 0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch

Acked-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-03 20:56:01 +01:00
Nick Hainke
c6edf3bf8c octeontx: 5.15: copy config
Copy config from kernel 5.10 to kernel 5.15.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-03 20:56:01 +01:00
Nick Hainke
bb39ed3f36 zynq: add 5.15 testing kernel
Enable testing kernel.

Reviewed-by: Luis Araneda <luaraneda@gmail.com>
Tested-by: Luis Araneda <luaraneda@gmail.com> (Digilent Zybo Z7-20)
Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-03 20:56:01 +01:00
Nick Hainke
45cb7336cb zynq: 5.15: copy config
Copy config from kernel 5.10 to kernel 5.15.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-03 20:56:01 +01:00
Nick Hainke
65f606fb82 ipq40xx: delete files used for building 5.10 kernel
The kernel 5.15 now defaults. Remove unnecessary files.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-01-03 20:56:01 +01:00
Olliver Schinagl
9260027535 realtek: Migrate to libdeflate
Libdeflate is a more advanced gzip compressor, which allows for faster
decompression, higher compression speed (factor 3-4), while being fully
gzip compatible.

Some comparison
gzip    | libdeflate-gzip | delta  | image [openwrt-realtek-rtl839x-*]
--------+-----------------+--------+-----------------------------------------------
6589174 | 6298794         | 290380 | d-link_dgs-1210-52-initramfs-kernel.bin
6291632 | 6029488         | 262144 | d-link_dgs-1210-52-squashfs-factory_image1.bin
6292270 | 6030128         | 262142 | d-link_dgs-1210-52-squashfs-sysupgrade.bin
6589142 | 6298760         | 290382 | zyxel_gs1900-48-initramfs-kernel.bin
6292264 | 6030122         | 262142 | zyxel_gs1900-48-squashfs-sysupgrade.bin

and changing lzma to (libdeflate-)gzip on existing rtl930x target:
gzip    | libdeflate-gzip | delta  | image [openwrt-realtek-rtl930x-*]
--------+-----------------+--------+--------------------------------------
6816230 | 6510382         | 305848 | zyxel_xgs1250-12-initramfs-kernel.bin

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Sander Vanheule <sander@svanheule.net>
2023-01-02 10:18:44 +01:00
Olliver Schinagl
c9a7c00f80 realtek: Disable boston clock
We are not on the 'boston' platform so no point in having that clock
driver enabled.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2023-01-01 22:31:20 +01:00
Hauke Mehrtens
55d176fd0b tfa-layerscape: Use trusted-firmware-a.mk
This converts the trusted firmware arm build Makefile to make use of
the common trusted-firmware-a.mk file. This also fixes the build with
binutils 2.39.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-31 20:02:09 +01:00
Tony Ambardar
6fc334cbdc ipq40xx: sysupgrade: allow flashing Linksys factory firmware
Allow forced flashing of a factory firmware image, after checking for the
correct FIT magic header and Linksys board-specific footer. Details of the
footer are already described in scripts/linksys-image.sh.

This is convenient as it avoids using a TFTP server or OEM GUI, and allows
restoring OEM firmware or installing a "breaking" OpenWrt update (e.g DSA
migration and kernel repartition) directly from the command line.

Devices supported at this time include EA6350v3, EA8300, MR8300 and WHW01.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by:  Wyatt Martin <wawowl@gmail.com> # WHW01
Tested-by:  Tony Ambardar <itugrok@yahoo.com> # EA6350v3
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2022-12-31 05:02:38 -08:00
Tony Ambardar
4b367e2b60 ipq40xx: migrate Linksys WHW01 to DSA and re-enable
Convert Linksys WHW01 network configuration to DSA and re-enable builds.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Wyatt Martin <wawowl@gmail.com>
Signed-off-by: Wyatt Martin <wawowl@gmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2022-12-31 05:02:38 -08:00
Tony Ambardar
2a9f3b7717 ipq40xx: fix up Linksys WHW01 board name, device definition
Update the board name defined in DTS to match online documentation and the
name encoded into factory firmware. This helps supports flashing firmware
factory images using 'sysupgrade'.

Original WHW01 device definition assumes the rootfs IMAGE_SIZE is 33 MB
instead of the correct 74 MB, and defines factory images which include
extra adjustments/padding that do not match OEM factory images and may
cause problems flashing. Update image size and build recipe to fix these.

Suggested-by: Wyatt Martin <wawowl@gmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2022-12-31 05:02:38 -08:00
Tony Ambardar
cda6f1c832 ipq40xx: re-enable EA6350v3, EA8300, MR8300 builds
Raise the kernel size from 3 MB to 5 MB for EA6350v3, EA8300 and MR8300,
and correspondingly reduce the rootfs size by 2 MB:
  * modify partition definitions in related .dts files
  * modify device kernel/image sizes in generic.mk

Update to compat-version 2.0 to force factory image usage on sysupgrade,
noting the current version 1.1 is an unreleased update for DSA migration.

Also update the compat-version message, explaining the need to run one of
the following console commands to update U-Boot's kernel-size variable
before flashing the OpenWrt factory image.

    fw_setenv kernsize 500000          # (OpenWrt command line)

    setenv kernsize 500000 ; saveenv   # (U-Boot serial console)

Finally, re-enable the 3 devices.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Nicolas TORMO <badulesia.granieri@gmail.com> # MR8300
Tested-by: Tony Ambardar <itugrok@yahoo.com> # EA6350v3
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2022-12-31 05:02:38 -08:00
Nick Hainke
00952fb0ca
bcm47xx: replace "Devices-database-update-patch" with upstream patches
Replace "320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch" with
upstream patches:
- 320-v5.17-MIPS-BCM47XX-Add-board-entry-for-Linksys-WRT320N-v1.patch
- 321-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-R6300-v1.patch
- 322-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-WN2500RP-v1-v2.patch
- 323-v6.0-MIPS-BCM47XX-Add-support-for-Netgear-WNR3500L-v2.patch
- 324-v5.17-MIPS-BCM47XX-Add-LEDs-and-buttons-for-Asus-RTN-10U.patch
- 325-v5.17-MIPS-BCM47XX-Define-Linksys-WRT310N-V2-buttons.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-30 20:03:59 +01:00
Nick Hainke
defd016aef
bcm47xx: add tags to upstreamed patches
All of the mtd patches are upstreamed to 5.18. Add tags indicating this.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-30 20:03:56 +01:00
INAGAKI Hiroshi
ef4e1ae18d ramips: enable BBT on NAND in I-O DATA devices
This patch enables MediaTek NAND BBT on I-O DATA devices manufactured by
MSTC (MitraStar Technology Corp.).

[WN-AX2033GR]
Tested-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
[WN-AX1167GR2, WN-DX1167R, WN-DX1200GR, WN-DX2033GR]
Tested-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-30 16:12:15 +08:00
Chuanhong Guo
d29dbf052a
mediatek: drop redmi-ax6000 variant with modified env
This variant uses xiaomi factory u-boot and modified u-boot-env &
bootcmd.
By modifying uboot-env, the xiaomi firmware recovery provided in
the vendor u-boot doesn't work anymore. It's possible to put
u-boot into a state where it refuese to take any serial input.
If the u-boot is in this state, users can't restore their
firmware without taking the flash off the board.
We now have a -stock variant where the vendor u-boot is used in
a way that xiaomi firmware recovery still works, and a -ubootmod
variant where we get rid of all xiaomi components, have more
usable space and no uart console lock. These two should cover all
use cases and we don't need this variant anymore.
Drop this redmi-ax6000 variant. Existing users of this variant
should perform a u-boot mod or restore to the -stock layout.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-12-30 16:11:59 +08:00
Hauke Mehrtens
7272203022 ramips: Refresh patches
The patch was not applying cleanly any more.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-29 19:01:15 +01:00
Nick Hainke
3195a992d6
ipq40xx: convert Aruba AP-303H to DSA and enable target again
The target was disabled since noone did the DSA conversion. Add the
conversion and enable it again.

Tested-by: John Walshaw <jjw@myself.com>
Signed-off-by: Bjoern Dobe <bjoern@dobecom.de>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-29 17:39:30 +01:00
Šimon Bořek
2cad88b99f
mpc85xx: change CPU_TYPE from 8540 to 8548
All subtargets as p1010, p1020, p2020 uses e500v2 cores [1] [2] [3] [4],
 so let's force cpu type to 8545 for all mpc85xx target even though
there might exist device with e500v1, but there is no such router supported in OpenWrt
and because of that it does not make sense to to set CPU_TYPE for each subtarget.

All MPC85xx SoC can be found here:
https://www.nxp.com/products/processors-and-microcontrollers/legacy-mpu-mcus/powerquicc-processors:POWERQUICC_HOME#powerquicc-iii-mpc85xx

[1] https://www.nxp.com/docs/en/application-note/AN2807.pdf
[2] https://www.nxp.com/docs/en/fact-sheet/QP1010FS.pdf
[3] https://www.nxp.com/docs/en/product-brief/P1020PB.pdf
[4] https://www.nxp.com/docs/en/fact-sheet/QP20XXFS.pdf

Co-authored-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
2022-12-29 16:49:09 +01:00
Furong Xu
8bac5dc18a mediatek: add new layout for Xiaomi Redmi Router AX6000 for OpenWrt U-Boot
This new layout is only bootable with OpenWrt U-Boot. It reuses the
two crash partions and expands the ubi partion to the end of whole flash.

Do not use this layout with stock U-Boot!

Signed-off-by: Furong Xu <xfr@outlook.com>
2022-12-29 03:00:31 +00:00
Sander Vanheule
045baca10b realtek: deduplicate GS1900 recipes
ZyXEL GS1900 devices with SoCs from both the RTL838x and RTL839x
families share the same image structure and size of the firmware
partition. Additionally, the GS1900-48 recipe provided a parameter for
the zyxel-vers command, but this parameter is not used. Deduplicate the
recipes by moving it to target/linux/realtek/image/common.mk.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-28 22:44:10 +01:00
Sander Vanheule
1e13081064 realtek: fix GS1900-48 firwmare partition
The listed partition size doesn't match the original partition size, and
actually overlaps with the following partition. The partition node name
for the "firmware" partition also has an extra 'b' compared to the
partition offset.

Fixes: 47f5a0a3ee ("realtek: Add support for ZyXEL GS1900-48 Switch")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-28 22:44:10 +01:00
Sander Vanheule
80be0fea03 realtek: fix ZYXELS_VERS for GS1900-48
The GS1900-48 firmware image is identified by the 'AAHN' ID, while the
GS1900-48HP is identified by 'AAHO' [1]. The latter was used, resulting
in the following error message when upgrading via the stock web UI:

  Device only can support firmware from V1.00(AAHN.0) and later version

Fix image generation by using the correct ID.

[1] https://download.zyxel.com/GS1900-48/firmware/GS1900-48_2.70(AAHN.3)C0_2.pdf

Link: https://forum.openwrt.org/t/146533
Fixes: 47f5a0a3ee ("realtek: Add support for ZyXEL GS1900-48 Switch")
Suggested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-28 22:44:10 +01:00
Sander Vanheule
ab8a5f2ea0 realtek: fix default image generation
While cleaning up the makefiles for the realtek target, the order of the
default image generating commands was accidentally changed. This caused
the image signature to end up somewhere in the middle, misaligning the
rootfs. As a result, sysupgrade couldn't verify upgrade images anymore,
and devices end up in a boot loop due to the unaligned (and not found)
rootfs.

Fixes: 94d8b4852b ("realtek: Cleanup Makefiles")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-28 22:44:10 +01:00
Nick Hainke
a14170b6e9 ath79: fix calibration-art for some boards
"0x1000" looks suspicious. By looking at data provided
by @DragonBluep I was able to identify the correct size for
AR9380, AR9287 WiFis. Furthermore, PowerCloud Systems CAP324
has a AR9344 WiFi.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-28 22:36:32 +01:00
Felix Fietkau
6c85c343d2 kernel: fix ethernet regression on mt7986
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-12-28 20:06:12 +01:00
Felix Baumann
3f1e9f6f3b
ramips: add support for read/write uboot env to Asus RX-AX53U
Add support for read/writing uboot env by renaming the second partition
to its stock label "nvram" and remove the deemed unnecessary
"read-only". Split the first partition "u-boot" in two, in order
to allow `fw_setenv` safe write-access to the uboot environment
variables.

This implements hauke's request from [1].
Based on the patch provided by Shiji Yang.

[1] https://github.com/openwrt/openwrt/pull/10400#discussion_r945153224

Co-Authored-By: Shiji Yang <yangshiji66@qq.com>
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
[ improve commit title and description, fix some whitespace problem ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-28 14:04:57 +01:00
Birger Koblitz
e143e27c8c realtek: Fix reset register access
The reset register on RTL93xx not merely have bits to execute
a reset of a hardware component, but also configuration bits for
reset procedures. Keep them during executing a reset.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
[backport to 5.10 kernel]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-28 16:53:56 +01:00
Álvaro Fernández Rojas
5863363493 bcm27xx: fix BCMGENET kernel config
Revert backported upstream commits 421f8663b3a7 and 8d820bc9d12b, which have
introduced a regression in BCMGENET kconfig that disabled the network driver
for the Raspberry Pi.

Fixes: 0c405bceba ("kernel: bump 5.15 to 5.15.85")
Fixes: e900822326 ("kernel: bump 5.15 to 5.15.84")

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-12-28 13:41:04 +01:00
Felix Fietkau
425945c313 kernel: mediatek: fix WED offload regression on MT7622
Fix dealing with DSA untagging offload

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-12-27 19:10:05 +01:00
Felix Fietkau
78c51de847 kernel: mediatek: improve ethernet fix for dealing with small fragments
Replace the workaround on MT7986 with a proper fix. Software workaround is
still needed on older chips.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-12-27 19:10:04 +01:00
Olliver Schinagl
0a83889e89 realtek: Reduce variable scopes
Linus prefers to have loop initializers nice and tightly scoped. In
OpenWRT this has been possible since 41a1a652fb ("kernel: backport
gnu11 upgrade").

This patch cleans up variable scope while trying to do the above for
'simple for loops'.

This cleans up and simplifies some functions and code, and pulls in
variables to a smaller scope.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-27 16:33:15 +01:00
Olliver Schinagl
94d8b4852b realtek: Cleanup Makefiles
Our current Makefiles a little bit messy and can be improved somewhat,
both in whitespace and in style.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-27 16:33:15 +01:00
Olliver Schinagl
0a931767cf realtek: Replace C++ style comments
The only exception to C++ style comments are SPDX license identifier
markers at the start of C files (even headers have C style markers).

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-27 16:33:01 +01:00
Olliver Schinagl
758c88b969 realtek: Whitespace and codestyle cleanup
Fix some ugly whitepsaces and codestyle issues around the realtek sources.

While this is by no means perfect, it catches what it caught.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-27 16:31:48 +01:00
Jan Hoffmann
2c40359c5c realtek: add cond_resched to loops accessing the FDB table
A full loop accessing all FDB entries can take several milliseconds
(on RTL839x about 20 ms), so give other kernel tasks a chance to run.
This is especially important for rtl83xx_port_fdb_dump which is itself
called in a loop for all ports by the kernel.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-12-27 16:29:57 +01:00
Jan Hoffmann
ae0a3f88ac realtek: restructure rtl_table_read/write
These two functions are identical apart from writing different values to
the read/write bit. Create a new function rtl_table_exec to reduce code
duplication.

Also replace the unbounded busy-waiting loop. The new implementation may
sleep, but as the hardware typically responds before the first poll, any
callers doing many table accesses still need to make sure not to block
other kernel tasks themselves.

So far, polling timeout errors are only handled by logging an error, but
a return value is added to allow proper handling in the future.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-12-27 16:29:57 +01:00
Jan Hoffmann
9aa123d778 realtek: simplify log messages in rtl83xx_mdio_probe
This function currently prints three messages for every switch port at
KERN_INFO level. This takes a considerable amount of time during bootup
and can even trigger an external watchdog.

Replace these log messages by a single one at KERN_DEBUG level.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-12-27 16:29:57 +01:00
Jan Hoffmann
c94ca63ed4 realtek: don't set L2LEARNING flag in rtl83xx TX header
As learning for the CPU port is now disabled globally, the bit in the
TX header doesn't have any effect anymore. Remove it to make the header
consistent with the global configuration.

Originally, this change was intended to be applied before commit
eb456aedfe ("realtek: use assisted learning on CPU port"), which is
why the commit message incorrectly mentions that the TX header already
disables learning.

The reason for disabling learning on the CPU port in the first place is
that it doesn't work correctly when packets are trapped to the CPU and
then forwarded by the CPU to other ports. In that case, the switch would
incorrectly learn the CPU port as source. An example that triggered this
issue are Multicast Listener Reports and IGMP membership reports.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-12-27 16:29:39 +01:00
Jan-Niklas Burfeind
c7d3bbb909 sunxi: ensure NanoPi R1 has unique MAC address
Ensure the MAC address for all NanoPi R1 boards is assigned uniquely for
each board.

The vendor ships the device in two variants; one with and one without
eMMC; but both without static mac-addresses.
In order to assign both board types unique MAC addresses, fall back on
the same method used for the NanoPi R2S and R4S in case the EEPROM
chip is not present by generating the board MAC from the SD card CID.

[0] https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R1#Hardware_Spec

Similar too and based on:

commit b5675f500d ("rockchip: ensure NanoPi R4S has unique MAC address")

Co-authored-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2022-12-25 02:27:55 +01:00
John Audia
5925401007 kernel: bump 5.10 to 5.10.161
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-24 15:24:18 +01:00
John Audia
0c405bceba kernel: bump 5.15 to 5.15.85
All patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-24 15:22:33 +01:00
Josef Schlehofer
b4da12c2a0
mpc85xx: drop empty patch as it backported to LTS kernel 5.15.70
This patch is part of Linux kernel 5.15.70, the content was removed, but
the empty file is still being carried over the repository, so remove it
once for all

Fixes: e1b009c ("kernel: bump 5.15 to 5.15.70")
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-12-24 12:24:46 +01:00
Olliver Schinagl
f649a7b5f3
realtek: 5.15: Fix incorrect switch patches
Add correct header to patche(s) to be correctly used
by git am and have better tracking of it.

See commit f1f97db627 ("realtek: Convert incorrect v5.10 patches").

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-24 11:56:21 +01:00
Olliver Schinagl
113fd5b93b
realtek: 5.10: Fix incorrect switch patches
Add correct header to patche(s) to be correctly used
by git am and have better tracking of it.

See commit f1f97db627 ("realtek: Convert incorrect v5.10 patches").

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-12-24 11:56:21 +01:00
Christian Marangi
b2bfea481e
omap: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:22 +01:00
Christian Marangi
314d997e26
pistachio: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:22 +01:00
Christian Marangi
8e2e67d117
octeontx: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:21 +01:00
Christian Marangi
c028e1b1a0
tegra: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:21 +01:00
Christian Marangi
6d7129ef04
zynq: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:21 +01:00
Christian Marangi
64ef920bb7
mxs: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:20 +01:00
Christian Marangi
cada395a50
kirkwood: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:20 +01:00
Christian Marangi
cf49c7d522
gemini: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:20 +01:00
Christian Marangi
13d6048e06
ath25: add generic subtarget
Same game as for 853e4dd306. Add generic
to the filenames.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-23 19:44:14 +01:00
Hauke Mehrtens
376eb2d924 ramips: Fix drivers/pwm/pwm-mediatek-ramips.c compile
The pwmchip_remove() function returns void now. Fix a compile problem in
the drivers/pwm/pwm-mediatek-ramips.c driver.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-23 00:43:39 +01:00
Hauke Mehrtens
92eb787d08 kernel: Move CONFIG_PWM_IMG and CONFIG_PWM_MEDIATEK to generic configuration
In the build of the ramips/mt76x8 target the user gets asked about these
two configuration options, add them to the generic kernel configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-23 00:43:33 +01:00
Hauke Mehrtens
259c014555 kernel: Move CONFIG_DRM_XEN_FRONTEND to generic configuration
The CONFIG_DRM_XEN_FRONTEND configuration symbol is also used by the
layerscape target, move it to the generic kernel configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-23 00:43:23 +01:00
Hauke Mehrtens
f620eb70f1 kernel: Add missing kernel configuration options
This fixes compile of the bmips target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-21 15:15:00 +01:00
Hauke Mehrtens
fbd5573dca kernel: Reorder kernel configuration options
./scripts/kconfig.pl '+' target/linux/generic/config-5.10 /dev/null > target/linux/generic/config-5.10-new
mv target/linux/generic/config-5.10-new target/linux/generic/config-5.10

./scripts/kconfig.pl '+' target/linux/generic/config-5.15 /dev/null > target/linux/generic/config-5.15-new
mv target/linux/generic/config-5.15-new target/linux/generic/config-5.15

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-21 15:14:51 +01:00
Petr Štetiar
5f973c1eef Revert "Revert "mvebu: switch default kernel to 5.15""
This reverts commit 97c77fff28 as commit
8be6350f66 ("generic: 5.15: allow MV88E6xxx built-in when PTP support
disabled") contains the fix, so lets enable kernel 5.15 on mvebu again.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-12-20 14:00:35 +01:00
John Audia
e900822326 kernel: bump 5.15 to 5.15.84
All patches automatically rebased

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-19 23:51:10 +01:00
Alexander Couzens
17c6fb1054 ath79: image: don't depend on other COMPILE targets
A device COMPILE target should not depend on another COMPILE.
Otherwise race condition may happen.
The loader is very small. Compiling it twice shouldn't
have a huge impact.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2022-12-19 12:27:35 +00:00
Julien Dusser
b893aa7992 ramips: add support for Linksys E5400 and clones
Linksys E5400 is a 2.4/5GHz dual band AC router, based on MediaTek
MT7628AN. This device is also sold as Linksys E2500v4, E5300 and E5350
with the same hardware, but software speed limitations in vendor
firmwares.

Specification:
 * SoC: MT7628AN (580 MHz)
 * RAM: DDR2 64 MiB
 * Flash: 16 MiB NOR (W25Q128BV)
 * Wi-Fi:
   * 2.4GHz: SoC Built-in
   * 5GHz: MT7612EN
 * Ethernet: 5x 100Mbps
   * Switch: SoC built-in
 * UART:
   * 115200, 8N1, 3.3V (real u-boot speed: 119050)
   * Pinout JB4: 1:[3V3] (TXD) (RXD) [NC] (GND)

Flash Layout:
  0x0000000-0x0030000 : "Bootloader"
  0x0030000-0x0040000 : "Config"
  0x0040000-0x0050000 : "Factory"
  0x0050000-0x0ff0000 : "Kernel"
  0x0ff0000-0x1000000 : "CBTinfo"

MAC address:
  LAN: factory 0x28
  WAN: LAN + 1
  2.4G: LAN + 2
  5G: LAN + 3

Installation:
1. Connect to UART, use LF as EOL (not CRLF)
2. Set IP address
  - Press 4 during boot
  - setenv serverip <TFTPSERVER_IP>
  - setenv ipaddr <DEVICE_IP>
  - setenv bootfile openwrt-ramips-mt76x8-linksys_e5400-initramfs-kernel.bin
  - saveenv
  - reset
3. Load Openwrt Kernel image from TFTP:
  - Press 1 during boot
  - IP and filename should be already set
4. Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
2022-12-18 21:24:57 +01:00
Johnny S. Lee
8be6350f66 generic: 5.15: allow MV88E6xxx built-in when PTP support disabled
As described in commit 97c77fff28
MV88E6xxx driver (NET_DSA_MV88E6XXX) cannot be built-in when PTP
(PTP_1588_CLOCK) is a module in Linux 5.15. But actually it should be
allowed to be built-in when its PTP support (NET_DSA_MV88E6XXX_PTP) is
disabled.

This adds a patch to fix that.

Signed-off-by: Johnny S. Lee <foss@jsl.io>
2022-12-18 16:38:37 +01:00
Alexey Bartenev
3f201d1f8e ramips: add support for SNR-CPE-W4N-MT router
General specification:
- SoC Type: MediaTek MT7620N (580MHz)
- ROM: 8 MB SPI-NOR (W25Q64FV)
- RAM: 64 MB DDR (M13S5121632A)
- Switch: MediaTek MT7530
- Ethernet: 5 ports - 5×100MbE (WAN, LAN1-4)
- Wireless 2.4 GHz: b/g/n
- Buttons: 1 button (RESET)
- Bootloader: U-Boot 1.1.3, MediaTek U-Boot: 5.0.0.5
- Power: 12 VDC, 1.0 A

Flash by the native uploader in 2 stages:
1. Use the native uploader to flash an initramfs image. Choose
 openwrt-ramips-mt7620-snr_cpe-w4n-mt-initramfs-kernel.bin file by
 "Administration/Management/Firmware update/Choose File" in vendor's
 web interface (ip: 192.168.1.10, login: Admin, password: Admin).
 Wait ~160 seconds.
2. Flash a sysupgrade image via the initramfs image. Choose
 openwrt-ramips-mt7620-snr_cpe-w4n-mt-squashfs-sysupgrade.bin
 file by "System/Backup/Flash Firmware/Flash image..." in
 LuCI web interface (ip: 192.168.1.1, login: root, no password).
 Wait ~240 seconds.

Flash by U-Boot TFTP method:
1. Configure your PC with IP 192.168.1.131
2. Set up TFTP server and put the
 openwrt-ramips-mt7620-snr_cpe-w4n-mt-squashfs-sysupgrade.bin
 image on your PC
3. Connect serial port (57600 8N1) and turn on the router.
 Then interrupt "U-Boot Boot Menu" by hitting 2 key (select "2:
 Load system code then write to Flash via TFTP.").
Press Y key when show "Warning!! Erase Linux in Flash then burn
 new one. Are you sure? (Y/N)"
Input device IP (192.168.1.1) ==:192.168.1.1
Input server IP (192.168.1.131) ==:192.168.1.131
Input Linux Kernel filename () ==:
openwrt-ramips-mt7620-snr_cpe-w4n-mt-squashfs-sysupgrade.bin
3. Wait ~120 seconds to complete flashing

Signed-off-by: Alexey Bartenev <41exey@proton.me>
2022-12-17 22:34:44 +01:00
Davide Fioravanti
d9566d059c ath79: add support for KuWFi C910
KuWFi C910 is an 802.11n (300N) indoor router with LTE support.

I can't find anywhere the OEM firmware. So if you want to restore the
original firmware you must do a dump before the OpenWrt flash.

According to the U-Boot, the board name is Iyunlink MINI_V2.

Hardware
--------
SoC:   Qualcomm QCA9533 650/400/200/25/25 MHz (CPU/RAM/AHB/SPI/REF)
RAM:   128 MB DDR2 16-bit CL3-4-4-10 (Nanya NT5TU64M16HG-AC)
FLASH: 16 MB Winbond W25Q128
ETH:
  - 2x 100M LAN (QCA9533 internal AR8229 switch, eth0)
  - 1x 100M WAN (QCA9533 internal PHY, eth1)
WIFI:
  - 2.4GHz: 1x QCA9533 2T2R (b/g/n)
  - 2 external non detachable antennas (near the power barrel side)
LTE:
  - Quectel EC200T-EU (or -CN or -AU depending on markets)
  - 2 external non detachable antennas (near the sim slot side)
BTN:
  - 1x Reset button
LEDS:
  - 5x White leds (Power, Wifi, Wan, Lan1, Lan2)
  - 1x RGB led (Internet)
UART: 115200-8-N-1 (Starting from lan ports in order: GND, RX, TX, VCC)

Everything works correctly.

MAC Addresses
-------------
LAN XX:XX:XX:XX:XX:48 (art@0x1002)
WAN XX:XX:XX:XX:XX:49 (art@0x1002 + 1)
WIFI XX:XX:XX:XX:XX:48

LABEL XX:XX:XX:XX:XX:48

Installation
------------
Turn the router on while pressing the reset button for 4 seconds.
You can simply count the flashes of the first lan led. (See notes)
If done correctly you should see the first lan led glowing slowly and
you should be able to enter the U-Boot web interface.

Click on the second tab ("固件") and select the -factory.bin firmware
then click "Update firmware".

A screen "Update in progress" should appear.

After few minutes the flash should be completed.

This procedure can be used also to recover the router in case of soft
brick.

Backup the original firmware
----------------------------
The following steps are intended for a linux pc. However using the
right software this guide should also work for Windows and MacOS.

1) Install a tftp server on your pc. For example tftpd-hpa.

2) Create two empty files in your tftp folder called:
	kuwfi_c910_all_nor.bin
	kuwfi_c910_firmware_only.bin

3) Give global write permissions to these files:
	chmod 666 kuwfi_c910_all_nor.bin
	chmod 666 kuwfi_c910_firmware_only.bin

4) Start a netcat session on your pc with this command:
	nc -u -p 6666 192.168.1.1 6666

5) Set the static address on your pc: 192.168.1.2. Connect the router
	to your pc.

6) Turn the router on while pressing the reset button for 8-9 seconds.
	You can simply count the flashes of the first lan led. If you
	press the reset button for too many seconds it will continue
	the normal boot, so you have to restart the router. (See notes)

7) If done correctly you should see the U-Boot network console and you
	should see the following lines on the netcat session:
Version and build date:
  U-Boot 1.1.4-55f1bca8-dirty, 2020-05-07

Modification by:
  Piotr Dymacz <piotr@dymacz.pl>
  https://github.com/pepe2k/u-boot_mod

u-boot>

8) Start the transfer of the whole NOR:
	tftpput 0x9f000000 0x1000000 kuwfi_c910_all_nor.bin

9) The router should start the transfer and it should end with a
	message like this (pay attention to the bytes transferred):
TFTP transfer complete!

Bytes transferred: 16777216 (0x1000000)

10) Repeat the same transfer for the firmware:
	tftpput 0x9f050000 0xfa0000 kuwfi_c910_firmware_only.bin

11) The router should start the transfer and it should end with a
	message like this (pay attention to the bytes transferred):
TFTP transfer complete!

Bytes transferred: 16384000 (0xfa0000)

12) Now you have the backup for the whole nor and for the firmware
	partition. If you want to restore the OEM firmware from OpenWrt
	you have to flash the kuwfi_c910_firmware_only.bin from the
	U-Boot web interface.

	WARNING: Don't use the kuwfi_c910_all_nor.bin file. This file
	is only useful if you manage to	hard brick the router or you
	damage the art partition (ask on the forum)

Notes
-----
This router (or at least my unit) has the pepe2k's U-Boot. It's a
modded U-Boot version with a lot of cool features. You can read more
here: https://github.com/pepe2k/u-boot_mod

With this version of U-Boot, pushing the reset button while turning on
the router starts different tools:
 - 3-5 seconds: U-Boot web interface that can be used to replace the
 	firmware, the art or the U-Boot itself
 - 5-7 seconds: U-Boot uart console
 - 7-10 seconds: U-Boot network console
 - 11+ seconds: Normal boot

The LTE modem can be used in cdc_ether (ECM) or RNDIS mode.
The default mode is ECM and in this commit only the ECM software is
included. In order to set RNDIS mode you must use this AT command:
	AT+QCFG="usbnet",3
In order to use again the ECM mode you must use this AT command:
	AT+QCFG="usbnet",1

Look for "Quectel_EC200T_Linux_USB_Driver_User_Guide_V1.0.pdf" for
other AT commands

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2022-12-17 22:28:10 +01:00
Shiji Yang
6361a952af ramips: improve support for SIM SIMAX1800T and Haier HAR-20S2U1
1. Use ARTIFACTS to build factory image. This change allows users to
   generate initramfs factory image using OpenWrt ImageBuilder.

2. Override the default bootargs property defined in "mt7621.dtsi".
   Although we use the "bootargs-override" property to set bootargs,
   the default "bootargs" property will still be written into the
   device tree, so it is better to override it.

Tested on SIM SIMAX1800T

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-12-17 21:08:14 +01:00
Shiji Yang
a7d8b54f86 ramips: improve support for H3C TX180x series devices
1. Explicitly declare gpio pin groups to ensure that gpio works properly.

2. Override bootargs in device tree to avoid modifying u-boot envs during
   initial installation.

Tested on H3C TX1801 Plus

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-12-17 21:08:14 +01:00
Chukun Pan
53123b93b0 sunxi: fix board_name for MarsBoard A10
The compatible in the device tree is "haoyu,a10-marsboard",
modify the board_name to keep it consistent.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2022-12-17 20:55:47 +01:00
Chukun Pan
7bcf6b54fc sunxi: fix typo in device packages for MarsBoard A10
The kmod prefix for sound-soc-sunxi is missing, fix it.
Also add kmod-sound-core as dependence.

Fixes: 6a35659 ("sunxi: Added profile for HAOYU Electronics Marsboard A10")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2022-12-17 20:55:47 +01:00
Nick Hainke
af5306ba70 ath79: convert WiFis based on ar7241_ubnt_unifi.dtsi to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

While working on it remove stale uboot partition label and merge art
into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-17 20:48:57 +01:00
Nick Hainke
b7ad3c5c5d ath79: convert Buffalo WZR-HP-G302H A1A0 WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Merge art into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-17 20:48:57 +01:00
Nick Hainke
d4ec4f9d0b ath79: convert OpenMesh OM2P v1 WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Merge art into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-17 20:40:30 +01:00
Nick Hainke
f6ca84bf02 ath79: convert OpenMesh OM5P-AN WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Merge art into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-17 20:40:30 +01:00
Nick Hainke
46077860c2 ath79: convert boards based on ar9344_openmesh_mr600.dtsi to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Merge art into partition node.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-17 20:40:29 +01:00
Chuanhong Guo
7fb32285d5
mediatek: redmi-ax6000: drop cs-gpios
'cs-gpios = <0>, <0>' is a hack in ath79 to override the incorrectly
specified maximum number of chipselects available in spi-ath79.c.
It's not needed here and must have been copied here by mistake.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-12-17 15:07:54 +08:00
Chen Minqiang
18bea173a6 mediatek: add alternative stock layout for Xiaomi Redmi Router AX6000
In this implementation, the flash partition layout is adjusted to avoid
modifying the uboot environment of mtdparts. This ensures that the 30M
ubi_kernel partition remains aligned with the stock ubi partition, and
the kernel volume is placed in it. This allows the stock uboot to boot
from it without changing the mtdparts, which is useful for reverting back
to the stock firmware using Xiaomi Firmware Tools. In actual testing,
modifying mtdparts has been found to break Xiaomi Firmware Tools.

1. use ARTIFACTS to generate initramfs-factory.ubi for easy installation.
2. The NAND flash layout is changed to allow for reverting back to the
   stock firmware.
3. Before performing sysupgrade, do some cleanup in platform_pre_upgrade
   to ensure a clean installation of OpenWRT.
4. Setup the uboot env to ensure that the system always boot, which can
   be helpful for users who may forget to do this before sysupgrade in
   the initramfs.

New flash instructions:
1. Gain ssh access. Please refer to:
   https://openwrt.org/toh/xiaomi/redmi_ax6000#installation)

2. Check which system current u-boot is loading from:
   COMMAND: `cat /proc/cmdline`
   sample OUTPUT: `console=ttyS0,115200n1 loglevel=8 firmware=1 uart_en=1`
   if firmware=1, current system is ubi1
   if firmware=0, current system is ubi0

3. Setup nvram and write the firmware:
   If the current system is ubi1, please set it up so that the next time
   it will boot from ubi, and write the firmware to ubi:
```
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
```
   If the current system is ubi, please set it up so that the next time
   it will boot from ubi1, and write the firmware to ubi1:
```
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
ubiformat /dev/mtd9 -y -f /tmp/initramfs-factory.ubi
```

4. After rebooting, the system should now boot into the openwrt initramfs.
   Flash the squashfs-sysupgrade.bin via using ssh or luci.
```
sysupgrade -n /tmp/squashfs-sysupgrade.bin
```
Done.

For existing users of the Redmi AX6000 running OpenWrt, here are the steps to
switch to this new layout:

1. Flash initramfs-factory.ubi
```
mtd -r -e ubi write /tmp/initramfs-factory.ubi ubi
```

2. After rebooting, the system will boot into the new openwrt-initramfs.
Log in and perform a sysupgrade to complete the process.
```
sysupgrade -n /tmp/squashfs-sysupgrade.bin
```

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-12-17 15:04:16 +08:00
Christian Marangi
d7876daf65
generic: add support for EON EN25QX128A spi nor flash
Add support for EON EN25QX128A spi nor flash with no flags as it does
support SFDP parsing.

Fixes: #9442
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Szabolcs Hubai <szab.hu@gmail.com> [ramips/mt7621: xiaomi_mi-router-4a-gigabit]
2022-12-16 20:58:36 +01:00
Furong Xu
d9e1362581 mediatek: add LED support for Xiaomi Redmi AX6000
add DT nodes and default package for the LEDs on Redmi AX6000

Signed-off-by: Furong Xu <xfr@outlook.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-12-16 21:42:02 +08:00
Furong Xu
335c1e7cfd mediatek: enable sel_clk for spi-mt65xx
Without explicitly enabling sel_clk, clk_disable_unused() will disable
it when boot is done, causing CPU hang on SPI1 register access on MT7986.
Explicitly enable sel_clk to make SPI1 functional.

Signed-off-by: Furong Xu <xfr@outlook.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-12-16 21:42:02 +08:00
INAGAKI Hiroshi
88db7461cf realtek: add Linux Kernel 5.15 as testing version
Add Linux Kernel 5.15 support for testing.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[APRESIA ApresiaLightGS120GT-SS, Panasonic Switch-M24eG PN28240K, Switch-M48eG PN28480K]
Tested-by: INAGAKI Hiroshi <musashino.open@gmail.com>
TP-Link TL-SG2008P
Tested-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
[D-Link DGS-1210-20, DGS-1210-52, Zyxel XGS1010-12]
Tested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
[Zyxel XGS1250-12]
Tested-by: Lucian Cristian <lucian.cristian@gmail.com> # Zyxel
[HPE 1920-8G, 1920-48G]
Tested-by: Jan Hoffmann <jan@3e8.eu>
2022-12-15 20:54:12 +01:00
INAGAKI Hiroshi
69055a5412 realtek: enable needs_standalone_vlan_filtering on DSA driver in 5.15
To configure VLAN 0, enable needs_standalone_vlan_filtering option
of dsa_switch struct.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:54:03 +01:00
INAGAKI Hiroshi
109962d8bf realtek: update dsa.c of DSA driver for 5.15
- rtl83xx_vlan_filtering()

  "struct switchdev_trans *trans" parameter was removed[1] and
  "struct netlink_ext_ack *extack" was added[2].

[1]: https://www.spinics.net/lists/netdev/msg712250.html
[2]: https://www.spinics.net/lists/netdev/msg722496.html

- rtl83xx_vlan_add/del()

  vlan->vid_begin and vlan->vid_end were removed and vlan->vid was
  added[3].

[3]: https://www.spinics.net/lists/netdev/msg712248.html

- rtl83xx_vlan_prepare()

  "port_vlan_prepare" member was removed from "dsa_switch_ops" struct
  in dsa.h[4] and vlan_prepare function should be called from vlan_add
  function. Also, change return type of vlan_add function to int.

[4]: https://www.spinics.net/lists/netdev/msg712252.html

- rtl83xx_port_mdb_add()

  "port_mdb_prepare" member in "dsa_switch_ops" struct was removed and
  preparation need to be done in the function of "port_mdb_add" member
  instead. And also, int type need to be returned on "port_mdb_add"
  member[5].

[5]: https://www.spinics.net/lists/netdev/msg712251.html

- rtl83xx_port_pre_bridge_flags(), rtl83xx_port_bridge_flags()

  The current "port_pre_bridge_flags" member and "port_bridge_flags"
  member in "dsa_switch_ops" in dsa.h has flags of
  "struct switchdev_brport_flags" type instead[6], so adjust to it.
  And, the changed features are passed by flags.mask[7] in
  rtl83xx_port_bridge_flags(), so check it before calling function
  to enable/disable fieature.

[6]: https://lore.kernel.org/lkml/20210212151600.3357121-7-olteanv@gmail.com/
[7]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e18f4c18ab5b0dd47caaf8377c2e36d66f632a8c

Suggested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[shorten final return statement of rtl83xx_port_mdb_add()]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
1f153558a3 realtek: update platform support for 5.15
- fw_passed_dtb and others were replaced to get_fdt() function[1]
- __appended_dtb defined by asm/bootinfo.h[2]

[1]: https://www.spinics.net/lists/linux-mips/msg03332.html
[2]: https://www.spinics.net/lists/linux-mips/msg03332.html

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
f3a9975549 realtek: refresh config-5.15 in all subtargets
Refresh config-5.15 in all subtargets by kernel_menuconfig.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
aa528eec73 realtek: refresh patches in 5.15
Adjust patches for kernel 5.15.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
23881c91e5 realtek: drop patches of upstreamed fix and changes from 5.15
- 007-5.16-gpio-realtek...: upstreamed on 5.16 and backported to 5.15.3
- 708-brflood-spi.patch   : upstreamed
- 709-lag-offloading.patch: upstreamed
- 713-v5.12-net-dsa-...   : upstreamed and some implementations are
                            replaced

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
a9d5a8bc79 realtek: drop patches of upstreamed drivers from 5.15
The following drivers were upstreamed and available on 5.15, so drop
from OpenWrt tree.

- realtek-otto-gpio (5.13)
- realtek-rtl-spi (5.12)
- realtek-rtl-intc (5.12)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-15 20:52:40 +01:00
INAGAKI Hiroshi
8fb15ea52a realtek: copy dts/files/patches/configs for 5.15
Copy dts/files/patches/configs from 5.10 to 5.15.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[refresh with updated DGS-1210 dts files]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-15 20:52:09 +01:00
Christian Lamparter
d8da5002a2 ath79: fix dtc warnings in ruckus zf7372
|:69.4-14: Warning (reg_format): beamforming-2g-gpio@0:reg: property has invalid length (4 bytes)
|:85.4-14: Warning (reg_format): beamforming-5g-gpio@0:reg: property has invalid length (4 bytes)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Christian Lamparter
0dacf14495 ath79: fix dtc warnings in eap1750h
|109.3-19: Warning (reg_format): macaddr@0:reg:property has invalid length (8 bytes)
|113.3-24: Warning (reg_format): calibration@1000:reg: property has invalid length (8 bytes)
|117.3-24: Warning (reg_format): calibration@5000:reg: property has invalid length (8 bytes)

also integrate the art-nodes nodes back into the partition-subnode
and change the calibration labels to match what everyone else is
doing.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Christian Lamparter
0f227720f9 ath79: fix dtc warnings in eap1200h
|109.3-19: Warning (reg_format): macaddr@0:reg:property has invalid length (8 bytes)
|113.3-24: Warning (reg_format): calibration@1000:reg: property has invalid length (8 bytes)
|117.3-24: Warning (reg_format): calibration@5000:reg: property has invalid length (8 bytes)

also integrate the art-nodes nodes back into the partition-subnode
and change the calibration labels to match what everyone else is
doing.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Nick Hainke
4146701469 ath79: replace reference to legacy qca,disable-2ghz in WatchGuard AP100
Commit 4c8dd973ef ("ath9k: OF: qca,disable-(2|5)ghz => ieee80211-freq-limit")
removed "qca,disable-5ghz" and "qca,disable-2ghz".

Signed-off-by: Nick Hainke <vincent@systemli.org>
(converted patch to remove the ieee80211-freq-limit property instead)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Nick Hainke
ae5cb164cd ath79: switch to upstream ieee80211-freq-limit for Araknis AN-300-AP-I-N
Commit 4c8dd973ef ("ath9k: OF: qca,disable-(2|5)ghz => ieee80211-freq-limit")
removed "qca,disable-5ghz" and "qca,disable-2ghz". Switch to upstream
ieee80211-freq-limit.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-15 15:45:47 +01:00
Nick Hainke
08c114ee16 ath79: convert Winchannel WB2000 WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(removed mtd-cal-data property, merged art + addr nodes back into
partition)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Nick Hainke
fd456106aa ath79: convert Ubiquiti UniFi AP Pro WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(merged art node back into partition-node)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Nick Hainke
f63cf33aa7 ath79: convert OCEDO Raccoon WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(merged art into partition node, removed stale uboot label)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:45:47 +01:00
Nick Hainke
783936c1f7 ath79: Mercury MW4530R v1 already uses nvmem-cells
Remove the caldata extraction in userspace. The board already uses
nvmem-cells since
commit e354b01baf ("ath79: calibrate all ar9344 tl-WDRxxxx with nvmem")

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-15 15:45:35 +01:00
Nick Hainke
4845b60525 ath79: convert boards based on senao_ap-dual.dtsi WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-15 15:08:09 +01:00
Nick Hainke
21495c92dc ath79: convert Atheros DB120 WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(merged art-node back into partition-node)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:08:09 +01:00
Nick Hainke
1b125aabf4 ath79: convert Araknis AN-300-AP-I-N WiFis to nvmem-cells
Pull the calibration data from the nvmem subsystem. This allows us to
move userspace caldata extraction into the device-tree definition.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-12-15 15:08:08 +01:00
Johannes Heimansberg
708ea56fb9 bcm27xx: bcm2711: add kmod-r8169
Some carrier boards [1][2] for the Raspberry Pi CM4 that are specifically
designed to be used as routers come with secondary NICs using a Realtek
RTL8111 Gigabit Ethernet chip.

When using such a board as a router with OpenWrt, it is very helpful
when both NICs are working by default. Since the Raspberry Pi 4 and the
CM4 have plenty of disk space, it should cause no harm to include the
kmod-r8169.

[1] https://wiki.dfrobot.com/Compute_Module_4_IoT_Router_Board_Mini_SKU_DFR0767
[2] https://www.waveshare.com/wiki/CM4-DUAL-ETH-MINI

Signed-off-by: Johannes Heimansberg <git@jhe.dedyn.io>
(r8169 should pull in the necessary dependencies.)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-15 15:08:08 +01:00
Linus Walleij
1bef8d62d4 bcm53xx: Patch to support BCMA rev 11
A backported patch to the BCMA driver necessary to support the
DWL-8610AP and DIR-890L. Patch will be in upstream v6.2.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-12-15 15:08:08 +01:00
John Audia
90120a1552 kernel: bump 5.10 to 5.10.159
Removed upstreamed:
	backport-5.10/888-v6.1-ca8210-Fix-crash-by-zero-initializing-data.patch[1]

All patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.159&id=0a8e66e375736ea12c11f0ef238ba2a8efec460b

Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-14 23:37:28 +01:00
John Audia
b6fa423907 kernel: bump 5.15 to 5.15.83
Removed upstreamed:
	backport-5.15/883-v6.1-ca8210-Fix-crash-by-zero-initializing-data.patch[1]

All patches automatically rebased

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.83&id=246bcd05ba6cc43b34ac0bb4bac3ea94a4efa07c

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-14 23:34:50 +01:00
Stijn Tintel
b3dd15ca0a kernel: add missing symbol to 5.10 config
Kernel 5.10.158 added a prompt for the FUNCTION_ERROR_INJECTION symbol.
This is exposed in builds with CONFIG_KERNEL_KPROBES enabled, causing
those builds to fail due to a missing symbol. Add the symbol to fix
this.

Fixes: 6801c460b6 ("kernel: bump 5.10 to 5.10.158")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-12-14 20:29:36 +02:00
Stijn Tintel
f9bd655f16 kernel: add missing symbol to 5.15 config
Kernel 5.15.82 added a prompt for the FUNCTION_ERROR_INJECTION symbol.
This is exposed in builds with CONFIG_KERNEL_KPROBES enabled, causing
those builds to fail due to a missing symbol. Add the symbol to fix
this.

Fixes: 68426e54ed ("kernel: bump 5.15 to 5.15.82")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-12-14 19:12:33 +02:00
Stijn Tintel
230f2fccd1 qoriq: switch to kernel 5.15
The testing kernel has been running fine for months on a rather complex
network setup, with one exception being a crash in
__xfrm_state_delete(). This crash has been fixed in kernel 5.15.82, so
let's switch the qoriq target to kernel 5.15 by default.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-12-14 18:53:39 +02:00
Christian Marangi
823ddab80e
ipq806x: 5.15: standardize wpq864 partition table
Compex WPQ864 contains a non standard partition table. Each partition
node should be named partition and should contain a valid reg.
Fix an extra "-" present after the reg for SBL2_1 partition.

Also add "0:" to each qcom default partition following smem naming.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-14 02:23:22 +01:00
Christian Marangi
266b261d39
ipq806x: 5.15: fix wrong boot-partitions values for split partitions
The refreshed patch actually use the format of <start size start size>
instead of <start end start end>. This cause boot fail since the rootfs
can't be mounted with these wrong values.

Fix it to the correct format in each affected dts.

Fixes: #11498
Fixes: 6134ba4a34 ("ipq806x: 5.15: add boot-partitions binding to fix block warning")
Tested-by: Matt Buczko <mbuczko@hotmail.com> # Askey RT4230W
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-14 02:23:22 +01:00
Andrew Cameron
550e5b2184 ath79: add support for TP-Link CPE605-v1
TP-Link CPE605-v1 is an outdoor wireless CPE for 5 GHz with
one Ethernet port based on Atheros AR9344

Specifications:
 - 560/450/225 MHz (CPU/DDR/AHB)
 - 1x 10/100 Mbps Ethernet
 - 64 MB of DDR2 RAM
 - 8 MB of SPI-NOR Flash
 - 23dBi high-gain directional antenna and a dedicated metal reflector
 - Power, LAN, WLAN5G green LEDs
 - 3x green RSSI LEDs

Flashing instructions:
 Flash factory image through stock firmware WEB UI or through TFTP
 To get to TFTP recovery just hold reset button while powering on for
 around 4-5 seconds and release.
 Rename factory image to recovery.bin
 Stock TFTP server IP:192.168.0.100
 Stock device TFTP adress:192.168.0.254

Signed-off-by: Andrew Cameron <apcameron@softhome.net>
2022-12-13 23:17:27 +01:00
Mikhail Zhilkin
0ec8d991c2 ramips: add support for Etisalat S3
Etisalat S3 is a wireless WiFi 5 router manufactured by Sercomm company.

Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 256 MiB
Flash: 128 MiB
Wireless 2.4 GHz (MT7603EN): b/g/n, 2x2
Wireless 5 GHz (MT7615E): a/n/ac, 4x4
Ethernet: 5x GbE (WAN, LAN1, LAN2, LAN3, LAN4)
USB ports: 1x USB3.0
Button: 2 buttons (Reset & WPS)
LEDs:
   - 1x Status (RGB)
   - 1x 2.4G (blue, hardware, mt76-phy0)
   - 1x 5G (blue, hardware, mt76-phy1)
Power: 12 VDC, 1.5 A
Connector type: barrel
Bootloader: U-Boot

Installation
-----------------
1.  Login to the router web interface under admin account
2.  Navigate to Settings -> Configuration -> Save to Computer
3.  Decode the configuration. For example, using cfgtool.py tool (see
    related section):
       cfgtool.py -u configurationBackup.cfg
4.  Open configurationBackup.xml and find the following line:
    <PARAMETER name="Password" type="string" value="<your router serial \
       is here>" writable="1" encryption="1" password="1"/>
5.  Insert the following line after and save:
<PARAMETER name="Enable" type="boolean" value="1" writable="1" encryption="0"/>
6.  Encode the configuration. For example, using cfgtool.py tool:
       cfgtool.py -p configurationBackup.xml
7.  Upload the changed configuration (configurationBackup_changed.cfg) to
    the router
8.  Login to the router web interface (SuperUser:ETxxxxxxxxxx, where
    ETxxxxxxxxxx is the serial number from the backplate label)
9.  Navigate to Settings -> WAN -> Add static IP interface (e.g.
    10.0.0.1/255.255.255.0)
10. Navigate to Settings -> Remote cotrol -> Add SSH, port 22,
    10.0.0.0/255.255.255.0 and interface created before
11. Change IP of your client to 10.0.0.2/255.255.255.0 and connect the
    ethernet cable to the WAN port of the router
12. Connect to the router using SSH shell under SuperUser account
13. Run in SSH shell:
       sh
14. Make a mtd backup (optional, see related section)
15. Change bootflag to Sercomm1 and reboot:
       printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3
       reboot
16. Login to the router web interface under admin account
17. Remove dots from the OpenWrt factory image filename
18. Update firmware via web using OpenWrt factory image

Revert to stock
---------------
Change bootflag to Sercomm1 in OpenWrt CLI and then reboot:
   printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3

mtd backup
----------
1. Set up a tftp server (e.g. tftpd64 for windows)
2. Connect to a router using SSH shell and run the following commands:
      cd /tmp
      for i in 0 1 2 3 4 5 6 7 8 9 10; do nanddump -f mtd$i /dev/mtd$i; \
      tftp -l mtd$i -p 10.0.0.2; md5sum mtd$i >> mtd.md5; rm mtd$i; done
      tftp -l mtd.md5 -p 10.0.0.2

Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery

MAC Addresses
-------------
+-----+------------+---------+
| use | address    | example |
+-----+------------+---------+
| LAN | label      | *:50    |
| WAN | label + 11 | *:5b    |
| 2g  | label + 2  | *:52    |
| 5g  | label + 3  | *:53    |
+-----+------------+---------+
The label MAC address was found in Factory 0x21000

cfgtool.py
----------
A tool for decoding and encoding Sercomm configs.
Link: https://github.com/r3d5ky/sercomm_cfg_unpacker

Co-authored-by: Karim Dehouche <karimdplay@gmail.com>
Co-authored-by: Maximilian Weinmann <x1@disroot.org>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-12-13 23:06:20 +01:00
Christian Marangi
05dbdcbd32
generic: move pending 870 ca8210 fix crash patch to backport
Patch got merged upstream in kernel 6.1. Move it to backport to better
track it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-13 02:05:29 +01:00
Christian Marangi
c3c9ef598c
generic: fix wrong PTR_ERR use in of net mac address ascii patch
nvmem_cell_read return a pointer error when an error occurs. Currently
we convert the pointer error to an int while the rest of the function
return a void* and expcet an error pointer. Fix this PTR_ERR msuse
fixing compilation warning.

Fixes the following compilation warning:
net/ethernet/eth.c: In function 'nvmem_cell_get_mac_address':
net/ethernet/eth.c:547:24: warning: returning 'long int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
  547 |                 return PTR_ERR(mac);
      |                        ^~~~~~~~~~~~
net/ethernet/eth.c: In function 'nvmem_cell_get_mac_address_ascii':
net/ethernet/eth.c:564:24: warning: returning 'long int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
  564 |                 return PTR_ERR(mac_ascii);
      |                        ^~~~~~~~~~~~~~~~~~

Fixes: 7b863af180 ("kernel: move mac-address-ascii patches to generic")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-12-13 00:33:19 +01:00
Linus Walleij
772434e707 gemini: Set proper default networks
Some Gemini devices are NAS type devices and need to ask for
DHCP IP on eth0. Some has a LAN/WAN setup. Add sensible
defaults for all known devices.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-12-12 11:18:02 +01:00
Christian Lamparter
50d20db6a8 uml: switch to Kernel 5.15
Switch over from testing version.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-12 09:06:17 +01:00
Christian Lamparter
f6c61571fb bcm53xx: remove MR32's openwrt specific patch for LEDs
The patch managed to sneak into v5.15 whereas it was
properly deleted for v5.10.

Fixes: 8f6e2bb178 ("bcm53xx: remove MR32's specific get_leds_dt code")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-12 09:06:17 +01:00
Chukun Pan
b40a047f1f sunxi: fix sunxi-ir kconfig and description
Removed a20 in description, since it
only works for a10, a13 and a31.
Also refreshed kernel config.

Fixes: #10466
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
(moved fixes, refreshed, added CONFIG_DVB_USB=n)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-12 09:06:17 +01:00
Chukun Pan
a125d46a28 sunxi: modules: remove useless AddDepends/rtc
AddDepends/rtc has been removed in commit 3da7fe6, same here.
Fixes: 3da7fe6 ("kernel: remove useless AddDepends/rtc abstraction")

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
(RTC_SUPPORT - though this is implied by the TARGET_sunxi)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-12-12 09:06:17 +01:00
Tony Butler
1e240f60a5 kernel: modules/lib-lz4: add lz4hc_compress
enable option `CONFIG_CRYPTO_LZ4HC` to match default kernel config

this only adds the `lz4hc_compress` module, and has no effect on the
`lz4_decompress` module which already supports any flavor

Signed-off-by: Tony Butler <spudz76@gmail.com>
2022-12-11 09:32:53 -08:00
Tony Butler
9a1ab8aa03 lantiq: vr9: include usb driver for fritz 7430
Reported by user: missing driver for USB; add to image definition
https://github.com/openwrt/openwrt/issues/11326

Resolves: #11326

Signed-off-by: Tony Butler <spudz76@gmail.com>
Acked-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-12-11 16:46:34 +01:00
Hauke Mehrtens
2484f0951c kernel: Refresh kernel 5.10
Make the patches apply cleanly again.

Fixes: 8327e0fb72 ("kernel: backport the dev_set_threaded export to 5.10")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-11 16:42:16 +01:00
Weiping Yang
1c169d28ff ipq40xx: fix usb driver not loaded for GL-A1300
This patch enables USB support for the GL.iNet GL-A1300
Repair the usb driver startup phase is not loaded

Signed-off-by: Weiping Yang <weiping.yang@gl-inet.com>
2022-12-11 03:06:54 +01:00
John Audia
6801c460b6 kernel: bump 5.10 to 5.10.158
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:43:28 +01:00
John Audia
7b7d8fe60d kernel: bump 5.10 to 5.10.157
Manually rebased:
	backport-5.10/610-v5.13-32-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch
	hack-5.10/645-netfilter-connmark-introduce-set-dscpmark.patch

Removed upstreamed:
	pending-5.10/706-netfilter-nf_flow_table-add-missing-locking.patch[1]

All other patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:43:28 +01:00
John Audia
f83a8329a3 kernel: add symbol in generic config for 5.10.157
Add CONFIG_INET_TABLE_PERTURB_ORDER=16 to generic config

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:43:28 +01:00
John Audia
68426e54ed kernel: bump 5.15 to 5.15.82
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock
Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:42:52 +01:00
John Audia
424210b7be kernel: bump 5.15 to 5.15.81
Manually rebased:
	backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch
	hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch[1]

Removed upstreamed:
	pending-5.15/701-netfilter-nf_flow_table-add-missing-locking.patch[2]

All other patches automatically rebased

1. Rebase by Kevin 'ldir' Darbyshire-Bryant<ldir@darbyshire-bryant.me.uk>
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.81&id=8db9e60cdfdae5b049e32e82323da8f0f989066a

Build system: x86_64
Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock
Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:42:52 +01:00
John Audia
2b375b7db4 kernel: add symbol in generic config for 5.15.81
Add CONFIG_INET_TABLE_PERTURB_ORDER=16 to generic config

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-11 02:42:52 +01:00
Felix Fietkau
8327e0fb72 kernel: backport the dev_set_threaded export to 5.10
Fixes mt76 build error

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-12-10 17:36:12 +01:00
Felix Fietkau
5f2d471279 kernel: backport mtk_wed.h from 5.15 to 5.10
Fixes mt76 build error

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-12-10 17:30:36 +01:00
David Bauer
4c0919839d ath79: fix Teltonika RUT230 v1 MAC assignment
The MAC-Address setup for the Teltonika RUT230 v1 was swapped for the
LAN / WAN ports. Also the Label-MAC was assigned incorrect, as the WiFi
MAC is printed on the case as part of the SSID, however only the LAN
MAC-Address is designated as a MAC-Address.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-12-09 01:59:47 +01:00
Jan-Niklas Burfeind
dbc93d280c realtek: update GPIO bindings for DGS-1210-10P
add three missing LEDs
 - PoE-Max
 - Link/Act
 - PoE

add two missing buttons
 - mode
 - reset

The last was dropped in
commit 61a3d0075b ("realtek: update GPIO bindings in the dts files in dts-5.10")

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2022-12-09 00:13:51 +01:00
Andreas Böhler
3e7e4d0b97 realtek: d-link: add support for dgs-1210-28mp-f
General hardware info:
----------------------

D-Link DGS-1210-28MP rev. F1 is a switch with 24 ethernet ports and 4
combo ports, all ports Gbit capable. It is based on a RTL8382 SoC @ 500MHz,
DRAM 128MB and 32MB flash. 24 ethernet ports are 802.3af/at PoE capable
with a total PoE power budget of 370W.

Power over Ethernet:
--------------------

The PSE hardware consists of three BCM59121 PSE chips, serving 8 ports
each. They are controlled by a Nuvoton MCU.
In order to enable PoE, the realtek-poe package is required. It is
installed by default, but currently it requires the manual editing of
/etc/config/poe. Keep in mind that the port number assignment does not
match on this switch, alway 8 ports are in reversed order: 8-1, 16-9 and
24-17.

LEDs and Buttons:
-----------------

On stock firmware, the mode button is supposed to switch the LED indicators
of all port LEDs between Link Activity and PoE status. The currently
selected mode is visualized using the respective LEDs. PoE Max indicates
that the maximum PoE budget has been reached.
Since there is currently no support for this behavior, these LEDs and
the mode button can be used independently.

Serial connection:
------------------
The UART for the SoC (115200 8N1) is available via unpopulated standard
0.1" pin header marked J6. Pin1 is marked with arrow and square.

Pin 1: Vcc 3.3V
Pin 2: Tx
Pin 3: Rx
Pin 4: Gnd

OEM installation from Web Interface:
------------------------------------

  1. Make sure you are booting using OEM in image 2 slot. If not, switch to
     image2 using the menus
        System > Firmware Information > Boot from image2
        Tools > reboot
  2. Upload image in vendor firmware via Tools > Backup / Upgrade
     Firmware > image1
  3. Toogle startup image via System > Firmware Information > Boot from
     image1
  4. Tools > reboot

Other installation methods not tested, but since the device shares the
board with the DGS-1210-28, the following should work:

Boot initramfs image from U-Boot:
---------------------------------

  1. Press Escape key during `Hit Esc key to stop autoboot` prompt
  2. Press CTRL+C keys to get into real U-Boot prompt
  3. Init network with `rtk network on` command
  4. Load image with `tftpboot 0x8f000000
     openwrt-rtl838x-generic-d-link_dgs-1210-28mp-f-initramfs-kernel.bin`
     command
  5. Boot the image with `bootm` command

Signed-off-by: Andreas Böhler <dev@aboehler.at>
2022-12-08 21:51:43 +01:00
Jan-Niklas Burfeind
dce66899bf ramips: add support for Wavlink WS-WN572HP3 4G
Wavlink WS-WN572HP3 4G is an 802.11ac
dual-band outdoor router with LTE support.

Specifications;
* Soc: MT7621DAT
* RAM: 128MiB
* Flash: NOR 16MiB GD-25Q128ESIG3
* Wi-Fi:
  * MT7613BEN: 5GHz
  * MT7603EN: 2.4GHz
* Ethernet: 2x 1GbE
* USB: None - only used internally
* LTE Modem: Quectel EC200T-EU
* UART: 115200 baud
* LEDs:
  * 7 blue at the front
    * 1 Power
    * 2 LAN / WAN
    * 1 Status
    * 3 RSSI (annotated 4G)
  * 1 green at the bottom (4G LED)
* Buttons: 1 reset button

Installation:
* press and hold the reset button while powering on the device
* keep it pressed for ten seconds
* connect to 192.168.10.1 via webbrowser (chromium/chrome works, at
  least Firefox 106.0.3 does not)
* upload the sysupgrade image, confirm the checksum, wait 2 minutes
  until the device reboots

Revert to stock firmware:
* same as installation but use the recovery image for WL-WN572HP3

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2022-12-07 12:30:45 +01:00
David Bauer
bc14925f3d ramips: define loadaddr for all UniFi devices
Define the load-address for the DTB of all Ubiquiti UniFi devices using
FIT images. From the GPL code we can assume these boards are affected by
the same relocating issue with the vendor bootloader.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-12-07 12:30:29 +01:00
Daniel Golle
2307b049e4
mediatek: also move &slot0 from dtsi down to board dts
As the referenced MTD partition is only present in the dts, also move
&slot0 down to the dts files.

Fixes: 64e9b62829 ("mediatek: remove redundant flash entry from dtsi")
Fixes: 7dbac3433f ("mediatek: add support for reyee AX3200-E5")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-12-07 01:45:14 +00:00
Daniel Golle
9d22ab703f mediatek: remove redundant flash entry from dtsi
Splitting-off the common parts of Ruijie RG-EW3200GX PRO and
reyee AX3200-E5 went wrong because the flash descriptiom was kept
also in the dtsi. Remove it there, as flash definition is added by
both board dts files.

Fixes: 7dbac3433f ("mediatek: add support for reyee AX3200-E5")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-12-07 00:46:26 +00:00
Shiji Yang
3c1512a25d ath79: optimize the firmware recipe for Netgear NAND devices
1. Drop useless character '0xff' before fake filesystem header.
2. Reduce useless padding to shrink the size of the sysupgrade image.
3. Do not check the size of sysupgrade image. It does not make sense to
   check the size of a compressed package.
4. Do not take the size of netgear header into account because it will
   not be written to Flash.
5. Use the default lzma compression dictionary parameter '-d24' to get
   better performance.

Tested on Netgear R6100
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-12-06 23:11:23 +01:00
Shiji Yang
58088ff457 ath79: convert Netgear R6100 radio calibration to nvmem-cells
use nvmem-cells implementation to avoid copying art calibration data
to rootfs.

Tested on Netgear R6100
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-12-06 23:11:23 +01:00
Hauke Mehrtens
48025b8ac9 kernel: ca8210: Fix crash by zero initializing data
This fixes crashes at bootup on pistachio.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-06 23:09:48 +01:00
Alex Hansen
7dbac3433f mediatek: add support for reyee AX3200-E5
This is yet another model of the Ruijie RG-EW3200GX PRO with a slightly
different flash layout, install process is the same.

Specifications:
SoC: MT7622B
RAM: 256MB
Flash: XMC XM25QH128C or Winbond WQ25Q128JVSQ 16MB SPI NOR
Ethernet: 5x1GbE
Switch: MT7531BE
WiFi: 2.4G: MT7622 5G: MT7915AN+MT7975AN
3LEDs: System LED(blue) + Mesh LED(green) + Mesh LED(red)
2Keys: Mesh button + Reset button
UART: Marked J19 on board. 3.3v, 115200n1
Power: 12V 2.5A

Flash instruction:
1. Serve the initramfs.img using a TFTP server with address 10.10.10.3.
2. Interrupt the uboot startup process via UART.
3. Select "System Load Linux to SDRAM via TFTP" item.
4. (important) Back up firmware(mtd7) partitions with:
    dd if=/dev/mtd7 of=/tmp/firmware.bin
    and then download the firmware.bin image via SCP.
5. Flash the OpenWrt sysupgrade firmware.

Recovery stock firmware:

1. Transfer the firmware.bin image to the device.
2. Flash the image with:
    mtd write firmware.bin firmware

Signed-off-by: Alex Hansen <mralexh123@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-12-06 12:43:15 +00:00
Joonhyuk Song
25ede5170d ramips: mt7621: enable lzma-loader for netis WF2881
Fixes boot loader LZMA decompression issues (LZMA ERROR 1)

Signed-off-by: Joonhyuk Song <thenoface303@gmail.com>
2022-12-06 01:51:00 +01:00
John Thomson
7ea965b578 ramips: mt7621: mikrotik 760igs (hEX S) fix SFP
This device uses an AR8031/AR8033 chip to convert SoC gmac1
RGMII to 1000base-x or sgmii for the SFP fibre cage.
The SFP cage requires phy-mode rgmii-rxid, and without it will not
recieve any packets: ethtool -S sfp rx_fcs_errors will increase when
packets should be being received, but no other _rx counters will change.

Fixes: c77858aa79 ("ramips: mt7621-dts: change phy-mode of gmac1 to rgmii")
Reviewed-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Arınç ÜNAL <arinc.unal@arinc9.com>
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2022-12-06 01:47:36 +01:00
Daniel Golle
83f20fc9f7 mediatek: mt7623: build mt6577_auxadc driver into kernel
Set CONFIG_MT6577_AUXADC=y as otherwise reading temperature of the
thermal-zone doesn't work on MT7623 (it does work fine without this
driver on MT7622 and MT7986).

Fixes: f2ae4e2f8c ("mediatek: clean up platform kernel modules")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-12-05 23:14:36 +00:00
INAGAKI Hiroshi
a224412bbc ramips: use ARTIFACTS for initramfs-factory of I-O DATA WN-AX1167GR
Use ARTIFACTS to generate initramfs-based factory image of I-O DATA
WN-AX1167GR instead of redundant recipe which generate on
KERNEL_INITRAMFS.

Note:

WN-AX1167GR has 2x OS images on stock firmware.

stock log:

flash manufacture id: c2, device id 20 18
MX25L12805D(c2 2018c220) (16384 Kbytes)
mtd .name = raspi, .size = 0x01000000 (16M) .erasesize = 0x00010000 (64K) .numeraseregions = 0
Creating 10 MTD partitions on "raspi":
0x000000000000-0x000001000000 : "ALL"
0x000000000000-0x000000030000 : "Bootloader"
0x000000030000-0x000000040000 : "Config "
0x000000040000-0x000000050000 : "Factory"
0x000000050000-0x000000060000 : "iNIC_rf"
0x000000060000-0x0000007e0000 : "Kernel"
0x000000800000-0x000000f80000 : "app"
0x000000f90000-0x000000fa0000 : "Key"
0x000000fa0000-0x000000fb0000 : "backup"
0x000000fb0000-0x000001000000 : "storage"

1st image is "Kernel" and 2nd is "app" when booted from 1st image.
In OpenWrt, those 2x partitions are combined to "firmware" with
undefined (empty) areas (0x7e0000-0x7fffff, 0xf80000-0xf8ffff).

The size of an OS image partition is 0x780000 (7680 KiB = 7.5 MiB), so
check-size for initramfs-factory image needs to be called with the size.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-12-05 01:28:28 +00:00
Senis John
a8f3c97ce8 ramips: add support for HiWiFi HC5611
CPU: MediaTek MT7628AN @ 575 MHz
Flash: 16 MB
RAM: 128 MB
Ethernet: 10/100Mbps x 1
Wlan: 300 Mbps
USB: USB 2.0 x 1
LED: red/green x 1
Button: reset x 1

1. Open https://www.hiwifi.wtf/, Get Cloud token and unlock ssh
2. Upload the openwrt firmware to the router via SCP
3. Login the router via SSH
4. Run `mtd -r write path_to_firmware.bin firmware`

I have tested on my device.
- The LED will display RED on power-on, After system start completed, trun GREEN
- Reset button working now. Long press after 5s will reset factory. Short press less 1s will reboot the device
- USB can working under official u-boot

Signed-off-by: Senis John <thank243@gmail.com>
2022-12-04 15:21:12 +08:00
Kien Truong
d11d93b9ae rockchip: enable watchdog driver
Enable Synopsys DesignWare watchdog driver for rockchip device

Tested on NanoPi R2S

Signed-off-by: Kien Truong <duckientruong@gmail.com>
2022-12-04 15:21:12 +08:00
Petr Štetiar
97c77fff28 Revert "mvebu: switch default kernel to 5.15"
This reverts commit 5429411f73 as upstream
in commit e5f31552674e ("ethernet: fix PTP_1588_CLOCK dependencies") has
changed `PTP_1588_CLOCK` dependency handling in 5.15 kernel.

That currently leads to `CONFIG_NET_DSA_MV88E6XXX=m` in images produced
by buildbots due to `CONFIG_ALL_KMODS=y` config option being used in
those builds, which leads to a broken LAN bridge network on several
devices.

References: https://lists.infradead.org/pipermail/openwrt-devel/2022-December/039950.html
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-12-04 08:16:49 +01:00
Bjørn Mork
8719f73fa2 ramips: mt7621: enable lzma-loader for ZyXEL WAP6805
Fixing "Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board
to recover".

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-12-03 21:04:38 +01:00
Stijn Segers
5429411f73 mvebu: switch default kernel to 5.15
In light of https://github.com/openwrt/openwrt/issues/11077, switch mvebu
to 5.15 which has been the testing kernel on this target since April - over
half a year.

Run-tested on the following subtargets:
* cortexa9 (Turris Omnia - 03f41b1eb2)
* cortexa72 (MikroTik RB5009UG+S+IN)

Tested-by: Enrico Mioso <mrkiko.rs@gmail.com> [GL-MV1000]
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2022-12-02 16:57:48 +01:00
Jan-Niklas Burfeind
a5873ad675 realtek: fix dell typo
should be add/delete or abbreviated add/del

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2022-12-01 22:49:23 +01:00
Luiz Angelo Daros de Luca
ed9bd9824a realtek: refactor keep vlan tag setup, fix tagged forwarding
The code in dsa.c:rtl83xx_port_enable() was trying to set
vlan_port_tag_sts_ctrl while dealing with differences between SoCs.
However, not only that register has a different address, the register
structure and even the 2-bit value semantic changes for each SoC.

The vlan_port_tag_sts_ctrl field was dropped and converted into a
vlan_port_keep_incoming_tag_set() function that abstracts the different
between SoCs. The macro referencing that register migrated to the SoC
specific c file as it will be privately used by each file.

All magic numbers were converted into macros using BITMASK and
FIELD_PREP.

The vlan_port_tag_sts_ctrl debugfs was dropped for now as it is already
broken for rtl93xx. The best place for SoC specific code might be in each
respective c file and not in if/else clauses.

The final result is:

rtl838x: set ITAG_STS=TAGGED, same as before
rtl839x: set ITAG_STS=TAGGED instead of IGR_P_ITAG_KEEP=0x1, fixing
	 forwarding of tagged packets
rtl930x: set EGR_ITAG_STS=TAGGED instead of IGR_P_ITAG=0x1, possibly
	 fixing forwarding of tagged packets
rtl931x: set EGR_ITAG_STS=TAGGED instead of OTPID_KEEP=0x1, possibly
         fixing forwarding of tagged packets

Without (EGR_)ITAG_STS=TAGGED, at least for rtl839x, forwarded packets
will drop the vlan tag while packets from the CPU will still have the
correct tag.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
2022-12-01 22:15:55 +01:00
Olliver Schinagl
59542c9ac9 realtek: Fix rtl930x speed status accessor
The rtl930x speed status registers require 4 bits to indicate the speed
status. As such, we want to divide by 8. To make things consistent with
the rest of this code, use a bitshift however.

This bug probably won't affect many users yet, as there aren't many
rtl930x switches in the wild yet with more then 10 ports, and thus a
low-impact bugfix.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
[also fix port field extraction]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-12-01 22:11:06 +01:00
Alexander Couzens
d4c460648d
ipq40xx: add support for Mikrotik wAP R ac / LTE / LTE6
The Mikrotik wAP R AC is an outdoor, dual band, dual radio (802.11ac) AP
with a miniPCIe slot for a LTE modem.
The wAP R AC is similar to the wAP AC but with the miniPCIe slot.
The wAP R AC requires installing a LTE modem.
The wAP LTE and wAP LTE6 comes with a LTE modem installed.

See https://mikrotik.com/product/wap_r_ac for more info.

Specifications:
- SoC: Qualcomm Atheros IPQ4018
- CPU: 4x ARM Cortex A7
- RAM: 128MB
- Storage: 16MB NOR flash
- Wireless:
   - Built-in IPQ4018 (SoC) 802.11b/g/n 2x2:2, internal antenna
   - Built-in IPQ4018 (SoC) 802.11a/n/ac 2x2:2, internal antenna
- Ethernet: Built-in IPQ4018 (SoC, QCA8075) , 2x 1000/100/10 ports
  one with 802.3af/at PoE in
- 1x Mini PCI-E port (USB2)

Installation:
Boot the initramfs image via TFTP, then flash the sysupgrade image using
sysupgrade. Details at https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2022-11-27 13:28:22 +00:00
Aleksander Jan Bajkowski
bb2fb4f16a airoha: disable swconfig
Swconfig isn't used by this target and can be disabled for
this reason. Airoha doesn't even have an Ethernet driver.
In the future, this target should get a DSA driver.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-11-27 13:18:29 +01:00
Aleksander Jan Bajkowski
d81e948dc2 airoha: refresh config
This was done by executing these command:
$ time make kernel_oldconfig CONFIG_TARGET=platform

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
5b0e111789 layerscape: kmod-ppfe: Use ppfe driver as module
In 8274451cb86 kmod-ppfe was changed to built-in because CONFIG_FSL_PPFE
was binary. In 5.10 and 5.15 kernel, PPFE driver can be build as module.

This patch switch kmod-ppfe from build-in to loadable module.
Loadable module helps to avoid hazard: driver is looking for firmware
file before mount root.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
23b9b01cdd layerscape: switch kernel testing to 5.15
Let's test layerscape with 5.15 kernel.

Run tested: LS1012A-FRDM, LS1046A-RDB (nor and sd-boot images),
	    LS1021A-IOT (By @ArtelMike with u-boot fix)

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
afcccaad82 layerscape: Switch LS1012A-FRDM initramfs to gzip
At this moment LS1012A-FRDM have uncompressed initramfs image.

Error was caused, because gzip extract area overlap image.

Let's change loadaddr and enable gzip initramfs images again.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
d64d1c86cc layerscape: remove kernel 5.4 dependences
5.4 kernel was removed. Let's clean old dependences.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
a42edce9fd layerscape: 5.15: refresh kernel config
Done by 'make kernel_oldconfig'.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
8efffce677 layerscape: copy patches 5.10 to 5.15
One patch manually rebased:
302-arm64-dts-ls1012a-update-with-ppfe-support.patch

PFE driver patch recreated from NXP 5.15 tree:
701-staging-add-fsl_ppfe-driver.patch

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
f620fb4b73 layerscape: copy config 5.10 to 5.15
Configs was just copied.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
2268d55521 layerscape: refresh kernel config
Done by 'make kernel_oldconfig'.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Pawel Dembicki
2e4fe289ce layerscape: Fix SPI-NOR issues with vendor patches
For some reason LS1012A and LS1046A devboards don't work well with
Spansion SPI NOR flash. It cause read and write errors like:

[   27.285887] jffs2: Newly-erased block contained word 0xc20031985 at offset 0x025ae000
[   27.468922] jffs2: Newly-erased block contained word 0x0 at offset 0x02573000
[   27.502615] jffs2: Newly-erased block contained word 0xe723f41e5823f110 at offset 0x02572000
[   27.541550] jffs2: Newly-erased block contained word 0x1a7d266ee6 at offset 0x02571000
[   27.577195] jffs2: Newly-erased block contained word 0x5d000bae8d52fec6 at offset 0x02570000
[   27.611800] jffs2: Newly-erased block contained word 0x63515aee63515a4b at offset 0x0256f000
[   27.651749] jffs2: Newly-erased block contained word 0xc20031985 at offset 0x0256e000
[   27.825593] jffs2: Newly-erased block contained word 0xc20031985 at offset 0x0252e000

NXP have found workarround and applied in their vendor kernel version.
They force 1x tx and 1x rx lines in qspi. That method fix issues.
This patch ports patches from NXP LSDK tree.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-11-27 13:18:29 +01:00
Will Moss
a58146d452 ath79: D-Link DIR-825 B1 add factory.bin recipe
- Bring back factory.bin image which was missing after porting device to ath79 target
- Use default sysupgrade.bin image recipe
- Adjust max image size according to new firmware partition size after
"ath79: expand rootfs for DIR-825-B1 with unused space (aca8bb5)" changes
- Remove support of upgrading from version 19.07, because partition size changes mentioned above

Signed-off-by: Will Moss <willormos@gmail.com>
2022-11-27 13:18:29 +01:00
Michael Pratt
6de9287abd ath79: add support for Senao Engenius EAP1750H
FCC ID: A8J-EAP1750H

Engenius EAP1750H is an indoor wireless access point with
1 Gb ethernet port, dual-band wireless,
internal antenna plates, and 802.3at PoE+

**Specification:**

  - QCA9558 SOC
  - QCA9880 WLAN	PCI card, 5 GHz, 3x3, 26dBm
  - AR8035-A PHY	RGMII GbE with PoE+ IN
  - 40 MHz clock
  - 16 MB FLASH		MX25L12845EMI-10G
  - 2x 64 MB RAM	NT5TU32M16FG
  - UART at J10		populated
  - 4 internal antenna plates (5 dbi, omni-directional)
  - 5 LEDs, 1 button (power, eth0, 2G, 5G, WPS) (reset)

**MAC addresses:**

  MAC addresses are labeled as ETH, 2.4G, and 5GHz
  Only one Vendor MAC address in flash

  eth0 ETH  *:fb art 0x0
  phy1 2.4G *:fc ---
  phy0 5GHz *:fd ---

**Serial Access:**

  the RX line on the board for UART is shorted to ground by resistor R176
  therefore it must be removed to use the console
  but it is not necessary to remove to view boot log

  optionally, R175 can be replaced with a solder bridge short

  the resistors R175 and R176 are next to the UART RX pin at J10

**Installation:**

  2 ways to flash factory.bin from OEM:

  Method 1: Firmware upgrade page:

    OEM webpage at 192.168.1.1
    username and password "admin"
    Navigate to "Firmware Upgrade" page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

    After connecting to serial console and rebooting...
    Interrupt uboot with any key pressed rapidly
    execute `run failsafe_boot` OR `bootm 0x9fd70000`
    wait a minute
    connect to ethernet and navigate to
    "192.168.1.1/index.htm"
    Select the factory.bin image and upload
    wait about 3 minutes

**Return to OEM:**

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

**TFTP recovery:**

  Requires serial console, reset button does nothing

  rename initramfs to 'vmlinux-art-ramdisk'
  make available on TFTP server at 192.168.1.101
  power board, interrupt boot
  execute tftpboot and bootm 0x81000000

  NOTE: TFTP is not reliable due to bugged bootloader
  set MTU to 600 and try many times
  if your TFTP server supports setting block size
  higher block size is better.

**Format of OEM firmware image:**

  The OEM software of EAP1750H is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names...

    openwrt-ar71xx-generic-eap1750h-uImage-lzma.bin
    openwrt-ar71xx-generic-eap1750h-root.squashfs

  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  Newer EnGenius software requires more checks but their script
  includes a way to skip them, otherwise the tar must include
  a text file with the version and md5sums in a deprecated format.

  The OEM upgrade script is at /etc/fwupgrade.sh.

  OKLI kernel loader is required because the OEM software
  expects the kernel to be no greater than 1536k
  and the factory.bin upgrade procedure would otherwise
  overwrite part of the kernel when writing rootfs.

Note on PLL-data cells:

  The default PLL register values will not work
  because of the external AR8035 switch between
  the SOC and the ethernet port.

  For QCA955x series, the PLL registers for eth0 and eth1
  can be see in the DTSI as 0x28 and 0x48 respectively.
  Therefore the PLL registers can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x18050028 1` and `md 0x18050048 1`.

  The clock delay required for RGMII can be applied
  at the PHY side, using the at803x driver `phy-mode`.
  Therefore the PLL registers for GMAC0
  do not need the bits for delay on the MAC side.
  This is possible due to fixes in at803x driver
  since Linux 5.1 and 5.3

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2022-11-27 13:18:29 +01:00
Michael Pratt
128947db42 ath79: use nvmem-cells for radio calibration of EAP1200H
Transition from userscript to DTS for all of ART.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2022-11-27 13:18:29 +01:00
Edward Chow
2c33fd39a5 ath79: calibrate TP-LINK TL-WR2543ND with nvmem
Driver for and pci wlan card now pull the calibration data from the nvmem
subsystem.

This allows us to move the userspace caldata extraction for the pci-e ath9k
supported wifi into the device-tree definition of the device.

The wifi mac address remains correct after these changes, because When both
"mac-address" and "calibration" are defined, the effective mac address
comes from the cell corresponding to "mac-address" and
mac-address-increment.

Test passed on my tplink tl-wr2543nd.

Signed-off-by: Edward Chow <equu@openmail.cc>
2022-11-27 13:18:29 +01:00
John Audia
acb10faa35 kernel: bump 5.10 to 5.10.156
Manually rebased: ath79/patches-5.10/910-unaligned_access_hacks.patch

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-27 13:18:29 +01:00
John Audia
590aa0ca51 kernel: bump 5.15 to 5.15.80
Manually rebase:
   pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
   ath79/patches-5.15/910-unaligned_access_hacks.patch

All other patches automatically rebased

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

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-27 13:18:29 +01:00
Christian Marangi
60fc93b359
ipq806x: disable cache and fabric devfreq driver to improve stability
It was tested that cache scaling currently cause instability problem.
This is probably caused by a latent misconfiguration that cause the L2
cache to be sourced from the wrong source and runs at an unstable freq
compared to the original QSDK fw.

To improve stability while the problem is bisected, disable the devfreq
drivers with minimal perf penality.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-11-26 00:38:31 +01:00
Felix Fietkau
3dff6b53db kernel: fix mtk_eth_soc issue when using secondary GMAC on MT7621/MT7622
The CDMQ ingress special tag flag needs to be set for 7986 even without DSA
untag offload, otherwise tx checksum offload seems to break

Fixes: 9b482ee22f ("kernel: add more fixes for mtk_eth_soc")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-11-25 01:56:53 +01:00
Daniel Golle
c1d1202e67
mediatek: set persistent wifi mac for bpi-r64 and bpi-r3
Use persistent MAC address for the built-in wireless interfaces of the
BPi-R64 and BPi-R3 development boards.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-11-24 16:46:33 +00:00
Daniel Golle
87fc485450
ipq40xx: remove '-fit' string from kernel filenames
The type of those images is already distinguishable by the '.itb'
extension, there is no need for an additional '-fit' string in the
filenames. Remove it to behave more like other targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-11-24 16:46:28 +00:00
Daniel Golle
d9f7c751c9
ipq40xx: remove 'nand-' string from image filenames
Only on the ipq40xx subtarget different filenames were used for NAND-
based devices. This is unneeded, confusing and breaks downstream tools
such as luci-app-attendedsysupgrade and auc.
Remove the 'nand-' string from image filenames to fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-11-24 16:46:18 +00:00
Edmunt Pienkowsky
c34eab6fd1 bcm27xx: sound-soc-justboom-*: fix packages
Affected packages: sound-soc-justboom-both, sound-soc-justboom-dac and sound-soc-justboom-digi.

- Add snd-soc-wm8804-i2c and/or snd-soc-pcm512x-i2c kernel modules.
- Add kmod-regmap-i2c package dependency.

Signed-off-by: Edmunt Pienkowsky <roed@onet.eu>
2022-11-23 20:17:21 +01:00
Edmunt Pienkowsky
0889adf16f bcm27xx: sound-soc-hifiberry-digi: fix package
- Add snd-soc-wm8804-i2c kernel module,
- Add kmod-regmap-i2c package dependency.

Signed-off-by: Edmunt Pienkowsky <roed@onet.eu>
2022-11-23 20:17:18 +01:00
John Audia
3f7cc9d014 bcm27xx: disable duplicate sdhost driver
Enabling both CONFIG_MMC_BCM2835 and CONFIG_MMC_BCM2835_SDHOST causes this
error in dmesg:
Error: Driver 'sdhost-bcm2835' is already registered, aborting...

Disabling CONFIG_MMC_BCM2835 and leaving CONFIG_MMC_BCM2835_SDHOST enabled
avoids this error.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
[Disable driver for all subtargets, refresh configs, tweak description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-23 20:13:46 +01:00
Felix Fietkau
eaba63cdde kernel: fix regression on mt7986
The CDMQ ingress special tag flag needs to be set for 7986 even without DSA
untag offload, otherwise tx checksum offload seems to break

Fixes: 9b482ee22f ("kernel: add more fixes for mtk_eth_soc")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-11-23 11:34:43 +01:00
Felix Fietkau
4e1a6ee903 kernel: add WED rx support for mediatek
This is required for rx flow offloading on mt76 with MT7986 and MT7915

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-11-21 20:46:47 +01:00
Felix Fietkau
e410833bdd kernel: add a locking fix for netfilter hardware flow offloading
Protect the flow block cb list readers against concurrent updates

Reported-by: Chad Monroe <chad.monroe@smartrg.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-11-21 20:44:01 +01:00
Felix Fietkau
9b482ee22f kernel: add more fixes for mtk_eth_soc
Fix corner cases in DSA offload
Add refcounting fix for flow offload
Fix VLAN untagging issue on MT7986

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-11-21 11:47:36 +01:00
Maxim Anisimov
21762e4653 ramips: add support for Keenetic KN-3010
Keenetic KN-3010 is a 2.4/5 Ghz band 11ac (Wi-Fi 5) router, based on MT7621DAT.

Specification:
- System-On-Chip: MT7621DAT
- CPU/Speed: 880 MHz
- Flash-Chip: Winbond w25q256
- Flash size: 32768 KiB
- RAM: 128 MiB
- 5x 10/100/1000 Mbps Ethernet
- 4x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- Wireless No1 (2T2R): MT7603E 2.4 GHz 802.11bgn
- Wireless No2 (2T2R): MT7613BE 5 GHz 802.11ac
- 4x LED, 2x button, 1x mode switch

Notes:
- The device supports dual boot mode
- The firmware partitions were concatinated into one
- The FN button led indicator has been reassigned as the 2.4GHz
  wifi indicator.

Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-ramips-mt7621-keenetic_kn-3010-squashfs-factory.bin"
   to "KN-3010_recovery.bin" and place it in tftp server directory.
3. Connect PC with one of LAN ports, press the reset button, power up
   the router and keep button pressed until power led start blinking.
4. Router will download file from server, write it to flash and reboot.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2022-11-20 16:44:24 +01:00
Xiaopo Zhang
a28297d395 x86: enable PINCTRL for all Intel platform
Enable Intel PINCTRL for all platform on both 32 bit and 64 bit target.

Signed-off-by: Xiaopo Zhang <xiaopoz@proton.me>
2022-11-20 16:31:10 +01:00
Xiaopo Zhang
34615250a9 x86/64: enable Intel PINCTRL in 64bit target
Intel PINCTRL is not enable in the 64bit build, while it is enabled in
the x86/general target, which disables the ability of controlling GPIO
in the 64 bit build.

This commit copies the corresponding part of x86/general config, since
it is already there, so it should be fine to enable the same settings
here.

Signed-off-by: Xiaopo Zhang <xiaopoz@proton.me>
2022-11-20 16:31:10 +01:00
Will Moss
288b0004bf ath79: fix MAC address assigment for TP-Link TL-WR740N/TL-WR741ND v4
On TP-Link TL-WR740N/TL-WR741ND v4 LAN MAC address (eth1 in DTS) is main
device MAC address, so do not increment it. WAN MAC is LAN MAC + 1.

Signed-off-by: Will Moss <willormos@gmail.com>
2022-11-20 16:30:27 +01:00
Roger Pueyo Centelles
5a1d7d8c1b ath79: disable image building for Ubiquiti EdgeSwitch 8XP
The downstream OpenWrt driver for the BCM53128 switch ceased to work,
rendering the 8 LAN ports of the device unusable. This commit disables
image building while the problem is being solved.

See issue #10374 for more details.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2022-11-20 16:24:24 +01:00
Edward Chow
3d343ca713 ath79: calibrate nand netgear wndrxxxx with nvmem
Driver for both soc (2.4GHz Wifi) and pci (5 GHz) now pull the calibration
data from the nvmem subsystem.

This allows us to move the userspace caldata extraction for the pci-e ath9k
supported wifi into the device-tree definition of the device.

wmac's nodes are also changed over to use nvmem-cells over OpenWrt's
custom mtd-cal-data property.

The wifi mac address remains correct after these changes, because When both
"mac-address" and "calibration" are defined, the effective mac address
comes from the cell corresponding to "mac-address" and
mac-address-increment.

Test passed on my wndr3700v4 and wndr4500v3.
Signed-off-by: Edward Chow <equu@openmail.cc>
2022-11-20 16:13:48 +01:00
Aleksander Jan Bajkowski
bca663f20f kernel: backport tso for asix driver
Performance comparison (iperf3, mtu 1500):
Before: 53.9 Mbps
After: 87.9 Mbps

The tests were performed on a BT Home Hub 5A router.
The iperf3 server was running on the router, the client
on the host.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-11-18 20:27:52 +01:00
Christian Buschau
084c20f6c5 lantiq: xway: kernel: enable SMP support
Enabled CONFIG_MIPS_MT_SMP and CONFIG_SCHED_SMT.

Tested on FRITZ!Box 7330 SL, 7312 and o2 Box 4421.

Signed-off-by: Christian Buschau <christian.buschau@mailbox.org>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2022-11-18 20:27:52 +01:00
Christian Buschau
d3527bb83b lantiq: xway: ar9: add ICU1 (2nd core for SMP)
Fixes leftover TODO from commit 6bf179b270

Signed-off-by: Christian Buschau <christian.buschau@mailbox.org>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2022-11-18 20:27:52 +01:00
Christian Buschau
fb0256e88e lantiq: xway: refresh kernel config
Run of 'make kernel_oldconfig CONFIG_TARGET=subtarget'

Signed-off-by: Christian Buschau <christian.buschau@mailbox.org>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2022-11-18 20:27:52 +01:00
Edward Chow
e354b01baf ath79: calibrate all ar9344 tl-WDRxxxx with nvmem
Driver for both soc (2.4GHz Wifi) and pci (5 GHz) now pull the calibration
data from the nvmem subsystem.

This allows us to move the userspace caldata extraction for the pci-e ath9k
supported wifi into the device-tree definition of the device.

wmac's nodes are also changed over to use nvmem-cells over OpenWrt's
custom mtd-cal-data property.

The wifi mac address remains correct after these changes, because When both
"mac-address" and "calibration" are defined, the effective mac address
comes from the cell corresponding to "mac-address" and
mac-address-increment.

Test passed on my tplink tl-wdr4310.

Signed-off-by: Edward Chow <equu@openmail.cc>
2022-11-18 20:27:52 +01:00
Aleksander Jan Bajkowski
224babfd6f mediatek: mt7623: disable swconfig
The mt7623 subtarget supports 2 devices:
 * Bananapi BPi-R2 (added in 1f068588ef, 7762c07c88),
 * UniElec U7623-02 (added in 4def81f30f).

Both devices support DSA from the beginning, thus
swconfig can be safely disabled.

In the past, the subtarget mt7623 also supported
the mt7623 reference board. This board originally
supported swconfig, and was later converted to DSA
(64175ffb79) and then dropped (1ab81bf02d).

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-11-18 20:27:52 +01:00
Aleksander Jan Bajkowski
0e001e4185 mediatek: mt7623: refresh config
This was done by executing these command:
$ time make kernel_oldconfig CONFIG_TARGET=subtarget

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-11-18 20:27:52 +01:00
Moritz Warning
dc7d431b60 treewide: uniform vendor name for devolo
The company name is lower case on the website
(https://www.devolo.de) and in product names.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2022-11-18 20:27:52 +01:00
Moritz Warning
c0fb12c42e treewide: uniform vendor name for ASUS
Their own website (https://www.asus.com)
always uses the upper case style name.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2022-11-16 23:30:11 +01:00
Josef Schlehofer
941132cb3c mpc85xx: fix missing kernel config symbol
While compiling OpenWrt master for Turris 1.x routers (p2020), it
reported following error:

    Gianfar Ethernet (GIANFAR) [Y/n/m/?] y
    Freescale DPAA2 Ethernet Switch (FSL_DPAA2_SWITCH) [N/m/y/?] (NEW)
Error in reading or end of file.

Let's fix it by disabling it.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-11-16 23:30:11 +01:00
John Audia
9e137bb10e kernel: bump 5.10 to 5.10.155
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-16 23:30:11 +01:00
John Audia
170f3d7b0a kernel: bump 5.15 to 5.15.79
All other patches automatically rebased

Build system: x86_64
Build-tested: bcm2711/RPi4B, ramips/mt7621
Run-tested: bcm2711/RPi4B, ramips/mt7621

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-16 23:30:11 +01:00
Kuan-Yi Li
49bbfd9968 cypress-nvram: consolidate NVRAM packages
NVRAM packages for the same wireless chip are consolidated into one as
they contain only small text files and symlinks.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-11-16 20:14:13 +01:00
Kuan-Yi Li
c6e86d8095 linux-firmware: broadcom: consolidate NVRAM packages
NVRAM packages for the same wireless chip are consolidated into one as
they contain only small text files and symlinks.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-11-16 20:14:13 +01:00
Kuan-Yi Li
22fd8b0df6 cypress-nvram: disassociate from external source repo
Since all NVRAM files in external repo are now upstreamed and to lower
future maintenance cost, disassociate the package from external source
repo.

All upstream pending NVRAM files shall be stored locally from now on.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
[Remove outdated URL, add SPDX-License-Identifier]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-16 20:14:13 +01:00
Pawel Dembicki
f74275c936 kernel: add missing symbol in generic config
Found during work on qoriq target.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[improve commit message, remove from target configs]
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-11-16 20:23:34 +02:00
Kuan-Yi Li
a110418027 linux-firmware: offer two versions of firmware for CYW4339
According to commit 6f6c2fb321, AP6335 module used in PICO-PI-IMX7D works
only with firmware from `linux-firmware`. However, firmware from
`cypress-firmware` suite is directly from the chip company (Infineon) and
is actually newer.

Instead of dropping the firmware from Infineon, create a package named
`brcmfmac-firmware-4339-sdio`, and keep the Infineon version of
`cypress-firmware-4339-sdio` around.

This gives us devs the option to choose. Also, it means that

 - packages `brcmfmac-firmware-*` uniformly come from `linux-firmware`
 - packages `cypress-firmware-*` uniformly come from `cypress-firmware`

so hopefully brings more clarity.

Tested-by: Lech Perczak <lech.perczak@gmail.com>
Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-11-15 20:49:58 +01:00
Kuan-Yi Li
729cdff71d bcm27xx: switch to linux-firmware SDIO NVRAM
Package `cypress-nvram` was added because back then the files for newer
RPi models on `linux-firmware` didn't have the proper values.

It is the other way around nowadays, so switch back to `linux-firmware`.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-11-15 20:48:54 +01:00
Kuan-Yi Li
efaad5e901 cypress-nvram: use symlink to provide NVRAM for some RPis
This is to align the implementation with upstream `linux-firmware`.

Some Raspberry Pi boards do not have dedicated NVRAM in `linux-firmware`
source repository, their NVRAM is provided through a symbolic link to
NVRAM of another board with an identical wireless design.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-11-15 20:47:54 +01:00
Chuanhong Guo
c984fc7624
rockchip: use LZMA FIT for kernel image
Use LZMA compressed kernel to save some space in boot partition.

Fixes: #11197
Tested-by: Tianling Shen <cnsztl@immortalwrt.org> [NanoPi R2S]
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-11-14 22:50:21 +08:00
Lech Perczak
6fdeb48c1e ath79: support Ruckus ZoneFlex 7025
Ruckus ZoneFlex 7025 is a single 2.4GHz radio 802.11n 1x1 enterprise
access point with built-in Ethernet switch, in an electrical outlet form factor.

Hardware highligts:
- CPU: Atheros AR7240 SoC at 400 MHz
- RAM: 64MB DDR2
- Flash: 16MB SPI-NOR
- Wi-Fi: AR9285 built-in 2.4GHz 1x1 radio
- Ethernet: single Fast Ethernet port inside the electrical enclosure,
  coupled with internal LSA connector for direct wiring,
  four external Fast Ethernet ports on the lower side of the device.
- PoE: 802.3af PD input inside the electrical box.
  802.3af PSE output on the LAN4 port, capable of sourcing
  class 0 or class 2 devices, depending on power supply capacity.
- External 8P8C pass-through connectors on the back and right side of the device
- Standalone 48V power input on the side, through 2/1mm micro DC barrel jack

Serial console: 115200-8-N-1 on internal JP1 header.
Pinout:

---------- JP1
|5|4|3|2|1|
----------

Pin 1 is near the "H1" marking.
1 - RX
2 - n/c
3 - VCC (3.3V)
4 - GND
5 - TX

Installation:
There are two methods of installation:
- Using serial console [1] - requires some disassembly, 3.3V USB-Serial
  adapter, TFTP server,  and removing a single T10 screw,
  but with much less manual steps, and is generally recommended, being
  safer.
- Using stock firmware root shell exploit, SSH and TFTP [2]. Does not
  work on some rare versions of stock firmware. A more involved, and
  requires installing `mkenvimage` from u-boot-tools package if you
  choose to rebuild your own environment, but can be used without
  disassembly or removal from installation point, if you have the
  credentials.
  If for some reason, size of your sysupgrade image exceeds 13312kB,
  proceed with method [1]. For official images this is not likely to
  happen ever.

[1] Using serial console:
0. Connect serial console to H1 header. Ensure the serial converter
   does not back-power the board, otherwise it will fail to boot.

1. Power-on the board. Then quickly connect serial converter to PC and
   hit Ctrl+C in the terminal to break boot sequence. If you're lucky,
   you'll enter U-boot shell. Then skip to point 3.
   Connection parameters are 115200-8-N-1.

2. Allow the board to boot.  Press the reset button, so the board
   reboots into U-boot again and go back to point 1.

3. Set the "bootcmd" variable to disable the dual-boot feature of the
   system and ensure that uImage is loaded. This is critical step, and
   needs to be done only on initial installation.

   > setenv bootcmd "bootm 0x9f040000"
   > saveenv

4. Boot the OpenWrt initramfs using TFTP. Replace IP addresses as needed:

   > setenv serverip 192.168.1.2
   > setenv ipaddr 192.168.1.1
   > tftpboot 0x81000000 openwrt-ath79-generic-ruckus_zf7025-initramfs-kernel.bin
   > bootm 0x81000000

5. Optional, but highly recommended: back up contents of "firmware" partition:

   $ ssh root@192.168.1.1 cat /dev/mtd1 > ruckus_zf7025_fw1_backup.bin

6. Copy over sysupgrade image, and perform actual installation. OpenWrt
   shall boot from flash afterwards:

   $ ssh root@192.168.1.1
   # sysupgrade -n openwrt-ath79-generic-ruckus_zf7025-squashfs-sysupgrade.bin

[2] Using stock root shell:
0. Reset the device to factory defaullts. Power-on the device and after
   it boots, hold the reset button near Ethernet connectors for 5
   seconds.

1. Connect the device to the network. It will acquire address over DHCP,
   so either find its address using list of DHCP leases by looking for
   label MAC address, or try finding it by scanning for SSH port:

   $ nmap 10.42.0.0/24 -p22

   From now on, we assume your computer has address 10.42.0.1 and the device
   has address 10.42.0.254.

2. Set up a TFTP server on your computer. We assume that TFTP server
   root is at /srv/tftp.

3. Obtain root shell. Connect to the device over SSH. The SSHD ond the
   frmware is pretty ancient and requires enabling HMAC-MD5.

   $ ssh 10.42.0.254 \
   -o UserKnownHostsFile=/dev/null \
   -o StrictHostKeyCheking=no \
   -o MACs=hmac-md5

   Login. User is "super", password is "sp-admin".
   Now execute a hidden command:

   Ruckus

   It is case-sensitive. Copy and paste the following string,
   including quotes. There will be no output on the console for that.

   ";/bin/sh;"

   Hit "enter". The AP will respond with:

   grrrr
   OK

   Now execute another hidden command:

   !v54!

   At "What's your chow?" prompt just hit "enter".
   Congratulations, you should now be dropped to Busybox shell with root
   permissions.

4. Optional, but highly recommended: backup the flash contents before
   installation. At your PC ensure the device can write the firmware
   over TFTP:

   $ sudo touch /srv/tftp/ruckus_zf7025_firmware{1,2}.bin
   $ sudo chmod 666 /srv/tftp/ruckus_zf7025_firmware{1,2}.bin

   Locate partitions for primary and secondary firmware image.
   NEVER blindly copy over MTD nodes, because MTD indices change
   depending on the currently active firmware, and all partitions are
   writable!

   # grep rcks_wlan /proc/mtd

   Copy over both images using TFTP, this will be useful in case you'd
   like to return to stock FW in future. Make sure to backup both, as
   OpenWrt uses bot firmwre partitions for storage!

   # tftp -l /dev/<rcks_wlan.main_mtd> -r ruckus_zf7025_firmware1.bin -p 10.42.0.1
   # tftp -l /dev/<rcks_wlan.bkup_mtd> -r ruckus_zf7025_firmware2.bin -p 10.42.0.1

   When the command finishes, copy over the dump to a safe place for
   storage.

   $ cp /srv/tftp/ruckus_zf7025_firmware{1,2}.bin ~/

5. Ensure the system is running from the BACKUP image, i.e. from
   rcks_wlan.bkup partition or "image 2". Otherwise the installation
   WILL fail, and you will need to access mtd0 device to write image
   which risks overwriting the bootloader, and so is not covered here
   and not supported.

   Switching to backup firmware can be achieved by executing a few
   consecutive reboots of the device, or by updating the stock firmware. The
   system will boot from the image it was not running from previously.
   Stock firmware available to update was conveniently dumped in point 4 :-)

6. Prepare U-boot environment image.
   Install u-boot-tools package. Alternatively, if you build your own
   images, OpenWrt provides mkenvimage in host staging directory as well.
   It is recommended to extract environment from the device, and modify
   it, rather then relying on defaults:

   $ sudo touch /srv/tftp/u-boot-env.bin
   $ sudo chmod 666 /srv/tftp/u-boot-env.bin

   On the device, find the MTD partition on which environment resides.
   Beware, it may change depending on currently active firmware image!

   # grep u-boot-env /proc/mtd

   Now, copy over the partition

   # tftp -l /dev/mtd<N> -r u-boot-env.bin -p 10.42.0.1

   Store the stock environment in a safe place:

   $ cp /srv/tftp/u-boot-env.bin ~/

   Extract the values from the dump:

   $ strings u-boot-env.bin | tee u-boot-env.txt

   Now clean up the debris at the end of output, you should end up with
   each variable defined once. After that, set the bootcmd variable like
   this:

   bootcmd=bootm 0x9f040000

   You should end up with something like this:

bootcmd=bootm 0x9f040000
bootargs=console=ttyS0,115200 rootfstype=squashfs init=/sbin/init
baudrate=115200
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
mtdparts=mtdparts=ar7100-nor0:256k(u-boot),7168k(rcks_wlan.main),7168k(rcks_wlan.bkup),1280k(datafs),256k(u-boot-env)
mtdids=nor0=ar7100-nor0
bootdelay=2
filesize=52e000
fileaddr=81000000
ethact=eth0
stdin=serial
stdout=serial
stderr=serial
partition=nor0,0
mtddevnum=0
mtddevname=u-boot
ipaddr=192.168.0.1
serverip=192.168.0.2
stderr=serial
ethact=eth0

   These are the defaults, you can use most likely just this as input to
   mkenvimage.

   Now, create environment image and copy it over to TFTP root:

   $ mkenvimage -s 0x40000 -b -o u-boot-env.bin u-boot-env.txt
   $ sudo cp u-boot-env.bin /srv/tftp

   This is the same image, gzipped and base64-encoded:

H4sICOLMEGMAA3UtYm9vdC1lbnYtbmV3LmJpbgDt0E1u00AUAGDfgm2XDUrTsUV/pTkFSxZoEk+o
lcQJtlNaLsURwU4FikDiBN+3eDNvLL/3Zt5/+vFuud8Pq10dp3V3EV4e1uFDGBXTQeq+9HG1b/v9
NsdheP0Y5mV5U4Vw0Y1f1/3wesix/3pM/dO6v2jaZojX/bJpr6dtsUzHuktDjm//FHl4SnXdxfAS
wmN4SWkMy+UYVqsx1PUYci52Q31I3dDHP5vU3ZUhXLX7LjxWN7eby+PVNNxsflfe3m8uu9Wm//xt
m9rFLjXtv6fLzfEwm5fVfdhc1mlI6342Pytzldvn2dS1qfs49Tjvd3qFOm/Ta6yKdbPNffM9x5sq
Ty805acL3Zfh5HTD1RDHJRT9WLGNfe6atJ2S/XE4y3LX/c6mSzZDs29P3edhmqXOz+1xF//s0y7H
t3GL5nDqWT5Ui/Gii7Aoi7HQ81jrcHZY/dXkfLLiJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8
xy8jb4zOAAAEAA==

7. Perform actual installation. Copy over OpenWrt sysupgrade image to
   TFTP root:

   $ sudo cp openwrt-ath79-generic-ruckus_zf7025-squashfs-sysupgrade.bin /srv/tftp

   Now load both to the device over TFTP:

   # tftp -l /tmp/u-boot-env.bin -r u-boot-env.bin -g 10.42.0.1
   # tftp -l /tmp/openwrt.bin -r openwrt-ath79-generic-ruckus_zf7025-squashfs-sysupgrade.bin -g 10.42.0.1

   Verify checksums of both images to ensure the transfer over TFTP
   was completed:

   # sha256sum /tmp/u-boot-env.bin /tmp/openwrt.bin

   And compare it against source images:

   $ sha256sum /srv/tftp/u-boot-env.bin /srv/tftp/openwrt-ath79-generic-ruckus_zf7025-squashfs-sysupgrade.bin

   Locate MTD partition of the primary image:

   # grep rcks_wlan.main /proc/mtd

   Now, write the images in place. Write U-boot environment last, so
   unit still can boot from backup image, should power failure occur during
   this. Replace MTD placeholders with real MTD nodes:

   # flashcp /tmp/openwrt.bin /dev/<rcks_wlan.main_mtd>
   # flashcp /tmp/u-boot-env.bin /dev/<u-boot-env_mtd>

   Finally, reboot the device. The device should directly boot into
   OpenWrt. Look for the characteristic power LED blinking pattern.

   # reboot -f

   After unit boots, it should be available at the usual 192.168.1.1/24.

Return to factory firmware:

1. Boot into OpenWrt initramfs as for initial installation. To do that
   without disassembly, you can write an initramfs image to the device
   using 'sysupgrade -F' first.
2. Unset the "bootcmd" variable:
   fw_setenv bootcmd ""
3. Concatenate the firmware backups, if you took them during installation using method 2:

   $ cat ruckus_zf7025_fw1_backup.bin ruckus_zf7025_fw2_backup.bin > ruckus_zf7025_backup.bin

3. Write factory images downloaded from manufacturer website into
   fwconcat0 and fwconcat1 MTD partitions, or restore backup you took
   before installation:

   # mtd write ruckus_zf7025_backup.bin /dev/mtd1

4. Reboot the system, it should load into factory firmware again.

Quirks and known issues:
- Flash layout is changed from the factory, to use both firmware image
  partitions for storage using mtd-concat, and uImage format is used to
  actually boot the system, which rules out the dual-boot capability.
- The 2.4 GHz radio has its own EEPROM on board, not connected to CPU.
- The stock firmware has dual-boot capability, which is not supported in
  OpenWrt by choice.
  It is controlled by data in the top 64kB of RAM which is unmapped,
  to avoid   the interference in the boot process and accidental
  switch to the inactive image, although boot script presence in
  form of "bootcmd" variable should prevent this entirely.
- On some versions of stock firmware, it is possible to obtain root shell,
  however not much is available in terms of debugging facitilies.
  1. Login to the rkscli
  2. Execute hidden command "Ruckus"
  3. Copy and paste ";/bin/sh;" including quotes. This is required only
     once, the payload will be stored in writable filesystem.
  4. Execute hidden command "!v54!". Press Enter leaving empty reply for
     "What's your chow?" prompt.
  5. Busybox shell shall open.
  Source: https://alephsecurity.com/vulns/aleph-2019014

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2022-11-13 22:36:06 +01:00
Ivaylo Ivanov
6afc355b2e ramips: Add support for D-Link DIR-3060 A1
Hardware specification:
SoC: MediaTek MT7621AT
Flash: Winbond W29N01HVSINA 128MB
RAM: Micron MT41K128M16JT-125 256MB
Ethernet: 4x 10/100/1000 Mbps
WiFi1: MT7615DN 2.4GHz N 2x2:2
WiFi2: MT7615DN 5GHz AC 2x2:2
WiFi3: MT7615N 5GHz AC 4x4:4
Button: WPS, Reset

Flash instructions:
OpenWrt can be installed via D-Link Recovery GUI:

    Push and hold reset button (on the bottom of the device) until power led starts flashing (about 10 secs or so) while plugging in the power cable.
    Give it ~30 seconds, to boot the recovery mode GUI
    Connect your client computer to LAN1 of the device
    Set your client IP address manually to 192.168.0.2 / 255.255.255.0.
    Call the recovery page for the device at http://192.168.0.1/
    Use the provided emergency web GUI to upload and flash a new firmware to the device

Signed-off-by: Ivaylo Ivanov <iivailo@mail.bg>
2022-11-13 22:36:06 +01:00
Daniel Fuchs
794d1645b3 ramips: add support for Amped Wireless B1200EX
This device is almost identical to the already supported Edimax
EW-7476RP5, the only differences are:
- There is no mode selection slider switch on this device
- The two wireless LEDs are green instead of blue
- Model name in the CSYS header is RN10

Additional changes:
- Moved WiFi LEDs and the slider switch to the individual dt files
- Added ieee80211-freq-limit to the mt7612e radio to properly disable
  2.4GHz band on this radio

Device specifications:
SoC:	MediaTek MT7620a @ 580MHz
RAM:	64M (Winbond W9751G6KB-25)
FLASH:	8MB (Macronix)
WiFi:	SoC-integrated: MediaTek MT7620a bgn
WiFi:	MediaTek MT7612EN nac
GbE:	1x (RTL8211E)
BTN:	WPS/RESET
LED:	- WiFi 5G (green)
	- WiFi 2.4G (green)
	- Signal Strength (green)
	- Power (green)
	- WPS (green)
	- LAN (green)
UART:	UART is present as Pads with throughholes on the PCB. They are
	located next to the WPS button
	3.3V - RX - GND - TX / 57600-8N1
	3.3V is the square pad

Installation:
Upload the sysupgrade image via the default web interface

Signed-off-by: Daniel Fuchs <software@sagacioussuricata.com>
2022-11-13 22:36:06 +01:00
Mikhail Zhilkin
0cfd15552e ramips: add support for Rostelecom RT-SF-1
Rostelecom RT-SF-1 is a wireless WiFi 5 router manufactured by Sercomm
company.

Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 256 MiB
Flash: 256 MiB, Micron MT29F2G08ABAGA3W
Wireless 2.4 GHz (MT7603EN): b/g/n, 2x2
Wireless 5 GHz (MT7615E): a/n/ac, 4x4
Ethernet: 5xGbE (WAN, LAN1, LAN2, LAN3, LAN4)
USB ports: 1xUSB3.0
ZigBee: 3.0, EFR32 MG1B232GG
Button: 2 buttons (Reset & WPS)
LEDs:
   - 1x Status (RGB)
   - 1x 2.4G (blue, hardware, mt76-phy0)
   - 1x 5G (blue, hardware, mt76-phy1)
Power: 12 VDC, 1.5 A
Connector type: barrel
Bootloader: U-Boot

Installation
-----------------
1. Remove dots from the OpenWrt factory image filename
2. Login to the router web interface
3. Update firmware using web interface with the OpenWrt factory image
4. If OpenWrt is booted, then no further steps are required. Enjoy!
   Otherwise (Stock firmware has booted again) proceed to the next step.
5. Update firmware using web interface with any version of the Stock
   firmware
6. Update firmware using web interface with the OpenWrt factory image

Revert to stock
---------------
Change bootflag to Sercomm1 in OpenWrt CLI and then reboot:
    printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3

Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery

MAC Addresses
-------------
+-----+------------+------------+
| use | address    | example    |
+-----+------------+------------+
| LAN | label      | *:72, *:d2 |
| WAN | label + 11 | *:7d, *:dd |
| 2g  | label + 2  | *:74, *:d4 |
| 5g  | label + 3  | *:75, *:d5 |
+-----+------------+------------+
The label MAC address was found in Factory 0x21000

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-11-13 21:51:22 +01:00
Mikhail Zhilkin
e6b99a4e43 ramips: create common dtsi for Sercomm Dxx routers
This commit adds common dtsi for the following Sercomm devices with 256
MB NAND:
Beeline Smartbox TURBO (Sercomm DF3)
Rostelecom RT-SF-1 (Sercomm DKG)

Also fixed typo ("Container" mtd name should be with a capital).

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-11-13 21:51:22 +01:00
Martin Dziura
a0b25e17ae ramips: glinet_gl-mt300n-v2: allow to use I2C and UART1 pins as GPIO
This is explicitly intended by the official documentation at
https://docs.gl-inet.com/en/3/specification/gl-mt300n-v2/#pcb-pinout

Signed-off-by: Martin Dziura <m.dziura@tum.de>
2022-11-13 21:51:22 +01:00
David Bauer
fdcd383919 kconfig: abort configuration on unset symbol
This fixes the initial patch to cover all cases where unset symbols are
handled in the code.

Fixes commit eaa9c94c75 ("generic: Kconfig: exit on unset symbol")

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-11-13 16:49:30 +01:00
Lech Perczak
1a49b499f1 ipq40xx: dts: remove leftover nodes after DSA conversion
Remove ess-psgmii@98000, edma@c080000 and ess-switch@c000000 nodes.
These nodes are not used after the DSA conversion, but were left over
in a few devices added recently.

ZTE MF289F is omitted on purpose, as for it, these nodes will be removed
together with DSA conversion.

Build tested only, as I only have MF286D from those devices.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2022-11-13 15:31:54 +01:00
Sven Eckelmann
fc69532eb9 ipq40xx: Convert plasmacloud,pa2200 to DSA
* ethernet1:

  - physical port label "Ethernet 1"
  - its mac address is printed on the device label

* ethernet2:

  - physical port label "Ethernet 2"
  - can be used to power the device

Both ports are not marked by there role (because the vendor firmware
automatically detects roles) but the "Ethernet 2" port was used in the past
for "WAN" functionality in OpenWrt.

Tested-by: Michaël BILCOT <michael.bilcot@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-13 15:26:34 +01:00
Sven Eckelmann
ce6c9e0328 ipq40xx: utilize nvmem-cells for plasmacloud,pa2200
The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.

But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.

Reported-by: Robert Marko <robert.marko@sartura.hr>
Tested-by: Michaël BILCOT <michael.bilcot@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-13 15:26:34 +01:00
Sven Eckelmann
539a5fd624 ipq40xx: Convert plasmacloud,pa1200 to DSA
* ethernet1:

  - physical port label "Ethernet 1"
  - its mac address is printed on the device label

* ethernet2:

  - physical port label "Ethernet 2"
  - can be used to power the device

Both ports are not marked by there role (because the vendor firmware
automatically detects roles) but the "Ethernet 2" port was used in the past
for "WAN" functionality in OpenWrt.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-13 15:26:34 +01:00
Sven Eckelmann
b8bda645fc ipq40xx: utilize nvmem-cells for plasmacloud,pa1200
The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.

But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.

Reported-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-13 15:26:34 +01:00
Arne Zachlod
364550f9d9 ramips: fix MAC address assignment for rt1800, e7350
previous commit ffa4b5283b introduced a bug which broke the MAC address
assignment for belkin,rt1800 and linksys,e7350.

Fixes: ffa4b5283b ("ramips: add support for Mikrotik LtAP-2HnD")
Signed-off-by: Arne Zachlod <arne@nerdkeller.org>
2022-11-13 15:17:49 +01:00
Hauke Mehrtens
b97e5ac785 bcm4908: Refresh kernel patches
Refresh the kernel patches for this target. No manual changes.

Fixes: 45ac906c64 ("bcm4908: update DTS files with the latest changes")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-11-12 22:53:04 +01:00
Sven Eckelmann
087a8e39be ipq40xx: utilize nvmem-cells for openmesh,a62
The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.

But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.

Reported-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Michaël BILCOT <michael.bilcot@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-12 18:15:55 +01:00
Sven Eckelmann
2b2f14c959 ipq40xx: utilize nvmem-cells for openmesh,a42
The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.

But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.

Reported-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-12 18:15:55 +01:00
Sven Eckelmann
c6bef1b83a ipq40xx: Convert openmesh,a62 to DSA
* ethernet1:

  - physical port label "Ethernet 1"
  - can be used to power the device
  - its mac address is printed on the device label

* ethernet2:

  - physical port label "Ethernet 2"

Both ports are not marked by there role (because the vendor firmware
automatically detects roles) but the "Ethernet 1" port was used in the past
for "WAN" functionality in OpenWrt.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Michaël BILCOT <michael.bilcot@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-12 18:15:55 +01:00
Sven Eckelmann
66a3c32b47 ipq40xx: Convert openmesh,a42 to DSA
* ethernet1:

  - physical port label "Ethernet 1"
  - can be used to power the device
  - its mac address is printed on the device label

* ethernet2:

  - physical port label "Ethernet 2"

Both ports are not marked by there role (because the vendor firmware
automatically detects roles) but the "Ethernet 1" port was used in the past
for "WAN" functionality in OpenWrt.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-11-12 18:15:55 +01:00
Guillaume Lefebvre
65d9a715fc ipq40xx: D-Link DAP-2610: convert to DSA
Reenable D-Link DAP-2610, convert it to DSA and label port to 'lan', as shown on the case

Reviewed-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Guillaume Lefebvre <guillaume@zelig.ch>
2022-11-12 18:15:55 +01:00
Óscar García Amor
62efb34071 ramips: add support for Cudy WR1300 v2
Specifications:
 - SoC: MediaTek MT7621AT
 - RAM: 128 MB (DDR3)
 - Flash: 16 MB (SPI NOR)
 - WiFi: MediaTek MT7603E, MediaTek MT7613BE
 - Switch: 1 WAN, 4 LAN (Gigabit)
 - Ports: 1 USB 3.0
 - Buttons: Reset, WPS
 - LEDs: System, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G, WPS
 - Power: DC 12V 1A tip positive

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
 - See http://www.cudytech.com/newsinfo/547425.html

Signed-off-by: Óscar García Amor <ogarcia@connectical.com>
2022-11-12 18:15:55 +01:00
Szabolcs Hubai
18801f2648 ramips: mt7621: use seama-lzma-loader for D-Link DIR-860L B1
Fix the LZMA ERROR 1 with a single line of recipe instead of duplicating
"uimage-lzma-loader".

While reviewing my original submission of commit ce19571004 David
suggested to use $(Device/uimage-lzma-loader), but due to the specific
needs of the vendor bootloader that simple oneliner didn't work.

The new $(Device/seama-lzma-loader) is for those SEAMA capable
bootloaders.

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2022-11-12 18:15:55 +01:00
Szabolcs Hubai
c293b492df ramips: rt3883: use seama-lzma-loader for D-Link DIR-645
In the support topic [0] of the GitHub issue #10634 it was found out
(based on boot logs) that the uimage-lzma-loader (commit 09faa73c53)
never worked, as an earlier workaround (commit 6fba88de19) negated
the recipe:

    3: System Boot system code via Flash.
    ## Booting image at bc050000 ...
    raspi_read: from:50000 len:40
    .raspi_read: from:50000 len:c
    .raspi_read: from:50000 len:1fa000
    ................................We have SEAMA, Image Size = 2072512
    Verifying Checksum ...
    Uncompressing SEAMA linux.lzma ... OK
    ## Transferring control to Linux (at address 80000000) ...
    ## Giving linux memsize in MB, 64

    Starting kernel ...

    [    0.000000] Linux version 5.4.188 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16554-1d4dea6d4f)) #0 Sat Apr 16 12:59:34 2022
    [    0.000000] SoC Type: Ralink RT3883 ver:1 eco:5
    [    0.000000] printk: bootconsolde [early0] enabled
    [    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
    [    0.000000] MIPS: machine is D-Link DIR-645
    [    0.000000] Initrd not found or empty - disabling initrd

Using the new seama-lzma-loader it's able to boot OpenWrt 22.03
and OpenWrt SNAPSHOT too:

    3: System Boot system code via Flash.
    ## Booting image at bc050000 ...
    raspi_read: from:50000 len:40
    .raspi_read: from:50000 len:c
    .raspi_read: from:50000 len:48b004
    .........................................................................We have SEAMA, Image Size = 4763588
    Verifying Checksum ...
    Uncompressing SEAMA linux.lzma ... OK
    ## Transferring control to Linux (at address 80000000) ...
    ## Giving linux memsize in MB, 64

    Starting kernel ...

    OpenWrt kernel loader for MIPS based SoC
    Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
    Decompressing kernel... done!
    Starting kernel at 80000000...

    [    0.000000] Linux version 5.10.144 (xabolcs@ut2004) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 11.3.0 r20774+2-b71affaf8b) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 Tue Sep 27 23:02:30 2022
    [    0.000000] SoC Type: Ralink RT3883 ver:1 eco:5
    [    0.000000] printk: bootconsole [early0] enabled
    [    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
    [    0.000000] MIPS: machine is D-Link DIR-645
    [    0.000000] Initrd not found or empty - disabling initrd
    [    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
    [    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
    [    0.000000] Zone ranges:
    [    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
    [    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2

The OKLI Loader is unable to read the flash on this SoC:

    Looking for OpenWrt image... not found! ('0xddbaddba' at 0xbc051000)

0: https://forum.openwrt.org/t/136435

Fixes: GitHub issue #10634 ("V22.03.0 release currently does not work on D-Link DIR-645")
Fixes: 09faa73c53 ("ramips: rt3883: use lzma-loader for DIR-645")
Tested-by: Glenn Fowler <gfowler1@outlook.com>
Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2022-11-12 18:15:55 +01:00
Szabolcs Hubai
e7ad68d682 ramips: define lzma-loader recipe for SEAMA devices
Define "Device/seama-lzma-loader" recipe for SEAMA devices to help
contributors avoid doing recipe mistakes.

In a forum topic [0] I was under the impression that the good old
uimage-lzma-loader didn't fix the LZMA ERROR 1 for a device.

It was found out, that the uimage-lzma-loader never worked because the
KERNEL variable was overriden earlier (also an LZMA ERROR 1 related
commit, 6fba88de19), and the "use lzma-loader" fix (commit
09faa73c53) didn't catch that to include the "loader-kernel" part.

I contributed an LZMA ERROR 1 fix (commit ce19571004) for the SEAMA
device D-Link DIR-860L B1, where I had to duplicate the whole
uimage-lzma-loader recipe because of the special needs of the vendor
bootloader.

This new recipe reuse most of uimage-lzma-loader's KERNEL definiton to
avoid duplication.

It uses "relocate-kernel" as it needed for D-Link DIR-860L B1 to
boot from flash, and it's compatible with D-Link DIR-645 too.

It repacks lzma-loader with lzma for kernel (without uImage), because
these weird hacked vendor bootloaders accepts only LZMA compressed
kernels from flash:

    We have SEAMA, Image Size = 4759794
    Verifying Checksum ...
    Uncompressing SEAMA linux.lzma ... OK

It uses uImage header for initramfs kernel to be little bit verbose.

0: https://forum.openwrt.org/t/136435/10

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2022-11-12 18:15:55 +01:00
Arne Zachlod
ffa4b5283b ramips: add support for Mikrotik LtAP-2HnD
Mikrotik LtAP-2HnD is a outdoor/automotive WLAN 4 router with integrated GPS
receiver and two mPCIe slots.

Specifications:
* SoC: MT7621A
* RAM: 128 MiB Nanya NT5CC64M16GP-DI
* Flash: 16 MiB winbond W25Q128JV
* WLAN:
  * Atheros AR9382 with power amplifier SKY 85330 (2x2 internal antennas,
    with RF switches for external connectors)
* Ethernet: 1 Gbps, single port
* USB Host: USB 2.0 Speeds
* Serial: 115200 baud
* LEDs: Power, System, GPS, 5* RSSI
*  mPCIe:
   * miniPCIe slot 1: PCIe and USB 2.0 Host (via switch shared with USB Host)
   * miniPCIe slot 2: USB 2.0 and 3.0
* SIM Cards:
  * Slot 1 Connected to mPCIe slot 1
  * Slot 2 and 3 connected to mPCIe slot 2 via switch
* GPS: MTK 3333 on serial port 2 (/dev/ttyS1), 115200 baud and PPS on gpio 14

gpios are exposed to /sys/class/gpio:

* usb-select: swithes USB 2.0 interface between external port and internal
mPCIe slot 1 default is the external USB interface
* gps-reset: resets the GPS interface chip
* sim-select: switches between sim slot 2 and 3 connected to mPCIe slot 2
* gps-ant-select: switches GPS antenna between internal antenna and SMA
connected antenna
* lte-reset: resets mPCIe slot 2

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Arne Zachlod <arne@nerdkeller.org>
2022-11-12 18:15:55 +01:00
Will Moss
5a1af6ed62 ath79: fix MAC address assignment for TP-Link ar7241 devices
On TP-Link ar7241 devices LAN and WAN interfaces are swapped. Keeping
that in mind fix MAC address assignment as used in vendor firmware:
LAN MAC - main MAC stored in u-boot and printed on label
WAN MAC - LAN MAC + 1

Signed-off-by: Will Moss <willormos@gmail.com>
2022-11-12 17:10:12 +01:00
Shiji Yang
4778f6e959 ath79: move usb led trigger node to SoC dtsi
These frequently used usb led triggers are universal. They should be
moved to SoC dtsi.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-11-12 17:10:12 +01:00
John Audia
e7bd3767a9 kernel: bump 5.10 to 5.10.154
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-12 17:05:13 +01:00