From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1ZHC5A-0004D1-7j for mharc-grub-devel@gnu.org; Mon, 20 Jul 2015 10:30:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51929) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHC52-00048E-SM for grub-devel@gnu.org; Mon, 20 Jul 2015 10:30:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZHC4v-0000N3-32 for grub-devel@gnu.org; Mon, 20 Jul 2015 10:30:08 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:48218) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHC4u-0000Mw-Rc for grub-devel@gnu.org; Mon, 20 Jul 2015 10:30:01 -0400 Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t6KETj81007584 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 20 Jul 2015 14:29:46 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.13.8/8.13.8) with ESMTP id t6KETjM5004417 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 20 Jul 2015 14:29:45 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id t6KETaco029954; Mon, 20 Jul 2015 14:29:45 GMT Received: from olila.local.net-space.pl (/10.175.255.176) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 20 Jul 2015 07:29:35 -0700 From: Daniel Kiper To: xen-devel@lists.xenproject.org, grub-devel@gnu.org Subject: [PATCH v2 00/23] x86: multiboot2 protocol support Date: Mon, 20 Jul 2015 16:28:55 +0200 Message-Id: <1437402558-7313-1-git-send-email-daniel.kiper@oracle.com> X-Mailer: git-send-email 1.7.10.4 X-Source-IP: aserv0022.oracle.com [141.146.126.234] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 156.151.31.81 Cc: jgross@suse.com, keir@xen.org, ian.campbell@citrix.com, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, roy.franz@linaro.org, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, phcoder@gmail.com, wei.liu2@citrix.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jul 2015 14:30:14 -0000 Hi, I am sending, long awaited, second version of multiboot2 protocol support for legacy BIOS and EFI platforms. It fixes all major issues discovered until now. There are still some minor problems which should be fixed in one way or another. I will address them in next releases. This series, in general, is not targeted to Xen 4.6. However, there are some fixes at the beginning of it which are worth considering, I think. 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 file using objcopy; PE header will be contained in ELF file and will precede Xen code, - xen.efi build will not so strongly depend on a given GCC and binutils version. ARM guys should check at least patches #9 - #18 and #20. In general earlier mentioned patches touches common EFI code but they are not change functionality significantly. GRUB2 patch series will follow this patch series. GRUB2 guys should check patches #20 and #23 but I am sending to you all Xen related patches just in case. 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 | 21 ++-- xen/arch/x86/Rules.mk | 4 + xen/arch/x86/boot/Makefile | 10 +- xen/arch/x86/boot/build32.mk | 4 +- xen/arch/x86/boot/cmdline.S | 367 --------------------------------------------------------------- xen/arch/x86/boot/cmdline.c | 396 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ xen/arch/x86/boot/edd.S | 3 - xen/arch/x86/boot/head.S | 474 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- xen/arch/x86/boot/reloc.c | 242 +++++++++++++++++++++++++++++++++++------- xen/arch/x86/boot/trampoline.S | 25 ++++- xen/arch/x86/boot/video.S | 6 -- xen/arch/x86/boot/wakeup.S | 6 +- xen/arch/x86/boot/x86_64.S | 34 +++--- xen/arch/x86/dmi_scan.c | 4 +- xen/arch/x86/domain_page.c | 2 +- xen/arch/x86/efi/Makefile | 16 +-- xen/arch/x86/efi/efi-boot.h | 68 ++++++++++-- xen/arch/x86/efi/stub.c | 16 ++- xen/arch/x86/mm.c | 3 +- xen/arch/x86/mpparse.c | 4 +- xen/arch/x86/setup.c | 50 ++++----- xen/arch/x86/shutdown.c | 2 +- xen/arch/x86/time.c | 2 +- xen/arch/x86/x86_64/asm-offsets.c | 10 ++ xen/arch/x86/x86_64/mm.c | 2 +- xen/arch/x86/xen.lds.S | 6 +- xen/common/efi/boot.c | 461 ++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- xen/common/efi/runtime.c | 23 ++-- xen/drivers/acpi/osl.c | 2 +- xen/include/asm-x86/config.h | 3 + xen/include/asm-x86/page.h | 2 +- xen/include/xen/efi.h | 17 ++- xen/include/xen/multiboot2.h | 182 ++++++++++++++++++++++++++++++++ 34 files changed, 1709 insertions(+), 763 deletions(-) Daniel Kiper (23): x86/boot: remove unneeded instruction x86/boot: copy only text section from *.lnk file to *.bin file x86: zero BSS using stosl instead of stosb x86/boot: call reloc() using cdecl calling convention x86/boot/reloc: create generic alloc and copy functions x86/boot: use %ecx instead of %eax x86/boot/reloc: Rename some variables and rearrange code a bit x86: add multiboot2 protocol support efi: create efi_enabled() efi: build xen.gz with EFI code efi: split out efi_init() efi: split out efi_console_set_mode() efi: split out efi_get_gop() efi: split out efi_find_gop_mode() efi: split out efi_tables() efi: split out efi_variables() efi: split out efi_set_gop_mode() efi: split out efi_exit_boot() 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: make Xen early boot code relocatable x86: add multiboot2 protocol support for relocatable images