mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-06-02 13:30:09 +00:00
arm-autonomy: Move gem5-arm64 to dynamic-layers/meta-gem5
Since gem5-arm64 machine implementation was moved from meta-arm-bsp to meta-gem5, we need to move the specific machine settings to meta-arm-autonomy/dynamic-layers/meta-gem5. Change-Id: I773189e7e1ee2ca77e569dcec2d92ecfb93d3719 Issue-Id: SCM-1133 Signed-off-by: Diego Sueiro <diego.sueiro@arm.com> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -31,4 +31,5 @@ USER_CLASSES_append = " arm-autonomy-features"
|
||||
|
||||
BBFILES_DYNAMIC += " \
|
||||
meta-arm-bsp:${LAYERDIR}/dynamic-layers/meta-arm-bsp/*/*/*.bbappend \
|
||||
meta-gem5:${LAYERDIR}/dynamic-layers/meta-gem5/*/*/*.bbappend \
|
||||
"
|
||||
|
||||
-44
@@ -1,44 +0,0 @@
|
||||
From a41feccdb6c03f12bddb4fb650a0465f0ed6eeca Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Juenger <juenger@ice.rwth-aachen.de>
|
||||
Date: Fri, 5 Apr 2019 15:54:04 +0200
|
||||
Subject: [PATCH] xen/arm: Cap the number of interrupt lines for dom0
|
||||
|
||||
Dom0 vGIC will use the same number of interrupt lines as the hardware GIC.
|
||||
While the hardware GIC can support up to 1020 interrupt lines,
|
||||
the vGIC is only supporting up to 992 interrupt lines.
|
||||
This means that Xen will not be able to boot on platforms where the hardware
|
||||
GIC supports more than 992 interrupt lines.
|
||||
While it would make sense to increase the limits in the vGICs, this is not
|
||||
trivial because of the design choices.
|
||||
At the moment, only models seem to report the maximum of interrupt lines.
|
||||
They also do not have any interrupt wired above the 992 limit.
|
||||
So it should be fine to cap the number of interrupt lines for dom0 to 992 lines.
|
||||
|
||||
Signed-off-by: Lukas Juenger <juenger@ice.rwth-aachen.de>
|
||||
Acked-by: Julien Grall <julien.grall@arm.com>
|
||||
---
|
||||
xen/arch/arm/setup.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
|
||||
index 444857a967..ccb0f181ea 100644
|
||||
--- a/xen/arch/arm/setup.c
|
||||
+++ b/xen/arch/arm/setup.c
|
||||
@@ -888,7 +888,13 @@ void __init start_xen(unsigned long boot_phys_offset,
|
||||
/* Create initial domain 0. */
|
||||
/* The vGIC for DOM0 is exactly emulating the hardware GIC */
|
||||
dom0_cfg.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
|
||||
- dom0_cfg.arch.nr_spis = gic_number_lines() - 32;
|
||||
+ /*
|
||||
+ * Xen vGIC supports a maximum of 992 interrupt lines.
|
||||
+ * 32 are substracted to cover local IRQs.
|
||||
+ */
|
||||
+ dom0_cfg.arch.nr_spis = min(gic_number_lines(), (unsigned int) 992) - 32;
|
||||
+ if ( gic_number_lines() > 992 )
|
||||
+ printk(XENLOG_WARNING "Maximum number of vGIC IRQs exceeded.\n");
|
||||
dom0_cfg.max_vcpus = dom0_max_vcpus();
|
||||
|
||||
dom0 = domain_create(0, &dom0_cfg, true);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -2,7 +2,6 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||
|
||||
# Machine specific settings
|
||||
XEN_CONFIG_EARLY_PRINTK_juno = "juno"
|
||||
XEN_CONFIG_EARLY_PRINTK_gem5-arm64 = "vexpress"
|
||||
XEN_CONFIG_EARLY_PRINTK_fvp-base = "fastmodel"
|
||||
XEN_CONFIG_EARLY_PRINTK_foundation-armv8 = "fastmodel"
|
||||
XEN_CONFIG_EARLY_PRINTK_n1sdp = "pl011,0x2a400000"
|
||||
@@ -22,10 +21,6 @@ COMPATIBLE_MACHINE_juno = "juno"
|
||||
|
||||
SRC_URI_append_juno = " file://juno/defconfig"
|
||||
|
||||
# Gem5 support
|
||||
# Fix problem with number of interrupts on gem5
|
||||
SRC_URI_append_gem5-arm64 = " file://4.12.0/0001-xen-arm-Cap-the-number-of-interrupt-lines-for-dom0.patch"
|
||||
|
||||
# N1SDP support
|
||||
COMPATIBLE_MACHINE_n1sdp = "n1sdp"
|
||||
|
||||
|
||||
-2
@@ -4,7 +4,5 @@ XENGUEST_NETWORK_BRIDGE_MEMBERS_fvp-base ?= "eth0"
|
||||
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS_foundation-armv8 ?= "eth0"
|
||||
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS_gem5-arm64 ?= "eth0"
|
||||
|
||||
# Juno board has 2 network interfaces, add both of them to the bridge
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS_juno ?= "eth0 eth1"
|
||||
|
||||
@@ -12,6 +12,5 @@ LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE = "${@bb.utils.contains_any('DISTRO_FEATURE
|
||||
'arm-autonomy-host arm-autonomy-guest', \
|
||||
' features/arm-autonomy/disable-arm64-sve.scc','',d)}"
|
||||
|
||||
KERNEL_FEATURES_append_gem5-arm64 = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
KERNEL_FEATURES_append_fvp-base = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
KERNEL_FEATURES_append_foundation-armv8 = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Machine specific settings
|
||||
XEN_CONFIG_EARLY_PRINTK_gem5-arm64 = "vexpress"
|
||||
+1
@@ -0,0 +1 @@
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS_gem5-arm64 ?= "eth0"
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access ZEN bit of CPACR1 core
|
||||
# register.
|
||||
# CONFIG_ARM64_SVE is not set
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
define KFEATURE_DESCRIPTION "Disable SVE support"
|
||||
|
||||
kconf non-hardware disable-arm64-sve.cfg
|
||||
@@ -0,0 +1,15 @@
|
||||
FILESEXTRAPATHS_prepend_gem5-arm64 := "${THISDIR}:"
|
||||
|
||||
#
|
||||
# arm-autonomy kmeta extra
|
||||
#
|
||||
SRC_URI_append_gem5-arm64 = " file://arm-autonomy-kmeta-extra-gem5;type=kmeta;name=arm-autonomy-kmeta-extra-gem5;destsuffix=arm-autonomy-kmeta-extra-gem5"
|
||||
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access XEN bit of CPACR1 core
|
||||
# register.
|
||||
LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE_gem5-arm64 = "${@bb.utils.contains_any('DISTRO_FEATURES', \
|
||||
'arm-autonomy-host arm-autonomy-guest', \
|
||||
' features/arm-autonomy/disable-arm64-sve.scc','',d)}"
|
||||
|
||||
KERNEL_FEATURES_append_gem5-arm64 = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
Reference in New Issue
Block a user