soc/intel/meteorlake: Set SaGv work points as enum macro
This patch adds an enum macro to define the different SaGv work points. The enum macro is named `sagv_wp_bitmap` and it has three values: The goal is to choose the optimal SaGv work point for the target platform after considering the two inputs as power consumption and performance. The first group is for workloads that require high performance, even if it means consuming more power. The second group is for workloads that can tolerate lower performance, in order to save power. SAGV_POINTS_0_1: The highest power consumption, but also the highest performance. SAGV_POINTS_0_1_2: A lower power consumption than work point SAGV_POINTS_0_1, but also a lower performance. SAGV_POINTS_0_1_2_3: The lowest power consumption, but also the lowest performance. Set SaGv work points after reviewing the power and performance impact with SaGv set to 1 (Enabled) and various considering various work points between 0-3 being enabled. BUG=b:267879107 TEST=Able to build google/rex. Signed-off-by: Subrata Banik <subratabanik@google.com> Change-Id: I4af0038f2799a458d1b006270068341f65d36609 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75362 Reviewed-by: Kapil Porwal <kapilporwal@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
90a825a7bc
commit
a193308fab
|
@ -139,6 +139,16 @@ struct soc_intel_meteorlake_config {
|
|||
SAGV_ENABLED,
|
||||
} sagv;
|
||||
|
||||
/* System Agent dynamic frequency work points that memory will be training
|
||||
* at the enabled frequencies. Possible work points are:
|
||||
* 0x3:Points0_1, 0x7:Points0_1_2, 0xF:AllPoints0_1_2_3
|
||||
*/
|
||||
enum {
|
||||
SAGV_POINTS_0_1 = 0x03,
|
||||
SAGV_POINTS_0_1_2 = 0x07,
|
||||
SAGV_POINTS_0_1_2_3 = 0x0f,
|
||||
} sagv_wp_bitmap;
|
||||
|
||||
/* Rank Margin Tool. 1:Enable, 0:Disable */
|
||||
uint8_t rmt;
|
||||
|
||||
|
|
|
@ -124,6 +124,18 @@ static void fill_fspm_mrc_params(FSP_M_CONFIG *m_cfg,
|
|||
const struct soc_intel_meteorlake_config *config)
|
||||
{
|
||||
m_cfg->SaGv = config->sagv;
|
||||
if (m_cfg->SaGv) {
|
||||
/*
|
||||
* Set SaGv work points after reviewing the power and performance impact
|
||||
* with SaGv set to 1 (Enabled) and various work points between 0-3 being
|
||||
* enabled.
|
||||
*/
|
||||
if (config->sagv_wp_bitmap)
|
||||
m_cfg->SaGvWpMask = config->sagv_wp_bitmap;
|
||||
else
|
||||
m_cfg->SaGvWpMask = SAGV_POINTS_0_1_2_3;
|
||||
}
|
||||
|
||||
m_cfg->RMT = config->rmt;
|
||||
/* Enable MRC Fast Boot */
|
||||
m_cfg->MrcFastBoot = 1;
|
||||
|
|
Loading…
Reference in New Issue