arch/cpu: Rename mp_get_apic_id() and add_cpu_map_entry() function

This patch renames mp_get_apic_id() to cpu_get_apic_id() and
add_cpu_map_entry() to cpu_add_map_entry() in order access it
outside CONFIG_PARALLEL_MP kconfig scope.

Also make below changes
- Make cpu_add_map_entry() function available externally to call
it from mp_init.c and lapic_cpu_init.c.

BRANCH=none
BUG=b:79562868

Change-Id: I6a6c85df055bc0b5fc8c850cfa04d50859067088
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32701
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Subrata Banik
2019-05-10 11:58:37 +05:30
parent 1159a163cd
commit 7bc9036d16
4 changed files with 40 additions and 31 deletions

View File

@@ -219,6 +219,35 @@ static void set_cpu_ops(struct device *cpu)
cpu->ops = driver ? driver->ops : NULL;
}
/* Keep track of default apic ids for SMM. */
static int cpus_default_apic_id[CONFIG_MAX_CPUS];
/*
* When CPUID executes with EAX set to 1, additional processor identification
* information is returned to EBX register:
* Default APIC ID: EBX[31-24] - this number is the 8 bit ID that is assigned
* to the local APIC on the processor during power on.
*/
static int initial_lapicid(void)
{
return cpuid_ebx(1) >> 24;
}
/* Function to keep track of cpu default apic_id */
void cpu_add_map_entry(unsigned int index)
{
cpus_default_apic_id[index] = initial_lapicid();
}
/* Returns default APIC id based on logical_cpu number or < 0 on failure. */
int cpu_get_apic_id(int logical_cpu)
{
if (logical_cpu >= CONFIG_MAX_CPUS || logical_cpu < 0)
return -1;
return cpus_default_apic_id[logical_cpu];
}
void cpu_initialize(unsigned int index)
{
/* Because we busy wait at the printk spinlock.