summaryrefslogtreecommitdiff
path: root/arch
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
parent311b1a2b38b5317fdff76a5dad9d16fee3f52c79 (diff)
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')
-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 5adb3874b4..d099fc9ba3 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