This multiboot support will be built in linux module for aarch64,
and can not be used alone.
- 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.
- Add multiboot command for loading multiboot kernel image.
Usage: multiboot <the path of kernel image file> [cmdline]
- Add module command for loading multiboot module.
Usage: module [option] <the path of module file> [cmdline]
The [option] for Xen is [--type <compatible stream in FDT>].
For now, the <compatible stream in FDT> could be :
"multiboot,kernel", "multiboot,ramdisk", "multiboot,module",
"xen,xsm-policy" or the custom compatible stream
- Only support stub-kernel for arm64:
support stub-kernel detection and alignment info detection
- 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
Reason: (1)make code more orderly
(2)these #define can be used by other files which includs include/grub/arm64/linux.h
Export some accessor functions of dtb and the "loaded" flag for sharing code to multiboot.c
Signed-off-by: Fu Wei <fu.wei(a)linaro.org>