soc/intel/pantherlake: Add Thermal Design Current (TDC) configuration
This commit adds the capability to configure TDC mode and time window for each Voltage Regulator (VR) domain, providing better control over thermal constraints and power consumption. The TDC mode specifies the method (iPL2 or Irms) used for thermal management, while the time window determines the duration for current averaging. Change-Id: I2e11855c4f0533d826a25efead02ddcff9ab1f62 Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/89319 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
This commit is contained in:
parent
c54658d200
commit
59ede353c5
2 changed files with 34 additions and 0 deletions
|
|
@ -210,6 +210,11 @@ enum slew_rate {
|
|||
SLEW_IGNORE = 0xff,
|
||||
};
|
||||
|
||||
enum tdc_mode {
|
||||
TDC_IPL2,
|
||||
TDC_IRMS,
|
||||
};
|
||||
|
||||
struct soc_intel_pantherlake_config {
|
||||
|
||||
/* Common struct containing soc config data required by common code */
|
||||
|
|
@ -417,6 +422,30 @@ struct soc_intel_pantherlake_config {
|
|||
*/
|
||||
uint16_t thermal_design_current[MAX_PTL_SKUS][NUM_VR_DOMAINS];
|
||||
|
||||
/*
|
||||
* Thermal Design Current (TDC) mode for each Voltage Regulator (VR) domain.
|
||||
*
|
||||
* The mode indicates the method used for managing thermal constraints and power
|
||||
* consumption based on current measurement techniques.
|
||||
*
|
||||
* Possible values:
|
||||
* - 0: iPL2
|
||||
* - 1: Irms
|
||||
*/
|
||||
uint8_t tdc_mode[NUM_VR_DOMAINS];
|
||||
|
||||
/*
|
||||
* Time Window for Thermal Design Current (TDC) for each Voltage Regulator (VR)
|
||||
* domain.
|
||||
*
|
||||
* This array specifies the time window for TDC measurement for each VR
|
||||
* domain. The TDC time window determines the duration over which the current is
|
||||
* averaged.
|
||||
*
|
||||
* Units are milliseconds.
|
||||
*/
|
||||
uint32_t tdc_time_window_ms[NUM_VR_DOMAINS];
|
||||
|
||||
/*
|
||||
* Maximum Integrated Current Capability (ICC) settings for various SKUs.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -352,6 +352,11 @@ static void fill_fspm_vr_config_params(FSP_M_CONFIG *m_cfg,
|
|||
continue;
|
||||
m_cfg->IccMax[i] = config->icc_max[map->sku][i];
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE(config->tdc_mode); i++) {
|
||||
m_cfg->TdcMode[i] = config->tdc_mode[i];
|
||||
m_cfg->TdcTimeWindow[i] = config->tdc_time_window_ms[i];
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG(PLATFORM_HAS_EARLY_LOW_BATTERY_INDICATOR)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue