From 23a398e001b55950f7759aa7ffa2ec966e2ea917 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Thu, 23 Mar 2023 23:44:03 +0100 Subject: soc/amd: introduce and use get_uvolts_from_vid for SVI2 and SVI3 Instead of implementing the conversion from the raw serial voltage ID value to the voltage in microvolts in every SoC, introduce the SOC_AMD_COMMON_BLOCK_SVI[2,3] Kconfig options for the SoC to select the correct version, implement get_uvolts_from_vid for both cases and only include the selected implementation in the build. Signed-off-by: Felix Held Change-Id: I344641217e6e4654fd281d434b88e346e0482f57 Reviewed-on: https://review.coreboot.org/c/coreboot/+/73995 Reviewed-by: Fred Reitberger Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/soc/amd/phoenix/Kconfig | 1 + src/soc/amd/phoenix/acpi.c | 8 +------- src/soc/amd/phoenix/include/soc/msr.h | 4 ---- 3 files changed, 2 insertions(+), 11 deletions(-) (limited to 'src/soc/amd/phoenix') diff --git a/src/soc/amd/phoenix/Kconfig b/src/soc/amd/phoenix/Kconfig index cb54306ed1..96a287cf7f 100644 --- a/src/soc/amd/phoenix/Kconfig +++ b/src/soc/amd/phoenix/Kconfig @@ -69,6 +69,7 @@ config SOC_AMD_PHOENIX select SOC_AMD_COMMON_BLOCK_SMU select SOC_AMD_COMMON_BLOCK_SMU_SX_ENTRY select SOC_AMD_COMMON_BLOCK_SPI + select SOC_AMD_COMMON_BLOCK_SVI3 select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H select SOC_AMD_COMMON_BLOCK_UART select SOC_AMD_COMMON_BLOCK_UCODE diff --git a/src/soc/amd/phoenix/acpi.c b/src/soc/amd/phoenix/acpi.c index e3996ba869..e147e88aee 100644 --- a/src/soc/amd/phoenix/acpi.c +++ b/src/soc/amd/phoenix/acpi.c @@ -149,13 +149,7 @@ uint32_t get_pstate_core_power(union pstate_msr pstate_reg) current_divisor = pstate_reg.idd_div; /* Voltage */ - if (core_vid == 0x00) { - /* Voltage off for VID code 0x00 */ - voltage_in_uvolts = 0; - } else { - voltage_in_uvolts = SERIAL_VID_3_BASE_MICROVOLTS + - (SERIAL_VID_3_DECODE_MICROVOLTS * core_vid); - } + voltage_in_uvolts = get_uvolts_from_vid(core_vid); /* Power in mW */ power_in_mw = (voltage_in_uvolts) / 10 * current_value_amps; diff --git a/src/soc/amd/phoenix/include/soc/msr.h b/src/soc/amd/phoenix/include/soc/msr.h index 8eee0683ae..173ee0999b 100644 --- a/src/soc/amd/phoenix/include/soc/msr.h +++ b/src/soc/amd/phoenix/include/soc/msr.h @@ -25,10 +25,6 @@ union pstate_msr { #define PSTATE_DEF_FREQ_DIV_MAX 0x3E #define PSTATE_DEF_CORE_FREQ_BASE 25 -/* Value defined in Serial VID Interface 3.0 spec (#56413, NDA only) */ -#define SERIAL_VID_3_DECODE_MICROVOLTS 5000 -#define SERIAL_VID_3_BASE_MICROVOLTS 245000L - #define MSR_CPPC_CAPABILITY_1 0xc00102b0 #define SHIFT_CPPC_CAPABILITY_1_HIGHEST_PERF 24 #define SHIFT_CPPC_CAPABILITY_1_NOMINAL_PERF 16 -- cgit v1.2.3