[SeaBIOS] [RFC 0/3] NVDIMM booting support
Marc Marí
markmb at redhat.com
Mon Sep 21 13:14:04 CET 2015
Implement support for booting from a PMEM region compatible with NVDIMM and
NFIT specifications.
The current implementation is still slow. When running a Linux guest on top of
QEMU in x86:
Using actual -kernel option:
QEMU startup time: .080
BIOS startup time: .060
Kernel setup time: .590
Total time: .730
Using -kernel option and fw_cfg DMA patch:
QEMU startup time: .080
BIOS startup time: .039
Kernel setup time: .002
Total time: .121
Using this patch series and adding the vmlinuz as a NVDIMM device:
QEMU startup time: .080
BIOS startup time: .065
Kernel setup time: .015
Total time: .160
This patch series is not ready for merging. There are things missing and
questions to be answered:
- Is it necessary to retrieve any other data from the NVDIMM?
- Is there any other nicer (and faster) option for the page table?
- Make NVDIMM a compile-time option, as the other devices.
- Add some kind of wrapper to the boot files instead of a direct vmlinux.
- Add NVDIMM boot priority support.
- Add support for intitrd and cmdline. Maybe in another NVDIMM, or in the
same, or through fw_cfg.
- Reorder code to change to long mode less times.
Any other proposals for improvements are appreciated
Marc Marí (3):
Basic NVDIMM PMEM support
Transitions to and from 64 bits
Add NVDIMM booting support
Makefile | 3 +-
src/boot.c | 18 ++++++++
src/config.h | 2 +
src/fw/biostables.c | 80 ++++++++++++++++++++++++++++++++
src/hw/nvdimm.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hw/nvdimm.h | 12 +++++
src/misc.c | 4 ++
src/post.c | 2 +
src/romlayout.S | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/stacks.c | 77 +++++++++++++++++++++++++++++++
src/stacks.h | 2 +
src/std/acpi.h | 40 ++++++++++++++++
src/util.h | 3 ++
src/x86.h | 1 +
14 files changed, 497 insertions(+), 1 deletion(-)
create mode 100644 src/hw/nvdimm.c
create mode 100644 src/hw/nvdimm.h
--
2.4.3
More information about the SeaBIOS
mailing list