Add basic kexec support to Mini-OS for running in x86 PVH mode.
With this series applied it is possible to activate another kernel
from within Mini-OS.
Right now no Xen related teardown is done (so no reset of grant table,
event channels, PV devices). These should be added via kexec callbacks
which are added as a framework.
This is a major building block for support of Xenstore-stubdom live
update (in fact I've tested the kexec path to work using the PVH
variant of Xenstore-stubdom).
Changes in V2:
- addressed comments
Juergen Gross (12):
add kexec framework
Mini-OS: add final kexec stage
mini-os: add elf.h
mini-os: analyze new kernel for kexec
mini-os: kexec: finalize parameter location and size
mini-os: reserve memory below boundary
mini-os: kexec: build parameters for new kernel
mini-os: kexec: move used pages away for new kernel
Mini-OS: mm: change set_readonly() to change_readonly()
Mini-OS: kexec: switch read-only area to be writable again
mini-os: kexec: add kexec callback functionality
mini-os: kexec: do the final kexec step
Config.mk | 1 +
Makefile | 1 +
arch/x86/kexec.c | 272 +++++++++++++++++++++++++++++++++
arch/x86/minios-x86.lds.S | 17 +++
arch/x86/mm.c | 238 ++++++++++++++++++++++-------
arch/x86/testbuild/all-no | 1 +
arch/x86/testbuild/all-yes | 2 +
arch/x86/testbuild/kexec | 4 +
arch/x86/x86_hvm.S | 46 ++++++
include/elf.h | 300 +++++++++++++++++++++++++++++++++++++
include/kexec.h | 63 ++++++++
include/mm.h | 8 +
include/x86/os.h | 5 +
kexec.c | 252 +++++++++++++++++++++++++++++++
mm.c | 89 ++++++++++-
15 files changed, 1248 insertions(+), 51 deletions(-)
create mode 100644 arch/x86/kexec.c
create mode 100644 arch/x86/testbuild/kexec
create mode 100644 include/elf.h
create mode 100644 include/kexec.h
create mode 100644 kexec.c
--
2.43.0