69 lines
2.8 KiB
Diff
69 lines
2.8 KiB
Diff
|
From c0a65c752cd83dea27cbeb34074d65fb2c5a6b59 Mon Sep 17 00:00:00 2001
|
||
|
From: Isaku Yamahata <isaku.yamahata@intel.com>
|
||
|
Date: Wed, 20 Mar 2024 03:39:13 -0500
|
||
|
Subject: [PATCH 008/100] pci-host/q35: Move PAM initialization above SMRAM
|
||
|
initialization
|
||
|
|
||
|
RH-Author: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
RH-MergeRequest: 245: SEV-SNP support
|
||
|
RH-Jira: RHEL-39544
|
||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||
|
RH-Acked-by: Bandan Das <bdas@redhat.com>
|
||
|
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||
|
RH-Commit: [8/91] 22a9221d4726e872aa0f0dc25ae9d823c0611547 (bonzini/rhel-qemu-kvm)
|
||
|
|
||
|
In mch_realize(), process PAM initialization before SMRAM initialization so
|
||
|
that later patch can skill all the SMRAM related with a single check.
|
||
|
|
||
|
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
|
||
|
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||
|
Signed-off-by: Michael Roth <michael.roth@amd.com>
|
||
|
Message-ID: <20240320083945.991426-18-michael.roth@amd.com>
|
||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
(cherry picked from commit 42c11ae2416dcbcd694ec3ee574fe2f3e70099ae)
|
||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
---
|
||
|
hw/pci-host/q35.c | 19 ++++++++++---------
|
||
|
1 file changed, 10 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
|
||
|
index 0d7d4e3f08..98d4a7c253 100644
|
||
|
--- a/hw/pci-host/q35.c
|
||
|
+++ b/hw/pci-host/q35.c
|
||
|
@@ -568,6 +568,16 @@ static void mch_realize(PCIDevice *d, Error **errp)
|
||
|
/* setup pci memory mapping */
|
||
|
pc_pci_as_mapping_init(mch->system_memory, mch->pci_address_space);
|
||
|
|
||
|
+ /* PAM */
|
||
|
+ init_pam(&mch->pam_regions[0], OBJECT(mch), mch->ram_memory,
|
||
|
+ mch->system_memory, mch->pci_address_space,
|
||
|
+ PAM_BIOS_BASE, PAM_BIOS_SIZE);
|
||
|
+ for (i = 0; i < ARRAY_SIZE(mch->pam_regions) - 1; ++i) {
|
||
|
+ init_pam(&mch->pam_regions[i + 1], OBJECT(mch), mch->ram_memory,
|
||
|
+ mch->system_memory, mch->pci_address_space,
|
||
|
+ PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE, PAM_EXPAN_SIZE);
|
||
|
+ }
|
||
|
+
|
||
|
/* if *disabled* show SMRAM to all CPUs */
|
||
|
memory_region_init_alias(&mch->smram_region, OBJECT(mch), "smram-region",
|
||
|
mch->pci_address_space, MCH_HOST_BRIDGE_SMRAM_C_BASE,
|
||
|
@@ -634,15 +644,6 @@ static void mch_realize(PCIDevice *d, Error **errp)
|
||
|
|
||
|
object_property_add_const_link(qdev_get_machine(), "smram",
|
||
|
OBJECT(&mch->smram));
|
||
|
-
|
||
|
- init_pam(&mch->pam_regions[0], OBJECT(mch), mch->ram_memory,
|
||
|
- mch->system_memory, mch->pci_address_space,
|
||
|
- PAM_BIOS_BASE, PAM_BIOS_SIZE);
|
||
|
- for (i = 0; i < ARRAY_SIZE(mch->pam_regions) - 1; ++i) {
|
||
|
- init_pam(&mch->pam_regions[i + 1], OBJECT(mch), mch->ram_memory,
|
||
|
- mch->system_memory, mch->pci_address_space,
|
||
|
- PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE, PAM_EXPAN_SIZE);
|
||
|
- }
|
||
|
}
|
||
|
|
||
|
uint64_t mch_mcfg_base(void)
|
||
|
--
|
||
|
2.39.3
|
||
|
|