summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/cpu.c5
-rw-r--r--src/arch/x86/include/arch/smp/mpspec.h2
-rw-r--r--src/arch/x86/mpspec.c6
3 files changed, 5 insertions, 8 deletions
diff --git a/src/arch/x86/cpu.c b/src/arch/x86/cpu.c
index 07bd7b5ff2..c929e5ea69 100644
--- a/src/arch/x86/cpu.c
+++ b/src/arch/x86/cpu.c
@@ -340,8 +340,3 @@ int cpu_index(void)
}
return -1;
}
-
-uintptr_t cpu_get_lapic_addr(void)
-{
- return LOCAL_APIC_ADDR;
-}
diff --git a/src/arch/x86/include/arch/smp/mpspec.h b/src/arch/x86/include/arch/smp/mpspec.h
index 25c23e68f5..198d7df4aa 100644
--- a/src/arch/x86/include/arch/smp/mpspec.h
+++ b/src/arch/x86/include/arch/smp/mpspec.h
@@ -224,7 +224,7 @@ struct mp_exten_compatibility_address_space {
*/
} __packed;
-void mptable_init(struct mp_config_table *mc, u32 lapic_addr);
+void mptable_init(struct mp_config_table *mc);
void *smp_next_mpc_entry(struct mp_config_table *mc);
void *smp_next_mpe_entry(struct mp_config_table *mc);
diff --git a/src/arch/x86/mpspec.c b/src/arch/x86/mpspec.c
index 15c3c0e1ea..fa29e800c3 100644
--- a/src/arch/x86/mpspec.c
+++ b/src/arch/x86/mpspec.c
@@ -6,13 +6,15 @@
#include <arch/smp/mpspec.h>
#include <string.h>
#include <arch/cpu.h>
+#include <cpu/cpu.h>
#include <cpu/x86/lapic.h>
#include <drivers/generic/ioapic/chip.h>
/* Initialize the specified "mc" struct with initial values. */
-void mptable_init(struct mp_config_table *mc, u32 lapic_addr)
+void mptable_init(struct mp_config_table *mc)
{
int i;
+ u32 lapic_addr = cpu_get_lapic_addr();
memset(mc, 0, sizeof(*mc));
@@ -533,7 +535,7 @@ unsigned long __weak write_smp_table(unsigned long addr)
v = smp_write_floating_table(addr, 0);
mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN);
- mptable_init(mc, LOCAL_APIC_ADDR);
+ mptable_init(mc);
smp_write_processors(mc);