summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-05-26 14:37:17 +0000
committerStefan Reinauer <stepan@openbios.org>2009-05-26 14:37:17 +0000
commitaf7da7253383a54a7345aeaa1bb76f756945f746 (patch)
treec00a45d17ebff6e8081b4f80095bfa61639ce2fd /src/arch
parent736221f1b2c37cdcd5073d269484b4f1cf7a4e36 (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
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/boot/multiboot.c7
-rw-r--r--src/arch/i386/boot/tables.c1
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);