Message ID | 20240731141103.2559706-5-luca.fancellu@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Armv8-R AArch64 support | expand |
On Wed, Jul 31, 2024 at 03:11:03PM +0100, Luca Fancellu wrote: > When bootwrapper is compiled with Xen support and it is started > at EL2 on Armv8-R AArch64, keep the current EL and jump to the > Xen image using the SPSR_KERNEL as spsr_el2 value. > > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> > --- > Changes from v2: > - Major rework, reason in the cover letter. > --- > Makefile.am | 1 + > arch/aarch64/boot.S | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/Makefile.am b/Makefile.am > index 62e2988c0dd3..0aee117eb827 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -113,6 +113,7 @@ XEN_CHOSEN := xen,xen-bootargs = \"$(XEN_CMDLINE)\"; \ > compatible = \"xen,linux-zimage\", \"xen,multiboot-module\"; \ > reg = <0x0 $(DOM0_OFFSET) 0x0 $(KERNEL_SIZE)>; \ > }; > +DEFINES += -DXEN > endif > > if INITRD > diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S > index 0b4f6824045a..d50ff48d83de 100644 > --- a/arch/aarch64/boot.S > +++ b/arch/aarch64/boot.S > @@ -100,7 +100,7 @@ ASM_FUNC(jump_kernel) > mov x1, x21 > mov x2, x22 > mov x3, x23 > -#if defined(BOOTWRAPPER_64R) > +#if defined(BOOTWRAPPER_64R) && !defined(XEN) > // On Armv8-R Linux needs to be booted at EL1 > mov x4, #SPSR_KERNEL_EL1 > #else FWIW, this looks fine to me. Mark.
diff --git a/Makefile.am b/Makefile.am index 62e2988c0dd3..0aee117eb827 100644 --- a/Makefile.am +++ b/Makefile.am @@ -113,6 +113,7 @@ XEN_CHOSEN := xen,xen-bootargs = \"$(XEN_CMDLINE)\"; \ compatible = \"xen,linux-zimage\", \"xen,multiboot-module\"; \ reg = <0x0 $(DOM0_OFFSET) 0x0 $(KERNEL_SIZE)>; \ }; +DEFINES += -DXEN endif if INITRD diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S index 0b4f6824045a..d50ff48d83de 100644 --- a/arch/aarch64/boot.S +++ b/arch/aarch64/boot.S @@ -100,7 +100,7 @@ ASM_FUNC(jump_kernel) mov x1, x21 mov x2, x22 mov x3, x23 -#if defined(BOOTWRAPPER_64R) +#if defined(BOOTWRAPPER_64R) && !defined(XEN) // On Armv8-R Linux needs to be booted at EL1 mov x4, #SPSR_KERNEL_EL1 #else
When bootwrapper is compiled with Xen support and it is started at EL2 on Armv8-R AArch64, keep the current EL and jump to the Xen image using the SPSR_KERNEL as spsr_el2 value. Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> --- Changes from v2: - Major rework, reason in the cover letter. --- Makefile.am | 1 + arch/aarch64/boot.S | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)