These changes allow loading and booting an EFI kexec crash kernel.
For this new EFI kexec type, userspace won't provide purgatory code.
Instead Xen jumps directly to the new kernel.
Signature validation is done by the dom0 kernel. Xen then calculates a
digest for all the segments stored in memory. This digest is verified
again during execution. This digest check obviates the need for Xen to
verify Secure Boot signatures directly.
Changes in v2:
- Addressed review comments for specific patches
Ross Lagerwall (5):
x86/kexec: add digest checks
x86/kexec: rename setup_header to bzimage_header
x86/kexec: add new struct kimage_segment
x86/kexec: Support non-page-aligned kexec segments
x86/kexec: Implement new EFI load types
Kevin Lampis (2):
x86/kexec: Pass boot params directly to new kernel
x86/kexec: Zero general purpose registers
xen/arch/x86/Makefile | 1 +
xen/arch/x86/bzimage.c | 47 +----
xen/arch/x86/include/asm/bzimage.h | 44 +++++
xen/arch/x86/include/asm/kexec.h | 9 +
xen/arch/x86/include/asm/machine_kexec.h | 2 +-
xen/arch/x86/kexec.c | 58 +++++++
xen/arch/x86/machine_kexec.c | 3 +-
xen/arch/x86/x86_64/kexec_reloc.S | 23 +++
xen/common/kexec.c | 36 +++-
xen/common/kimage.c | 208 ++++++++++++++++++-----
xen/include/public/kexec.h | 11 +-
xen/include/xen/kimage.h | 20 ++-
12 files changed, 364 insertions(+), 98 deletions(-)
create mode 100644 xen/arch/x86/include/asm/kexec.h
create mode 100644 xen/arch/x86/kexec.c
--
2.52.0