8 #include <soc/systemagent.h>
77 unsigned int power_unit;
78 unsigned int tdp, min_power, max_power, max_time, tdp_pl2, tdp_pl1;
90 power_unit = 1 << (msr.
lo & 0xf);
94 tdp = msr.
lo & 0x7fff;
95 min_power = (msr.
lo >> 16) & 0x7fff;
96 max_power = msr.
hi & 0x7fff;
97 max_time = (msr.
hi >> 16) & 0x7f;
104 if (min_power > 0 && tdp < min_power)
107 if (max_power > 0 && tdp > max_power)
181 limit.
lo |= (conf->
tdp_pl4 * power_unit) &
201 unsigned int power_unit,
cpu_tdp;
205 power_unit = 1 << (msr.
lo & 0xf);
#define printk(level,...)
#define MSR_PKG_POWER_SKU
#define PKG_POWER_LIMIT_CLAMP
#define MSR_DDR_RAPL_LIMIT
#define MSR_TURBO_ACTIVATION_RATIO
#define MSR_PKG_POWER_LIMIT
#define PKG_POWER_LIMIT_TIME_SHIFT
#define PKG_POWER_LIMIT_TIME_MASK
#define PKG_POWER_LIMIT_MASK
#define PLATFORM_INFO_SET_TDP
#define MSR_VR_CURRENT_CONFIG
#define MSR_PKG_POWER_SKU_UNIT
int cpu_config_tdp_levels(void)
#define PKG_POWER_LIMIT_EN
u8 cpu_get_tdp_nominal_ratio(void)
#define MSR_PLATFORM_INFO
#define MCH_DDR_POWER_LIMIT_HI
#define MCH_PKG_POWER_LIMIT_LO
#define MCH_DDR_POWER_LIMIT_LO
#define MCH_PKG_POWER_LIMIT_HI
static __always_inline msr_t rdmsr(unsigned int index)
static __always_inline void wrmsr(unsigned int index, msr_t msr)
#define BIOS_INFO
BIOS_INFO - Expected events.
static const u8 power_limit_time_sec_to_msr[]
void set_power_limits(u8 power_limit_1_time, struct soc_power_limits_config *conf)
static const u8 power_limit_time_msr_to_sec[]
enum soc_intel_alderlake_cpu_tdps cpu_tdp
#define MSR_PLATFORM_POWER_LIMIT
#define PKG_POWER_LIMIT_DUTYCYCLE_SHIFT
#define PKG_POWER_LIMIT_DUTYCYCLE_MASK
uint32_t tdp_psyspl3_dutycycle
uint16_t tdp_pl1_override
uint16_t tdp_pl2_override
uint32_t tdp_psyspl3_time