aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/emulation/qemu-x86/romstage.c
diff options
context:
space:
mode:
authorStefan Reinauer <reinauer@chromium.org>2013-01-07 13:21:22 -0800
committerRonald G. Minnich <rminnich@gmail.com>2013-01-08 23:33:35 +0100
commit597ff87574b11dc1163eb152e0941a2cbce5341b (patch)
tree3205d41368b0bd2a1936c795d668b43761292872 /src/mainboard/emulation/qemu-x86/romstage.c
parentc01990789f533316e10c5fc3b5ca08ae866b8033 (diff)
qemu-x86: Implement more features
This patch switches the Qemu target to use (pseudo) Cache As RAM and enables some ACPI code. This allows to use the CBMEM console and timestamp code with coreboot in Qemu. Right now, the ACPI code is commented out because leaving it in breaks IDE. Change-Id: Ie20f3ecc194004f354ae3437b9cf9175382cadf8 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/2113 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/mainboard/emulation/qemu-x86/romstage.c')
-rw-r--r--src/mainboard/emulation/qemu-x86/romstage.c46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/mainboard/emulation/qemu-x86/romstage.c b/src/mainboard/emulation/qemu-x86/romstage.c
index 33a0fccf94..be14db9c17 100644
--- a/src/mainboard/emulation/qemu-x86/romstage.c
+++ b/src/mainboard/emulation/qemu-x86/romstage.c
@@ -1,3 +1,22 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2004 Stefan Reinauer
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
#include <stdint.h>
#include <device/pci_def.h>
#include <device/pci_ids.h>
@@ -7,17 +26,42 @@
#include <arch/hlt.h>
#include <pc80/mc146818rtc.h>
#include <console/console.h>
+#include <cpu/x86/bist.h>
+#include <timestamp.h>
#include "drivers/pc80/udelay_io.c"
#include "lib/delay.c"
#include "cpu/x86/lapic/boot_cpu.c"
-static void main(void)
+#include "memory.c"
+
+void main(unsigned long bist)
{
+ int cbmem_was_initted;
+
/* init_timer(); */
post_code(0x05);
console_init();
+ /* Halt if there was a built in self test failure */
+ report_bist_failure(bist);
+
//print_pci_devices();
//dump_pci_devices();
+
+#if CONFIG_EARLY_CBMEM_INIT
+ cbmem_was_initted = !cbmem_initialize();
+#else
+ cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
+ - HIGH_MEMORY_SIZE));
+#endif
+#if CONFIG_COLLECT_TIMESTAMPS
+ timestamp_init(rdtsc());
+ timestamp_add_now(TS_START_ROMSTAGE);
+#endif
+#if CONFIG_CONSOLE_CBMEM
+ /* Keep this the last thing this function does. */
+ cbmemc_reinit();
+#endif
+
}