7f1c5b
From 969ea1ff46b52c5fe6d87f2eeb1625871a2dfb2a Mon Sep 17 00:00:00 2001
7f1c5b
From: Gavin Shan <gshan@redhat.com>
7f1c5b
Date: Wed, 21 Dec 2022 08:48:45 +0800
7f1c5b
Subject: [PATCH 8/8] hw/arm/virt: Enable compat high memory region address
7f1c5b
 assignment for 9.2.0 machine
7f1c5b
7f1c5b
RH-Author: Gavin Shan <gshan@redhat.com>
7f1c5b
RH-MergeRequest: 126: hw/arm/virt: Optimize high memory region address assignment
7f1c5b
RH-Bugzilla: 2113840
7f1c5b
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
7f1c5b
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
7f1c5b
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
7f1c5b
RH-Commit: [8/8] beda1791c0c35dce5c669efd47685302b8468032
7f1c5b
7f1c5b
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2113840
7f1c5b
Upstream: RHEL only
7f1c5b
7f1c5b
The compact high memory region address assignment is enabled for 9.2.0,
7f1c5b
but it's kept as disabled for 9.0.0, to keep the backwards compatibility
7f1c5b
on 9.0.0. Note that these newly added properties ('compact-highmem',
7f1c5b
'highmem-redists', 'highmem-ecam', and 'highmem-mmio') in the upstream
7f1c5b
aren't exposed for the downstream.
7f1c5b
7f1c5b
Signed-off-by: Gavin Shan <gshan@redhat.com>
7f1c5b
---
7f1c5b
 hw/arm/virt.c | 3 +++
7f1c5b
 1 file changed, 3 insertions(+)
7f1c5b
7f1c5b
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
7f1c5b
index 304fa0d6e7..e41c0b462c 100644
7f1c5b
--- a/hw/arm/virt.c
7f1c5b
+++ b/hw/arm/virt.c
7f1c5b
@@ -3581,6 +3581,7 @@ static void rhel_virt_instance_init(Object *obj)
7f1c5b
 
7f1c5b
     /* High memory is enabled by default */
7f1c5b
     vms->highmem = true;
7f1c5b
+    vms->highmem_compact = !vmc->no_highmem_compact;
7f1c5b
     vms->gic_version = VIRT_GIC_VERSION_NOSEL;
7f1c5b
 
7f1c5b
     vms->highmem_ecam = !vmc->no_highmem_ecam;
7f1c5b
@@ -3659,5 +3660,7 @@ static void rhel900_virt_options(MachineClass *mc)
7f1c5b
 
7f1c5b
     /* Disable FEAT_LPA2 since old kernels (<= v5.12) don't boot with that feature */
7f1c5b
     vmc->no_tcg_lpa2 = true;
7f1c5b
+    /* Compact layout for high memory regions was introduced with 9.2.0 */
7f1c5b
+    vmc->no_highmem_compact = true;
7f1c5b
 }
7f1c5b
 DEFINE_RHEL_MACHINE(9, 0, 0)
7f1c5b
-- 
7f1c5b
2.31.1
7f1c5b