Message ID | 20230113052914.3845596-3-Penny.Zheng@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen/arm: Add Armv8-R64 MPU support to Xen - Part#1 | expand |
Hi Penny, On 13/01/2023 05:28, Penny Zheng wrote: > From: Wei Chen <wei.chen@arm.com> > > Currently, ARM_EFI will mandatorily selected by Arm64. > Even if the user knows for sure that their images will not > start in the EFI environment, they can't disable the EFI > support for Arm64. This means there will be about 3K lines > unused code in their images. > > So in this patch, we make ARM_EFI selectable for Arm64, and > based on that, we can use CONFIG_ARM_EFI to gate the EFI > specific code in head.S for those images that will not be > booted in EFI environment. > > Signed-off-by: Wei Chen <wei.chen@arm.com> Your signed-off-by is missing. > --- > v1 -> v2: > 1. New patch > --- > xen/arch/arm/Kconfig | 10 ++++++++-- > xen/arch/arm/arm64/head.S | 15 +++++++++++++-- > 2 files changed, 21 insertions(+), 4 deletions(-) > > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig > index 239d3aed3c..ace7178c9a 100644 > --- a/xen/arch/arm/Kconfig > +++ b/xen/arch/arm/Kconfig > @@ -7,7 +7,6 @@ config ARM_64 > def_bool y > depends on !ARM_32 > select 64BIT > - select ARM_EFI > select HAS_FAST_MULTIPLY > > config ARM > @@ -37,7 +36,14 @@ config ACPI > an alternative to device tree on ARM64. > > config ARM_EFI > - bool > + bool "UEFI boot service support" > + depends on ARM_64 > + default y > + help > + This option provides support for boot services through > + UEFI firmware. A UEFI stub is provided to allow Xen to > + be booted as an EFI application. This is only useful for > + Xen that may run on systems that have UEFI firmware. I would drop the last sentence as this is implied with the rest of the paragraph. Cheers,
Hi Julien, > -----Original Message----- > From: Julien Grall <julien@xen.org> > Sent: 2023年1月18日 7:09 > To: Penny Zheng <Penny.Zheng@arm.com>; xen-devel@lists.xenproject.org > Cc: Wei Chen <Wei.Chen@arm.com>; Stefano Stabellini > <sstabellini@kernel.org>; Bertrand Marquis <Bertrand.Marquis@arm.com>; > Volodymyr Babchuk <Volodymyr_Babchuk@epam.com> > Subject: Re: [PATCH v2 02/40] xen/arm: make ARM_EFI selectable for Arm64 > > Hi Penny, > > On 13/01/2023 05:28, Penny Zheng wrote: > > From: Wei Chen <wei.chen@arm.com> > > > > Currently, ARM_EFI will mandatorily selected by Arm64. > > Even if the user knows for sure that their images will not > > start in the EFI environment, they can't disable the EFI > > support for Arm64. This means there will be about 3K lines > > unused code in their images. > > > > So in this patch, we make ARM_EFI selectable for Arm64, and > > based on that, we can use CONFIG_ARM_EFI to gate the EFI > > specific code in head.S for those images that will not be > > booted in EFI environment. > > > > Signed-off-by: Wei Chen <wei.chen@arm.com> > > Your signed-off-by is missing. > > > --- > > v1 -> v2: > > 1. New patch > > --- > > xen/arch/arm/Kconfig | 10 ++++++++-- > > xen/arch/arm/arm64/head.S | 15 +++++++++++++-- > > 2 files changed, 21 insertions(+), 4 deletions(-) > > > > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig > > index 239d3aed3c..ace7178c9a 100644 > > --- a/xen/arch/arm/Kconfig > > +++ b/xen/arch/arm/Kconfig > > @@ -7,7 +7,6 @@ config ARM_64 > > def_bool y > > depends on !ARM_32 > > select 64BIT > > - select ARM_EFI > > select HAS_FAST_MULTIPLY > > > > config ARM > > @@ -37,7 +36,14 @@ config ACPI > > an alternative to device tree on ARM64. > > > > config ARM_EFI > > - bool > > + bool "UEFI boot service support" > > + depends on ARM_64 > > + default y > > + help > > + This option provides support for boot services through > > + UEFI firmware. A UEFI stub is provided to allow Xen to > > + be booted as an EFI application. This is only useful for > > + Xen that may run on systems that have UEFI firmware. > > I would drop the last sentence as this is implied with the rest of the > paragraph. > Ok. Cheers, Wei Chen > Cheers, > > -- > Julien Grall
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 239d3aed3c..ace7178c9a 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -7,7 +7,6 @@ config ARM_64 def_bool y depends on !ARM_32 select 64BIT - select ARM_EFI select HAS_FAST_MULTIPLY config ARM @@ -37,7 +36,14 @@ config ACPI an alternative to device tree on ARM64. config ARM_EFI - bool + bool "UEFI boot service support" + depends on ARM_64 + default y + help + This option provides support for boot services through + UEFI firmware. A UEFI stub is provided to allow Xen to + be booted as an EFI application. This is only useful for + Xen that may run on systems that have UEFI firmware. config GICV3 bool "GICv3 driver" diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S index ad014716db..93f9b0b9d5 100644 --- a/xen/arch/arm/arm64/head.S +++ b/xen/arch/arm/arm64/head.S @@ -22,8 +22,11 @@ #include <asm/page.h> #include <asm/early_printk.h> + +#ifdef CONFIG_ARM_EFI #include <efi/efierr.h> #include <asm/arm64/efibind.h> +#endif #define PT_PT 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */ #define PT_MEM 0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */ @@ -172,8 +175,10 @@ efi_head: .byte 0x52 .byte 0x4d .byte 0x64 - .long pe_header - efi_head /* Offset to the PE header. */ - +#ifndef CONFIG_ARM_EFI + .long 0 /* 0 means no PE header. */ +#else + .long pe_header - efi_head /* Offset to the PE header. */ /* * Add the PE/COFF header to the file. The address of this header * is at offset 0x3c in the file, and is part of Linux "Image" @@ -279,6 +284,8 @@ section_table: .short 0 /* NumberOfLineNumbers (0 for executables) */ .long 0xe0500020 /* Characteristics (section flags) */ .align 5 +#endif /* CONFIG_ARM_EFI */ + real_start: /* BSS should be zeroed when booting without EFI */ mov x26, #0 /* x26 := skip_zero_bss */ @@ -913,6 +920,8 @@ putn: ret ENTRY(lookup_processor_type) mov x0, #0 ret + +#ifdef CONFIG_ARM_EFI /* * Function to transition from EFI loader in C, to Xen entry point. * void noreturn efi_xen_start(void *fdt_ptr, uint32_t fdt_size); @@ -971,6 +980,8 @@ ENTRY(efi_xen_start) b real_start_efi ENDPROC(efi_xen_start) +#endif /* CONFIG_ARM_EFI */ + /* * Local variables: * mode: ASM