mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: Allow the user to build Xen with UBSAN
UBSAN has been enabled a few years ago on x86 but was never enabled on Arm because the final binary is bigger than 2MB ( the maximum we can currently handled). With the recent rework, it is now possible to grow Xen over 2MB. So there is no more roadblock to enable Xen other than increasing the reserved area. On my setup, for arm32, the final binaray was very close to 4MB. Furthermore, one may want to enable UBSAN and GCOV which would put the binary well-over 4MB (both features require for some space). Therefore, increase the size to 8MB which should us some margin. Signed-off-by: Julien Grall <jgrall@amazon.com> Reviewed-by: Henry Wang <Henry.Wang@arm.com> Reviewed-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>o
This commit is contained in:
1 parent
7356733f72
commit
abb1522832
2 files changed
+14
-9
No files matched your search
@@ -17,6 +17,7 @@ config ARM
|
||||
select HAS_PASSTHROUGH
|
||||
select HAS_PDX
|
||||
select HAS_PMAP
|
||||
select HAS_UBSAN
|
||||
select IOMMU_FORCE_PT_SHARE
|
||||
|
||||
config ARCH_DEFCONFIG
|
||||
|
||||
@@ -74,10 +74,10 @@
|
||||
/*
|
||||
* ARM32 layout:
|
||||
* 0 - 2M Unmapped
|
||||
* 2M - 4M Xen text, data, bss
|
||||
* 4M - 6M Fixmap: special-purpose 4K mapping slots
|
||||
* 6M - 10M Early boot mapping of FDT
|
||||
* 10M - 12M Livepatch vmap (if compiled in)
|
||||
* 2M - 10M Xen text, data, bss
|
||||
* 10M - 12M Fixmap: special-purpose 4K mapping slots
|
||||
* 12M - 16M Early boot mapping of FDT
|
||||
* 16M - 18M Livepatch vmap (if compiled in)
|
||||
*
|
||||
* 32M - 128M Frametable: 32 bytes per page for 12GB of RAM
|
||||
* 256M - 1G VMAP: ioremap and early_ioremap use this virtual address
|
||||
@@ -94,10 +94,10 @@
|
||||
* 0x0000020000000000 - 0x0000027fffffffff (512GB, L0 slot [4])
|
||||
* (Relative offsets)
|
||||
* 0 - 2M Unmapped
|
||||
* 2M - 4M Xen text, data, bss
|
||||
* 4M - 6M Fixmap: special-purpose 4K mapping slots
|
||||
* 6M - 10M Early boot mapping of FDT
|
||||
* 10M - 12M Livepatch vmap (if compiled in)
|
||||
* 2M - 10M Xen text, data, bss
|
||||
* 10M - 12M Fixmap: special-purpose 4K mapping slots
|
||||
* 12M - 16M Early boot mapping of FDT
|
||||
* 16M - 18M Livepatch vmap (if compiled in)
|
||||
*
|
||||
* 1G - 2G VMAP: ioremap and early_ioremap
|
||||
*
|
||||
@@ -124,7 +124,11 @@
|
||||
#define XEN_VIRT_START (SLOT0(4) + _AT(vaddr_t, MB(2)))
|
||||
#endif
|
||||
|
||||
#define XEN_VIRT_SIZE _AT(vaddr_t, MB(2))
|
||||
/*
|
||||
* Reserve enough space so both UBSAN and GCOV can be enabled together
|
||||
* plus some slack for future growth.
|
||||
*/
|
||||
#define XEN_VIRT_SIZE _AT(vaddr_t, MB(8))
|
||||
#define XEN_NR_ENTRIES(lvl) (XEN_VIRT_SIZE / XEN_PT_LEVEL_SIZE(lvl))
|
||||
|
||||
#define FIXMAP_VIRT_START (XEN_VIRT_START + XEN_VIRT_SIZE)
|
||||
|
||||