Commit Graph

28377 Commits

Author SHA1 Message Date
Michael Pratt d87a8aa148
treewide: add ORIG_PATH variable
Add a variable that stores the original value of $PATH
in the host system's shell, before Make alters it.

This can be useful for when it is necessary
to ignore symlinks and programs made by the build system.

Define this new variable before all instances of
'export PATH:=' or similar.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-06-05 08:31:47 +02:00
Petr Štetiar 48603a271e
ipq807x: add initial support for prpl Foundation Haze board
Haze is prpl Foundation's reference board (WNC LVRP).

Board info:

 - IPQ8072A SoC
 - 2 GiB RAM
 - 4 GiB eMMC
 - 8MiB SPI NOR (MX25U6435F)

 - 3x 1GigE ports (QCA8075)
 - 1x 10GigE port (AQR113C)
 - 1x SFP cage

 - WiFi 6GHz 160MHz (QCN9074)
 - WiFi 5GHz 80+80MHz (QCN5054)
 - WiFi 2.4G (QCN5024)

 - ARM Standard 20-pin 2.54mm/0.1" JTAG (1V8 !!!)
 - Bluetooth v5.0 + EDR with integrated Class 1 PA (CYW20704)
 - 1x M.2 B-key socket with PCIe 3.0
 - 1x USB 3.0 port
 - UART 4-pin 3V3(arrow),RX,TX,GND (115200 8N1)
 - Reset and WPS buttons

Flashing instructions:

 1. From U-Boot boot OpenWrt using initramfs image:

    IPQ807x# tftpboot openwrt-ipq807x-generic-prpl_haze-initramfs-uImage.itb && bootm

 2. In OpenWrt running from initramfs execute sysupgrade:

    root@OpenWrt:/# sysupgrade -n /tmp/openwrt-ipq807x-generic-prpl_haze-squashfs-sysupgrade.bin

Work in progress/known issues:

 * SFP feature not implemented/tested
 * M.2 feature not implemented/tested
 * Bluetooth feature not implemented/tested
 * 6GHz wireless should be working, but not tested
 * MAC address assigments for LAN interfaces

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-06-05 08:31:43 +02:00
Petr Štetiar a9be186466
ipq807x: image: factor out common eMMC bits
For better maintainability and reusability.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-06-05 08:31:40 +02:00
Petr Štetiar fdea7cb617
ipq807x: image: cleanup unused variables
BLOCKSIZE and PAGESIZE seems to be unused on qnap_301w and zyxel_nbg7815
device which use eMMC storage.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-06-05 08:31:39 +02:00
Robert Marko 39e1adc841
ipq807x: remove 5.15 support
Now that 6.1 is the default kernel, there is no reason to keep 5.15 around
as I dont plan to maintain it anymore so lets remove it.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-04 03:14:30 +02:00
Robert Marko d1e452da92
ipq807x: switch to kernel 6.1
Now that 6.1 kernel is working fine on ipq807x , lets switch to 6.1 as the
default kernel as its increasingly hard to keep backporting upstreamed
changes to 5.15.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-04 03:14:27 +02:00
Philip Prindeville 1eb02ce325 x86/64: Enable IOMMU_V2 support for later CPUs
Support newer IOMMU_V2 on AMD platforms, useful for DPDK and KVM.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
2023-06-03 21:15:11 +02:00
Marek Behún 7b31c2e9ed kernel: Backport mvneta crash fix to 5.15
Backport Russell King's series [1]
  net: mvneta: reduce size of TSO header allocation
to pending-5.15 to fix random crashes on Turris Omnia.

This also backports two patches that are dependencies to this series:
  net: mvneta: Delete unused variable
  net: mvneta: fix potential double-frees in mvneta_txq_sw_deinit()

[1] https://lore.kernel.org/netdev/ZCsbJ4nG+So%2Fn9qY@shell.armlinux.org.uk/

Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> (squashed)
2023-06-03 21:15:11 +02:00
Olliver Schinagl d881f65da1 realtek: eth: Do not write directly to dev->addr
One is never to write to dev->addr directly. In 6.1 it will be a const and
with the newly enabled WERROR, we get a failing grade.

Lets fix this ahead of time.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2023-06-03 21:15:11 +02:00
Olliver Schinagl 9fb1dbb1df realtek: Add missing headers
We are missing a bunch of headers, which trigger errors on 6.1, probably
due to changed header-in-header dependencies. Best add them now.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2023-06-03 21:15:11 +02:00
Andreas Böhler 46b51e9e99 ramips: tplink,mr600v2: fix image generation for sysupgrade image
The MR600v2 does not find its rootfs if it is neither directly after the
kernel or aligned to an erase block boundary (64k).

This aligns the rootfs to 0x10000 allowing the device to boot again. Based
on investigation by forum user relghuar.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
2023-06-03 21:14:37 +02:00
Robert Marko b81045a818 kernel: bump 6.1 to 6.1.31
All patches automatically rebased.

Build system: x86_64/Fedora 38
Build-tested: ipq807x/Qnap 301W, ipq807x/Dynalink DL-WRX36
Run-tested: ipq807x/Qnap 301W, ipq807x/Dynalink DL-WRX36

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-02 21:23:12 +02:00
Robert Marko effccdd444 generic: b53: rename exported symbols to avoid upstream conflict
Upstream DSA driver is exporting symbols with the same name as our
downstream swconfig driver, so lets rename the downstream symbols to make
them unique and avoid the conflict on 6.1 kernel.

Without this change, building 6.1 with kmod-switch-bcm53xx would conflict
with the B53 DSA driver and CI would fail.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-02 21:20:53 +02:00
Tony Ambardar 04981c716a kernel: backport libcap workaround for BPF selftests
Recent libcap versions (>= 2.60) cause problems with BPF kselftests, so
backport an upstream patch that replaces libcap and drops the dependency.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2023-06-02 20:59:05 +02:00
Daniel Golle 0580747ada mediatek: use existing I2C clock names
PCK and MCK should really be P=PMIC and M=MEM, which means that they
should effectively be CLK_PMIC and CLK_ARB.

Suggested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-06-02 18:13:39 +01:00
Daniel Golle 7e93f520d6 mediatek: use cpufreq fix suggested by MediaTek
Use suggested fix for mediatek-cpufreq, patch will also be sent
upstream.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-06-02 18:11:23 +01:00
Mathew McBride abcb30d36c
armvirt: switch to kernel 6.1
The EFI implementation changes have only been applied
to 6.1, so switch armvirt over to it.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:41 +02:00
Mathew McBride 3a7c8fd15e
kernel: kmod-amazon-ena: move to top level netdevices
The Amazon ENA network devices are also used on the
AWS Arm (Graviton) instance types, so move it from
the x86-only module file to the top level netdevices.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:39 +02:00
Mathew McBride 214e94cddf
armvirt: 64: disable CONFIG_SMC91X
The SMC91X family is a ISA-age Ethernet controller.
I'm not particularly sure what it's doing in armvirt/64,
as it's unlikely there is a QEMU or real hardware configuration
that exists with it.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:37 +02:00
Mathew McBride e41b82f619
armvirt: base-files: add tty0 to inittab
tty0 is the default console for devices with screens/framebuffers.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:36 +02:00
Mathew McBride 83f564f746
armvirt: config changes required for framebuffer console
These Kconfig options are required to get a screen console
working with the VMware Fusion ARM (Apple Silicon) preview.
They are likely to be the same for other Arm standard
"desktop" hardware that may emerge.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:34 +02:00
Mathew McBride abbffe55dd
armvirt: package and select Rockchip DWMAC Ethernet driver
For devices that implement the "rockchip,*-gmac" compatible controller,
including:
- RK3328
- RK3399
- RK3568
- RK3588
- PX30

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:33 +02:00
Mathew McBride 847467a572
armvirt: 64: add Allwinner A3/A83T/A64 (sun8i family) Ethernet
Add support for the dwmac (stmmac) variant used by Allwinner
Arm64 boards.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:32 +02:00
Mathew McBride 5d2a5f7398
armvirt: 64: add Marvell (formerly Cavium) ThunderX series network driver
Based on working configuration supplied by Anton Antonov.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:29 +02:00
Anton Antonov 26905c9612
armvirt: 64: Add storage support for qemu-sbsa platform
Enable SATA support, which is used by the Server Base
System Architecture reference board[1].

Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
Signed-off-by: Mathew McBride <matt@traverse.com.au>

[1] - https://qemu.readthedocs.io/en/latest/system/arm/sbsa.html
2023-06-02 11:36:28 +02:00
Anton Antonov 3efb3b801b
armvirt: 64: Add NXP i.MX 8M Mini/Nano/Quad/Plus EVK support
Also includes Advantech RSB-3720 (iMX8 Plus) support.

Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
Signed-off-by: Mathew McBride <matt@traverse.com.au>
[Re-sort into kernel config, move network into modules]
2023-06-02 11:36:27 +02:00
Mathew McBride c3151b6f04
armvirt: 64: add support for other SystemReady-compatible vendors
These changes are to support other vendors that have SystemReady/EFI
support, including:
* Marvell Armada
** (This is speculative as I don't have a machine of my own to test)
* Amazon Graviton (tested bare-metal and virtualized instances)
* VMware (Fusion for ARM Mac preview)
* NXP/Freescale (Layerscape series not already selected)
* HiSilicon
* Allwinner/sunxi
* Rockchip (untested, options taken from arm64 defconfig)

To give an idea of the hardware certified for SystemReady,
see
https://www.arm.com/architecture/system-architectures/systemready-certification-program/ir
and
https://www.arm.com/architecture/system-architectures/systemready-certification-program/es

Other vendors that _should_ work include Marvell Octeon 10
and Ampere. I understand these systems should work
"out of the box" in ACPI mode but may require other drivers
(e.g PCIe NICs and storage controllers).

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:26 +02:00
Mathew McBride 61ec9a8154
armvirt: add SFP support patches for NXP Layerscape DPAA2 platforms
This series resolves a long term issue with Phylink and SFPs on
DPAA2 hardware (LS1088,LS2088,LX2160) where a locking problem
prevented the system from rebooting. Patches solving this
issue existed prior to 6.2 but were not accepted upstream.

See the original series on patchwork:
https://patchwork.kernel.org/project/netdevbpf/cover/20221129141221.872653-1-vladimir.oltean@nxp.com/

And this thread on the Traverse forum:
https://forum.traverse.com.au/t/reboot-command-regression-from-5-10-to-5-15-kernel/133/12

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:23 +02:00
Mathew McBride 54bb95f879
armvirt: add options and driver modules for NXP Layerscape DPAA2 platform
Tested with a Traverse Technologies Ten64 (LS1088A) board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:22 +02:00
Mathew McBride cb3bbbf00c
armvirt: add ACPI support
ACPI support is required for Arm 'SystemReady' server and workstation
systems (and as an option on embedded platforms).

These config changes allow OpenWrt to boot in a QEMU virtual machine
with a UEFI/EDKII 'BIOS', but with no other hardware enabled yet.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:21 +02:00
Mathew McBride f899e0e024
build: enable vmdk/vmware images for arm64 target
This is useful for VMware's ARM64 products, e.g Fusion for M1/ARM Macs.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:19 +02:00
Mathew McBride 3d99314569
armvirt: remove model name override
Now that armvirt has been expanded to boot on more generic
ARM machines, remove the board and model name override.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:16 +02:00
Mathew McBride 9a76b99c1b
armvirt: set kernel partition as the EFI system partition
U-Boot with EFI boot manager functionality will store
EFI boot order data on the ESP in the ubootefi.var file.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:15 +02:00
Mathew McBride 97c5d317f5
armvirt: update README with new image names
The introduction of EFI support has changed how armvirt
images are generated. The kernel and filesystem binaries
can still be used as before with QEMU directly.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:09 +02:00
Mathew McBride eb0e61285d
armvirt: disable LD dead code elimination on ARM32
This interferes with the generation of the EFI stub section for
ARM32. As this target is not size constrained, disable the dead code
data elimination hack.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:08 +02:00
Mathew McBride e0f06ddc23
armvirt: add EFI support
EFI booting is used on newer machines compatible with the
Arm SystemReady specifications.

This commit restructures armvirt into a more 'generic'
target similar to x86.

See https://github.com/openwrt/openwrt/pull/4956
for a history of this port.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:05 +02:00
Hauke Mehrtens 16a20512d8
kernel: Set CONFIG_FRAME_WARN depending on target
This set the CONFIG_FRAME_WARN option depending on some target settings.
It will use the default from the upstream kernel and not the hard coded
value of 1024 now.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2023-06-02 11:19:32 +02:00
Yanase Yuki edb3a4162c ipq40xx: convert Buffalo WTR-M2133HP to DSA
This commit convert WTR-M2133HP to DSA setup.

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
2023-06-01 23:54:20 +02:00
Klaus Kudielka 9f7fdd0017 mvebu: remove hack for Turris Omnia legacy U-Boot
The omnia-medkit (only useful for installation with U-Boot
2015.10-rc2) is not being built anymore.

Now we can be reasonably sure, that there won't be first-time OpenWrt
boots with that U-Boot version, and can get rid of a rather ugly hack.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
2023-06-01 23:54:20 +02:00
Klaus Kudielka 75a3760862 mvebu: stop building omnia-medkit
Since August 2022, users of very old Turris Omnias have been
encouraged to update U-Boot before OpenWrt installation [1].
The omnia-medkit (only useful for installation with
U-Boot 2015.10-rc2) is not needed anymore.

[1] https://openwrt.org/toh/turris/turris_omnia#installation

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
2023-06-01 23:54:20 +02:00
Linus Walleij 997bf7084c gemini: Bump to kernel v6.1
This bumps the Gemini kernel to use v6.1. While there is no
reason to stay with v5.15, I personally use newer upstream
kernels constantly and they are tested and work well. OpenWrt's
6.1 needs more time until it can be switched.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-06-01 23:54:20 +02:00
Linus Walleij 0fe2aae0e1 gemini: Create a config for kernel v6.1
This creates a config for the v6.1 kernel for Gemini.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2023-06-01 23:54:20 +02:00
Linus Walleij 58acb1dd2c gemini: Add kernel v6.1 patches
This adds a bunch of patches for the v6.1 Gemini kernel.

For v5.15 this was down to a single upstream patch, but for
kernel v6.2 I reworked the USB code for FOTG210, so instead of
carrying over the half-baked and incomplete patch from v5.15
I just backported all the v6.2 patches, 31 in total, as it
creates full device USB mode for e.g. D-Link DNS-313.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-06-01 23:54:20 +02:00
Linus Walleij 33abdc07fb kernel: Package the new FOTG210 module properly
When using the Gemini, we apply patches that create a single
module that support both host and device mode these days.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(move module to gemini target, keep both 6.1+2-ish + 5.15 module
CONFIG and files around until 5.15 is dropped)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-06-01 23:54:20 +02:00
Christian Lamparter 9c1b396615 apm821xx: put crypto4xx into crypto subsection
module is only useful for apm821xx targets, so
limit visability to just this target.

Fixes: 55fbcad20a ("apm821xx: make crypto4xx as a standalone module")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-06-01 23:54:17 +02:00
Yanase Yuki 9314744350
ipq806x: use new package name for NEC WG2600HP3
commit 0c45ad41e1 changes ipq806x usb kmod name
from usb-phy-qcom-dwc3 to phy-qcom-ipq806x-usb, so
use new name.

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
2023-06-01 19:44:10 +02:00
Robert Marko 10be819a16
ipq807x: 6.1: fix I/O WRITE_ZEROES errors on some eMMC devices
Linux 5.19 added a feature where if there is TRIM support being advertised
on eMMC kernel will use TRIM to offload erasing to zero.

However, like always there are eMMC IC-s that advertise TRIM and kind of
work but trying to use TRIM for offloading will cause I/O errors like:
[   18.085950] I/O error, dev loop0, sector 596 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 2

So, lets utilize the kernel MMC quirks DB to disable TRIM for eMMC models
that are known to cause this.

This will fix the WRITE_ZEROES error on:
Qnap 301W which uses Micron MTFC4GACAJCN-1M
Zyxel NBG7815 which uses Kingston EMMC04G-M627

Tested-By: Enrico Mioso <mrkiko.rs@gmail.com> # NBG7815
Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-06-01 19:23:25 +02:00
Aleksander Jan Bajkowski 5d51079fd0 lantiq: add patches headers
This commit adds headers to the patches, so they can be applied with the
git am command.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2023-05-31 21:58:05 +02:00
Tianling Shen 32d5921b8b rockchip: add Orange Pi R1 Plus LTS support
The OrangePi R1 Plus LTS is a minor variant of OrangePi R1 Plus with
the on-board NIC chip changed from rtl8211e to yt8531c, and otherwise
identical to OrangePi R1 Plus.

Tested-by: Volkan Yetik <no3iverson@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-31 21:41:46 +02:00
Tianling Shen ab641efe69 rockchip: add Orange Pi R1 Plus support
Orange Pi R1 Plus is a Rockchip RK3328 based SBC by Xunlong.

This device is similar to the NanoPi R2S, and has a 16MB
SPI NOR (mx25l12805d). The reset button is changed to
directly reset the power supply, another detail is that
both network ports have independent MAC addresses.

Note: booting from SPI is currently unsupported, you have to install
the image on a SD card.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-31 21:41:46 +02:00