diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2010-04-09 10:43:49 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2010-04-09 10:43:49 +0000 |
commit | 853263b963b4cacb4f7fa3a7f2c68dcbd094f1d7 (patch) | |
tree | 322a20f4e96fe251fa65fcdcaab59a41e4480596 /src/arch/i386 | |
parent | 10b29d8cfe60891851817e81b6e705da6c6d4534 (diff) |
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 <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5387 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386')
-rw-r--r-- | src/arch/i386/lib/cbfs_and_run.c | 18 |
1 files changed, 18 insertions, 0 deletions
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 |