diff --git a/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspmUpd.h b/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspmUpd.h
index 74cc6728b7..1bac0b8240 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspmUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspmUpd.h
@@ -182,9 +182,15 @@ typedef struct {
**/
UINT8 ProbelessTrace;
-/** Offset 0x00A3
+/** Offset 0x00A3 - GDXC IOT SIZE
+ Size of IOT and MOT is in 8 MB chunks
**/
- UINT8 UnusedUpdSpace0[2];
+ UINT8 GdxcIotSize;
+
+/** Offset 0x00A4 - GDXC MOT SIZE
+ Size of IOT and MOT is in 8 MB chunks
+**/
+ UINT8 GdxcMotSize;
/** Offset 0x00A5 - Enable SMBus
Enable/disable SMBus controller.
@@ -244,9 +250,7 @@ typedef struct {
/** Offset 0x00B8 - Internal Graphics Pre-allocated Memory
Size of memory preallocated for internal graphics.
- 0x00:0MB, 0x01:32MB, 0x02:64MB, 0xF0:4MB, 0xF1:8MB, 0xF2:12MB, 0xF3:16MB, 0xF4:20MB,
- 0xF5:24MB, 0xF6:28MB, 0xF7:32MB, 0xF8:36MB, 0xF9:40MB, 0xFA:44MB, 0xFB:48MB, 0xFC:52MB,
- 0xFD:56MB, 0xFE:60MB
+ 0x00:0 MB, 0x01:32 MB, 0x02:64 MB
**/
UINT8 IgdDvmt50PreAlloc;
@@ -272,14 +276,14 @@ typedef struct {
/** Offset 0x00BC - SA GV
System Agent dynamic frequency support and when enabled memory will be training
at two different frequencies. Only effects ULX/ULT CPUs. 0=Disabled, 1=FixedLow,
- 2=FixedMid, 3=FixedHigh, and 4=Enabled.
- 0:Disabled, 1:FixedLow, 2:FixedMid, 3:FixedHigh, 4:Enabled
+ 2=FixedHigh, and 3=Enabled.
+ 0:Disabled, 1:FixedLow, 2:FixedHigh, 3:Enabled
**/
UINT8 SaGv;
/** Offset 0x00BD
**/
- UINT8 UnusedUpdSpace1;
+ UINT8 UnusedUpdSpace0;
/** Offset 0x00BE - DDR Frequency Limit
Maximum Memory Frequency Selections in Mhz. Valid values should match the refclk,
@@ -329,7 +333,7 @@ typedef struct {
/** Offset 0x00C8
**/
- UINT8 UnusedUpdSpace2[16];
+ UINT8 UnusedUpdSpace1[16];
/** Offset 0x00D8 - SPD Profile Selected
Select DIMM timing profile. Options are 0=Default profile, 1=Custom profile, 2=XMP
@@ -488,7 +492,7 @@ typedef struct {
/** Offset 0x00F8
**/
- UINT8 UnusedUpdSpace3[4];
+ UINT8 UnusedUpdSpace2[4];
/** Offset 0x00FC - Enable Intel HD Audio (Azalia)
0: Disable, 1: Enable (Default) Azalia controller
@@ -510,7 +514,7 @@ typedef struct {
/** Offset 0x00FF
**/
- UINT8 UnusedUpdSpace4;
+ UINT8 UnusedUpdSpace3;
/** Offset 0x0100 - HECI1 BAR address
BAR address of HECI1
@@ -681,7 +685,7 @@ typedef struct {
/** Offset 0x0125
**/
- UINT8 UnusedUpdSpace5[3];
+ UINT8 UnusedUpdSpace4[3];
/** Offset 0x0128 - DMI Gen3 Root port preset values per lane
Used for programming DMI Gen3 preset values per lane. Range: 0-9, 8 is default for each lane
@@ -720,7 +724,7 @@ typedef struct {
/** Offset 0x0146
**/
- UINT8 UnusedUpdSpace6[2];
+ UINT8 UnusedUpdSpace5[2];
/** Offset 0x0148 - PEG Gen3 RxCTLEp per-Bundle control
Range: 0-15, 12 is default for each bundle, must be specified based upon platform design
@@ -957,7 +961,7 @@ typedef struct {
/** Offset 0x0207
**/
- UINT8 UnusedUpdSpace7;
+ UINT8 UnusedUpdSpace6;
/** Offset 0x0208 - Maximum clr turbo ratio override
Maximum clr turbo ratio override allows to increase CPU clr frequency beyond the
@@ -2275,21 +2279,18 @@ typedef struct {
**/
UINT8 EnBER;
-/** Offset 0x050F - PEG IMR support
- This option configures the IMR support for PEG.(def=Disable)
+/** Offset 0x050F - Dual Dimm Per-Channel Board Type
+ Option to indicate if Board Layout includes One/Two DIMMs per channel. This is used
+ to limit maximum frequency for some SKUs.
+ 0:1DPC, 1:2DPC
+**/
+ UINT8 DualDimmPerChannelBoardType;
+
+/** Offset 0x0510 - CFL Reserved
+ Reserved FspmConfig CFL
$EN_DIS
**/
- UINT8 PegImrEnable;
-
-/** Offset 0x0510 - PEG IMR size
- The size of IMR to be allocated for PEG EndPoint device
-**/
- UINT16 PegImrSize;
-
-/** Offset 0x0512 - PEG Root Port Selection
- The Root Port for which the IMR to be allocated
-**/
- UINT8 PegImrRpSelection;
+ UINT8 ReservedFspmUpdCfl[3];
/** Offset 0x0513 - Memory Test on Warm Boot
Run Base Memory Test on Warm Boot
@@ -2524,7 +2525,7 @@ typedef struct {
/** Offset 0x0579
**/
- UINT8 UnusedUpdSpace10;
+ UINT8 UnusedUpdSpace9;
/** Offset 0x057A - Jitter Dwell Time for PCIe Gen3 Software Equalization
Range: 0-65535, default is 1000. @warning Do not change from the default
@@ -2799,7 +2800,7 @@ typedef struct {
/** Offset 0x051F
**/
- UINT8 UnusedUpdSpace9;
+ UINT8 UnusedUpdSpace8;
/** Offset 0x0520
**/
diff --git a/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspsUpd.h b/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspsUpd.h
index 4daf8915c9..12c6e4413c 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspsUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/cannonlake/FspsUpd.h
@@ -717,8 +717,8 @@ typedef struct {
UINT8 PavpEnable;
/** Offset 0x0217 - CdClock Frequency selection
- 0=168 Mhz, 1=336 Mhz, 2(Default)=528 Mhz
- 0: 168 Mhz, 1: 336 Mhz, 2: 528 Mhz
+ 0=168 Mhz, 1=336 Mhz, 2=528 Mhz, 3(Default)=675 Mhz
+ 0: 168 Mhz, 1: 336 Mhz, 2: 528 Mhz, 3: 675 Mhz
**/
UINT8 CdClock;
@@ -907,7 +907,9 @@ typedef struct {
UINT8 PsysOffset;
/** Offset 0x02A2 - Acoustic Noise Mitigation feature
- Enable or Disable Acoustic Noise Mitigation feature. 0: Disabled; 1: Enabled
+ Enable or Disable Acoustic Noise Mitigation feature. This has to be enabled to program
+ slew rate configuration for all VR domains, Pre Wake, Ramp Up and, Ramp Down times.0:
+ Disabled; 1: Enabled
$EN_DIS
**/
UINT8 AcousticNoiseMitigation;
@@ -1100,15 +1102,32 @@ typedef struct {
**/
UINT32 VrPowerDeliveryDesign;
-/** Offset 0x0328 - ReservedCpuPostMemProduction
+/** Offset 0x0328 - Pre Wake Randomization time
+ PCODE MMIO Mailbox: Acoustic Migitation Range.Defines the maximum pre-wake randomization
+ time in micro ticks.This can be programmed only if AcousticNoiseMigitation is enabled.
+ Range 0-255 0.
+**/
+ UINT8 PreWake;
+
+/** Offset 0x0329 - Ramp Up Randomization time
+ PCODE MMIO Mailbox: Acoustic Migitation Range.Defines the maximum Ramp Up randomization
+ time in micro ticks.This can be programmed only if AcousticNoiseMigitation is enabled.Range
+ 0-255 0.
+**/
+ UINT8 RampUp;
+
+/** Offset 0x032A - Ramp Down Randomization time
+ 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.
+**/
+ UINT8 RampDown;
+
+/** Offset 0x032B - ReservedCpuPostMemProduction
Reserved for CPU Post-Mem Production
$EN_DIS
**/
- UINT8 ReservedCpuPostMemProduction[1];
-
-/** Offset 0x0329
-**/
- UINT8 UnusedUpdSpace10[29];
+ UINT8 ReservedCpuPostMemProduction[27];
/** Offset 0x0346 - Enable DMI ASPM
Deprecated.
@@ -1151,7 +1170,7 @@ typedef struct {
/** Offset 0x0367
**/
- UINT8 UnusedUpdSpace11;
+ UINT8 UnusedUpdSpace10;
/** Offset 0x0368 - VC Type
Virtual Channel Type Select: 0: VC0, 1: VC1.
@@ -1192,7 +1211,7 @@ typedef struct {
/** Offset 0x036E
**/
- UINT8 UnusedUpdSpace12[15];
+ UINT8 UnusedUpdSpace11[15];
/** Offset 0x037D - Enable PCH Io Apic Entry 24-119
0: Disable; 1: Enable.
@@ -1207,7 +1226,7 @@ typedef struct {
/** Offset 0x037F
**/
- UINT8 UnusedUpdSpace13;
+ UINT8 UnusedUpdSpace12;
/** Offset 0x0380 - Enable PCH ISH SPI GPIO pins assigned
0: Disable; 1: Enable.
@@ -1307,7 +1326,7 @@ typedef struct {
/** Offset 0x0390
**/
- UINT8 UnusedUpdSpace14[3];
+ UINT8 UnusedUpdSpace13[3];
/** Offset 0x0393 - Enable LOCKDOWN BIOS LOCK
Enable the BIOS Lock feature and set EISS bit (D31:F5:RegDCh[5]) for the BIOS region
@@ -1401,7 +1420,7 @@ typedef struct {
/** Offset 0x04E6
**/
- UINT8 UnusedUpdSpace15[24];
+ UINT8 UnusedUpdSpace14[24];
/** Offset 0x04FE - PCIE RP Pcie Speed
Determines each PCIE Port speed capability. 0: Auto; 1: Gen1; 2: Gen2; 3: Gen3 (see:
@@ -1427,7 +1446,7 @@ typedef struct {
/** Offset 0x055E
**/
- UINT8 UnusedUpdSpace16[106];
+ UINT8 UnusedUpdSpace15[106];
/** Offset 0x05C8 - PCIE RP Aspm
The ASPM configuration of the root port (see: PCH_PCIE_ASPM_CONTROL). Default is
@@ -1486,7 +1505,7 @@ typedef struct {
/** Offset 0x0664
**/
- UINT8 UnusedUpdSpace17;
+ UINT8 UnusedUpdSpace16;
/** Offset 0x0665 - PCIE Compliance Test Mode
Compliance Test Mode shall be enabled when using Compliance Load Board.
@@ -1503,7 +1522,7 @@ typedef struct {
/** Offset 0x0667
**/
- UINT8 UnusedUpdSpace18[2];
+ UINT8 UnusedUpdSpace17[2];
/** Offset 0x0669 - PCH Pm PME_B0_S5_DIS
When cleared (default), wake events from PME_B0_STS are allowed in S5 if PME_B0_EN = 1.
@@ -1529,7 +1548,7 @@ typedef struct {
/** Offset 0x066F
**/
- UINT8 UnusedUpdSpace19;
+ UINT8 UnusedUpdSpace18;
/** Offset 0x0670 - PCH Pm Wol Enable Override
Corresponds to the WOL Enable Override bit in the General PM Configuration B (GEN_PMCON_B) register.
@@ -1618,7 +1637,7 @@ typedef struct {
/** Offset 0x067D
**/
- UINT8 UnusedUpdSpace20[3];
+ UINT8 UnusedUpdSpace19[3];
/** Offset 0x0680 - PCH Pm Lpc Clock Run
This member describes whether or not the LPC ClockRun feature of PCH should be enabled.
@@ -1652,7 +1671,7 @@ typedef struct {
/** Offset 0x0685
**/
- UINT8 UnusedUpdSpace21;
+ UINT8 UnusedUpdSpace20;
/** Offset 0x0686 - PCH Pm Disable Native Power Button
Power button native mode disable.
@@ -1692,7 +1711,7 @@ typedef struct {
/** Offset 0x068C
**/
- UINT8 UnusedUpdSpace22;
+ UINT8 UnusedUpdSpace21;
/** Offset 0x068D - PCH Sata Pwr Opt Enable
SATA Power Optimizer on PCH side.
@@ -1881,7 +1900,7 @@ typedef struct {
/** Offset 0x0700
**/
- UINT8 UnusedUpdSpace23;
+ UINT8 UnusedUpdSpace22;
/** Offset 0x0701 - PcdSerialIoUart0PinMuxing
Select SerialIo Uart0 pin muxing. Setting applicable only if SerialIO UART0 is enabled.
@@ -1891,7 +1910,7 @@ typedef struct {
/** Offset 0x0702
**/
- UINT8 UnusedUpdSpace24[1];
+ UINT8 UnusedUpdSpace23[1];
/** Offset 0x0703 - Enables UART hardware flow control, CTS and RTS lines
Enables UART hardware flow control, CTS and RTS linesh.
@@ -2164,7 +2183,7 @@ typedef struct {
/** Offset 0x0753
**/
- UINT8 UnusedUpdSpace25;
+ UINT8 UnusedUpdSpace24;
/** Offset 0x0754 - Pch PCIE device override table pointer
The PCIe device table is being used to override PCIe device ASPM settings. This
@@ -2343,7 +2362,7 @@ typedef struct {
UINT8 PmSupport;
/** Offset 0x07BC - Enable/Disable CdynmaxClamp
- Enable: Enable CdynmaxClamp, Disable(Default): Disable CdynmaxClamp
+ Enable(Default): Enable CdynmaxClamp, Disable: Disable CdynmaxClamp
$EN_DIS
**/
UINT8 CdynmaxClampEnable;
@@ -2465,7 +2484,7 @@ typedef struct {
/** Offset 0x07D8 - TCC Activation Offset
TCC Activation Offset. Offset from factory set TCC activation temperature at which
the Thermal Control Circuit must be activated. TCC will be activated at TCC Activation
- Temperature, in volts.For Y SKU, the recommended default for this policy is 10,
+ Temperature, in volts.For Y SKU, the recommended default for this policy is 15,
For all other SKUs the recommended default are 0
**/
UINT8 TccActivationOffset;
@@ -2792,8 +2811,8 @@ typedef struct {
UINT8 CstateLatencyControl5TimeUnit;
/** Offset 0x0819 - Interrupt Redirection Mode Select
- Interrupt Redirection Mode Select.0: Fixed priority; 1: Round robin;2: Hash vector;7:
- No change.
+ Interrupt Redirection Mode Select.0: Fixed priority; 1: Round robin;2: Hash vector;4:
+ PAIR with fixed priority;5: PAIR with round robin;6: PAIR with hash vector;7: No change.
**/
UINT8 PpmIrmSetting;
@@ -3040,11 +3059,23 @@ typedef struct {
**/
UINT8 MaxRingRatioLimit;
-/** Offset 0x08A5 - ReservedCpuPostMemTest
+/** Offset 0x08A5 - Enable or Disable C3 Cstate Demotion
+ Enable or Disable C3 Cstate Demotion. Disable; 1: Enable
+ $EN_DIS
+**/
+ UINT8 C3StateAutoDemotion;
+
+/** Offset 0x08A6 - Enable or Disable C3 Cstate UnDemotion
+ Enable or Disable C3 Cstate UnDemotion. Disable; 1: Enable
+ $EN_DIS
+**/
+ UINT8 C3StateUnDemotion;
+
+/** Offset 0x08A7 - ReservedCpuPostMemTest
Reserved for CPU Post-Mem Test
$EN_DIS
**/
- UINT8 ReservedCpuPostMemTest[21];
+ UINT8 ReservedCpuPostMemTest[19];
/** Offset 0x08BA - SgxSinitDataFromTpm
SgxSinitDataFromTpm default values
@@ -3194,7 +3225,7 @@ typedef struct {
/** Offset 0x0A61
**/
- UINT8 UnusedUpdSpace26[17];
+ UINT8 UnusedUpdSpace25[17];
/** Offset 0x0A72 - Skip POSTBOOT SAI
Deprecated