From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Y1fIt-0007d8-PR for mharc-grub-devel@gnu.org; Thu, 18 Dec 2014 12:55:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52663) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y1fIn-0007cx-I7 for grub-devel@gnu.org; Thu, 18 Dec 2014 12:55:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y1fIe-00089s-GY for grub-devel@gnu.org; Thu, 18 Dec 2014 12:55:53 -0500 Received: from mail-pa0-f42.google.com ([209.85.220.42]:44125) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y1fIe-00088s-9v for grub-devel@gnu.org; Thu, 18 Dec 2014 12:55:44 -0500 Received: by mail-pa0-f42.google.com with SMTP id et14so1866667pad.1 for ; Thu, 18 Dec 2014 09:55:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:reply-to:organization :user-agent:mime-version:to:cc:subject:content-type :content-transfer-encoding; bh=X19uFbme0dbzlU5kbZFYcQJrcPYY7kgttl/vM7Rw2vY=; b=WOWeRLyCS16jGpfWYRDURBNGmGEyzQD6/BDnYHTB8syaEZlbjylX4l4iXnVO8N7YE3 Xsa+5DZIvpV3CeXBsmk+RrxyIyTSiw8pNlxY50aktDzBoU35M+vf514oG/VHKX56QYat QAljFYfhQ1cUEYKsNLOgi37Zb/TkV6aLLwdfaAAX32wUyccw6PpOTKldNjAdzBxQPgjC T6WFXbbvBTwmhDaZqVOfJNozq8ORLBtCmDpTUYUnB/tC3fpzVe9fS5nhwfv9zi/WUFHq 0RoKfTqVF0U84r4uDEwyufRZOmMnQ1V5aLSSU9eG0BwDr3qXeT+LvytaEBZ22svNExEY bpLw== X-Gm-Message-State: ALoCoQnhyfNlMHl2YUxvmJfHydDbgV6GzgzG4/tHPwtw9rZYK3trB93bu4M3n5eXnJ4o1YWD3WnA X-Received: by 10.66.191.165 with SMTP id gz5mr5300021pac.75.1418925343015; Thu, 18 Dec 2014 09:55:43 -0800 (PST) Received: from [192.168.1.11] ([59.58.226.187]) by mx.google.com with ESMTPSA id ny10sm7411587pdb.21.2014.12.18.09.55.40 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Dec 2014 09:55:42 -0800 (PST) Message-ID: <54931519.50905@linaro.org> Date: Fri, 19 Dec 2014 01:55:37 +0800 From: Fu Wei Organization: Linaro User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: grub-devel@gnu.org, Leif Lindholm , Ian Campbell Subject: [PATCH 0/5]arm64: Add multiboot support (via fdt) for Xen boot Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.220.42 Cc: Roy Franz , Jon Masters , linaro-uefi 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: Thu, 18 Dec 2014 17:55:58 -0000 - This multiboot support is built into linux module for aarch64. - The implementation for Xen is following : http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot and xen/docs/misc/arm/device-tree/booting.txt in Xen source code. - The example of this support is https://wiki.linaro.org/LEG/Engineering/Grub2/Xen_booting_on_Foundation_FVP_model_by_GRUB - This adds support for the Xen Multiboot on ARM specification for arm64, enabling config file portability across the architectures. - The multiboot command is currently x86-only, so reusing these command names should not conflict with any future additions of ARM support to multiboot2. - The reason of adding this functionality to the existing "linux" module rather than "multiboot(2)" (1)multiboot is x86 only (2)Multiboot is added to "linux" module because it reuses existing code. - Some changes in original linux module code Move some #define from grub-core/loader/arm64/linux.c to include/grub/arm64/linux.h Make some shared functions for multiboot.c Remove "loaded" checking in the grub_cmd_devicetree of linux.c - Add grub_fdt_set_reg64 macro into fdt.h header file for inserting "reg" properiy, while #address-cells = <0x2> and #size-cells = <0x2> - Add the introduction of multiboot/module command in docs/grub.texi This multiboot support will be built in linux module for aarch64, and can not be used alone. docs/grub.texi | 10 + grub-core/Makefile.core.def | 1 + grub-core/loader/arm64/linux.c | 72 ++--- grub-core/loader/arm64/multiboot.c | 593 +++++++++++++++++++++++++++++++++++++ include/grub/arm64/linux.h | 11 + include/grub/arm64/multiboot.h | 115 +++++++ include/grub/fdt.h | 12 + 7 files changed, 778 insertions(+), 36 deletions(-) create mode 100644 grub-core/loader/arm64/multiboot.c create mode 100644 include/grub/arm64/multiboot.h Signed-off-by: Fu Wei Reviewed-by: Leif Lindholm -- 1.8.3.1