arm64: Add the introduction of multiboot/module command in docs/grub.texi
Signed-off-by: Fu Wei <fu.wei(a)linaro.org>
---
docs/grub.texi | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/docs/grub.texi b/docs/grub.texi
index 46b9e7f..084b40e 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -4512,6 +4512,29 @@ Alias for @code{hashsum --hash md5 arg @dots{}}. See command @command{hashsum}
@deffn Command module [--nounzip] file [arguments]
Load a module for multiboot kernel image. The rest of the
line is passed verbatim as the module command line.
+
+Note that on ARM64 machine, there is not [--nounzip] support.
+Each module will be given a default compatibility property based on the order
+ in which the modules are added:
+
+The first module will be: compatible = "multiboot,kernel", "multiboot,module"
+
+The second module will be: compatible = "multiboot,ramdisk", "multiboot,module"
+
+All subsequent modules will be: compatible = "multiboot,module"
+
+There is a [--type <compatible stream in FDT>] option to
+override default compatible string for the current module. May be given multiple
+times, the strings will be listed in the compatible property in the order given.
+Note that this means that the generic "multiboot,module" would need to be specified
+separately if desired. Modules which are given an explicit compatibility do not
+"consume" a default. In addition even if --type is used to specify something
+which is also a default it will not be consumed. For now, the available strings
+could be :
+"multiboot,kernel", "multiboot,ramdisk", "multiboot,module", "xen,xsm-policy"
+or the custom compatible stream.
+See @uref{http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot},
+ to obtain more information.
@end deffn
@node multiboot
@@ -4523,6 +4546,8 @@ line is passed verbatim as the @dfn{kernel command-line}. Any module must
be reloaded after using this command (@pxref{module}).
Some kernels have known problems. You need to specify --quirk-* for those.
+There is not --quirk-* support on ARM64 machine.
+
--quirk-bad-kludge is a problem seen in several products that they include
loading kludge information with invalid data in ELF file. GRUB prior to 0.97
and some custom builds prefered ELF information while 0.97 and GRUB 2
--
1.8.3.1
arm64:Add multiboot support (via fdt) for Xen boot
- This multiboot support is built into linux module for aarch64.
- The implementation for Xen is following <Multiboot on ARM Specification>:
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 <How to boot Xen with GRUB on AArch64 the Foundation FVP model>
https://wiki.linaro.org/LEG/Engineering/Grub2/Xen_booting_on_Foundation_FVP…
- 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 | 25 ++
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, 793 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 <fu.wei(a)linaro.org>
Hi,
I have added support for a future Broadcom server SOC in edk2.
I have booted all the way to the console. WE have some tweaks to the fast
model to model the device. Along the way one of the updates i had to make
was adding support for GIC in a 64 bit memory map. The patch is along
similar lines to patches that have been posted recently on the mailing
list.
Couple of questions
- Can this patch be submitted for review; i don't believe i will be sending
the patches for our fast model based port.
- Since i am a little new to UEFI, do i actually need to modify the PCD's
for other platforms in the appropriate .dec files. If platforms have GIC in
the lower 32 bit, do i have to change the PCD definition to a UINT64 from a
UINT32?
Hi,
Naresh and I have been working together over the past few weeks to get
the Linux UEFI Validation project [0] building for ARMv8, and while
progress is being made, there's been a couple of obstacles along the
way.
The main problem is that I think there are parts of meta-linaro that
really need to be upstream in openembedded-core, like the meta-aarch64
layer.
Traditionally the way development of the LUV project has gone is that
all the necessary core architecture support has been handled upstream in
oe-core (and subsequently poky) and only the UEFI/ACPI testing
components have been handled in the separate meta-luv layer. The
luv-yocto repository [0] is an umbrella repository that combines poky
and meta-luv, intended to alleviate the need for developers to do any
layer integration themselves.
We only require very minimal architecture support and genericx86-64 has
been adequate for all our needs so far, and I had originally assumed
that genericaarch64 would be OK for aarch64. But that target doesn't
appear to be available upstream.
Is anyone looking at getting parts of meta-linaro merged upstream?
[0] - https://github.com/01org/luv-yocto
--
Matt Fleming, Intel Open Source Technology Center
Hi Olivier,
Thank you so much for the reply. That was helpful. I was able to build successfully.
I am quite a beginner in this area. I would appreciate if you could educate me on this. I am assigned the task of building the uefi boot package for our design.
Design Details: (Simple Version)
v8 architecture - (A53)
UART - 0x4000_0000
Flash - 0x0000_0000
Internal RAM - 16MB
External RAM
At this point, my aim is to get uefi boot-up prompt through UART.
I am trying to understand ARMVExpress package and planning to reuse that for the most part.
Please correct me if that's not the right way. I would greatly appreciate if you could give me some direction. Thanks again.
Thanks,
Ravi C
From: Olivier Martin [mailto:olivier.martin@arm.com]
Sent: Wednesday, October 29, 2014 11:48 AM
To: Ravi Chhabra; linaro-uefi(a)lists.linaro.org
Subject: RE: question on EDK build patch step
This patch is actually not required anymore. BaseTools should fully support ARM and AArch64.
I will delete this patch now.
Unfortunately I cannot update the wikipages. I cannot login anymore - I am waiting for the wikipage maintainer to fix it.
From: linaro-uefi-bounces(a)lists.linaro.org<mailto:linaro-uefi-bounces@lists.linaro.org> [mailto:linaro-uefi-bounces@lists.linaro.org] On Behalf Of Ravi Chhabra
Sent: 29 October 2014 18:00
To: linaro-uefi(a)lists.linaro.org<mailto:linaro-uefi@lists.linaro.org>
Subject: [Linaro-uefi] question on EDK build patch step
Hi,
I am trying to build edk by following the steps in readme file. For some reason, I am unable to patch the files. Getting following error:
edk2> patch -p1 < ArmPlatformPkg/Documentation/patches/BaseTools-Pending-Patches.patch
patching file BaseTools/Source/C/GenFw/Elf32Convert.c
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 18.
Hunk #3 FAILED at 264.
Hunk #4 FAILED at 291.
Hunk #5 FAILED at 315.
5 out of 5 hunks FAILED -- saving rejects to file BaseTools/Source/C/GenFw/Elf32Convert.c.rej
patching file BaseTools/Source/C/GenFw/Elf64Convert.c
Hunk #1 FAILED at 19.
Hunk #2 FAILED at 258.
Hunk #3 FAILED at 286.
Hunk #4 FAILED at 310.
4 out of 4 hunks FAILED -- saving rejects to file BaseTools/Source/C/GenFw/Elf64Convert.c.rej
Please help.
Thanks,
Ravi C