|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 1/2] x86: decouple xen alignment setting from EFI/ELF build
Introduce a new Kconfig option to pick the alignment for xen binary.
To retain original behaviour, the default pick for EFI build is 2M and
ELF build 4K.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
xen/arch/x86/Kconfig | 23 +++++++++++++++++++++++
xen/arch/x86/xen.lds.S | 12 ++++++++++--
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 5c2d1070b6..1f115c1e40 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -138,6 +138,29 @@ config TBOOT
If unsure, say Y.
+choice
+ prompt "Alignment of Xen image"
+ depends on X86
+ default XEN_ALIGN_DEFAULT
+ ---help---
+ Specify alignment for Xen image.
+
+ If unsure, choose "default".
+
+config XEN_ALIGN_DEFAULT
+ bool "Default alignment"
+ ---help---
+ Pick alignment according to build variants.
+
+ For EFI build the default alignment is 2M. For ELF build
+ the default alignment is 4K due to syslinux failing to handle
+ the increment of image size induced by 2M alignment.
+
+config XEN_ALIGN_2M
+ bool "2M alignment"
+
+endchoice
+
config XEN_GUEST
def_bool n
prompt "Xen Guest"
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 6e9bda5109..5a0c1004f5 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -12,7 +12,6 @@
#define FORMAT "pei-x86-64"
#undef __XEN_VIRT_START
#define __XEN_VIRT_START __image_base__
-#define SECTION_ALIGN MB(2)
#define DECL_SECTION(x) x :
ENTRY(efi_start)
@@ -20,13 +19,22 @@ ENTRY(efi_start)
#else /* !EFI */
#define FORMAT "elf64-x86-64"
-#define SECTION_ALIGN PAGE_SIZE
#define DECL_SECTION(x) x : AT(ADDR(x) - __XEN_VIRT_START)
ENTRY(start_pa)
#endif /* EFI */
+#ifdef CONFIG_XEN_ALIGN_2M
+#define SECTION_ALIGN MB(2)
+#else /* Default alignment */
+#ifdef EFI
+#define SECTION_ALIGN MB(2)
+#else
+#define SECTION_ALIGN PAGE_SIZE
+#endif
+#endif
+
OUTPUT_FORMAT(FORMAT, FORMAT, FORMAT)
OUTPUT_ARCH(i386:x86-64)
--
2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |