diff --git a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspUpd.h b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspUpd.h
index 0c910f3d93..58f4e39d78 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspUpd.h
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2020, Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
diff --git a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h
index b27514c644..cc44a2a96f 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h
@@ -259,7 +259,18 @@ typedef struct {
/** Offset 0x014D - Reserved
**/
- UINT8 Reserved3[14];
+ UINT8 Reserved3[4];
+
+/** Offset 0x0151 - PCH Trace Hub Mode
+ Select 'Host Debugger' if Trace Hub is used with host debugger tool or 'Target Debugger'
+ if Trace Hub is used by target debugger software or 'Disable' trace hub functionality.
+ 0: Disable, 1: Target Debugger Mode, 2: Host Debugger Mode
+**/
+ UINT8 PchTraceHubMode;
+
+/** Offset 0x0152 - Reserved
+**/
+ UINT8 Reserved4[9];
/** Offset 0x015B - State of X2APIC_OPT_OUT bit in the DMAR table
0=Disable/Clear, 1=Enable/Set
@@ -269,7 +280,7 @@ typedef struct {
/** Offset 0x015C - Reserved
**/
- UINT8 Reserved4[4];
+ UINT8 Reserved5[4];
/** Offset 0x0160 - Base addresses for VT-d function MMIO access
Base addresses for VT-d MMIO access per VT-d engine
@@ -326,7 +337,7 @@ typedef struct {
/** Offset 0x018B - Reserved
**/
- UINT8 Reserved5;
+ UINT8 Reserved6;
/** Offset 0x018C - Board Type
MrcBoardType, Options are 0=Mobile/Mobile Halo, 1=Desktop/DT Halo, 5=ULT/ULX/Mobile
@@ -337,7 +348,7 @@ typedef struct {
/** Offset 0x018D - Reserved
**/
- UINT8 Reserved6[3];
+ UINT8 Reserved7[3];
/** Offset 0x0190 - SA GV
System Agent dynamic frequency support and when enabled memory will be training
@@ -348,7 +359,7 @@ typedef struct {
/** Offset 0x0191 - Reserved
**/
- UINT8 Reserved7[2];
+ UINT8 Reserved8[2];
/** Offset 0x0193 - Rank Margin Tool
Enable/disable Rank Margin Tool.
@@ -390,7 +401,7 @@ typedef struct {
/** Offset 0x019C - Reserved
**/
- UINT8 Reserved8[2];
+ UINT8 Reserved9[2];
/** Offset 0x019E - Memory Reference Clock
100MHz, 133MHz.
@@ -400,7 +411,7 @@ typedef struct {
/** Offset 0x019F - Reserved
**/
- UINT8 Reserved9[22];
+ UINT8 Reserved10[22];
/** Offset 0x01B5 - Enable Intel HD Audio (Azalia)
0: Disable, 1: Enable (Default) Azalia controller
@@ -414,9 +425,16 @@ typedef struct {
**/
UINT8 PchIshEnable;
-/** Offset 0x01B7 - Reserved
+/** Offset 0x01B7 - CPU Trace Hub Mode
+ Select 'Host Debugger' if Trace Hub is used with host debugger tool or 'Target Debugger'
+ if Trace Hub is used by target debugger software or 'Disable' trace hub functionality.
+ 0: Disable, 1:Target Debugger Mode, 2:Host Debugger Mode
**/
- UINT8 Reserved10[166];
+ UINT8 CpuTraceHubMode;
+
+/** Offset 0x01B8 - Reserved
+**/
+ UINT8 Reserved11[165];
/** Offset 0x025D - IMGU CLKOUT Configuration
The configuration of IMGU CLKOUT, 0: Disable;1: Enable.
@@ -426,7 +444,17 @@ typedef struct {
/** Offset 0x0263 - Reserved
**/
- UINT8 Reserved11[6];
+ UINT8 Reserved12;
+
+/** Offset 0x0264 - Enable PCIE RP Mask
+ Enable/disable PCIE Root Ports. 0: disable, 1: enable. One bit for each port, bit0
+ for port1, bit1 for port2, and so on.
+**/
+ UINT32 CpuPcieRpEnableMask;
+
+/** Offset 0x0268 - Reserved
+**/
+ UINT8 Reserved13;
/** Offset 0x0269 - RpClockReqMsgEnable
**/
@@ -438,7 +466,7 @@ typedef struct {
/** Offset 0x026E - Reserved
**/
- UINT8 Reserved12[3];
+ UINT8 Reserved14[3];
/** Offset 0x0271 - Program GPIOs for LFP on DDI port-A device
0=Disabled,1(Default)=eDP, 2=MIPI DSI
@@ -538,7 +566,7 @@ typedef struct {
/** Offset 0x0281 - Reserved
**/
- UINT8 Reserved13[126];
+ UINT8 Reserved15[126];
/** Offset 0x02FF - 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
@@ -547,7 +575,7 @@ typedef struct {
/** Offset 0x0307 - Reserved
**/
- UINT8 Reserved14[22];
+ UINT8 Reserved16[22];
/** Offset 0x031D - C6DRAM power gating feature
This policy indicates whether or not BIOS should allocate PRMRR memory for C6DRAM
@@ -559,7 +587,7 @@ typedef struct {
/** Offset 0x031E - Reserved
**/
- UINT8 Reserved15[5];
+ UINT8 Reserved17[5];
/** Offset 0x0323 - Hyper Threading Enable/Disable
Enable or Disable Hyper Threading; 0: Disable; 1: Enable
@@ -569,7 +597,7 @@ typedef struct {
/** Offset 0x0324 - Reserved
**/
- UINT8 Reserved16;
+ UINT8 Reserved18;
/** Offset 0x0325 - CPU ratio value
CPU ratio value. Valid Range 0 to 63
@@ -578,7 +606,7 @@ typedef struct {
/** Offset 0x0326 - Reserved
**/
- UINT8 Reserved17[2];
+ UINT8 Reserved19[2];
/** Offset 0x0328 - Processor Early Power On Configuration FCLK setting
0: 800 MHz (ULT/ULX). 1: 1 GHz (DT/Halo). Not supported on ULT/ULX.-
@@ -589,7 +617,7 @@ typedef struct {
/** Offset 0x0329 - Reserved
**/
- UINT8 Reserved18;
+ UINT8 Reserved20;
/** Offset 0x032A - Enable or Disable VMX
Enable or Disable VMX; 0: Disable; 1: Enable.
@@ -599,7 +627,7 @@ typedef struct {
/** Offset 0x032B - Reserved
**/
- UINT8 Reserved19[31];
+ UINT8 Reserved21[31];
/** Offset 0x034A - BiosGuard
Enable/Disable. 0: Disable, Enable/Disable BIOS Guard feature, 1: enable
@@ -613,7 +641,7 @@ typedef struct {
/** Offset 0x034C - Reserved
**/
- UINT8 Reserved20[4];
+ UINT8 Reserved22[4];
/** Offset 0x0350 - PrmrrSize
Enable/Disable. 0: Disable, define default value of PrmrrSize , 1: enable
@@ -627,7 +655,7 @@ typedef struct {
/** Offset 0x0358 - Reserved
**/
- UINT8 Reserved21[8];
+ UINT8 Reserved23[8];
/** Offset 0x0360 - TxtHeapMemorySize
Enable/Disable. 0: Disable, define default value of TxtHeapMemorySize , 1: enable
@@ -641,7 +669,7 @@ typedef struct {
/** Offset 0x0368 - Reserved
**/
- UINT8 Reserved22[522];
+ UINT8 Reserved24[522];
/** Offset 0x0572 - Number of RsvdSmbusAddressTable.
The number of elements in the RsvdSmbusAddressTable.
@@ -650,7 +678,7 @@ typedef struct {
/** Offset 0x0573 - Reserved
**/
- UINT8 Reserved23[4];
+ UINT8 Reserved25[4];
/** Offset 0x0577 - Usage type for ClkSrc
0-23: PCH rootport, 0x40-0x43: PEG port, 0x70:LAN, 0x80: unspecified but in use
@@ -665,7 +693,7 @@ typedef struct {
/** Offset 0x0597 - Reserved
**/
- UINT8 Reserved24[5];
+ UINT8 Reserved26[5];
/** Offset 0x059C - Enable PCIE RP Mask
Enable/disable PCIE Root Ports. 0: disable, 1: enable. One bit for each port, bit0
@@ -688,7 +716,7 @@ typedef struct {
/** Offset 0x05A2 - Reserved
**/
- UINT8 Reserved25[14];
+ UINT8 Reserved27[14];
/** Offset 0x05B0 - ISA Serial Base selection
Select ISA Serial Base address. Default is 0x3F8.
@@ -698,7 +726,7 @@ typedef struct {
/** Offset 0x05B1 - Reserved
**/
- UINT8 Reserved26[4];
+ UINT8 Reserved28[4];
/** Offset 0x05B5 - MRC Safe Config
Enables/Disable MRC Safe Config
@@ -744,7 +772,7 @@ typedef struct {
/** Offset 0x05BC - Reserved
**/
- UINT8 Reserved27[4];
+ UINT8 Reserved29[4];
/** Offset 0x05C0 - Early Command Training
Enables/Disable Early Command Training
@@ -754,7 +782,7 @@ typedef struct {
/** Offset 0x05C1 - Reserved
**/
- UINT8 Reserved28[109];
+ UINT8 Reserved30[109];
/** Offset 0x062E - Ch Hash Mask
Set the BIT(s) to be included in the XOR function. NOTE BIT mask corresponds to
@@ -764,7 +792,7 @@ typedef struct {
/** Offset 0x0630 - Reserved
**/
- UINT8 Reserved29[62];
+ UINT8 Reserved31[62];
/** Offset 0x066E - PcdSerialDebugLevel
Serial Debug Message Level. 0:Disable, 1:Error Only, 2:Error & Warnings, 3:Load,
@@ -777,7 +805,7 @@ typedef struct {
/** Offset 0x066F - Reserved
**/
- UINT8 Reserved30[2];
+ UINT8 Reserved32[2];
/** Offset 0x0671 - Safe Mode Support
This option configures the varous items in the IO and MC to be more conservative.(def=Disable)
@@ -787,7 +815,7 @@ typedef struct {
/** Offset 0x0672 - Reserved
**/
- UINT8 Reserved31[2];
+ UINT8 Reserved33[2];
/** Offset 0x0674 - TCSS USB Port Enable
Bitmap for per port enabling
@@ -796,7 +824,7 @@ typedef struct {
/** Offset 0x0675 - Reserved
**/
- UINT8 Reserved32[80];
+ UINT8 Reserved34[80];
/** Offset 0x06C5 - Skip external display device scanning
Enable: Do not scan for external display device, Disable (Default): Scan external
@@ -807,7 +835,7 @@ typedef struct {
/** Offset 0x06C6 - Reserved
**/
- UINT8 Reserved33[2];
+ UINT8 Reserved35[2];
/** Offset 0x06C8 - Lock PCU Thermal Management registers
Lock PCU Thermal Management registers. Enable(Default)=1, Disable=0
@@ -817,7 +845,7 @@ typedef struct {
/** Offset 0x06C9 - Reserved
**/
- UINT8 Reserved34[122];
+ UINT8 Reserved36[122];
/** Offset 0x0743 - Enable HD Audio Link
Enable/disable HD Audio Link. Muxed with SSP0/SSP1/SNDW1.
@@ -827,7 +855,7 @@ typedef struct {
/** Offset 0x0744 - Reserved
**/
- UINT8 Reserved35[3];
+ UINT8 Reserved37[3];
/** Offset 0x0747 - Enable HD Audio DMIC_N Link
Enable/disable HD Audio DMIC1 link. Muxed with SNDW3.
@@ -836,7 +864,7 @@ typedef struct {
/** Offset 0x0749 - Reserved
**/
- UINT8 Reserved36[3];
+ UINT8 Reserved38[3];
/** Offset 0x074C - DMIC ClkA Pin Muxing (N - DMIC number)
Determines DMIC ClkA Pin muxing. See GPIO_*_MUXING_DMIC_CLKA_*
@@ -856,7 +884,7 @@ typedef struct {
/** Offset 0x075D - Reserved
**/
- UINT8 Reserved37[3];
+ UINT8 Reserved39[3];
/** Offset 0x0760 - DMIC Data Pin Muxing
Determines DMIC Data Pin muxing. See GPIO_*_MUXING_DMIC_DATA_*
@@ -893,7 +921,7 @@ typedef struct {
/** Offset 0x0775 - Reserved
**/
- UINT8 Reserved38[315];
+ UINT8 Reserved40[315];
} FSP_M_CONFIG;
/** Fsp M UPD Configuration
@@ -914,7 +942,7 @@ typedef struct {
/** Offset 0x08B0
**/
- UINT8 UnusedUpdSpace23[6];
+ UINT8 UnusedUpdSpace22[6];
/** Offset 0x08B6
**/
diff --git a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h
index 8ab5878f83..9b8db02fe0 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h
@@ -417,9 +417,15 @@ typedef struct {
**/
UINT8 PeiGraphicsPeimInit;
-/** Offset 0x048E - Reserved
+/** Offset 0x048E - Enable D3 Hot in TCSS
+ This policy will enable/disable D3 hot support in IOM
+ $EN_DIS
**/
- UINT8 Reserved16[2];
+ UINT8 D3HotEnable;
+
+/** Offset 0x048F - Reserved
+**/
+ UINT8 Reserved16;
/** Offset 0x0490 - TypeC port GPIO setting
GPIO Ping number for Type C Aux Oritation setting, use the GpioPad that is defined
@@ -430,7 +436,17 @@ typedef struct {
/** Offset 0x04B0 - Reserved
**/
- UINT8 Reserved17[30];
+ UINT8 Reserved17[8];
+
+/** Offset 0x04B8 - Enable D3 Cold in TCSS
+ This policy will enable/disable D3 cold support in IOM
+ $EN_DIS
+**/
+ UINT8 D3ColdEnable;
+
+/** Offset 0x04B9 - Reserved
+**/
+ UINT8 Reserved18[21];
/** Offset 0x04CE - TCSS Aux Orientation Override Enable
Bits 0, 2, ... 10 control override enables, bits 1, 3, ... 11 control overrides
@@ -444,7 +460,7 @@ typedef struct {
/** Offset 0x04D2 - Reserved
**/
- UINT8 Reserved18[2];
+ UINT8 Reserved19[2];
/** Offset 0x04D4 - ITBT Root Port Enable
ITBT Root Port Enable, 0:Disable, 1:Enable
@@ -454,7 +470,7 @@ typedef struct {
/** Offset 0x04D8 - Reserved
**/
- UINT8 Reserved19[11];
+ UINT8 Reserved20[11];
/** Offset 0x04E3 - Enable/Disable PTM
This policy will enable/disable Precision Time Measurement for TCSS PCIe Root Ports
@@ -464,7 +480,7 @@ typedef struct {
/** Offset 0x04E7 - Reserved
**/
- UINT8 Reserved20[194];
+ UINT8 Reserved21[194];
/** Offset 0x05A9 - Skip Multi-Processor Initialization
When this is skipped, boot loader must initialize processors before SilicionInit
@@ -475,7 +491,16 @@ typedef struct {
/** Offset 0x05AA - Reserved
**/
- UINT8 Reserved21[60];
+ UINT8 Reserved22[10];
+
+/** Offset 0x05B4 - CpuMpPpi
+ Pointer for CpuMpPpi
+**/
+ UINT32 CpuMpPpi;
+
+/** Offset 0x05B8 - Reserved
+**/
+ UINT8 Reserved23[46];
/** Offset 0x05E6 - Enable Power Optimizer
Enable DMI Power Optimizer on PCH side.
@@ -485,7 +510,7 @@ typedef struct {
/** Offset 0x05E7 - Reserved
**/
- UINT8 Reserved22[36];
+ UINT8 Reserved24[36];
/** Offset 0x060B - Enable PCH ISH SPI Cs0 pins assigned
Set if ISH SPI Cs0 pins are to be enabled by BIOS. 0: Disable; 1: Enable.
@@ -494,7 +519,7 @@ typedef struct {
/** Offset 0x060C - Reserved
**/
- UINT8 Reserved23[2];
+ UINT8 Reserved25[2];
/** Offset 0x060E - Enable PCH ISH SPI pins assigned
Set if ISH SPI native pins are to be enabled by BIOS. 0: Disable; 1: Enable.
@@ -518,7 +543,7 @@ typedef struct {
/** Offset 0x061C - Reserved
**/
- UINT8 Reserved24[2];
+ UINT8 Reserved26[2];
/** Offset 0x061E - Enable LOCKDOWN BIOS LOCK
Enable the BIOS Lock feature and set EISS bit (D31:F5:RegDCh[5]) for the BIOS region
@@ -529,7 +554,18 @@ typedef struct {
/** Offset 0x061F - Reserved
**/
- UINT8 Reserved25[75];
+ UINT8 Reserved27[2];
+
+/** Offset 0x0621 - RTC Cmos Memory Lock
+ Enable RTC lower and upper 128 byte Lock bits to lock Bytes 38h-3Fh in the upper
+ and and lower 128-byte bank of RTC RAM.
+ $EN_DIS
+**/
+ UINT8 RtcMemoryLock;
+
+/** Offset 0x0622 - Reserved
+**/
+ UINT8 Reserved28[72];
/** Offset 0x066A - Enable PCIE RP Clk Req Detect
Probe CLKREQ# signal before enabling CLKREQ# based power management.
@@ -543,16 +579,32 @@ typedef struct {
/** Offset 0x069A - Reserved
**/
- UINT8 Reserved26[168];
+ UINT8 Reserved29[168];
/** Offset 0x0742 - PCIE RP Max Payload
Max Payload Size supported, Default 128B, see enum PCH_PCIE_MAX_PAYLOAD.
**/
UINT8 PcieRpMaxPayload[24];
-/** Offset 0x075A - Reserved
+/** Offset 0x075A - Touch Host Controller Port 0 Assignment
+ Assign THC Port 0
+ 0x0:ThcAssignmentNone, 0x1:ThcAssignmentThc0
**/
- UINT8 Reserved27[86];
+ UINT8 ThcPort0Assignment;
+
+/** Offset 0x075B - Reserved
+**/
+ UINT8 Reserved30[5];
+
+/** Offset 0x0760 - Touch Host Controller Port 1 Assignment
+ Assign THC Port 1
+ 0x0:ThcAssignmentNone, 0x1:ThcPort1AssignmentThc0, 0x2:ThcAssignmentThc1
+**/
+ UINT8 ThcPort1Assignment;
+
+/** Offset 0x0761 - Reserved
+**/
+ UINT8 Reserved31[79];
/** Offset 0x07B0 - PCIE RP Aspm
The ASPM configuration of the root port (see: PCH_PCIE_ASPM_CONTROL). Default is
@@ -573,7 +625,7 @@ typedef struct {
/** Offset 0x07F8 - Reserved
**/
- UINT8 Reserved28[98];
+ UINT8 Reserved32[98];
/** Offset 0x085A - PCH Sata Pwr Opt Enable
SATA Power Optimizer on PCH side.
@@ -583,7 +635,7 @@ typedef struct {
/** Offset 0x085B - Reserved
**/
- UINT8 Reserved29[50];
+ UINT8 Reserved33[50];
/** Offset 0x088D - Enable SATA Port DmVal
DITO multiplier. Default is 15.
@@ -592,7 +644,7 @@ typedef struct {
/** Offset 0x0895 - Reserved
**/
- UINT8 Reserved30;
+ UINT8 Reserved34;
/** Offset 0x0896 - Enable SATA Port DmVal
DEVSLP Idle Timeout (DITO), Default is 625.
@@ -601,7 +653,7 @@ typedef struct {
/** Offset 0x08A6 - Reserved
**/
- UINT8 Reserved31[72];
+ UINT8 Reserved35[72];
/** Offset 0x08EE - USB2 Port Over Current Pin
Describe the specific over current pin number of USB 2.0 Port N.
@@ -615,7 +667,7 @@ typedef struct {
/** Offset 0x0908 - Reserved
**/
- UINT8 Reserved32[16];
+ UINT8 Reserved36[16];
/** Offset 0x0918 - Enable 8254 Static Clock Gating
Set 8254CGE=1 is required for SLP_S0 support. However, set 8254CGE=1 in POST time
@@ -635,7 +687,7 @@ typedef struct {
/** Offset 0x091A - Reserved
**/
- UINT8 Reserved33[3];
+ UINT8 Reserved37[3];
/** Offset 0x091D - Hybrid Storage Detection and Configuration Mode
Enables support for Hybrid storage devices. 0: Disabled; 1: Dynamic Configuration.
@@ -646,7 +698,7 @@ typedef struct {
/** Offset 0x091E - Reserved
**/
- UINT8 Reserved34[434];
+ UINT8 Reserved38[434];
/** Offset 0x0AD0 - RpPtmBytes
**/
@@ -654,7 +706,7 @@ typedef struct {
/** Offset 0x0AD4 - Reserved
**/
- UINT8 Reserved35[101];
+ UINT8 Reserved39[101];
/** Offset 0x0B39 - GT Frequency Limit
0xFF: Auto(Default), 2: 100 Mhz, 3: 150 Mhz, 4: 200 Mhz, 5: 250 Mhz, 6: 300 Mhz,
@@ -672,7 +724,29 @@ typedef struct {
/** Offset 0x0B3A - Reserved
**/
- UINT8 Reserved36[264];
+ UINT8 Reserved40[260];
+
+/** Offset 0x0C3E - Enable LOCKDOWN SMI
+ Enable SMI_LOCK bit to prevent writes to the Global SMI Enable bit.
+ $EN_DIS
+**/
+ UINT8 PchLockDownGlobalSmi;
+
+/** Offset 0x0C3F - Enable LOCKDOWN BIOS Interface
+ Enable BIOS Interface Lock Down bit to prevent writes to the Backup Control Register.
+ $EN_DIS
+**/
+ UINT8 PchLockDownBiosInterface;
+
+/** Offset 0x0C40 - Unlock all GPIO pads
+ Force all GPIO pads to be unlocked for debug purpose.
+ $EN_DIS
+**/
+ UINT8 PchUnlockGpioPads;
+
+/** Offset 0x0C41 - Reserved
+**/
+ UINT8 Reserved41;
/** Offset 0x0C42 - PCIE RP Ltr Max Snoop Latency
Latency Tolerance Reporting, Max Snoop Latency.
@@ -686,7 +760,7 @@ typedef struct {
/** Offset 0x0CA2 - Reserved
**/
- UINT8 Reserved37[269];
+ UINT8 Reserved42[269];
/** Offset 0x0DAF - LpmStateEnableMask
**/
@@ -694,7 +768,7 @@ typedef struct {
/** Offset 0x0DB0 - Reserved
**/
- UINT8 Reserved38[80];
+ UINT8 Reserved43[176];
} FSP_S_CONFIG;
/** Fsp S UPD Configuration
@@ -709,11 +783,11 @@ typedef struct {
**/
FSP_S_CONFIG FspsConfig;
-/** Offset 0x0E00
+/** Offset 0x0E60
**/
UINT8 UnusedUpdSpace34[6];
-/** Offset 0x0E06
+/** Offset 0x0E66
**/
UINT16 UpdTerminator;
} FSPS_UPD;