2008-11-12 Robert Millan <rmh@aybabtu.com>

Use newly-added Multiboot support in coreboot.

        * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
        `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.

        * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
        alignment, set `MULTIBOOT_MEMORY_INFO' flag.
        (codestart): Store the MBI in `startup_multiboot_info' when we're
        being loaded using Multiboot.

        * kern/i386/coreboot/init.c (grub_machine_init): Move
        grub_at_keyboard_init() call to beginning of function (useful for
        debugging).  Call grub_machine_mmap_init() before attempting to use
        grub_machine_mmap_iterate().
        (grub_lower_mem, grub_upper_mem): Move from here ...
        * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
        here (new file).

        * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
        function prototype.
This commit is contained in:
robertmh 2008-11-11 23:27:18 +00:00
parent 761ca975a9
commit 95b841d37b
8 changed files with 129 additions and 18 deletions

View file

@ -55,20 +55,24 @@ VARIABLE(grub_prefix)
. = EXT_C(start) + GRUB_KERNEL_CPU_DATA_END
#if 0
/*
* Support for booting GRUB from a Multiboot boot loader (e.g. GRUB itself).
*/
.p2align 2 /* force 4-byte alignment */
multiboot_header:
/* magic */
.long 0x1BADB002
/* flags */
.long 0
.long MULTIBOOT_MEMORY_INFO
/* checksum */
.long -0x1BADB002
#endif
.long -0x1BADB002 - MULTIBOOT_MEMORY_INFO
codestart:
cmpl $MULTIBOOT_MAGIC2, %eax
jne 0f
movl %ebx, EXT_C(startup_multiboot_info)
0:
/* initialize the stack */
movl $GRUB_MEMORY_MACHINE_PROT_STACK, %esp