/** @file
This file is to load sample board policy.
Copyright (c) 2017 - 2020 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "PeiPchPolicyLibrary.h"
#include
/*
Apply sample board PCH specific default settings
@param[in] SiPreMemPolicy The pointer to SI PREMEM Policy PPI instance
*/
VOID
EFIAPI
PchLoadSamplePreMemPolicy (
IN SI_PREMEM_POLICY_PPI *SiPreMemPolicy
)
{
EFI_STATUS Status;
PCH_TRACE_HUB_PREMEM_CONFIG *TraceHubPreMemConfig;
PCH_HSIO_PCIE_PREMEM_CONFIG *HsioPciePreMemConfig;
PCH_HSIO_SATA_PREMEM_CONFIG *HsioSataPreMemConfig;
Status = GetConfigBlock ((VOID *) SiPreMemPolicy, &gTraceHubPreMemConfigGuid, (VOID *) &TraceHubPreMemConfig);
ASSERT_EFI_ERROR (Status);
Status = GetConfigBlock ((VOID *) SiPreMemPolicy, &gHsioPciePreMemConfigGuid, (VOID *) &HsioPciePreMemConfig);
ASSERT_EFI_ERROR (Status);
Status = GetConfigBlock ((VOID *) SiPreMemPolicy, &gHsioSataPreMemConfigGuid, (VOID *) &HsioSataPreMemConfig);
ASSERT_EFI_ERROR (Status);
//
// TRACEHUB
//
TraceHubPreMemConfig->MemReg0Size = 0x100000; // 1MB
TraceHubPreMemConfig->MemReg1Size = 0x100000; // 1MB
//
// HSIO PCIE
//
HsioPciePreMemConfig->Lane[0].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[0].HsioRxSetCtle = 6;
HsioPciePreMemConfig->Lane[1].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[1].HsioRxSetCtle = 6;
HsioPciePreMemConfig->Lane[2].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[2].HsioRxSetCtle = 6;
HsioPciePreMemConfig->Lane[3].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[3].HsioRxSetCtle = 6;
HsioPciePreMemConfig->Lane[5].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[5].HsioRxSetCtle = 8;
HsioPciePreMemConfig->Lane[7].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[7].HsioRxSetCtle = 8;
HsioPciePreMemConfig->Lane[8].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[8].HsioRxSetCtle = 8;
HsioPciePreMemConfig->Lane[9].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[9].HsioRxSetCtle = 8;
HsioPciePreMemConfig->Lane[10].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[10].HsioRxSetCtle = 8;
HsioPciePreMemConfig->Lane[11].HsioRxSetCtleEnable = TRUE;
HsioPciePreMemConfig->Lane[11].HsioRxSetCtle = 8;
HsioPciePreMemConfig->PciePllSsc = 0xFF;
//
// HSIO SATA
//
HsioSataPreMemConfig->PortLane[0].HsioRxGen3EqBoostMagEnable = TRUE;
HsioSataPreMemConfig->PortLane[0].HsioRxGen3EqBoostMag = 4;
HsioSataPreMemConfig->PortLane[0].HsioTxGen1DownscaleAmpEnable = TRUE;
HsioSataPreMemConfig->PortLane[0].HsioTxGen1DownscaleAmp = 0x2C;
HsioSataPreMemConfig->PortLane[0].HsioTxGen2DownscaleAmpEnable = 0;
HsioSataPreMemConfig->PortLane[0].HsioTxGen2DownscaleAmp = 0x38;
}