summaryrefslogtreecommitdiff
path: root/src/arch/i386
diff options
context:
space:
mode:
authorJoseph Smith <joe@settoplinux.org>2010-04-09 11:10:25 +0000
committerStefan Reinauer <stepan@openbios.org>2010-04-09 11:10:25 +0000
commit7488e049df9899dd7062b2ffe393b3e9a6f50dc5 (patch)
treea226c1f16a9220abb947ba46d26570e065494aa5 /src/arch/i386
parent853263b963b4cacb4f7fa3a7f2c68dcbd094f1d7 (diff)
1. This patch adds CAR for Intel P6 series processors.
2. Add support for Micro-FCBGA 479 Celeron and PIII's 3. Add support for model_6bx and microcode updates 4. Add support for CAR and Tinybootblock on RCA RM4100 and Thomson IP1000 Build and boot tested. Signed-off-by: Joseph Smith <joe@settoplinux.org> The change to CAR reveiled a few more warnings in the ICH4 and i830 code, I fixed them on the fly. Checking this in because my last two commits broke Joseph's CAR patch. This version fixes the issues. Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5388 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386')
-rw-r--r--src/arch/i386/Makefile.inc3
-rw-r--r--src/arch/i386/include/arch/stages.h5
-rw-r--r--src/arch/i386/lib/cbfs_and_run.c5
3 files changed, 10 insertions, 3 deletions
diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc
index a8f6a005a6..8af631a73c 100644
--- a/src/arch/i386/Makefile.inc
+++ b/src/arch/i386/Makefile.inc
@@ -165,6 +165,9 @@ endif
ifeq ($(CONFIG_CPU_INTEL_SOCKET_BGA956),y)
crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
endif
+ifeq ($(CONFIG_CPU_INTEL_SOCKET_MFCBGA479),y)
+crt0s += $(src)/cpu/x86/car/cache_as_ram.inc
+endif
# should be CONFIG_CPU_VIA_C7, but bcom/winnetp680, jetway/j7f24, via/epia-cn, via/pc2500e don't use CAR yet
ifeq ($(CONFIG_BOARD_VIA_VT8454C),y)
crt0s += $(src)/cpu/via/car/cache_as_ram.inc
diff --git a/src/arch/i386/include/arch/stages.h b/src/arch/i386/include/arch/stages.h
new file mode 100644
index 0000000000..dd73220507
--- /dev/null
+++ b/src/arch/i386/include/arch/stages.h
@@ -0,0 +1,5 @@
+void cbfs_and_run_core(const char *filename, unsigned int ebp);
+void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset);
+void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr);
+
+
diff --git a/src/arch/i386/lib/cbfs_and_run.c b/src/arch/i386/lib/cbfs_and_run.c
index d6103d8132..a6f19e50ee 100644
--- a/src/arch/i386/lib/cbfs_and_run.c
+++ b/src/arch/i386/lib/cbfs_and_run.c
@@ -19,6 +19,7 @@
#include <console/console.h>
#include <cbfs.h>
+#include <arch/stages.h>
void cbfs_and_run_core(const char *filename, unsigned ebp)
{
@@ -41,8 +42,6 @@ void cbfs_and_run_core(const char *filename, unsigned ebp)
);
}
-void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset);
-
void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset)
{
// FIXME fix input parameters instead normalizing them here.
@@ -53,7 +52,7 @@ void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset)
}
#if CONFIG_AP_CODE_IN_CAR == 1
-static void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr)
+void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr)
{
cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ap", ret_addr);
}