100 Commits
Author SHA1 Message Date
Mathew McBrideandJonas Jelonek 2c6e8fd94b armsr: enable 6.18 as a testing kernel
Allow armsr to be built with kernel 6.18 when
CONFIG_TESTING_KERNEL is set

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBrideandJonas Jelonek 1cc6744ed1 armsr: armv8: enable PCIe controllers for Rockchip
This is to improve compatibility with Rockchip platforms,
especially when NVMe is used as the operating system
block device.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBrideandJonas Jelonek f3ce149714 armsr: armv8: remove VA_BITS override
In kernel 6.9, arch/arm64 was changed (see Link:) to enable 52-bit
virtual addressing (using "Large Physical Addressing 2"/LPA2).

The kernel will select the appropriate addressing mode
(39/48/52-bit) for the CPU at runtime.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d101654226d64ac0a6928019fbf476b46e9d14b
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBrideandJonas Jelonek 2cb77cf315 kernel: armsr: remove duplicate kconfig between generic and armsr
These were found by running:
comm -12 <(sort target/linux/generic/config-6.18) \
	<(sort target/linux/armsr/config-6.18)

A similar process has been run between armsr/config-6.18
and armsr/armv8/config-6.18, though I have not pruned
the armv8 as much. Once the main branch switches armsr
to 6.18 we can do a more aggressive deduplication.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBrideandJonas Jelonek 968b0b3e28 kernel: armsr: move framebuffer and DRM related options to top-level
The armv8 configuration has more features enabled compared to armv7,
as armv8 is intended to run on a selection of real hardware, while
armsr/armv7 almost always runs only in QEMU.

Some kmod dependency issues were appearing on armv7 builds which
did not appear elsewhere. To minimise these issues, we will
move the framebuffer feature set to the top level of the target.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBrideandJonas Jelonek f19254e4e9 target: armsr: add new configuration options for 6.18
Set the configuration options that were prompted for
by the new kernel.

ARCH_CIX (Cixtech) has been enabled as their SoCs
have appeared in high end arm64 hardware.

There are also new Arm64 SoCs from Renesas and
Allwinner that should be bootable with the right
firmware stack.

There are minimal changes in the armv7 config,
only CONFIG_PAGE_BLOCK_MAX_ORDER has a unique
setting.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBrideandJonas Jelonek 06a6b90762 kernel: armsr: introduce kmods for 'new' network devices
These devices were prompted by the first configuration cycle
on kernel 6.18:
- sun55i (Allwinner A523) ethernet (dwmac flavour)
- Renesas GBETH Ethernet controller (dwmac flavour)
- Renesas RZN1 MIIC controller / PCS

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBrideandJonas Jelonek d012cf3caa kernel: armsr: kmod-fsl-enetc-net: use common library
NXP has introduced an evolved version of the LS1028A ENETC
IP in their new i.MX94/5 family. While the two devices
share a common lineage, they are different enough that
they cannot be implemented in the same driver.

Hence some functions from the LS1028A ENETC driver have been
split into a 'library'.

When a kmod package for the new ENETC (nxp-enetc4) is introduced then
the packaging for the common library will need to be reworked.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBrideandJonas Jelonek 0998624522 kernel: armsr: backport renesas rz-sysc bitfield change
In target/linux/generic/backport-6.18/ we have backported
bitfield changes from 6.19.

This change to drivers/soc/renesas/rz-sysc.c was part
of the same patch series and is needed to resolve
a duplicate definition compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBrideandJonas Jelonek fa7c148350 kernel: armsr: remove duplicated field_get from rzv2h irqchip
In OpenWrt we have backported changes to bitfield.h
from kernel 6.19.

A backport fix, 9966c8cc987e ("irqchip/renesas-rzv2h:
Prevent TINT spurious interrupt during resume") into
linux-stable/linux-6.18.y modified irq-renesas-rzv2h.c
to include it's own field_get, which does not exist
in the 6.18 branch, causing a compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBrideandJonas Jelonek 35dd5c669e kernel/armsr: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBrideandJonas Jelonek 661b47aef1 kernel/armsr: create files for v6.18 (from v6.12)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:01 +02:00
Mathew McBrideandHauke Mehrtens 3e5a70482b kernel: enable memory mapped TPM interface on armsr
The memory mapped TPM interface (TIS) can be used for
emulated or virtualized TPM instances with QEMU and
a simulation package like swtpm.

On QEMU the device will appear in the device tree
with a "tcg,tpm-tis-mmio" compatible.

For example:
qemu-system-aarch64 -machine virt -cpu max \
    -bios u-boot.bin \
    -nographic \
    .... \
    -hda openwrt-armsr-armv8-combined-efi.img \
    -chardev socket,id=chrtpm,path=/tmp/mytpm/swtpm-sock \
    -tpmdev emulator,id=tpm0,chardev=chrtpm \
    -device tpm-tis-device,tpmdev=tpm0

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/19188
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:00:36 +02:00
Mathew McBrideandHauke Mehrtens a48ff83193 kernel: netdevices: rtl8366: ensure CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS is enabled
Add new setting CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS which
was introduced in kernel 6.12 and allows enabling LEDs for
the Realtek RTL8366RB subdriver.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:16:21 +02:00
Mathew McBrideandHauke Mehrtens 1304d8b064 armsr: enable 6.12 as a testing kernel version
Allow the armsr target to be built with a 6.12 kernel
when CONFIG_TESTING_KERNEL is set.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBrideandHauke Mehrtens fb6a28815e config: remove kernel version restriction for ARM_PMUV3
The kernel CONFIG_ARM_PMUV3 option was not being presented
for 6.12 kernels with armsr/armv7.

As the minimum kernel version is now 6.6, there is no need
to limit this to specific kernel versions anymore.

This caused a kernel compile stoppage when attempting to
compile the 'perf' tool for armsr/armv7.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBrideandHauke Mehrtens 08c4948ac6 armsr: 6.12: add new KConfigs and refresh
This includes both new additions to 6.12
and an attempted "refresh" of the config
to remove duplicates from target/generic/config-6.12.

(The OpenWrt kernel_makeoldconfig does not
work well with the armv8 subtarget for reasons
I am yet to determine, so that file has been
pruned manually)

Most new options are in armv8, where the
KConfig relates to a platform that will likely
be armsr compatible (like the i.MX91/93/95),
it has been enabled.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBrideandHauke Mehrtens 46cf1dacd3 armsr: patches: refresh printk console patch for 6.12
This carries the text console behaviour fix as described in
[1] over to the 6.12 kernel.

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

[1] https://github.com/openwrt/openwrt/pull/17012#issuecomment-2591751115
Link: https://github.com/openwrt/openwrt/pull/18849

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBrideandHauke Mehrtens 1218717c05 kernel/armsr: Restore kernel files for v6.6
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:26 +02:00
Mathew McBrideandHauke Mehrtens 386f1a1a1e kernel/armsr: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:26 +02:00
Mathew McBrideandRobert Marko bff179de73 armsr: remove 'console=tty1' from kernel command line
We have modified the kernel to setup all "default" consoles,
including serial ports and framebuffers/screens, providing
no console= argument is supplied on the kernel command line.

Adding 'console=tty1' caused the 'default' serial port on
device tree systems to break, as the kernel would not carry
over the settings (like baud rate) from the bootloader.

The system administrator can still force the use of a
specific console by adding their own console= arguments.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("armsr: use console=tty1 to make
console more readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:31:23 +02:00
Mathew McBrideandRobert Marko 3697022ce3 armsr: add patch (hack) to enable all "default" consoles
A previous change added 'console=tty1' to the default kernel command
line on armsr, in order to ensure the framebuffer console is enabled
on systems capable of graphics output.

Unfortunately, this change broke boards that used device tree
(DT) firmware with serial consoles, as the serial console
specified by the system firmware (stdout-path) was no longer
setup by the kernel.

A bit of probing determined that the SPCR (serial port console
direction table) on ACPI systems was preventing Linux from setting
up a default framebuffer console on these systems (which is why
console=tty1 was added).

(The affected ACPI systems are usually VMs using QEMU's
'virt' machine and EDK2 firmware. The firmware on these systems
does not remove the SPCR when a screen is present)

So to ensure all possible systems are setup correctly, we modify
the kernel so all "default" console types (serial and screen)
are setup when no console= arguments are specified on the kernel
command line.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("use console=tty1 to make console more
readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:31:23 +02:00
Mathew McBrideandRobert Marko cde7e37f80 boot: uboot-armsr: update to U-Boot 2025.04
This U-Boot version is used to generate a 'reference'
U-Boot binary for QEMU's 'virt' machine on both
armv7 and armv8.

It has not been updated since EFI support was merged
into the then-armvirt target, so we should bring it up
to the latest version.

The 'mkeficapsule' tool is disabled due to a host-side
dependency on GnuTLS.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18862
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 18:50:24 +02:00
Mathew McBrideandHauke Mehrtens 075571b023 armsr: add Hyper-V on Arm64 support
This adds support for running as a guest on Windows Hyper-V
on arm64 Windows machines (like the Qualcomm Snapdragon X based
machines). The drivers are the same as Hyper-V on x86-64.

Limitations:
- The VM must be configured with a single vCPU only[1].

It appears Microsoft has made changes to Arm64 Hyper-V's timers
and other infrastructure in Windows 11 24H2 which require
kernel changes[2][3] to fix.

- You must turn off secure boot enforcement to boot OpenWrt, as
OpenWrt/armsr does not have a signed bootloader.

[1] https://www.reddit.com/r/Surface/comments/1dmzpzt/comment/lx4tatp/
[2] https://www.reddit.com/r/Surface/comments/1dmzpzt/comment/m5bqgrm/
[3] https://github.com/microsoft/WSL2-Linux-Kernel

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/17675
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-01-24 22:19:34 +01:00
Mathew McBrideandDaniel Golle c9ebd4fb30 armsr: change image names to 'combined-efi'
luci-app-attendedsysupgrade expects images to be named
'combined-efi' when the system is using EFI images.

This came about as x86 has 'combined' images for legacy
(BIOS) boot and 'combined-efi' for EFI systems.

armsr images were originally named 'combined' only
as there was no 'legacy' image type.

To avoid special handling in the attendedsysupgrade
code, name EFI images consistent with other targets.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/luci/pull/6430
Link: https://github.com/openwrt/openwrt/pull/12963
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2025-01-15 01:51:47 +00:00
Mathew McBrideandHauke Mehrtens bcbdde00c3 armsr: add realtek and smsc ethernet phy drivers to the default image
This adds two more common PHY brands to the image.
Realtek is used on the Google Coral "Phanbell" board (i.MX8MQ).
SMSC has been used on various Raspberry Pi boards.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-06-23 16:15:28 +02:00
Mathew McBrideandHauke Mehrtens 8ef5d56121 armsr: armv8: enable NXP i.MX8MQ/P USB phy
Support for 'fsl,imx8mq-usb-phy' is needed for USB to work
on NXP i.MX8MQ and i.MX8MP platforms.

Tested with a Google Coral "Phanbell" board.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-06-23 16:15:28 +02:00
Mathew McBrideandHauke Mehrtens ea7383e721 armsr: enable framebuffer emulation for virtio-gpu/drm displays
This was discovered when trying to run OpenWrt on Hetzner Cloud's
Arm-based instances.

Hetzner uses QEMU/KVM with virtio-gpu as the main display device,
together with an ACPI firmware. This was not displaying a console
previously.

This setup can be emulated by qemu using options below:
qemu-system-aarch64 \
    -machine virt \
    -bios QEMU_EFI.fd \
    -device virtio-gpu \
    -usb \
    -device qemu-xhci,id=xhci \
    -device usb-tablet,bus=xhci.0 \
    -device usb-kbd,bus=xhci.0 \
    -vnc :0

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-06-23 16:15:28 +02:00
Mathew McBrideandHauke Mehrtens 4468c2f4bd kernel/armsr: disable NXP i.MX9 PMU related option
This PMU (performance management unit) related kernel option
can appear under certain kernel configurations (such as
KVM being enabled).

Disable them, as we do with other PMU-related options.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-06-23 16:15:28 +02:00
Mathew McBrideandTianling Shen ac70334e80 armsr: add (disable) PMU related options
Two hardware-specific PMU (performance management unit) related
options can appear under certain circumstances.

Disable them, as we do with other PMU-related options.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-06-07 16:39:12 +08:00
Mathew McBrideandDaniel Golle 683355d0a6 armsr: armv8: enable serial console for Renesas platforms
Support for Renesas Arm families was added in commit 1ff4f4df23
("armsr: armv8: enable CONFIG_ARCH_RENESAS"), but this did not
enable the console/tty hardware for these SoCs, which is derived
from the SuperH family (CONFIG_SERIAL_SH_SCI).

Link: https://github.com/openwrt/openwrt/issues/15284
Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:20 +01:00
Mathew McBrideandDaniel Golle ffbc4c897f base-files: armsr: add script to migrate GPIO switches on Ten64 board
Due to a change in kernel 6.2, the GPIO numbers on certain
architectures (including arm64) have changed. This script
will update any defined GPIO switches to the new numbering.

See https://lists.openwrt.org/pipermail/openwrt-devel/2024-March/042448.html
for more information.

In the future, the GPIO switch mechanism will likely be
replaced with something using libgpiod.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:20 +01:00
Mathew McBrideandDaniel Golle 5f609d8960 base-files: armsr: number Ten64 GPIOs according to kernel version
A change in kernel 6.2[1] caused the base numbers of GPIOs to
change significantly on some architectures like aarch64.

We have to number our GPIOs accordingly.
Ideally the board.d scripts should look through sysfs
to find the basenum (like cat "/sys/devices/platform/soc/2000000.i2c/
i2c-0/0-0076/gpio/gpiochip640/base"), but the problem is
that this occurs before modules are loaded, meaning I2C and other
runtime devices may be missing.

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

[1] https://lore.kernel.org/lkml/cover.1662116601.git.christophe.leroy@csgroup.eu/T/
2024-05-07 13:01:19 +01:00
Mathew McBrideandDaniel Golle c8927d7c01 armsr: armv8: add new fsl-enetc-core module for kernel 6.6
From kernel 6.3 onwards, the fsl-enetc driver has restructured
it's common code into a 'core' module[1].

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

[1] https://patchwork.kernel.org/project/netdevbpf/patch/20230119160431.295833-2-vladimir.oltean@nxp.com/
2024-05-07 13:01:19 +01:00
Mathew McBrideandDaniel Golle 5744205eb6 armsr: add kernel 6.6 as a testing target
Add kernel 6.6 for testing.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:19 +01:00
Mathew McBrideandDaniel Golle fb29f702af kernel/armsr: add config stubs and changes needed for 6.6
Introduce new configuration options prompted by 6.6 (relative to 6.1).
The kernel arm64 defconfig is used as guide for 'core' options, while
video/camera/other media drivers are turned off by default.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:19 +01:00
Mathew McBrideandDaniel Golle 587b8b8e32 kernel/armsr: Restore kernel files for v6.1
This is an automatically generated commit which aids following Kernel patch history,
as git will see the move and copy as a rename thus defeating the purpose.

See: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html
for the original discussion.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:19 +01:00
Mathew McBrideandDaniel Golle f125e38ced kernel/armsr: Add configuration files and patches for v6.6
Based on the 6.1 files, but without any 6.6 additions.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-05-07 13:01:19 +01:00
Mathew McBrideandRobert Marko 77e03f3c83 kernel: vfio: flag vfio_virqfd as only kernel 6.2 and earlier
Kernel 6.2 folded virqfd (eventd interface for VFIO interrupts)
into the base vfio module, it is no longer a tristate option.

Change suggested by vincejv on GitHub:
https://github.com/openwrt/openwrt/pull/14868#issuecomment-1998260124

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2024-04-04 08:56:10 +02:00
Mathew McBrideandHauke Mehrtens f86415085b armsr: ensure kmod-fs-vfat is selected for mounting ESP
vfat support is needed to mount the EFI System Partition (ESP)
during sysupgrade. If it is not available, the sysupgrade process
will not complete

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-09-24 12:51:14 +02:00
Mathew McBrideandHauke Mehrtens abc536f547 kernel: ensure VFIO related suboptions are disabled
These suboptions (PLATFORM, FSL_MC and MLX5_VFIO_PCI)
may be prompted for when VFIO is enabled, regardless of
architecture.

These are not related to the main vfio use case
(passthrough of PCIe devices)

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-29 23:41:05 +02:00
Mathew McBrideandHauke Mehrtens 9ac01aac0a kernel: enable vfio and vfio-pci for armsr-armv8
Arm platforms with the right hardware blocks (such as
GICv3.0+ interrupt controller and SMMU/IOMMU) are
able to use vfio-pci to pass through PCI devices
to a VM.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-29 23:41:05 +02:00
Mathew McBrideandHauke Mehrtens 7ad8612a23 kernel: vfio: remove unneeded enable_unsafe_noiommu_mode parameter
The vfio module only exposes the enable_unsafe_noiommu_mode parameter
if CONFIG_VFIO_NOIOMMU is enabled. When it isn't, the module
will complain about an unknown parameter:

vfio: unknown parameter 'enable_unsafe_noiommu_mode' ignored

As CONFIG_VFIO_NOIOMMU is disabled by the module package,
we can remove the module loading parameter.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-29 23:41:04 +02:00
Mathew McBrideandHauke Mehrtens 8b1cc1582a x86: remove built-in vhost-net driver
This is now available as a kmod package (kmod-vhost-net).

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-26 14:08:10 +02:00
Mathew McBrideandHauke Mehrtens d188db8aed kernel: add vhost-net module
vhost-net is used to accelerate traffic to virtualisation
guests that use the virtio-net network card in QEMU.

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

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-26 14:08:10 +02:00
Mathew McBrideandHauke Mehrtens 7770d08e2b armsr: armv8: fix invalid symbol value for FSL_ENETC_QOS
The kernel FSL_ENETC_QOS option is only a compile time
option, it does not result in a separate module being built.

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

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c3151b6f04 ("armvirt: 64: add support for other SystemReady-compatible vendors")
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 9cb173e9f1 armsr: armv8: enable AHCI/SATA controllers for mvebu,qoriq,juno
When comparing the generated OpenWrt .config to the Linux arm64
defconfig, I noticed these SATA controllers were not included.
As they may be used as a boot drive, they should be built into
the kernel.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 0018b33531 armsr: armv8: package and select MDIO driver for Thunder SoC's
This MDIO driver was already being built, but not installed due
to being selected by the ThunderX Ethernet driver.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 7c5bdff9c4 armsr: add Marvell (Cavium) ThunderX2 network driver
The initial armv8 module incorrectly labelled the Thunder(v1) as
supporting the ThunderX2, when they have different drivers.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 15d3536c9d armsr: armv8: synchronize PCIE related options with arm64 defconfig
This turns on various PCI related options which are enabled
in the Linux kernel arch/arm64/configs/defconfig but not
yet in the OpenWrt config.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 911ee97774 armsr: armv8: add bcmgenet (Raspberry Pi 4 GENET) to profile
kmod-bcmgenet is needed for Ethernet support on the
Raspberry Pi 4.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 27ca83c627 armsr: armv8: add Broadcom GENET and MDIO modules
These are used by common Broadcom SoC's like
the BCM2711 (RPi4) and iProc network processor.

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

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

[1] - https://github.com/pftf/RPi4
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens df23eed179 armsr: armv8: enable Broadcom arch'es
This is part of an effort to reduce differences between
the OpenWrt armsr/armv8 config and Linux arm64 defconfig.

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

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 1ff4f4df23 armsr: armv8: enable CONFIG_ARCH_RENESAS
Renesas markets several embedded Arm64 SoCs in the
RZ series (RZ/G, RZ/V), so should be enabled in
a general purpose target.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 45b445498b armsr: armv8: fix NXP/Freescale i.MX family configuration
Due to an error on my part, Anton Antonov's
i.MX changes[1] did not fully make it into my
armvirt kernel 6.1 EFI pull request. I have updated
them using the options he supplied[1] as well
as comparing to the Linux arm64 defconfig.

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

Fixes: 3efb3b8 ("armvirt: 64: Add NXP i.MX 8M Mini/Nano/Quad/Plus EVK support")

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

[1] - https://github.com/anta5010/openwrt/commit/ccf826c3444fd5fa8fac08aac05f66568ae0c242
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens c4c60e4b19 armsr: enable ACPI_BUTTON
A review of the generated OpenWrt kernel .config
vs the Linux arm64 defconfig showed that this
option was not being enabled, as it is disabled
in OpenWrt's generic config.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 22e0c7be47 armsr: armv8: sync CPU features, EFI, CMA and scheduler options with Linux defconfig
To bring the armsr/armv8 kernel configuration closer to the Linux
arm64 defconfig, synchronize options related to CPU features
(especially more recent Armv8.X variants), scheduler, EFI vars,
CMA and scheduler options.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 76d4a7c84a kernel: default ARM_PMU on for armsr/armv8
CONFIG_ARM_PMU (Arm Performance Monitor Unit) is a requirement
to use KVM (virtualization) from Linux 5.11+, as the virtualised
guest has virtualized PMU access.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens e505873e65 armsr: armv8: enable KVM host
x86/64 enables support for KVM so I can't see a reason why
not on armsr/armv8 as well.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandHauke Mehrtens 5c4239ac3f armsr: armv8: sync Arm64 erratum options with kernel defconfig
To reduce differences with the Linux arm64 defconfig,
sync the enabled erratum items with defconfig.

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

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-08-15 15:55:00 +02:00
Mathew McBrideandTianling Shen e79331e65f armsr: change image names to 'combined-efi'
luci-app-attendedsysupgrade expects images to be named
'combined-efi' when the system is using EFI images.

This came about as x86 has 'combined' images for legacy
(BIOS) boot and 'combined-efi' for EFI systems.

armsr images were originally named 'combined' only
as there was no 'legacy' image type.

To avoid special handling in the attendedsysupgrade
code, name EFI images consistent with other targets.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-07-22 02:53:44 +08:00
Mathew McBrideandHauke Mehrtens 094c37708a layerscape: base-files: remove redundant RAMFS_COPY_* additions
All the tools (e.g fw_setenv, ubiupdatevol) and config (fw_env.config)
needed for sysupgrade are already included in /lib/upgrade/stage2

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-07-08 18:33:18 +02:00
Mathew McBrideandHauke Mehrtens 8e7ba6fbae layerscape: remove Traverse LS1043 boards
The Traverse LS1043 boards were not publicly released,
all the production has been going to OEM customers who
do not use the image format defined in the OpenWrt tree.

Only a few samples were circulated outside Traverse
and our OEM customers. The public release (then called
Five64) of this series was cancelled in favour of our
LS1088A based design (Ten64).

It is best to remove these boards to avoid wasting
OpenWrt project and contributor resources.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-07-01 15:47:08 +02:00
Mathew McBrideandHauke Mehrtens fff6833d4c linux-firmware: ibt-firmware: install sfi/ddc files for AX210 card
When using an Intel AX210 card, the Bluetooth hci interface failed
to start due to a missing "ibt-0041-0041.sfi" file.

Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-0041-0041.sfi (-2)

A device specific configuration file (DDC) is also required:
Bluetooth: hci0: Found device firmware: intel/ibt-0041-0041.sfi
Bluetooth: hci0: Waiting for firmware download to complete
...
Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-0041-0041.ddc
Bluetooth: hci0: Applying Intel DDC parameters completed
Bluetooth: hci0: Firmware timestamp 2023.13 buildtype 1 build 62562

Fixes: #8558
Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-07-01 11:57:33 +02:00
Mathew McBrideandHauke Mehrtens a7bd96c98f layerscape: add patches for SFP support on DPAA2 platforms
This is required for managed operation of the SFP ports on
the Ten64 (LS1088A) and other boards.

The two issues resolved are:
- Validation of 10G SFP link modes fail as Linux did not
  consider the equivalence of modes like XFI, 10GBase-R
- Fix a locking issue that prevented the system rebooting
  when SFP ports were controlled by the SFP driver.

Please note, these patches are replaced by upstream ones
in 6.x, see: commit 61ec9a8154 ("armvirt: add SFP support
patches for NXP Layerscape DPAA2 platforms") in OpenWrt for
the relevant patches.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-25 16:02:19 +02:00
Mathew McBrideandHauke Mehrtens af0546da34 layerscape: armv8_64b: add Traverse Ten64 NAND variant
The Ten64 board[1] is based around NXP's Layerscape LS1088A SoC.
It is capable of booting both standard Linux distributions
from disk devices, using EFI, and booting OpenWrt
from NAND.

See the online manual for more information, including the
flash layout[2].

This patchset adds support for generating Ten64 images
for NAND boot.
For disk boot, one can use the EFI support that was
recently added to the armvirt target.

We previously supported NAND users by building
inside our armvirt/EFI target[3], but this approach
is not suitable for OpenWrt upstream. Users who
used our supplied NAND images will be able to upgrade
to this via sysupgrade.

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

[1] - https://www.traverse.com.au/hardware/ten64
[2] - https://ten64doc.traverse.com.au/hardware/flash/
[3] - Example:
https://gitlab.com/traversetech/ls1088firmware/openwrt/-/commit/285e4360e1604eb466880d245d48efd9962143a5
2023-06-25 16:02:19 +02:00
Mathew McBrideandPetr Štetiar 3df01b1aa4 CI: change armvirt reference to armsr
The armvirt target has been renamed to armsr.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:25 +02:00
Mathew McBrideandPetr Štetiar 36bf9d8610 scripts: qemustart: change armvirt references to armsr
The armvirt target has been renamed to 'armsr' (Arm SystemReady)
after inclusion of EFI support.
Change references (including subtargets) accordingly.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:24 +02:00
Mathew McBrideandPetr Štetiar 203deef82c wolfssl: change armvirt reference to armsr
armvirt target has been renamed to armsr (Arm SystemReady).

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:23 +02:00
Mathew McBrideandPetr Štetiar c0bcfde58e kernel: netdevices: change armvirt references to armsr
armvirt target has been renamed to armsr (Arm SystemReady)

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:22 +02:00
Mathew McBrideandPetr Štetiar 4ce7d6c888 grub2: change armvirt reference to armsr
The armvirt target has been renamed to armsr (Arm SystemReady),
so the GRUB configuration also needs to change.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:21 +02:00
Mathew McBrideandPetr Štetiar 40ce6a7920 config: change references from armvirt to armsr
armvirt target has been renamed to armsr (Arm SystemReady),
so the config defaults need to be changed as well.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:20 +02:00
Mathew McBrideandPetr Štetiar 40b02a2301 armsr: rename from armvirt
Now that the armvirt target supports real hardware, not just
VMs, thanks to the addition of EFI, rename it to something
more appropriate.

'armsr' (Arm SystemReady) was chosen after the name of
the Arm standards program.

The 32 and 64 bit targets have also been renamed
armv7 and armv8 respectively, to allow future profiles
where required (such as armv9).

See https://developer.arm.com/documentation/102858/0100/Introduction
for more information.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:19 +02:00
Mathew McBrideandPetr Štetiar ee92550245 armvirt: remove 5.15 configs
armvirt was migrated to 6.1 as part of the EFI implementation.
As we are renaming the target, there is no need to take the old
kernel configs with us.

See abcb30d ("armvirt: switch to kernel 6.1") for the previous
change.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-10 21:30:19 +02:00
Mathew McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 2dbeb60725 kernel: add mdio-bus-mux support
The MDIO bus multiplexing framework is used by some drivers
such as dwmac-sun8i.

As this is a per-driver requirement, set it to be hidden in the menu.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:31 +02:00
Mathew McBrideandPetr Štetiar 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
Mathew McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 71e56b2ff1 build: use 128MiB as the boot/kernel partition size on armvirt target
The nominal partition type for EFI boot partitions is FAT32,
which has a minimum size of 32MiB on a 512-byte-sector block device.

To ensure that the boot partition is created as FAT32 set a size
well above this minimum.

A useful discussion about EFI partition sizes can be found here:
https://superuser.com/questions/1310927/what-is-the-absolute-minimum-size-a-uefi-system-partition-can-be

I have found 128MiB works pretty consistently across both
tools (mkfs.fat) and firmwares (EDKII)

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:18 +02:00
Mathew McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 701d774f54 scripts: gen_image_generic: allow the partition types to be set
The use case for this is to set the kernel partition as the
EFI system partition. Versions of U-Boot with the
EFI boot manager (eficonfig and efidebug commands) will
store their boot order data on the ESP.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:13 +02:00
Mathew McBrideandPetr Štetiar 8f29b1573d grub2: enable EFI for armvirt
This adds a separate package for EFI on Arm SystemReady
compatible machines. 32-bit Arm UEFI is supported as well.

It is very similar to x86-64 EFI setup, without the
need for BIOS backward compatibility and slightly
different default modules.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-06-02 11:36:12 +02:00
Mathew McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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 McBrideandPetr Štetiar 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
Mathew McBrideandHauke Mehrtens c98e09f01b tools: update elf.h
OpenWrt contains a 2012 copy of glibc's elf.h, which predates the
introduction of some newer architectures like Arm64 and RISC-V.

Linux 5.13 introduced the "gen-hyprel" tool into the kernel compile
(when virtualization/KVM is enabled) which requires EM_AARCH64 to be
defined.

arch/arm64/kvm/hyp/nvhe/gen-hyprel.c: In function 'init_elf':
arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:289:43: error: 'EM_AARCH64'
  undeclared (first use in this function); did you mean 'EM_IA_64'?
  289 |  assert_eq(elf16toh(elf.ehdr->e_machine), EM_AARCH64, "%u");
      |                                           ^~~~~~~~~~

Update the copy of elf.h from the latest glibc to fix this.

Compile-tested: ath79, armvirt, mpc85xx, x86
Run-tested: armvirt

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2023-03-19 18:20:18 +01:00
Mathew McBrideandHauke Mehrtens 97bcbc690c kernel: add package for Epson RX-8025 and compatible I2C RTC
RX-8025 is an I2C RTC from Epson, some newer products such as the
RX-8035 are also compatible.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2019-10-19 12:49:11 +02:00
Mathew McBrideandHauke Mehrtens 6a2705a52f layerscape: use wrapped nand_do_upgrade for traverse-ls1043 boards
Traverse LS1043 boards are set up with a dual-system layout, rootfs{1,2} and kernel{1,2}.
nand_do_upgrade can do the image replacement work we were doing before as long as we give it the partition names.
This greatly simplifies the /lib/upgrade/platform.sh.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2019-03-10 17:48:23 +01:00
Mathew McBrideandHauke Mehrtens 17468cc090 layerscape: rename Traverse boards along SoC lines
Upcoming product specification and branding changes mean that the names in tree do not accurately reflect released products.
To reduce any confusion, sort our boards by SoC family, e.g traverse-ls1043. Any future boards using Layerscape family SoC's
will be treated the same way, e.g Device/traverse-ls/lx/laXXXX.
The affected boards so far have only been available through OEM channels and those aren't using the provided sysupgrade.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2019-03-10 17:48:23 +01:00