mbox

[0/1] Enable ACPI support on ARM64

Message ID 20200914013249.30733-1-matt@traverse.com.au
Headers

Message

Mathew McBride Sept. 14, 2020, 1:32 a.m. UTC
  Hi all,
It's been a while.

This patch enables ACPI support for ARM64 which allows IPFire to boot on ARM
"server" machines which use EFI/TianoCore to boot.

One such example is the QEMU arm64 "virt" machine with an EFI firmware -
https://releases.linaro.org/reference-platform/enterprise/latest/uefi/

The arm64 images from "standard" distros (Debian/Ubuntu/Fedora/etc.) are
designed to work with this EFI+ACPI combination.

There should be no regressions for any current arm64 hardware supported
by IPFire - Linux will only use ACPI tables if present, if
not fallback to device tree.

The use case for this is to run our hardware[1] using the muvirt[2] VM host,
which also allows some "blending" of OpenWrt functions on the host, e.g
the host can manage bridging of Ethernet ports and WiFi hostapd
so IPFire can work with simple Ethernet interfaces for the
Red/Green/Blue/Orange.

You can see the Fireinfo profile for the VM here -
https://fireinfo.ipfire.org/profile/67aa9a9cff94f3ef8f61866197a57106ccdcea4b

I have successfully speedtested ~1Gbps though
this virtualized setup so this should provide more than adequate
performance for most situations.

It is not possible to run IPFire directly on our LS1088 (Ten64) platform
at the moment as 4.14 does not have working Ethernet (DPAA2) and PCIe
controller drivers. It is possible to backport them from later kernels
(and I did have a go at this a few months ago) - but it is a very large
patch (>1M lines) and that is before considering any of the features and
fixes in more recent kernels (e.g backporting PHYLINK).

When IPFire moves to a newer kernel that would be a good time to revisit this.

[1] - https://traverse.com.au/products/ten64-networking-platform/
[2] - https://gitlab.com/traversetech/muvirt

Mathew McBride (1):
  kernel: enable ACPI support on ARM64

 config/kernel/kernel.config.aarch64-ipfire | 99 +++++++++++++++++++++-
 1 file changed, 96 insertions(+), 3 deletions(-)