diff --git a/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.chm b/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.chm
index 9420daf..a92bcec 100644
Binary files a/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.chm and b/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.chm differ
diff --git a/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.pdf b/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.pdf
index 4fa37c5..b78368b 100644
Binary files a/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.pdf and b/CoffeeLakeFspBinPkg/Docs/CoffeeLake_FSP_Integration_Guide.pdf differ
diff --git a/CoffeeLakeFspBinPkg/Fsp.bsf b/CoffeeLakeFspBinPkg/Fsp.bsf
index df25bd2..a45fb28 100644
--- a/CoffeeLakeFspBinPkg/Fsp.bsf
+++ b/CoffeeLakeFspBinPkg/Fsp.bsf
@@ -2,7 +2,7 @@
Boot Setting File for Platform Configuration.
- Copyright (c) 2019, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -181,7 +181,7 @@ StructDef
$gPlatformFspPkgTokenSpaceGuid_SkipStopPbet 1 bytes $_DEFAULT_ = 0x00
$gPlatformFspPkgTokenSpaceGuid_EnableC6Dram 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_OcSupport 1 bytes $_DEFAULT_ = 0x00
- $gPlatformFspPkgTokenSpaceGuid_OcLock 1 bytes $_DEFAULT_ = 0x00
+ $gPlatformFspPkgTokenSpaceGuid_OcLock 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_CoreMaxOcRatio 1 bytes $_DEFAULT_ = 0x00
$gPlatformFspPkgTokenSpaceGuid_CoreVoltageMode 1 bytes $_DEFAULT_ = 0x00
$gPlatformFspPkgTokenSpaceGuid_DisableMtrrProgram 1 bytes $_DEFAULT_ = 0x00
@@ -429,7 +429,9 @@ StructDef
$gPlatformFspPkgTokenSpaceGuid_LpddrDramOdt 1 bytes $_DEFAULT_ = 0x2
$gPlatformFspPkgTokenSpaceGuid_Ddr4SkipRefreshEn 1 bytes $_DEFAULT_ = 0x1
$gPlatformFspPkgTokenSpaceGuid_LctRelaxedReset 1 bytes $_DEFAULT_ = 0x0
- Skip 10 bytes
+ $gPlatformFspPkgTokenSpaceGuid_RefreshPanicWm 1 bytes $_DEFAULT_ = 0x09
+ $gPlatformFspPkgTokenSpaceGuid_RefreshHpWm 1 bytes $_DEFAULT_ = 0x08
+ Skip 8 bytes
$gPlatformFspPkgTokenSpaceGuid_SkipExtGfxScan 1 bytes $_DEFAULT_ = 0x0
$gPlatformFspPkgTokenSpaceGuid_BdatEnable 1 bytes $_DEFAULT_ = 0x00
$gPlatformFspPkgTokenSpaceGuid_ScanExtGfxForLegacyOpRom 1 bytes $_DEFAULT_ = 0x01
@@ -520,7 +522,8 @@ StructDef
$gPlatformFspPkgTokenSpaceGuid_ScsEmmcHs400Enabled 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_ScsSdCardEnabled 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_ShowSpiController 1 bytes $_DEFAULT_ = 0x00
- Skip 3 bytes
+ $gPlatformFspPkgTokenSpaceGuid_PchEspiLockLinkConfiguration 1 bytes $_DEFAULT_ = 0x01
+ Skip 2 bytes
$gPlatformFspPkgTokenSpaceGuid_MicrocodeRegionBase 4 bytes $_DEFAULT_ = 0x0
$gPlatformFspPkgTokenSpaceGuid_MicrocodeRegionSize 4 bytes $_DEFAULT_ = 0x0
$gPlatformFspPkgTokenSpaceGuid_TurboMode 1 bytes $_DEFAULT_ = 0x1
@@ -576,7 +579,8 @@ StructDef
$gPlatformFspPkgTokenSpaceGuid_ChipsetInitBinPtr 4 bytes $_DEFAULT_ = 0x00000000
$gPlatformFspPkgTokenSpaceGuid_ChipsetInitBinLen 4 bytes $_DEFAULT_ = 0x00000000
$gPlatformFspPkgTokenSpaceGuid_PchDmiCwbEnable 1 bytes $_DEFAULT_ = 0x00
- $gPlatformFspPkgTokenSpaceGuid_PchPostMemRsvd 28 bytes $_DEFAULT_ = 0x00
+ $gPlatformFspPkgTokenSpaceGuid_Usb3HsioRxCtrlCompMult 10 bytes $_DEFAULT_ = 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C
+ $gPlatformFspPkgTokenSpaceGuid_PchPostMemRsvd 18 bytes $_DEFAULT_ = 0x00
$gPlatformFspPkgTokenSpaceGuid_ScsUfsEnabled 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_PchCnviMode 1 bytes $_DEFAULT_ = 0x01
$gPlatformFspPkgTokenSpaceGuid_SdCardPowerEnableActiveHigh 1 bytes $_DEFAULT_ = 0x01
@@ -766,7 +770,8 @@ StructDef
$gPlatformFspPkgTokenSpaceGuid_Usb3HsioTxRate1UniqTran 10 bytes $_DEFAULT_ = 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C
$gPlatformFspPkgTokenSpaceGuid_Usb3HsioTxRate0UniqTranEnable 10 bytes $_DEFAULT_ = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
$gPlatformFspPkgTokenSpaceGuid_Usb3HsioTxRate0UniqTran 10 bytes $_DEFAULT_ = 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C
- Skip 13 bytes
+ $gPlatformFspPkgTokenSpaceGuid_SerialIoSpiCsEnable 6 bytes $_DEFAULT_ = 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
+ Skip 7 bytes
$gPlatformFspPkgTokenSpaceGuid_PcieRpAspm 24 bytes $_DEFAULT_ = 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
$gPlatformFspPkgTokenSpaceGuid_PcieRpL1Substates 24 bytes $_DEFAULT_ = 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03
$gPlatformFspPkgTokenSpaceGuid_PcieRpLtrEnable 24 bytes $_DEFAULT_ = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -1925,7 +1930,9 @@ EndList
List &gPlatformFspPkgTokenSpaceGuid_ApertureSize
Selection 0 , "128 MB"
Selection 1 , "256 MB"
- Selection 2 , "512 MB"
+ Selection 3 , "512 MB"
+ Selection 7 , "1024 MB"
+ Selection 15 , " 2048 MB"
EndList
List &gPlatformFspPkgTokenSpaceGuid_Peg0Enable
@@ -2502,6 +2509,12 @@ Page "Memory Reference Code 1"
Help "Enable/Disable of DDR4 Temperature Controlled Refresh on DRAM. Default is 1 (Enabled)"
Combo $gPlatformFspPkgTokenSpaceGuid_LctRelaxedReset, "Late Command Training Relaxed Reset", &gPlatformFspPkgTokenSpaceGuid_LctRelaxedReset,
Help "Enable/Disable Relaxed JEDEC Reset during Late Command Training (Only for DDR4)"
+ EditNum $gPlatformFspPkgTokenSpaceGuid_RefreshPanicWm, "REFRESH_PANIC_WM", HEX,
+ Help "Refresh Panic Watermark, range 1-9"
+ "Valid range: 0x01 ~ 0x9"
+ EditNum $gPlatformFspPkgTokenSpaceGuid_RefreshHpWm, "REFRESH_HP_WM", HEX,
+ Help "Refresh High Priority Watermark, range 1-9"
+ "Valid range: 0x01 ~ 0x9"
Combo $gPlatformFspPkgTokenSpaceGuid_SkipExtGfxScan, "Skip external display device scanning", &EN_DIS,
Help "Enable: Do not scan for external display device, Disable (Default): Scan external display devices"
Combo $gPlatformFspPkgTokenSpaceGuid_BdatEnable, "Generate BIOS Data ACPI Table", &EN_DIS,
@@ -2828,7 +2841,7 @@ Page "System Agent 1"
Combo $gPlatformFspPkgTokenSpaceGuid_OcSupport, "Over clocking support", &EN_DIS,
Help "Over clocking support; 0: Disable; 1: Enable"
Combo $gPlatformFspPkgTokenSpaceGuid_OcLock, "Over clocking Lock", &EN_DIS,
- Help "Over clocking Lock Enable/Disable; 0: Disable; 1: Enable."
+ Help "Over clocking Lock Enable/Disable; 0: Disable; 1: Enable"
EditNum $gPlatformFspPkgTokenSpaceGuid_CoreMaxOcRatio, "Maximum Core Turbo Ratio Override", HEX,
Help "Maximum core turbo ratio override allows to increase CPU core frequency beyond the fused max turbo ratio limit. 0: Hardware defaults. Range: 0-255"
"Valid range: 0x00 ~ 0xFF"
@@ -2972,6 +2985,8 @@ Page "PCH 2"
Help "Enable/disable SD Card Controller."
Combo $gPlatformFspPkgTokenSpaceGuid_ShowSpiController, "Show SPI controller", &EN_DIS,
Help "Enable/disable to show SPI controller."
+ Combo $gPlatformFspPkgTokenSpaceGuid_PchEspiLockLinkConfiguration, "PCH eSPI Link Configuration Lock (SBLCL)", &EN_DIS,
+ Help "Enable/Disable lock of communication through SET_CONFIG/GET_CONFIG to eSPI slaves addresseses from range 0x0 - 0x7FF"
Combo $gPlatformFspPkgTokenSpaceGuid_SataSalpSupport, "Enable SATA SALP Support", &EN_DIS,
Help "Enable/disable SATA Aggressive Link Power Management."
EditNum $gPlatformFspPkgTokenSpaceGuid_SataPortsEnable, "Enable SATA ports", HEX,
@@ -3100,6 +3115,9 @@ Page "PCH 2"
"Valid range: 0x00 ~ 0xFFFFFFFF"
Combo $gPlatformFspPkgTokenSpaceGuid_PchDmiCwbEnable, "PchDmiCwbEnable", &EN_DIS,
Help "Central Write Buffer feature configurable and disabled by default"
+ EditNum $gPlatformFspPkgTokenSpaceGuid_Usb3HsioRxCtrlCompMult, "CTLE Rate control CPR RCOMP multiplier (Double Rate)", HEX,
+ Help "CTLE Rate control CPR RCOMP multiplier (Double Rate), HSIO_RX_DWORD27 [31:24], One byte for each port."
+ "Valid range: 0x00 ~ 0xFFFFFFFFFFFFFFFFFFFF"
Combo $gPlatformFspPkgTokenSpaceGuid_PchPostMemRsvd, "PchPostMemRsvd", &EN_DIS,
Help "Reserved for PCH Post-Mem"
Combo $gPlatformFspPkgTokenSpaceGuid_ScsUfsEnabled, "Enable Ufs Controller", &EN_DIS,
@@ -3301,7 +3319,7 @@ Page "PCH 2"
Help "Bits 7:3 are for Signed Magnatude number added to the CTLE code, Bits 2:0 are for controlling the input offset"
"Valid range: 0x00 ~ 0xFFFFFFFFFFFFFFFFFFFF"
EditNum $gPlatformFspPkgTokenSpaceGuid_PchUsbHsioRxTuningEnable, "PCH USB3 HSIO Rx Tuning Enable", HEX,
- Help "Mask for enabling tuning of HSIO Rx signals of USB3 ports. Bits: 0 - HsioCtrlAdaptOffsetCfgEnable, 1 - HsioFilterSelNEnable, 2 - HsioFilterSelPEnable, 3 - HsioOlfpsCfgPullUpDwnResEnable"
+ Help "Mask for enabling tuning of HSIO Rx signals of USB3 ports. Bits: 0 - HsioCtrlAdaptOffsetCfgEnable, 1 - HsioFilterSelNEnable, 2 - HsioFilterSelPEnable, 3 - HsioOlfpsCfgPullUpDwnResEnable, 4 - HsioCtrlCompMultEnable"
"Valid range: 0x00 ~ 0xFFFFFFFFFFFFFFFFFFFF"
EditNum $gPlatformFspPkgTokenSpaceGuid_PcieRpPcieSpeed, "PCIE RP Pcie Speed", HEX,
Help "Determines each PCIE Port speed capability. 0: Auto; 1: Gen1; 2: Gen2; 3: Gen3 (see: PCH_PCIE_SPEED)."
@@ -3350,6 +3368,9 @@ Page "PCH 2"
EditNum $gPlatformFspPkgTokenSpaceGuid_Usb3HsioTxRate0UniqTran, "USB 3.0 TX Output Unique Transition Bit Scale for rate 0", HEX,
Help "USB 3.0 TX Output Unique Transition Bit Scale for rate 0, HSIO_TX_DWORD9[30:24], Default = 4Ch. One byte for each port."
"Valid range: 0x00 ~ 0xFFFFFFFFFFFFFFFFFFFF"
+ EditNum $gPlatformFspPkgTokenSpaceGuid_SerialIoSpiCsEnable, "SPI ChipSelect Enable", HEX,
+ Help "SPI0-2 CS0/1 Enable,Default CS0 Enabled, CS1 Disabled = 0x1 0x0. Two bytes for each Spi Controller."
+ "Valid range: 0x00 ~ 0xFFFFFFFFFFFF"
EditNum $gPlatformFspPkgTokenSpaceGuid_PcieRpAspm, "PCIE RP Aspm", HEX,
Help "The ASPM configuration of the root port (see: PCH_PCIE_ASPM_CONTROL). Default is PchPcieAspmAutoConfig."
"Valid range: 0x00 ~ 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
@@ -4146,10 +4167,10 @@ Page "System Agent 2"
Help "PCODE MMIO Mailbox: Acoustic Migitation Range.Defines the maximum Ramp Down randomization time in micro ticks.This can be programmed only if AcousticNoiseMigitation is enabled.Range 0-255 0."
"Valid range: 0x0 ~ 0xFF"
EditNum $gPlatformFspPkgTokenSpaceGuid_CpuMpPpi, "CpuMpPpi", HEX,
- Help "Pointer for CpuMpPpi"
+ Help "Optional pointer to the boot loader's implementation of EFI_PEI_MP_SERVICES_PPI. If not NULL, FSP will use the boot loader's implementation of multiprocessing. See section 3.6.4 of the FSP Integration Guide for more details."
"Valid range: 0x0 ~ 0xFFFFFFFF"
EditNum $gPlatformFspPkgTokenSpaceGuid_CpuMpHob, "CpuMpHob", HEX,
- Help "Pointer for CpuMpHob. This is optional data buffer for CpuMpPpi usage."
+ Help "Optional pointer for CpuMpHob. If the boot loader is a UEFI boot loader, and FspsUpd->FspsConfig.CpuMpPpi != NULL, then FspsUpd->FspsConfig.CpuMpHob must be != NULL. See section 3.6.4 of the FSP Integration Guide for more details."
"Valid range: 0x0 ~ 0xFFFFFFFF"
Combo $gPlatformFspPkgTokenSpaceGuid_DebugInterfaceEnable, "Enable or Disable processor debug features", &EN_DIS,
Help "Enable or Disable processor debug features; 0: Disable; 1: Enable."
diff --git a/CoffeeLakeFspBinPkg/Fsp.fd b/CoffeeLakeFspBinPkg/Fsp.fd
index ffebe19..bcc5789 100644
Binary files a/CoffeeLakeFspBinPkg/Fsp.fd and b/CoffeeLakeFspBinPkg/Fsp.fd differ
diff --git a/CoffeeLakeFspBinPkg/Include/FspmUpd.h b/CoffeeLakeFspBinPkg/Include/FspmUpd.h
index 38a4ad9..0e3538e 100644
--- a/CoffeeLakeFspBinPkg/Include/FspmUpd.h
+++ b/CoffeeLakeFspBinPkg/Include/FspmUpd.h
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -240,7 +240,7 @@ typedef struct {
/** Offset 0x00BA - Aperture Size
Select the Aperture Size.
- 0:128 MB, 1:256 MB, 2:512 MB
+ 0:128 MB, 1:256 MB, 2:512 MB (deprecated), 3:512 MB, 7:1024 MB, 15: 2048 MB
**/
UINT8 ApertureSize;
@@ -929,7 +929,7 @@ typedef struct {
UINT8 OcSupport;
/** Offset 0x0204 - Over clocking Lock
- Over clocking Lock Enable/Disable; 0: Disable; 1: Enable.
+ Over clocking Lock Enable/Disable; 0: Disable; 1: Enable
$EN_DIS
**/
UINT8 OcLock;
@@ -2339,9 +2339,19 @@ typedef struct {
**/
UINT8 LctRelaxedReset;
-/** Offset 0x051A
+/** Offset 0x051A - REFRESH_PANIC_WM
+ Refresh Panic Watermark, range 1-9
**/
- UINT8 ReservedFspmUpd[5];
+ UINT8 RefreshPanicWm;
+
+/** Offset 0x051B - REFRESH_HP_WM
+ Refresh High Priority Watermark, range 1-9
+**/
+ UINT8 RefreshHpWm;
+
+/** Offset 0x051C
+**/
+ UINT8 ReservedFspmUpd[3];
} FSP_M_CONFIG;
/** Fsp M Test Configuration
diff --git a/CoffeeLakeFspBinPkg/Include/FspsUpd.h b/CoffeeLakeFspBinPkg/Include/FspsUpd.h
index 65c9f5b..5692ed8 100644
--- a/CoffeeLakeFspBinPkg/Include/FspsUpd.h
+++ b/CoffeeLakeFspBinPkg/Include/FspsUpd.h
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -125,9 +125,16 @@ typedef struct {
**/
UINT8 ShowSpiController;
-/** Offset 0x0035
+/** Offset 0x0035 - PCH eSPI Link Configuration Lock (SBLCL)
+ Enable/Disable lock of communication through SET_CONFIG/GET_CONFIG to eSPI slaves
+ addresseses from range 0x0 - 0x7FF
+ $EN_DIS
+**/
+ UINT8 PchEspiLockLinkConfiguration;
+
+/** Offset 0x0036
**/
- UINT8 UnusedUpdSpace1[3];
+ UINT8 UnusedUpdSpace1[2];
/** Offset 0x0038 - MicrocodeRegionBase
Memory Base of Microcode Updates
@@ -455,11 +462,17 @@ typedef struct {
**/
UINT8 PchDmiCwbEnable;
-/** Offset 0x0129 - PchPostMemRsvd
+/** Offset 0x0129 - CTLE Rate control CPR RCOMP multiplier (Double Rate)
+ CTLE Rate control CPR RCOMP multiplier (Double Rate), HSIO_RX_DWORD27 [31:24], One
+ byte for each port.
+**/
+ UINT8 Usb3HsioRxCtrlCompMult[10];
+
+/** Offset 0x0133 - PchPostMemRsvd
Reserved for PCH Post-Mem
$EN_DIS
**/
- UINT8 PchPostMemRsvd[28];
+ UINT8 PchPostMemRsvd[18];
/** Offset 0x0145 - Enable Ufs Controller
Enable/disable Ufs 2.0 Controller.
@@ -1133,12 +1146,16 @@ typedef struct {
UINT8 RampDown;
/** Offset 0x032B - CpuMpPpi
- Pointer for CpuMpPpi
+ Optional pointer to the boot loader's implementation of EFI_PEI_MP_SERVICES_PPI.
+ If not NULL, FSP will use the boot loader's implementation of multiprocessing.
+ See section 3.6.4 of the FSP Integration Guide for more details.
**/
UINT32 CpuMpPpi;
/** Offset 0x032F - CpuMpHob
- Pointer for CpuMpHob. This is optional data buffer for CpuMpPpi usage.
+ Optional pointer for CpuMpHob. If the boot loader is a UEFI boot loader,
+ and FspsUpd->FspsConfig.CpuMpPpi != NULL, then FspsUpd->FspsConfig.CpuMpHob must
+ be != NULL. See section 3.6.4 of the FSP Integration Guide for more details.
**/
UINT32 CpuMpHob;
@@ -1463,7 +1480,8 @@ typedef struct {
/** Offset 0x04F0 - PCH USB3 HSIO Rx Tuning Enable
Mask for enabling tuning of HSIO Rx signals of USB3 ports. Bits: 0 - HsioCtrlAdaptOffsetCfgEnable,
- 1 - HsioFilterSelNEnable, 2 - HsioFilterSelPEnable, 3 - HsioOlfpsCfgPullUpDwnResEnable
+ 1 - HsioFilterSelNEnable, 2 - HsioFilterSelPEnable, 3 - HsioOlfpsCfgPullUpDwnResEnable,
+ 4 - HsioCtrlCompMultEnable
**/
UINT8 PchUsbHsioRxTuningEnable[10];
@@ -1562,9 +1580,15 @@ typedef struct {
**/
UINT8 Usb3HsioTxRate0UniqTran[10];
-/** Offset 0x05BB
+/** Offset 0x05BB - SPI ChipSelect Enable
+ SPI0-2 CS0/1 Enable,Default CS0 Enabled, CS1 Disabled = 0x1 0x0. Two bytes
+ for each Spi Controller.
+**/
+ UINT8 SerialIoSpiCsEnable[6];
+
+/** Offset 0x05C1
**/
- UINT8 UnusedUpdSpace14[13];
+ UINT8 UnusedUpdSpace14[7];
/** Offset 0x05C8 - PCIE RP Aspm
The ASPM configuration of the root port (see: PCH_PCIE_ASPM_CONTROL). Default is