cpu/intel/model_206ax: Remove fake lapic device
Instead of using a fake lapic device hook up the cpu cluster to chip cpu/intel/model_206ax. The lapic device is also not needed as the mp init will allocate it for the BSP at runtime. Change-Id: Id3b1c4ca027e2905535e137691c3e3e60417dbf3 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59316 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
@@ -95,18 +95,9 @@ static int get_logical_cores_per_package(void)
|
||||
return msr.lo & 0xffff;
|
||||
}
|
||||
|
||||
static void generate_C_state_entries(void)
|
||||
static void generate_C_state_entries(const struct device *dev)
|
||||
{
|
||||
struct device *lapic;
|
||||
struct cpu_intel_model_206ax_config *conf = NULL;
|
||||
|
||||
/* Find the SpeedStep CPU in the device tree using magic APIC ID */
|
||||
lapic = dev_find_lapic(SPEEDSTEP_APIC_MAGIC);
|
||||
if (!lapic)
|
||||
return;
|
||||
conf = lapic->chip_info;
|
||||
if (!conf)
|
||||
return;
|
||||
struct cpu_intel_model_206ax_config *conf = dev->bus->dev->chip_info;
|
||||
|
||||
const int acpi_cstates[3] = { conf->acpi_c1, conf->acpi_c2, conf->acpi_c3 };
|
||||
|
||||
@@ -324,7 +315,7 @@ void generate_cpu_entries(const struct device *device)
|
||||
cpuID-1, cores_per_package);
|
||||
|
||||
/* Generate C-state tables */
|
||||
generate_C_state_entries();
|
||||
generate_C_state_entries(device);
|
||||
|
||||
/* Generate T-state tables */
|
||||
generate_T_state_entries(
|
||||
|
@@ -1,8 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
/* Magic value used to locate this chip in the device tree */
|
||||
#define SPEEDSTEP_APIC_MAGIC 0xACAC
|
||||
|
||||
/* Keep this in sync with acpi.c */
|
||||
enum cpu_acpi_level {
|
||||
CPU_ACPI_DISABLED = 0,
|
||||
|
@@ -211,18 +211,11 @@ static void configure_c_states(void)
|
||||
wrmsr(MSR_PP1_CURRENT_CONFIG, msr);
|
||||
}
|
||||
|
||||
static void configure_thermal_target(void)
|
||||
static void configure_thermal_target(struct device *dev)
|
||||
{
|
||||
struct cpu_intel_model_206ax_config *conf;
|
||||
struct device *lapic;
|
||||
struct cpu_intel_model_206ax_config *conf = dev->bus->dev->chip_info;
|
||||
msr_t msr;
|
||||
|
||||
/* Find pointer to CPU configuration */
|
||||
lapic = dev_find_lapic(SPEEDSTEP_APIC_MAGIC);
|
||||
if (!lapic || !lapic->chip_info)
|
||||
return;
|
||||
conf = lapic->chip_info;
|
||||
|
||||
/* Set TCC activation offset if supported */
|
||||
msr = rdmsr(MSR_PLATFORM_INFO);
|
||||
if ((msr.lo & (1 << 30)) && conf->tcc_offset) {
|
||||
@@ -346,7 +339,7 @@ static void model_206ax_init(struct device *cpu)
|
||||
configure_misc();
|
||||
|
||||
/* Thermal throttle activation offset */
|
||||
configure_thermal_target();
|
||||
configure_thermal_target(cpu);
|
||||
|
||||
set_aesni_lock();
|
||||
|
||||
|
Reference in New Issue
Block a user