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:
@@ -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.
|
||||
|
Reference in New Issue
Block a user