Hello,
The following series contain two minor improvements for early boot: the
first one is an alignment check when building the initial page tables,
the second is a consistency fix for the GDT used by the BSP for the
trampoline code.
Both are a result of some debugging work done on a system with broken
firmware that resulted in Xen text not being loaded at a 2Mb aligned
address. This resulted in corrupted page tables that would manifest as
the ljmp from compatibility mode in trampoline_protmode_entry causing a
triple fault due to the GDT being located in the Xen text section, and
the page table entry for that address being corrupt because Xen was not
loaded a 2Mb boundary.
The aim of the series (specially the first patch) is not to allow
booting on such broken firmware, but to print an error message instead
of causing a triple fault.
Thanks, Roger.
Roger Pau Monne (2):
x86/head: check base address alignment
x86/trampoline: load the GDT located in the trampoline page
xen/arch/x86/boot/head.S | 9 +++++++++
xen/arch/x86/boot/trampoline.S | 6 ++++++
2 files changed, 15 insertions(+)
--
2.40.0