[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH for-xen-4.5 v3 00/16] xen: Break multiboot (v1) dependency and add multiboot2 support


This patch series breaks multiboot (v1) protocol dependency and adds
multiboot2 support. It lays down the foundation for EFI + GRUB2 + Xen
development. Detailed description of ideas and thoughts you will
find in commit message for every patch. If something is not obvious
please drop me a line.

Patch #13 reveals a bug which probably was introduced between commit
3e2331d271cc0882e4013c8f20398c46c35f90a1 (VT-d: suppress UR signaling for
further desktop chipsets) and 61fdda7acf3de11f3d50d50e5b4f4ecfac7e0d04
(x86/HVM: properly bound x2APIC MSR range). Xen crashes at video_endboot()
because earlier scrub process wipes vga_console_info data (sic!). So,
it means that at least page containing this structure was freed mistakenly
somewhere. Interestingly this issue appears on legacy BIOS machines only.
EFI platforms work as usual. It is possible to workaround this bug by
passing no-bootscrub to xen.gz.

I was not able to spot anything obvious just looking briefly at commit history.
I am going to narrow down and fix this issue in next release.

ARM build has not been tested yet.

Most of the requested things are fixed but there are still some minor
outstanding issues (multiboot2 tags generation, excessive amount of casts
in xen/arch/x86/boot/reloc.c, etc.; please check commit messages for
more details). If something is not fixed yet it means that I do not have
good idea how to do that. In case you spot something which was mentioned
during previous reviews and still think that your comment is valid
in particular case please notify me.


 xen/arch/x86/Makefile             |    1 +
 xen/arch/x86/boot/cmdline.S       |    9 +--
 xen/arch/x86/boot/head.S          |  143 +++++++++++++++++++++++++++-----
 xen/arch/x86/boot/reloc.c         |  244 
 xen/arch/x86/boot/x86_64.S        |   10 ++-
 xen/arch/x86/boot_info.c          |  257 
 xen/arch/x86/dmi_scan.c           |   11 ++-
 xen/arch/x86/domain_build.c       |   24 +++---
 xen/arch/x86/efi/efi-boot.h       |  173 
 xen/arch/x86/microcode.c          |   39 +++++----
 xen/arch/x86/mpparse.c            |   13 ++-
 xen/arch/x86/platform_hypercall.c |   17 ++--
 xen/arch/x86/setup.c              |  364 
 xen/arch/x86/x86_64/asm-offsets.c |    5 +-
 xen/common/efi/boot.c             |    1 -
 xen/common/efi/efi.h              |   11 +++
 xen/common/efi/runtime.c          |   55 +++++++++++--
 xen/drivers/acpi/osl.c            |   13 ++-
 xen/drivers/video/vesa.c          |    7 +-
 xen/drivers/video/vga.c           |   18 ++---
 xen/include/asm-x86/boot_info.h   |  123 ++++++++++++++++++++++++++++
 xen/include/asm-x86/config.h      |    2 -
 xen/include/asm-x86/e820.h        |    8 --
 xen/include/asm-x86/edd.h         |    6 --
 xen/include/asm-x86/mbd.h         |   79 ++++++++++++++++++
 xen/include/asm-x86/setup.h       |   10 +--
 xen/include/xen/efi.h             |    7 ++
 xen/include/xen/multiboot2.h      |  148 +++++++++++++++++++++++++++++++++
 xen/include/xen/vga.h             |   18 -----
 xen/include/xsm/xsm.h             |   14 ++--
 xen/xsm/xsm_core.c                |    6 +-
 xen/xsm/xsm_policy.c              |   10 +--
 32 files changed, 1310 insertions(+), 536 deletions(-)

Daniel Kiper (16):
      x86/boot/reloc: Remove redundant blank characters and reformat comments a 
      x86/boot/reloc: Move typedef and include to beginning of file
      x86/boot/reloc: Create generic alloc and copy functions
      x86: Introduce MultiBoot Data (MBD) type
      x86/efi: Add place_string_u32() function
      x86: Introduce boot_info structure
      x86: Move boot_loader_name from mbi to boot_info
      x86: Move cmdline from mbi to boot_info
      x86: Move legacy BIOS memory map stuff to boot_info
      x86: Move modules data from mbi to boot_info and remove mbi
      x86: Move EFI memory map stuff to boot_info
      x86: Move MPS, ACPI and SMBIOS data to boot_info
      x86: Move video data to boot_info
      x86: Move HDD data to boot_info
      x86/boot: Use %ecx instead of %eax
      xen/x86: Add multiboot2 protocol support

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.