[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 12/17] xen/arm64: head: Move assembly switch to the runtime PT in secondary CPUs path
On Mon, 10 Jun 2019, Julien Grall wrote: > The assembly switch to the runtime PT is only necessary for the > secondary CPUs. So move the code in the secondary CPUs path. > > While this is definitely not compliant with the Arm Arm as we are > switching between two differents set of page-tables without turning off > the MMU. Turning off the MMU is impossible here as the ID map may clash > with other mappings in the runtime page-tables. This will require more > rework to avoid the problem. So for now add a TODO in the code. > > Signed-off-by: Julien Grall <julien.grall@xxxxxxx> Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > xen/arch/arm/arm64/head.S | 33 +++++++++++++++++---------------- > 1 file changed, 17 insertions(+), 16 deletions(-) > > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S > index d673f7c0d8..6be4af7579 100644 > --- a/xen/arch/arm/arm64/head.S > +++ b/xen/arch/arm/arm64/head.S > @@ -344,6 +344,23 @@ GLOBAL(init_secondary) > br x0 > secondary_switched: > bl setup_fixmap > + > + /* > + * Non-boot CPUs need to move on to the proper pagetables, which were > + * setup in init_secondary_pagetables. > + * > + * XXX: This is not compliant with the Arm Arm. > + */ > + ldr x4, =init_ttbr /* VA of TTBR0_EL2 stashed by CPU 0 */ > + ldr x4, [x4] /* Actual value */ > + dsb sy > + msr TTBR0_EL2, x4 > + dsb sy > + isb > + tlbi alle2 > + dsb sy /* Ensure completion of TLB flush */ > + isb > + > b launch > ENDPROC(init_secondary) > > @@ -657,22 +674,6 @@ ENDPROC(setup_fixmap) > launch: > PRINT("- Ready -\r\n") > > - /* The boot CPU should go straight into C now */ > - cbz x22, launch > - > - /* Non-boot CPUs need to move on to the proper pagetables, which were > - * setup in init_secondary_pagetables. */ > - > - ldr x4, =init_ttbr /* VA of TTBR0_EL2 stashed by CPU 0 */ > - ldr x4, [x4] /* Actual value */ > - dsb sy > - msr TTBR0_EL2, x4 > - dsb sy > - isb > - tlbi alle2 > - dsb sy /* Ensure completion of TLB flush */ > - isb > - > ldr x0, =init_data > add x0, x0, #INITINFO_stack /* Find the boot-time stack */ > ldr x0, [x0] > -- > 2.11.0 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |