mb/prodrive/atlas: Configure some FSP settings

Program some FSP settings as requested by Prodrive.

Change-Id: I04548e5eddc8a6be3a03b5dd9062470b4ef85adb
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/73949
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
This commit is contained in:
Angel Pons 2023-03-23 17:00:06 +01:00 committed by Lean Sheng Tan
parent 56c1c4dff9
commit ff23f455c4
3 changed files with 54 additions and 0 deletions

View File

@ -10,4 +10,5 @@ romstage-y += romstage_fsp_params.c
ramstage-y += gpio.c
ramstage-y += mainboard.c
ramstage-y += ramstage_fsp_params.c
ramstage-y += smbios.c

View File

@ -0,0 +1,41 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/ramstage.h>
#include "vpd.h"
void mainboard_silicon_init_params(FSP_S_CONFIG *params)
{
/* Disable and lock configurable TDP */
params->ApplyConfigTdp = 0;
params->ConfigTdpLock = 1;
/* Apply profile-specific settings */
switch (get_emi_eeprom_vpd()->profile) {
case ATLAS_PROF_REALTIME_PERFORMANCE:
params->Cx = 0;
params->C1e = 0;
params->C1StateUnDemotion = 0;
params->C1StateAutoDemotion = 0;
params->PkgCStateUnDemotion = 0;
params->PkgCStateLimit = 0;
/* PCI */
params->PchDmiAspmCtrl = 0;
params->PsfTccEnable = 1;
params->PchLegacyIoLowLatency = 1;
params->OpioRecenter = 0;
params->PsfTccEnable = 1;
params->RenderStandby = 0;
params->L2QosEnumerationEn = 1;
params->EnergyEfficientPState = 0;
params->EnergyEfficientTurbo = 0;
params->PchS0ixAutoDemotion = 0;
/* Disable PMC low power modes */
params->PmcLpmS0ixSubStateEnableMask = 0;
params->PmcV1p05PhyExtFetControlEn = 0;
params->PmcV1p05IsExtFetControlEn = 0;
break;
}
}

View File

@ -5,6 +5,8 @@
#include <soc/romstage.h>
#include <soc/meminit.h>
#include "vpd.h"
static const struct mb_cfg ddr5_mem_config = {
.type = MEM_TYPE_DDR5,
@ -46,6 +48,16 @@ void mainboard_memory_init_params(FSPM_UPD *memupd)
memcfg_init(memupd, mem_config, &dimm_module_spd_info, half_populated);
/* Apply profile-specific settings */
switch (get_emi_eeprom_vpd()->profile) {
case ATLAS_PROF_REALTIME_PERFORMANCE:
memupd->FspmConfig.HyperThreading = 0;
memupd->FspmConfig.DisPgCloseIdleTimeout = 1;
memupd->FspmConfig.PowerDownMode = 0;
memupd->FspmConfig.DisableStarv2medPrioOnNewReq = 1;
break;
}
/* Enable Audio */
memupd->FspmConfig.PchHdaAudioLinkHdaEnable = 1;
memupd->FspmConfig.PchHdaSdiEnable[0] = 1;