summaryrefslogtreecommitdiff
path: root/src/cpu/x86/car/copy_and_run.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/x86/car/copy_and_run.c')
-rw-r--r--src/cpu/x86/car/copy_and_run.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cpu/x86/car/copy_and_run.c b/src/cpu/x86/car/copy_and_run.c
index 14fe83d667..30b3b7a2f5 100644
--- a/src/cpu/x86/car/copy_and_run.c
+++ b/src/cpu/x86/car/copy_and_run.c
@@ -2,6 +2,22 @@
(Written by Patrick Georgi <patrick.georgi@coresystems.de> for coresystems GmbH
*/
+#if CONFIG_CBFS == 1
+void cbfs_and_run_core(char*, unsigned ebp);
+
+static void copy_and_run(unsigned cpu_reset)
+{
+ if (cpu_reset == 1) cpu_reset = -1;
+ else cpu_reset = 0;
+
+# if USE_FALLBACK_IMAGE == 1
+ cbfs_and_run_core("fallback/coreboot_ram", cpu_reset);
+# else
+ cbfs_and_run_core("normal/coreboot_ram", cpu_reset);
+# endif
+}
+
+#else
void copy_and_run_core(u8 *src, u8 *dst, unsigned long ilen, unsigned ebp);
extern u8 _liseg, _iseg, _eiseg;
@@ -21,3 +37,5 @@ static void copy_and_run(unsigned cpu_reset)
copy_and_run_core(src, dst, ilen, cpu_reset);
}
+#endif
+