summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2011-11-08 02:33:19 +0000
committerGraeme Russ <graeme.russ@gmail.com>2011-11-29 21:08:02 +1100
commita206cc23431474a9890f0301f02f50ad3dc9b062 (patch)
tree26f7d5e9420b5639af89b9c8214677d1a465982f /arch/x86
parent311b1a2b38b5317fdff76a5dad9d16fee3f52c79 (diff)
downloadu-boot-imx-a206cc23431474a9890f0301f02f50ad3dc9b062.zip
u-boot-imx-a206cc23431474a9890f0301f02f50ad3dc9b062.tar.gz
u-boot-imx-a206cc23431474a9890f0301f02f50ad3dc9b062.tar.bz2
x86: Add multiboot header
By adding a multiboot header, U-Boot can be loaded by GRUB2. Using GRUB2 to bootstrap U-Boot is useful for using an existing BIOS to get an initial U-Boot port up and running before implementing the low-level reset vector code, SDRAM init, etc. and overwriting the BIOS Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/cpu/start.S20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index 5adb387..d099fc9 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -129,3 +129,23 @@ die: hlt
blank_idt_ptr:
.word 0 /* limit */
.long 0 /* base */
+
+ .p2align 2 /* force 4-byte alignment */
+
+multiboot_header:
+ /* magic */
+ .long 0x1BADB002
+ /* flags */
+ .long (1 << 16)
+ /* checksum */
+ .long -0x1BADB002 - (1 << 16)
+ /* header addr */
+ .long multiboot_header - _x86boot_start + CONFIG_SYS_TEXT_BASE
+ /* load addr */
+ .long CONFIG_SYS_TEXT_BASE
+ /* load end addr */
+ .long 0
+ /* bss end addr */
+ .long 0
+ /* entry addr */
+ .long CONFIG_SYS_TEXT_BASE