]> git.sur5r.net Git - u-boot/commitdiff
x86: Mention how to boot a 64-bit kernel from U-Boot
authorSimon Glass <sjg@chromium.org>
Sun, 17 Jul 2016 07:22:41 +0000 (01:22 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 16 Aug 2016 03:44:09 +0000 (11:44 +0800)
The README indicates that this is not supported, but this is no-longer true.
Update the text to indicate this and describe the FIT changes required.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
doc/uImage.FIT/kernel.its
doc/uImage.FIT/x86-fit-boot.txt

index e668c3f6e74e632e4ddf08253f6f8e3c8341f6ce..0aaf47e6c6bb2a11c067a824830775816b27266e 100644 (file)
@@ -85,3 +85,7 @@ For x86 a setup node is also required: see x86-fit-boot.txt.
                };
        };
 };
+
+Note: the above assumes a 32-bit kernel. To directly boot a 64-bit kernel,
+change both arch values to "x86_64". U-Boot will then change to 64-bit mode
+before booting the kernel (see boot_linux_kernel()).
index 61c10ff7c25b44928c1ac9436d6f064e0f9a82a5..02238f9df809a857e7f84c8f39798914b8598c51 100644 (file)
@@ -63,9 +63,8 @@ executed.
 Build the kernel
 ----------------
 
-Note: these instructions assume a 32-bit kernel. U-Boot does not currently
-support booting a 64-bit kernel as it has no way of going into 64-bit mode on
-x86.
+Note: these instructions assume a 32-bit kernel. U-Boot also supports directly
+booting a 64-bit kernel by jumping into 64-bit mode first (see below).
 
 You can build the kernel as normal with 'make'. This will create a file called
 'vmlinux'. This is a standard ELF file and you can look at it if you like:
@@ -168,8 +167,9 @@ Create a FIT
 ------------
 
 To create a FIT you will need a source file describing what should go in the
-FIT. See kernel.its for an example for x86. Put this into a file called
-image.its.
+FIT. See kernel.its for an example for x86 and also instructions on setting
+the 'arch' value for booting 64-bit kernels if desired. Put this into a file
+called image.its.
 
 Note that setup is loaded to the special address of 0x90000 (a special address
 you just have to know) and the kernel is loaded to 0x01000000 (the address you
@@ -263,10 +263,6 @@ In the Linux kernel, Documentation/x86/boot.txt defines the boot protocol for
 the kernel including the setup.bin format. This is handled in U-Boot in
 arch/x86/lib/zimage.c and arch/x86/lib/bootm.c.
 
-The procedure for entering 64-bit mode on x86 seems to be described here:
-
-   http://wiki.osdev.org/64-bit_Higher_Half_Kernel_with_GRUB_2
-
 Various files in the same directory as this file describe the FIT format.