From 853263b963b4cacb4f7fa3a7f2c68dcbd094f1d7 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Fri, 9 Apr 2010 10:43:49 +0000 Subject: copy_and_run.c is not needed twice, and it is used on non-car too. So move it to src/arch/i386/lib/cbfs_and_run.c Signed-off-by: Stefan Reinauer Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5387 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/arch/i386/lib/cbfs_and_run.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/arch/i386') diff --git a/src/arch/i386/lib/cbfs_and_run.c b/src/arch/i386/lib/cbfs_and_run.c index a8e11ce108..d6103d8132 100644 --- a/src/arch/i386/lib/cbfs_and_run.c +++ b/src/arch/i386/lib/cbfs_and_run.c @@ -40,3 +40,21 @@ void cbfs_and_run_core(const char *filename, unsigned ebp) :: "a"(ebp), "D"(dst) ); } + +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. + if (cpu_reset == 1) cpu_reset = -1; + else cpu_reset = 0; + + cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ram", cpu_reset); +} + +#if CONFIG_AP_CODE_IN_CAR == 1 +static 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); +} +#endif -- cgit v1.2.3