Skip to content
Snippets Groups Projects
Commit dc396210 authored by Simon Glass's avatar Simon Glass Committed by Bin Meng
Browse files

x86: Mention how to boot a 64-bit kernel from U-Boot


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: default avatarSimon Glass <sjg@chromium.org>
Reviewed-by: default avatarBin Meng <bmeng.cn@gmail.com>
parent 5d98c5ec
No related branches found
No related tags found
No related merge requests found
...@@ -85,3 +85,7 @@ For x86 a setup node is also required: see x86-fit-boot.txt. ...@@ -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()).
...@@ -63,9 +63,8 @@ executed. ...@@ -63,9 +63,8 @@ executed.
Build the kernel Build the kernel
---------------- ----------------
Note: these instructions assume a 32-bit kernel. U-Boot does not currently Note: these instructions assume a 32-bit kernel. U-Boot also supports directly
support booting a 64-bit kernel as it has no way of going into 64-bit mode on booting a 64-bit kernel by jumping into 64-bit mode first (see below).
x86.
You can build the kernel as normal with 'make'. This will create a file called 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: 'vmlinux'. This is a standard ELF file and you can look at it if you like:
...@@ -168,8 +167,9 @@ Create a FIT ...@@ -168,8 +167,9 @@ Create a FIT
------------ ------------
To create a FIT you will need a source file describing what should go in the 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 FIT. See kernel.its for an example for x86 and also instructions on setting
image.its. 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 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 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 ...@@ -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 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. 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. Various files in the same directory as this file describe the FIT format.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment