[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 00/15] x86: multiboot2 protocol support
Hi, I am sending sixth version of multiboot2 protocol support for legacy BIOS and EFI platforms. This patch series release contains fixes for all known issues except one. During last review Jan pointed out that there is no memory size check for trampoline region returned by efi_multiboot2(). I investigated this issue and neighborhood quite deeply. Unfortunately I discovered a lot of similar issues in original early assembly code which does low memory allocations. E.g. there are a few arbitrary size checks without any explanations why this figures not another. Additionally, they take only into consideration area for trampoline though low memory is used for stack and boot data storage. I do not mention that there is no hard check which would fail if there is insufficient low memory, etc. So, I am going to describe all issues in separate thread (probably tomorrow) and hammer out relevant solutions. Probably relevant patches with fixes should be applied before this series but maybe not. Anyway, I hope that fixes for above described issues will have no big impact on this patch series. That is why I decided to post it without fixing low memory allocation issues. This way review can be done in parallel with discussion about possible fixes. The final goal is xen.efi binary file which could be loaded by EFI loader, multiboot (v1) protocol (only on legacy BIOS platforms) and multiboot2 protocol. This way we will have: - smaller Xen code base, - one code base for xen.gz and xen.efi, - one build method for xen.gz and xen.efi; xen.efi will be extracted from xen(-syms) file using objcopy or special custom tool, - xen.efi build will not so strongly depend on a given GCC and binutils version. Here is short list of changes since v5: - new patches: 01, 11, 12, 14, - changed patches: 02, 04-10, 13. I hope that (at least some) features provided by this patch series will be included in Xen 4.8 release in one way or another. If you are not interested in this patch series at all please drop me a line and I will remove you from distribution list. Daniel .gitignore | 5 +- xen/arch/x86/Makefile | 8 +- xen/arch/x86/Rules.mk | 4 + xen/arch/x86/boot/Makefile | 12 +- xen/arch/x86/boot/build32.mk | 2 + xen/arch/x86/boot/cmdline.S | 367 -------------------------------------------------------- xen/arch/x86/boot/cmdline.c | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++ xen/arch/x86/boot/defs.h | 52 ++++++++ xen/arch/x86/boot/edd.S | 3 - xen/arch/x86/boot/head.S | 536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- xen/arch/x86/boot/reloc.c | 223 +++++++++++++++++++++++++++------- xen/arch/x86/boot/trampoline.S | 21 +++- xen/arch/x86/boot/video.S | 7 -- xen/arch/x86/boot/wakeup.S | 4 +- xen/arch/x86/boot/x86_64.S | 44 +++---- xen/arch/x86/dmi_scan.c | 4 +- xen/arch/x86/domain_page.c | 2 +- xen/arch/x86/efi/Makefile | 12 +- xen/arch/x86/efi/efi-boot.h | 60 ++++++++-- xen/arch/x86/efi/stub.c | 46 ++++++- xen/arch/x86/mpparse.c | 4 +- xen/arch/x86/setup.c | 36 +++--- xen/arch/x86/shutdown.c | 5 +- xen/arch/x86/time.c | 2 +- xen/arch/x86/x86_64/asm-offsets.c | 15 +++ xen/arch/x86/xen.lds.S | 10 +- xen/common/efi/boot.c | 68 ++++++++++- xen/common/efi/runtime.c | 23 +++- xen/common/version.c | 2 +- xen/drivers/acpi/osl.c | 2 +- xen/include/asm-x86/page.h | 2 +- xen/include/xen/efi.h | 9 +- xen/include/xen/multiboot2.h | 182 ++++++++++++++++++++++++++++ 33 files changed, 1543 insertions(+), 568 deletions(-) Daniel Kiper (15): x86: properly calculate ELF end of image address x86/boot/reloc: create generic alloc and copy functions x86/boot/reloc: rename some variables and rearrange code a bit x86: add multiboot2 protocol support efi: create efi_enabled() x86: allow EFI reboot method neither on EFI platforms... efi: build xen.gz with EFI code x86/efi: create new early memory allocator x86: add multiboot2 protocol support for EFI platforms x86/boot: implement early command line parser in C x86: change default load address from 1 MiB to 2 MiB x86/setup: use XEN_IMG_OFFSET instead of... x86: make Xen early boot code relocatable x86/boot: rename sym_phys() to sym_offs() x86: add multiboot2 protocol support for relocatable images _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |