On 16/01/2024 14:24, Carlo Nonato wrote:
Hi Julien,

On Tue, Jan 16, 2024 at 12:55 PM Julien Grall <[email protected]> wrote:

From: Julien Grall <[email protected]>

In order to confirm the early boot code is self-contained, allocate a
separate trampoline region for secondary to boot from it.

Signed-off-by: Julien Grall <[email protected]>
---
  xen/arch/arm/arm64/mmu/mm.c |  7 +++++++
  xen/arch/arm/mmu/smpboot.c  |  4 +++-
  xen/arch/arm/psci.c         |  5 ++++-
  xen/arch/arm/smpboot.c      | 15 ++++++++++++++-
  4 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index d2651c948698..3c4988dc75d1 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -110,11 +110,18 @@ void __init arch_setup_page_tables(void)
      prepare_runtime_identity_mapping();
  }

+extern mfn_t trampoline_start;
+
  void update_identity_mapping(bool enable)
  {
      paddr_t id_addr = virt_to_maddr(_start);
      int rc;

+    if ( !mfn_eq(trampoline_start, INVALID_MFN) )
+    {
+        id_addr = mfn_to_maddr(trampoline_start);
+    }
+
      if ( enable )
          rc = map_pages_to_xen(id_addr, maddr_to_mfn(id_addr), 1,
                                PAGE_HYPERVISOR_RX);
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index f1cf9252710c..d768dfe065a5 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -72,13 +72,15 @@ static void clear_boot_pagetables(void)
      clear_table(boot_third);
  }

+extern mfn_t trampoline_start;
+
  static void set_init_ttbr(lpae_t *root)

Isn't this function not present in the patch series?

Oh. It looks like I forgot to post one patch. Let me resend it.

Cheers,

--
Julien Grall

Reply via email to