diff options
author | Sridhar Siricilla <sridhar.siricilla@intel.com> | 2023-03-30 09:51:28 +0530 |
---|---|---|
committer | Sridhar Siricilla <sridhar.siricilla@intel.com> | 2023-03-31 08:36:47 +0000 |
commit | 1b04e811fb7a706a0f54982348fd14761daf969f (patch) | |
tree | f1c9688be497cb7294f53e3c01dde5ba729e5127 | |
parent | 924aff9e226a1ef2e6456230cf1b466436d91aeb (diff) |
soc/intel/common: Add core_type member to 'struct apic_path'
The patch adds new member 'core_type' to the 'struct apic_path' and
updates core type information.
TEST=Build the code for MTL
Change-Id: I1d34068fd5ef43f8408301bf3effa9febf85f683
Signed-off-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74088
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
-rw-r--r-- | src/include/device/path.h | 1 | ||||
-rw-r--r-- | src/soc/intel/common/block/acpi/cpu_hybrid.c | 12 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/acpi.h | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/include/device/path.h b/src/include/device/path.h index 28c932ad8e..a1ea42c154 100644 --- a/src/include/device/path.h +++ b/src/include/device/path.h @@ -78,6 +78,7 @@ struct apic_path { unsigned int node_id; unsigned int core_id; unsigned int thread_id; + unsigned char core_type; }; struct ioapic_path { diff --git a/src/soc/intel/common/block/acpi/cpu_hybrid.c b/src/soc/intel/common/block/acpi/cpu_hybrid.c index eb852de50d..81c4add0b6 100644 --- a/src/soc/intel/common/block/acpi/cpu_hybrid.c +++ b/src/soc/intel/common/block/acpi/cpu_hybrid.c @@ -24,6 +24,18 @@ static bool is_perf_core(void) return get_soc_cpu_type() == CPUID_CORE_TYPE_INTEL_CORE; } +static enum cpu_perf_eff_type get_core_type(void) +{ + return (get_soc_cpu_type() == CPUID_CORE_TYPE_INTEL_CORE) ? + CPU_TYPE_PERF : CPU_TYPE_EFF; +} + +void set_dev_core_type(void) +{ + struct cpu_info *info = cpu_info(); + info->cpu->path.apic.core_type = get_core_type(); +} + static struct device *get_cpu_bus_first_child(void) { struct device *dev = dev_find_path(NULL, DEVICE_PATH_CPU_CLUSTER); diff --git a/src/soc/intel/common/block/include/intelblocks/acpi.h b/src/soc/intel/common/block/include/intelblocks/acpi.h index be7d0dfa2d..0f7a16579b 100644 --- a/src/soc/intel/common/block/include/intelblocks/acpi.h +++ b/src/soc/intel/common/block/include/intelblocks/acpi.h @@ -131,6 +131,9 @@ struct min_sleep_state { enum acpi_device_sleep_states min_sleep_state; }; +/* Updates core type into 'struct cpu_info' */ +void set_dev_core_type(void); + /* * This SOC callback returns an array that maps devices to their min sleep state. * Example: |