diff options
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/boot/acpi.c | 2 | ||||
-rw-r--r-- | src/arch/x86/include/arch/cpu.h | 5 | ||||
-rw-r--r-- | src/arch/x86/include/arch/stages.h | 7 | ||||
-rw-r--r-- | src/arch/x86/lib/cbfs_and_run.c | 4 |
4 files changed, 13 insertions, 5 deletions
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c index 4d405d9fe0..fd6a1baf88 100644 --- a/src/arch/x86/boot/acpi.c +++ b/src/arch/x86/boot/acpi.c @@ -748,7 +748,7 @@ extern int lowmem_backup_size; #define WAKEUP_BASE 0x600 void (*acpi_do_wakeup)(u32 vector, u32 backup_source, u32 backup_target, - u32 backup_size) __attribute__((regparm(0))) = (void *)WAKEUP_BASE; + u32 backup_size) asmlinkage = (void *)WAKEUP_BASE; extern unsigned char __wakeup, __wakeup_size; diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h index abe3f7fba7..ed8148e465 100644 --- a/src/arch/x86/include/arch/cpu.h +++ b/src/arch/x86/include/arch/cpu.h @@ -1,6 +1,8 @@ #ifndef ARCH_CPU_H #define ARCH_CPU_H +#include <stdint.h> + /* * EFLAGS bits */ @@ -205,6 +207,9 @@ static void inline get_fms(struct cpuinfo_x86 *c, uint32_t tfms) c->x86_model += ((tfms >> 16) & 0xF) << 4; } + +#define asmlinkage __attribute__((regparm(0))) + #endif #endif /* ARCH_CPU_H */ diff --git a/src/arch/x86/include/arch/stages.h b/src/arch/x86/include/arch/stages.h index 3ddba51783..0d00144cba 100644 --- a/src/arch/x86/include/arch/stages.h +++ b/src/arch/x86/include/arch/stages.h @@ -19,6 +19,9 @@ #ifndef __ARCH_STAGES_H #define __ARCH_STAGES_H -void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset); -void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr); + +#include <arch/cpu.h> + +void asmlinkage copy_and_run(unsigned cpu_reset); +void asmlinkage copy_and_run_ap_code_in_car(unsigned ret_addr); #endif diff --git a/src/arch/x86/lib/cbfs_and_run.c b/src/arch/x86/lib/cbfs_and_run.c index 62b2789f53..1f87e7ab62 100644 --- a/src/arch/x86/lib/cbfs_and_run.c +++ b/src/arch/x86/lib/cbfs_and_run.c @@ -41,7 +41,7 @@ static void cbfs_and_run_core(const char *filename, unsigned ebp) ); } -void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset) +void asmlinkage copy_and_run(unsigned cpu_reset) { // FIXME fix input parameters instead normalizing them here. if (cpu_reset == 1) cpu_reset = -1; @@ -51,7 +51,7 @@ void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset) } #if CONFIG_AP_CODE_IN_CAR -void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr) +void asmlinkage copy_and_run_ap_code_in_car(unsigned ret_addr) { cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ap", ret_addr); } |