diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-05-26 14:37:17 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-05-26 14:37:17 +0000 |
commit | af7da7253383a54a7345aeaa1bb76f756945f746 (patch) | |
tree | c00a45d17ebff6e8081b4f80095bfa61639ce2fd | |
parent | 736221f1b2c37cdcd5073d269484b4f1cf7a4e36 (diff) |
encapsule mbi initialization in write_multiboot_table, where it belongs. (very
simple and trivial)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4308 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r-- | src/arch/i386/boot/multiboot.c | 7 | ||||
-rw-r--r-- | src/arch/i386/boot/tables.c | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/arch/i386/boot/multiboot.c b/src/arch/i386/boot/multiboot.c index 1f60ab143b..ba34a2b03c 100644 --- a/src/arch/i386/boot/multiboot.c +++ b/src/arch/i386/boot/multiboot.c @@ -24,7 +24,7 @@ #include <console/console.h> static struct multiboot_mmap_entry *mb_mem; -struct multiboot_info *mbi; +struct multiboot_info *mbi = NULL; static struct { u64 addr; @@ -80,12 +80,17 @@ unsigned long write_multiboot_info( { int i; + mbi = (struct multiboot_info *)rom_table_end; + memset(mbi, 0, sizeof(*mbi)); rom_table_end += sizeof(*mbi); mbi->mmap_addr = (u32) rom_table_end; mb_mem = (struct multiboot_mmap_entry *)rom_table_end; + /* FIXME This code is broken, it does not know about high memory + * tables, nor does it reserve the coreboot table area. + */ /* reserved regions */ reserved_mem[0].addr = low_table_start; reserved_mem[0].len = ROUND(low_table_end - low_table_start, 4096); diff --git a/src/arch/i386/boot/tables.c b/src/arch/i386/boot/tables.c index 387699507f..d057f7f0d1 100644 --- a/src/arch/i386/boot/tables.c +++ b/src/arch/i386/boot/tables.c @@ -154,7 +154,6 @@ struct lb_memory *write_tables(void) #if CONFIG_MULTIBOOT /* The Multiboot information structure */ - mbi = (struct multiboot_info *)rom_table_end; rom_table_end = write_multiboot_info( low_table_start, low_table_end, rom_table_start, rom_table_end); |