From a034dca42cc1638e4917e38b98e7dc6b434f2357 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 27 May 2009 14:19:31 +0000 Subject: Move coreboot_ram and coreboot_apc to CBFS. This allows to reduce the size of the bootblock (done for kontron/986lcd-m) Signed-off-by: Patrick Georgi Acked-by: Ronald G. Minnich git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4315 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/cpu/amd/car/copy_and_run.c | 26 ++++++++++++++++++++++++++ src/cpu/x86/car/copy_and_run.c | 18 ++++++++++++++++++ 2 files changed, 44 insertions(+) (limited to 'src/cpu') diff --git a/src/cpu/amd/car/copy_and_run.c b/src/cpu/amd/car/copy_and_run.c index e0fa098833..437b91d4ac 100644 --- a/src/cpu/amd/car/copy_and_run.c +++ b/src/cpu/amd/car/copy_and_run.c @@ -3,6 +3,31 @@ 2006/05/02 - stepan: move nrv2b to an extra file. */ +#if CONFIG_CBFS == 1 +void cbfs_and_run_core(char*, unsigned ebp); + +static void copy_and_run(void) +{ +# if USE_FALLBACK_IMAGE == 1 + cbfs_and_run_core("fallback/coreboot_ram", 0); +# else + cbfs_and_run_core("normal/coreboot_ram", 0); +# endif +} + +#if CONFIG_AP_CODE_IN_CAR == 1 + +static void copy_and_run_ap_code_in_car(unsigned ret_addr) +{ +# if USE_FALLBACK_IMAGE == 1 + cbfs_and_run_core("fallback/coreboot_apc", ret_addr); +# else + cbfs_and_run_core("normal/coreboot_apc", ret_addr); +# endif +} +#endif + +#else void copy_and_run_core(u8 *src, u8 *dst, unsigned long ilen, unsigned ebp); extern u8 _liseg, _iseg, _eiseg; @@ -35,3 +60,4 @@ static void copy_and_run_ap_code_in_car(unsigned ret_addr) copy_and_run_core(src, dst, ilen, ret_addr); } #endif +#endif 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 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 + -- cgit v1.2.3