[PATCH] libpayload: Add multiboot support
Make libpayload applications multiboot compatible. Add the multiboot OS table and grok the loader table, especially the memory map and the command line. This makes libpayload applications loadable by GRUB. Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3673 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
.code32
|
||||
.global _entry, _leave
|
||||
.text
|
||||
.align 4
|
||||
@@ -42,6 +43,21 @@ _entry:
|
||||
/* We're back - go back to the bootloader. */
|
||||
ret
|
||||
|
||||
.align 4
|
||||
|
||||
#define MB_MAGIC 0x1BADB002
|
||||
#define MB_FLAGS 0x00010003
|
||||
|
||||
mb_header:
|
||||
.long MB_MAGIC
|
||||
.long MB_FLAGS
|
||||
.long -(MB_MAGIC + MB_FLAGS)
|
||||
.long mb_header
|
||||
.long _start
|
||||
.long _edata
|
||||
.long _end
|
||||
.long _init
|
||||
|
||||
/*
|
||||
* This function saves off the previous stack and switches us to our
|
||||
* own execution environment.
|
||||
@@ -53,6 +69,11 @@ _init:
|
||||
/* Store current stack pointer. */
|
||||
movl %esp, %esi
|
||||
|
||||
/* Store EAX and EBX */
|
||||
|
||||
movl %eax,loader_eax
|
||||
movl %ebx,loader_ebx
|
||||
|
||||
/* Setup new stack. */
|
||||
movl $_stack, %ebx
|
||||
|
||||
|
Reference in New Issue
Block a user