Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > -----Original Message----- > From: Luo, Heng <heng....@intel.com> > Sent: Sunday, January 31, 2021 5:36 PM > To: devel@edk2.groups.io > Cc: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Desimone, > Nathaniel L <nathaniel.l.desim...@intel.com> > Subject: [PATCH 06/40] TigerlakeSiliconPkg/Pch: Add IncludePrivate headers > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3171 > > Adds the following header files: > * Pch/IncludePrivate > > Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Signed-off-by: Heng Luo <heng....@intel.com> > --- > > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SiScheduleReset > Lib.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ > > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SmmPchPrivateL > ib.h | 26 ++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchConfigHob.h > | 269 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > +++++++++++++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchHybridStorageHob.h > | 21 +++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchNvsAreaDef.h > | 319 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > +++++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchRstHob.h > | > 58 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PchNvsArea.h > | 30 ++++++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PcieIoTrap.h > | 35 +++++++++++++++++++++++++++++++++++ > Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/SiScheduleResetHob.h > | 21 +++++++++++++++++++++ > 9 files changed, 826 insertions(+) > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SiScheduleRes > etLib.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SiScheduleRes > etLib.h > new file mode 100644 > index 0000000000..2ad80a0269 > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SiScheduleRes > etLib.h > @@ -0,0 +1,47 @@ > +/** @file > > + Reset scheduling library services > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > + > > +#ifndef _SI_SCHEDULE_RESET_LIB_H_ > > +#define _SI_SCHEDULE_RESET_LIB_H_ > > + > > +#include <Uefi/UefiMultiPhase.h> > > +#include <PchResetPlatformSpecific.h> > > + > > +/** > > + This function updates the reset information in SiScheduleResetHob > > + @param[in] ResetType UEFI defined reset type. > > + @param[in] ResetData Optional element used to introduce a platform > specific reset. > > + The exact type of the reset is defined by the > EFI_GUID that > follows > > + the Null-terminated Unicode string. > > +**/ > > +VOID > > +SiScheduleResetSetType ( > > + IN EFI_RESET_TYPE ResetType, > > + IN PCH_RESET_DATA *ResetData OPTIONAL > > + ); > > + > > +/** > > + This function returns TRUE or FALSE depending on whether a reset is > required based on SiScheduleResetHob > > + > > + @retval BOOLEAN The function returns FALSE if no reset is > required > > +**/ > > +BOOLEAN > > +SiScheduleResetIsRequired ( > > + VOID > > + ); > > + > > +/** > > + This function performs reset based on SiScheduleResetHob > > + > > + @retval BOOLEAN The function returns FALSE if no reset is > required > > +**/ > > +BOOLEAN > > +SiScheduleResetPerformReset ( > > + VOID > > + ); > > + > > +#endif //_SI_SCHEDULE_RESET_LIB_H_ > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SmmPchPrivat > eLib.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SmmPchPrivat > eLib.h > new file mode 100644 > index 0000000000..955dac5a82 > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Library/SmmPchPrivat > eLib.h > @@ -0,0 +1,26 @@ > +/** @file > > + Header file for private PCH SMM Lib. > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > +#ifndef _SMM_PCH_PRIVATE_LIB_H_ > > +#define _SMM_PCH_PRIVATE_LIB_H_ > > + > > +/** > > + Set InSmm.Sts bit > > +**/ > > +VOID > > +PchSetInSmmSts ( > > + VOID > > + ); > > + > > +/** > > + Clear InSmm.Sts bit > > +**/ > > +VOID > > +PchClearInSmmSts ( > > + VOID > > + ); > > + > > +#endif // _SMM_PCH_PRIVATE_LIB_H_ > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchConfigHob.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchConfigHob.h > new file mode 100644 > index 0000000000..13a41f8d04 > --- /dev/null > +++ b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchConfigHob.h > @@ -0,0 +1,269 @@ > +/** @file > > + The GUID definition for PchConfigHob > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > +#ifndef _PCH_CONFIG_HOB_H_ > > +#define _PCH_CONFIG_HOB_H_ > > + > > +#include <ConfigBlock.h> > > +#include <SmbusConfig.h> > > +#include <InterruptConfig.h> > > +#include <PchPcieRpConfig.h> > > +#include <SataConfig.h> > > +#include <RstConfig.h> > > +#include <ConfigBlock/FlashProtectionConfig.h> > > +#include <FivrConfig.h> > > +#include <ThcConfig.h> > > +#include <SerialIoConfig.h> > > + > > + > > +extern EFI_GUID gPchConfigHobGuid; > > + > > +#pragma pack (push,1) > > + > > +/** > > + This structure contains the HOB which are related to PCH general config. > > +**/ > > +typedef struct { > > + /** > > + This member describes whether or not the Compatibility Revision ID > (CRID) feature > > + of PCH should be enabled. <b>0: Disable</b>; 1: Enable > > + **/ > > + UINT32 Crid : 1; > > + UINT32 RsvdBits0 : 31; ///< Reserved bits > > +} GENERAL_HOB; > > + > > +/** > > + The SMBUS_CONFIG block lists the reserved addresses for non-ARP > capable devices in the platform. > > +**/ > > +typedef struct { > > + UINT8 RsvdBytes[3]; ///< Reserved bytes > > + UINT8 NumRsvdSmbusAddresses; ///< The number of elements in the > RsvdSmbusAddressTable. > > + /** > > + Array of addresses reserved for non-ARP-capable SMBus devices. > > + **/ > > + UINT8 > RsvdSmbusAddressTable[PCH_MAX_SMBUS_RESERVED_ADDRESS]; > > +} SMBUS_HOB; > > + > > +/** > > + The INTERRUPT_HOB describes interrupt settings for PCH. > > +**/ > > +typedef struct { > > + UINT8 NumOfDevIntConfig; > ///< Number of > entries in DevIntConfig table > > + UINT8 GpioIrqRoute; > ///< Interrupt routing for > GPIO. Default is <b>14</b>. > > + UINT8 Rsvd0[2]; > ///< Reserved bytes, align to > multiple 4. > > + PCH_DEVICE_INTERRUPT_CONFIG > DevIntConfig[PCH_MAX_DEVICE_INTERRUPT_CONFIG]; ///< Array which > stores PCH devices interrupts settings > > +} INTERRUPT_HOB; > > + > > +/** > > + The SERIAL_IO block provides the configurations to set the Serial IO > controllers > > +**/ > > +typedef struct { > > + SERIAL_IO_SPI_CONFIG > SpiDeviceConfig[PCH_MAX_SERIALIO_SPI_CONTROLLERS]; ///< SPI > Configuration > > + SERIAL_IO_I2C_CONFIG > I2cDeviceConfig[PCH_MAX_SERIALIO_I2C_CONTROLLERS]; ///< I2C > Configuration > > + SERIAL_IO_UART_CONFIG > UartDeviceConfig[PCH_MAX_SERIALIO_UART_CONTROLLERS]; ///< UART > Configuration > > +} SERIAL_IO_HOB; > > + > > +/** > > + The PCIERP_HOB block describes the expected configuration of the PCH > PCI Express controllers > > +**/ > > +typedef struct { > > + /// > > + /// These members describe the configuration of each PCH PCIe root port. > > + /// > > + PCH_PCIE_ROOT_PORT_CONFIG > RootPort[PCH_MAX_PCIE_ROOT_PORTS]; > > + PCH_PCIE_CLOCK PcieClock[PCH_MAX_PCIE_CLOCKS]; > > + /** > > + This member allows BIOS to control ICC PLL Shutdown by determining > PCIe devices are LTR capable > > + or leaving untouched. > > + - <b>0: Disable, ICC PLL Shutdown is determined by PCIe device LTR > capablility.</b> > > + - To allow ICC PLL shutdown if all present PCIe devices are LTR > capable or > if no PCIe devices are > > + presented for maximum power savings where possible. > > + - To disable ICC PLL shutdown when BIOS detects any non-LTR capable > PCIe device for ensuring device > > + functionality. > > + - 1: Enable, To allow ICC PLL shutdown even if some devices do not > support LTR capability. > > + **/ > > + UINT32 AllowNoLtrIccPllShutdown : 1; > > + UINT32 RsvdBits0 : 31; ///< Reserved bits > > +} PCIERP_HOB; > > + > > +/** > > + The HDAUDIO_HOB block describes the configuration of the PCH cAVS > controller > > +**/ > > +typedef struct { > > + UINT32 DspEnable : 1; ///< DSP enablement: 0: Disable; <b>1: > Enable</b> > > + UINT32 DspUaaCompliance : 1; ///< UAA-mode Select: <b>0: Non- > Uaa</b>; 1: UAA > > + UINT32 CodecSxWakeCapability : 1; ///< Capability to detect wake > initiated by a codec in Sx, <b>0: Disable</b>; 1: Enable > > + UINT32 AudioLinkSndw1 : 1; ///< SoundWire1 link enablement: <b>0: > Disable</b>; 1: Enable. Muxed with HDA > > + UINT32 AudioLinkSndw2 : 1; ///< SoundWire2 link enablement: <b>0: > Disable</b>; 1: Enable. Muxed with SSP1 > > + UINT32 AudioLinkSndw3 : 1; ///< SoundWire3 link enablement: <b>0: > Disable</b>; 1: Enable. Muxed with DMIC1 > > + UINT32 AudioLinkSndw4 : 1; ///< SoundWire4 link enablement: <b>0: > Disable</b>; 1: Enable. Muxed with DMIC0 > > + UINT32 Pme : 1; ///< Azalia wake-on-ring, <b>0: > Disable</b>; 1: > Enable > > + UINT32 RsvdBits0 : 24; ///< Reserved bits > > +} HDAUDIO_HOB; > > + > > +/** > > + The SATA_HOB block describes the configuration of the PCH SATA > controllers > > +**/ > > +typedef struct { > > + /** > > + This member describes whether or not the SATA controllers should be > enabled. 0: Disable; <b>1: Enable</b>. > > + **/ > > + UINT32 Enable : 1; > > + UINT32 TestMode : 1; ///< <b>(Test)</b> > <b>0: > Disable</b>; 1: Allow entrance to the PCH SATA test modes > > + UINT32 RsvdBits0 : 30; ///< Reserved bits > > + /** > > + This member configures the features, property, and capability for each > SATA port. > > + **/ > > + PCH_SATA_PORT_CONFIG PortSettings[PCH_MAX_SATA_PORTS]; > > +} SATA_HOB; > > + > > +/** > > + The RST block describes the configuration of the RST PCIE Cycle Routers > > +**/ > > +typedef struct { > > + /** > > + This member describes the details of implementation of Intel RST for PCIe > Storage remapping (Intel RST Driver is required) > > + **/ > > + RST_HARDWARE_REMAPPED_STORAGE_CONFIG > RstHardwareRemappedStorageConfig[PCH_MAX_RST_PCIE_STORAGE_CR]; > > +} RST_HOB; > > + > > +typedef struct { > > + UINT32 Enabled : 1; ///< Indicates that SD card has been enabled > > + UINT32 Reserved : 31; > > +} SD_CARD_HOB; > > + > > +/** > > + The EMMC_HOB block describes integrated eMMC settings for PCH. > > +**/ > > +typedef struct { > > + UINT32 Enabled : 1; ///< Determine if eMMC is > enabled - 0: > Disabled, <b>1: Enabled</b>. > > + UINT32 Hs400Enabled : 1; ///< Determine eMMC HS400 Mode > if > EmmcEnabled - <b>0: Disabled</b>, 1: Enabled > > + /** > > + Determine if HS400 Training is required, set to FALSE if Hs400 Data is > valid. > <b>0: Disabled</b>, 1: Enabled. > > + First Boot or CMOS clear, system boot with Default settings, set tuning > required. > > + Subsequent Boots, Get Variable 'Hs400TuningData' > > + - if failed to get variable, set tuning required > > + - if passed, retrieve Hs400DataValid, Hs400RxStrobe1Dll and > Hs400TxDataDll from variable. Set tuning not required. > > + **/ > > + UINT32 Hs400DllDataValid : 1; ///< Set if HS400 Tuning Data > Valid > > + UINT32 RsvdBits : 29; > > +} EMMC_HOB; > > + > > +/** > > + The PCH_LOCK_DOWN_CONFIG block describes the expected > configuration of the PCH > > + for security requirement. > > +**/ > > +typedef struct { > > + UINT32 GlobalSmi : 1; > > + /** > > + <b>(Test)</b> Enable BIOS Interface Lock Down bit to prevent writes to > the Backup Control Register > > + Top Swap bit and the General Control and Status Registers Boot BIOS > Straps. 0: Disable; <b>1: Enable</b>. > > + **/ > > + UINT32 BiosInterface : 1; > > + /** > > + Enable the BIOS Lock Enable (BLE) feature and set EISS bit > (D31:F5:RegDCh[5]) > > + for the BIOS region protection. When it is enabled, the BIOS Region can > only be > > + modified from SMM after EndOfDxe protocol is installed. > > + Note: When BiosLock is enabled, platform code also needs to update to > take care > > + of BIOS modification (including SetVariable) in DXE or runtime phase > after > > + EndOfDxe protocol is installed. > > + Enable InSMM.STS (EISS) in SPI > > + If this EISS bit is set, then WPD must be a '1' and InSMM.STS must be '1' > also > > + in order to write to BIOS regions of SPI Flash. If this EISS bit is > clear, > > + then the InSMM.STS is a don't care. > > + The BIOS must set the EISS bit while BIOS Guard support is enabled. > > + In recovery path, platform can temporary disable EISS for SPI > programming in > > + PEI phase or early DXE phase. > > + 0: Disable; <b>1: Enable.</b> > > + **/ > > + UINT32 BiosLock : 1; > > + UINT32 RsvdBits : 29; > > +} LOCK_DOWN_HOB; > > + > > +/** > > + The PM_HOB block describes expected miscellaneous power management > settings. > > + The PowerResetStatusClear field would clear the Power/Reset status bits, > please > > + set the bits if you want PCH Init driver to clear it, if you want to check > the > > + status later then clear the bits. > > +**/ > > +typedef struct { > > + UINT32 PsOnEnable : 1; ///< Indicates if PS_ON support has > been > enabled, <b>0: Disable</b>; 1: Enable. > > + UINT32 EnableTimedGpio0 : 1; ///< Enable Bit for Timed GPIO 0 <b>0 = > disable</b>; 1 = enable > > + UINT32 EnableTimedGpio1 : 1; ///< Enable Bit for Timed GPIO 1 <b>0 = > disable</b>; 1 = enable > > + UINT32 RsvdBits1 : 29; > > +} PM_HOB; > > + > > +/** > > + FIVR_HOB block > > +**/ > > +typedef struct { > > + /** > > + Additional External Vnn VR rail configuration dedicated for Sx. > > + Required only if External Vnn VR needs different settings for Sx than > > + those specified in ExtVnnRail (refer to PCH_FIVR_CONFIG.ExtVnnRail) > > + **/ > > + FIVR_EXT_RAIL_CONFIG ExtVnnRailSx; > > +} FIVR_HOB; > > + > > +/** > > + PCH Trace Hub HOB settings. > > +**/ > > +typedef struct { > > + UINT32 PchTraceHubMode : 2; ///< <b>0 = Disable</b>; 1 = Target > Debugger mode; 2 = Host Debugger mode > > + UINT32 Rsvd1 : 30; ///< Reserved bits > > + /** > > + Trace hub memory buffer region size policy. > > + The avaliable memory size options are: 0:0MB (none), 1:1MB, > <b>2:8MB</b>, 3:64MB, 4:128MB, 5:256MB, 6:512MB. > > + Note : Limitation of total buffer size (CPU + PCH) is 512MB. If iTbt is > enabled, the total size limits to 256 MB. > > + Refer to TRACE_BUFFER_SIZE > > + **/ > > + UINT32 MemReg0Size; > > + UINT32 MemReg1Size; > > +} PCH_TRACEHUB_HOB; > > + > > +/** > > + PCH eSPI HOB settings. > > +**/ > > +typedef struct { > > + UINT32 BmeMasterSlaveEnabled : 1; ///< <b>0 = BME disable</b>; 1 = > BME enable > > + UINT32 RsvdBits : 31; ///< Reserved bits > > +} PCH_ESPI_HOB; > > + > > +/** > > + THC HOB settings. > > +**/ > > +typedef struct { > > + THC_PORT ThcPort[2]; ///< Port Configuration > > +} THC_HOB; > > + > > + > > +/** > > + This structure contains the HOBs which are related to PCH controllers > > +**/ > > +typedef struct { > > + EFI_HOB_GUID_TYPE EfiHobGuidType; ///< GUID HOB type structure > for gPchConfigHobGuid > > + GENERAL_HOB General; ///< Pch general HOB definition > > + INTERRUPT_HOB Interrupt; ///< Interrupt HOB definition > > + SERIAL_IO_HOB SerialIo; ///< Serial io HOB definition > > + PCIERP_HOB PcieRp; ///< PCIE root port HOB definition > > + SD_CARD_HOB SdCard; ///< SD card HOB definition > > + EMMC_HOB Emmc; ///< eMMC HOB definition > > + LOCK_DOWN_HOB LockDown; ///< Lock down HOB definition > > + PM_HOB Pm; ///< PM HOB definition > > + HDAUDIO_HOB HdAudio; ///< HD audio definition > > + SATA_HOB Sata[PCH_MAX_SATA_CONTROLLERS]; ///< SATA > definition > > + RST_HOB Rst; ///< RST definition > > + PROTECTED_RANGE ProtectRange[PCH_FLASH_PROTECTED_RANGES]; > > + SMBUS_HOB Smbus; > > + PCH_TRACEHUB_HOB PchTraceHub; ///< PCH Trace Hub definition > > + PCH_ESPI_HOB Espi; ///< PCH eSPI definition > > + THC_HOB Thc; ///< PCH Tocuh Host Controller > definition > > + FIVR_HOB Fivr; ///< PCH FIVR HOB definition > > + > > + > > +} PCH_CONFIG_HOB; > > +#pragma pack (pop) > > +#endif > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchHybridStorageHob > .h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchHybridStorageHob > .h > new file mode 100644 > index 0000000000..040bc270e6 > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchHybridStorageHob > .h > @@ -0,0 +1,21 @@ > +/** @file > > + > > + Definitions required to create HybridStorageHob > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > + > > +#ifndef _PCH_HYBRIDSTORAGE_HOB_ > > +#define _PCH_HYBRIDSTORAGE_HOB_ > > + > > +extern EFI_GUID gHybridStorageHobGuid; > > + > > +// > > +// Passes to DXE Hybrid Storage location > > +// > > +typedef struct { > > + UINT32 HybridStorageLocation; > > +} PCH_HYBRIDSTORAGE_HOB; > > + > > +#endif > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchNvsAreaDef.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchNvsAreaDef.h > new file mode 100644 > index 0000000000..200f3ca8fa > --- /dev/null > +++ b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchNvsAreaDef.h > @@ -0,0 +1,319 @@ > +// > > +// Automatically generated by GenNvs ver 2.4.6 > > +// Please DO NOT modify !!! > > +// > > + > > +/** @file > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > + > > + // > > + // Define PCH NVS Area operatino region. > > + // > > +#ifndef _PCH_NVS_AREA_DEF_H_ > > +#define _PCH_NVS_AREA_DEF_H_ > > + > > +#pragma pack (push,1) > > +typedef struct { > > + UINT16 PchSeries; ///< Offset 0 PCH > Series > > + UINT16 PchGeneration; ///< Offset 2 PCH > Generation > > + UINT16 PchStepping; ///< Offset 4 PCH > Stepping > > + UINT32 RpAddress[28]; ///< Offset 6 Root > Port address 1 > > + ///< Offset 10 Root > Port address 2 > > + ///< Offset 14 Root > Port address 3 > > + ///< Offset 18 Root > Port address 4 > > + ///< Offset 22 Root > Port address 5 > > + ///< Offset 26 Root > Port address 6 > > + ///< Offset 30 Root > Port address 7 > > + ///< Offset 34 Root > Port address 8 > > + ///< Offset 38 Root > Port address 9 > > + ///< Offset 42 Root > Port address 10 > > + ///< Offset 46 Root > Port address 11 > > + ///< Offset 50 Root > Port address 12 > > + ///< Offset 54 Root > Port address 13 > > + ///< Offset 58 Root > Port address 14 > > + ///< Offset 62 Root > Port address 15 > > + ///< Offset 66 Root > Port address 16 > > + ///< Offset 70 Root > Port address 17 > > + ///< Offset 74 Root > Port address 18 > > + ///< Offset 78 Root > Port address 19 > > + ///< Offset 82 Root > Port address 20 > > + ///< Offset 86 Root > Port address 21 > > + ///< Offset 90 Root > Port address 22 > > + ///< Offset 94 Root > Port address 23 > > + ///< Offset 98 Root > Port address 24 > > + ///< Offset 102 Root > Port address 25 > > + ///< Offset 106 Root > Port address 26 > > + ///< Offset 110 Root > Port address 27 > > + ///< Offset 114 Root > Port address 28 > > + UINT64 NHLA; ///< Offset 118 > HD-Audio NHLT ACPI > address > > + UINT32 NHLL; ///< Offset 126 > HD-Audio NHLT ACPI > length > > + UINT32 ADFM; ///< Offset 130 > HD-Audio DSP Feature > Mask > > + UINT8 SWQ0; ///< Offset 134 > HD-Audio SoundWire > Link #1 quirk mask > > + UINT8 SWQ1; ///< Offset 135 > HD-Audio SoundWire > Link #2 quirk mask > > + UINT8 SWQ2; ///< Offset 136 > HD-Audio SoundWire > Link #3 quirk mask > > + UINT8 SWQ3; ///< Offset 137 > HD-Audio SoundWire > Link #4 quirk mask > > + UINT8 ACS0; ///< Offset 138 > HD-Audio SoundWire > Link #1 Autonomous Clock Stop > > + UINT8 ACS1; ///< Offset 139 > HD-Audio SoundWire > Link #2 Autonomous Clock Stop > > + UINT8 ACS2; ///< Offset 140 > HD-Audio SoundWire > Link #3 Autonomous Clock Stop > > + UINT8 ACS3; ///< Offset 141 > HD-Audio SoundWire > Link #4 Autonomous Clock Stop > > + UINT8 DAI0; ///< Offset 142 > HD-Audio SoundWire Link > #1 Data On Active Interval Select > > + UINT8 DAI1; ///< Offset 143 > HD-Audio SoundWire Link > #2 Data On Active Interval Select > > + UINT8 DAI2; ///< Offset 144 > HD-Audio SoundWire Link > #3 Data On Active Interval Select > > + UINT8 DAI3; ///< Offset 145 > HD-Audio SoundWire Link > #4 Data On Active Interval Select > > + UINT8 DOD0; ///< Offset 146 > HD-Audio SoundWire > Link #1 Data On Delay Select > > + UINT8 DOD1; ///< Offset 147 > HD-Audio SoundWire > Link #2 Data On Delay Select > > + UINT8 DOD2; ///< Offset 148 > HD-Audio SoundWire > Link #3 Data On Delay Select > > + UINT8 DOD3; ///< Offset 149 > HD-Audio SoundWire > Link #4 Data On Delay Select > > + UINT8 SWMC; ///< Offset 150 > HD-Audio SoundWire > Master Count > > + UINT8 XTAL; ///< Offset 151 XTAL > frequency: 0: > 24MHz; 1: 38.4MHz; 2: Unsupported > > + UINT32 DSPM; ///< Offset 152 > HD-Audio DSP Stolen > Memory Base Address (@todo: Remove after CNL-LP B0) > > + UINT32 SBRG; ///< Offset 156 > SBREG_BAR > > + UINT8 GEI0; ///< Offset 160 GPIO > GroupIndex > mapped to GPE_DW0 > > + UINT8 GEI1; ///< Offset 161 GPIO > GroupIndex > mapped to GPE_DW1 > > + UINT8 GEI2; ///< Offset 162 GPIO > GroupIndex > mapped to GPE_DW2 > > + UINT8 GED0; ///< Offset 163 GPIO > DW part of group > mapped to GPE_DW0 > > + UINT8 GED1; ///< Offset 164 GPIO > DW part of group > mapped to GPE_DW1 > > + UINT8 GED2; ///< Offset 165 GPIO > DW part of group > mapped to GPE_DW2 > > + UINT16 PcieLtrMaxSnoopLatency[28]; ///< Offset 166 PCIE > LTR > max snoop Latency 1 > > + ///< Offset 168 PCIE > LTR max snoop Latency 2 > > + ///< Offset 170 PCIE > LTR max snoop Latency 3 > > + ///< Offset 172 PCIE > LTR max snoop Latency 4 > > + ///< Offset 174 PCIE > LTR max snoop Latency 5 > > + ///< Offset 176 PCIE > LTR max snoop Latency 6 > > + ///< Offset 178 PCIE > LTR max snoop Latency 7 > > + ///< Offset 180 PCIE > LTR max snoop Latency 8 > > + ///< Offset 182 PCIE > LTR max snoop Latency 9 > > + ///< Offset 184 PCIE > LTR max snoop Latency 10 > > + ///< Offset 186 PCIE > LTR max snoop Latency 11 > > + ///< Offset 188 PCIE > LTR max snoop Latency 12 > > + ///< Offset 190 PCIE > LTR max snoop Latency 13 > > + ///< Offset 192 PCIE > LTR max snoop Latency 14 > > + ///< Offset 194 PCIE > LTR max snoop Latency 15 > > + ///< Offset 196 PCIE > LTR max snoop Latency 16 > > + ///< Offset 198 PCIE > LTR max snoop Latency 17 > > + ///< Offset 200 PCIE > LTR max snoop Latency 18 > > + ///< Offset 202 PCIE > LTR max snoop Latency 19 > > + ///< Offset 204 PCIE > LTR max snoop Latency 20 > > + ///< Offset 206 PCIE > LTR max snoop Latency 21 > > + ///< Offset 208 PCIE > LTR max snoop Latency 22 > > + ///< Offset 210 PCIE > LTR max snoop Latency 23 > > + ///< Offset 212 PCIE > LTR max snoop Latency 24 > > + ///< Offset 214 PCIE > LTR max snoop Latency 25 > > + ///< Offset 216 PCIE > LTR max snoop Latency 26 > > + ///< Offset 218 PCIE > LTR max snoop Latency 27 > > + ///< Offset 220 PCIE > LTR max snoop Latency 28 > > + UINT16 PcieLtrMaxNoSnoopLatency[28]; ///< Offset 222 PCIE > LTR > max no snoop Latency 1 > > + ///< Offset 224 PCIE > LTR max no snoop Latency > 2 > > + ///< Offset 226 PCIE > LTR max no snoop Latency > 3 > > + ///< Offset 228 PCIE > LTR max no snoop Latency > 4 > > + ///< Offset 230 PCIE > LTR max no snoop Latency > 5 > > + ///< Offset 232 PCIE > LTR max no snoop Latency > 6 > > + ///< Offset 234 PCIE > LTR max no snoop Latency > 7 > > + ///< Offset 236 PCIE > LTR max no snoop Latency > 8 > > + ///< Offset 238 PCIE > LTR max no snoop Latency > 9 > > + ///< Offset 240 PCIE > LTR max no snoop Latency > 10 > > + ///< Offset 242 PCIE > LTR max no snoop Latency > 11 > > + ///< Offset 244 PCIE > LTR max no snoop Latency > 12 > > + ///< Offset 246 PCIE > LTR max no snoop Latency > 13 > > + ///< Offset 248 PCIE > LTR max no snoop Latency > 14 > > + ///< Offset 250 PCIE > LTR max no snoop Latency > 15 > > + ///< Offset 252 PCIE > LTR max no snoop Latency > 16 > > + ///< Offset 254 PCIE > LTR max no snoop Latency > 17 > > + ///< Offset 256 PCIE > LTR max no snoop Latency > 18 > > + ///< Offset 258 PCIE > LTR max no snoop Latency > 19 > > + ///< Offset 260 PCIE > LTR max no snoop Latency > 20 > > + ///< Offset 262 PCIE > LTR max no snoop Latency > 21 > > + ///< Offset 264 PCIE > LTR max no snoop Latency > 22 > > + ///< Offset 266 PCIE > LTR max no snoop Latency > 23 > > + ///< Offset 268 PCIE > LTR max no snoop Latency > 24 > > + ///< Offset 270 PCIE > LTR max no snoop Latency > 25 > > + ///< Offset 272 PCIE > LTR max no snoop Latency > 26 > > + ///< Offset 274 PCIE > LTR max no snoop Latency > 27 > > + ///< Offset 276 PCIE > LTR max no snoop Latency > 28 > > + UINT8 XHPC; ///< Offset 278 > Number of HighSpeed > ports implemented in XHCI controller > > + UINT8 XRPC; ///< Offset 279 > Number of USBR ports > implemented in XHCI controller > > + UINT8 XSPC; ///< Offset 280 > Number of SuperSpeed > ports implemented in XHCI controller > > + UINT8 XSPA; ///< Offset 281 > Address of 1st > SuperSpeed port > > + UINT32 HPTB; ///< Offset 282 HPET > base address > > + UINT8 HPTE; ///< Offset 286 HPET > enable > > + //SerialIo block > > + UINT8 SM0[7]; ///< Offset 287 > SerialIo SPI Controller 0 > Mode > > + ///< Offset 288 > SerialIo SPI Controller 1 Mode > > + ///< Offset 289 > SerialIo SPI Controller 2 Mode > > + ///< Offset 290 > SerialIo SPI Controller 3 Mode > > + ///< Offset 291 > SerialIo SPI Controller 4 Mode > > + ///< Offset 292 > SerialIo SPI Controller 5 Mode > > + ///< Offset 293 > SerialIo SPI Controller 6 Mode > > + UINT64 SC0[7]; ///< Offset 294 > SerialIo SPI Controller 0 > Pci Config > > + ///< Offset 302 > SerialIo SPI Controller 1 Pci > Config > > + ///< Offset 310 > SerialIo SPI Controller 2 Pci > Config > > + ///< Offset 318 > SerialIo SPI Controller 3 Pci > Config > > + ///< Offset 326 > SerialIo SPI Controller 4 Pci > Config > > + ///< Offset 334 > SerialIo SPI Controller 5 Pci > Config > > + ///< Offset 342 > SerialIo SPI Controller 6 Pci > Config > > + UINT8 IM0[8]; ///< Offset 350 > SerialIo I2C Controller 0 > Mode > > + ///< Offset 351 > SerialIo I2C Controller 1 Mode > > + ///< Offset 352 > SerialIo I2C Controller 2 Mode > > + ///< Offset 353 > SerialIo I2C Controller 3 Mode > > + ///< Offset 354 > SerialIo I2C Controller 4 Mode > > + ///< Offset 355 > SerialIo I2C Controller 5 Mode > > + ///< Offset 356 > SerialIo I2C Controller 6 Mode > > + ///< Offset 357 > SerialIo I2C Controller 7 Mode > > + UINT64 IC0[8]; ///< Offset 358 > SerialIo I2C Controller 0 > Pci Config > > + ///< Offset 366 > SerialIo I2C Controller 1 Pci > Config > > + ///< Offset 374 > SerialIo I2C Controller 2 Pci > Config > > + ///< Offset 382 > SerialIo I2C Controller 3 Pci > Config > > + ///< Offset 390 > SerialIo I2C Controller 4 Pci > Config > > + ///< Offset 398 > SerialIo I2C Controller 5 Pci > Config > > + ///< Offset 406 > SerialIo I2C Controller 6 Pci > Config > > + ///< Offset 414 > SerialIo I2C Controller 7 Pci > Config > > + UINT8 UM0[7]; ///< Offset 422 > SerialIo UART Controller > 0 Mode > > + ///< Offset 423 > SerialIo UART Controller 1 Mode > > + ///< Offset 424 > SerialIo UART Controller 2 Mode > > + ///< Offset 425 > SerialIo UART Controller 3 Mode > > + ///< Offset 426 > SerialIo UART Controller 4 Mode > > + ///< Offset 427 > SerialIo UART Controller 5 Mode > > + ///< Offset 428 > SerialIo UART Controller 6 Mode > > + UINT64 UC0[7]; ///< Offset 429 > SerialIo UART Controller > 0 Pci Config > > + ///< Offset 437 > SerialIo UART Controller 1 Pci > Config > > + ///< Offset 445 > SerialIo UART Controller 2 Pci > Config > > + ///< Offset 453 > SerialIo UART Controller 3 Pci > Config > > + ///< Offset 461 > SerialIo UART Controller 4 Pci > Config > > + ///< Offset 469 > SerialIo UART Controller 5 Pci > Config > > + ///< Offset 477 > SerialIo UART Controller 6 Pci > Config > > + UINT8 UD0[7]; ///< Offset 485 > SerialIo UART Controller > 0 DmaEnable > > + ///< Offset 486 > SerialIo UART Controller 1 > DmaEnable > > + ///< Offset 487 > SerialIo UART Controller 2 > DmaEnable > > + ///< Offset 488 > SerialIo UART Controller 3 > DmaEnable > > + ///< Offset 489 > SerialIo UART Controller 4 > DmaEnable > > + ///< Offset 490 > SerialIo UART Controller 5 > DmaEnable > > + ///< Offset 491 > SerialIo UART Controller 6 > DmaEnable > > + UINT8 UP0[7]; ///< Offset 492 > SerialIo UART Controller > 0 Power Gating > > + ///< Offset 493 > SerialIo UART Controller 1 Power > Gating > > + ///< Offset 494 > SerialIo UART Controller 2 Power > Gating > > + ///< Offset 495 > SerialIo UART Controller 3 Power > Gating > > + ///< Offset 496 > SerialIo UART Controller 4 Power > Gating > > + ///< Offset 497 > SerialIo UART Controller 5 Power > Gating > > + ///< Offset 498 > SerialIo UART Controller 6 Power > Gating > > + UINT8 UI0[7]; ///< Offset 499 > SerialIo UART Controller > 0 Irq > > + ///< Offset 500 > SerialIo UART Controller 1 Irq > > + ///< Offset 501 > SerialIo UART Controller 2 Irq > > + ///< Offset 502 > SerialIo UART Controller 3 Irq > > + ///< Offset 503 > SerialIo UART Controller 4 Irq > > + ///< Offset 504 > SerialIo UART Controller 5 Irq > > + ///< Offset 505 > SerialIo UART Controller 6 Irq > > + //end of SerialIo block > > + UINT8 SGIR; ///< Offset 506 GPIO > IRQ > > + UINT8 GPHD; ///< Offset 507 Hide > GPIO ACPI device > > + UINT8 RstPcieStorageInterfaceType[3]; ///< Offset 508 RST > PCIe > Storage Cycle Router#1 Interface Type > > + ///< Offset 509 RST > PCIe Storage Cycle Router#2 > Interface Type > > + ///< Offset 510 RST > PCIe Storage Cycle Router#3 > Interface Type > > + UINT8 RstPcieStoragePmCapPtr[3]; ///< Offset 511 RST > PCIe > Storage Cycle Router#1 Power Management Capability Pointer > > + ///< Offset 512 RST > PCIe Storage Cycle Router#2 > Power Management Capability Pointer > > + ///< Offset 513 RST > PCIe Storage Cycle Router#3 > Power Management Capability Pointer > > + UINT8 RstPcieStoragePcieCapPtr[3]; ///< Offset 514 RST > PCIe > Storage Cycle Router#1 PCIe Capabilities Pointer > > + ///< Offset 515 RST > PCIe Storage Cycle Router#2 > PCIe Capabilities Pointer > > + ///< Offset 516 RST > PCIe Storage Cycle Router#3 > PCIe Capabilities Pointer > > + UINT16 RstPcieStorageL1ssCapPtr[3]; ///< Offset 517 RST > PCIe > Storage Cycle Router#1 L1SS Capability Pointer > > + ///< Offset 519 RST > PCIe Storage Cycle Router#2 > L1SS Capability Pointer > > + ///< Offset 521 RST > PCIe Storage Cycle Router#3 > L1SS Capability Pointer > > + UINT8 RstPcieStorageEpL1ssControl2[3]; ///< Offset 523 RST > PCIe > Storage Cycle Router#1 Endpoint L1SS Control Data2 > > + ///< Offset 524 RST > PCIe Storage Cycle Router#2 > Endpoint L1SS Control Data2 > > + ///< Offset 525 RST > PCIe Storage Cycle Router#3 > Endpoint L1SS Control Data2 > > + UINT32 RstPcieStorageEpL1ssControl1[3]; ///< Offset 526 RST > PCIe > Storage Cycle Router#1 Endpoint L1SS Control Data1 > > + ///< Offset 530 RST > PCIe Storage Cycle Router#2 > Endpoint L1SS Control Data1 > > + ///< Offset 534 RST > PCIe Storage Cycle Router#3 > Endpoint L1SS Control Data1 > > + UINT16 RstPcieStorageLtrCapPtr[3]; ///< Offset 538 RST > PCIe > Storage Cycle Router#1 LTR Capability Pointer > > + ///< Offset 540 RST > PCIe Storage Cycle Router#2 > LTR Capability Pointer > > + ///< Offset 542 RST > PCIe Storage Cycle Router#3 > LTR Capability Pointer > > + UINT32 RstPcieStorageEpLtrData[3]; ///< Offset 544 RST > PCIe > Storage Cycle Router#1 Endpoint LTR Data > > + ///< Offset 548 RST > PCIe Storage Cycle Router#2 > Endpoint LTR Data > > + ///< Offset 552 RST > PCIe Storage Cycle Router#3 > Endpoint LTR Data > > + UINT16 RstPcieStorageEpLctlData16[3]; ///< Offset 556 RST > PCIe > Storage Cycle Router#1 Endpoint LCTL Data > > + ///< Offset 558 RST > PCIe Storage Cycle Router#2 > Endpoint LCTL Data > > + ///< Offset 560 RST > PCIe Storage Cycle Router#3 > Endpoint LCTL Data > > + UINT16 RstPcieStorageEpDctlData16[3]; ///< Offset 562 RST > PCIe > Storage Cycle Router#1 Endpoint DCTL Data > > + ///< Offset 564 RST > PCIe Storage Cycle Router#2 > Endpoint DCTL Data > > + ///< Offset 566 RST > PCIe Storage Cycle Router#3 > Endpoint DCTL Data > > + UINT16 RstPcieStorageEpDctl2Data16[3]; ///< Offset 568 RST > PCIe > Storage Cycle Router#1 Endpoint DCTL2 Data > > + ///< Offset 570 RST > PCIe Storage Cycle Router#2 > Endpoint DCTL2 Data > > + ///< Offset 572 RST > PCIe Storage Cycle Router#3 > Endpoint DCTL2 Data > > + UINT16 RstPcieStorageRpDctl2Data16[3]; ///< Offset 574 RST > PCIe > Storage Cycle Router#1 RootPort DCTL2 Data > > + ///< Offset 576 RST > PCIe Storage Cycle Router#2 > RootPort DCTL2 Data > > + ///< Offset 578 RST > PCIe Storage Cycle Router#3 > RootPort DCTL2 Data > > + UINT32 RstPcieStorageUniqueTableBar[3]; ///< Offset 580 RST > PCIe > Storage Cycle Router#1 Endpoint unique MSI-X Table BAR > > + ///< Offset 584 RST > PCIe Storage Cycle Router#2 > Endpoint unique MSI-X Table BAR > > + ///< Offset 588 RST > PCIe Storage Cycle Router#3 > Endpoint unique MSI-X Table BAR > > + UINT32 RstPcieStorageUniqueTableBarValue[3]; ///< Offset 592 RST > PCIe Storage Cycle Router#1 Endpoint unique MSI-X Table BAR value > > + ///< Offset 596 RST > PCIe Storage Cycle Router#2 > Endpoint unique MSI-X Table BAR value > > + ///< Offset 600 RST > PCIe Storage Cycle Router#3 > Endpoint unique MSI-X Table BAR value > > + UINT32 RstPcieStorageUniquePbaBar[3]; ///< Offset 604 RST > PCIe > Storage Cycle Router#1 Endpoint unique MSI-X PBA BAR > > + ///< Offset 608 RST > PCIe Storage Cycle Router#2 > Endpoint unique MSI-X PBA BAR > > + ///< Offset 612 RST > PCIe Storage Cycle Router#3 > Endpoint unique MSI-X PBA BAR > > + UINT32 RstPcieStorageUniquePbaBarValue[3]; ///< Offset 616 RST > PCIe Storage Cycle Router#1 Endpoint unique MSI-X PBA BAR value > > + ///< Offset 620 RST > PCIe Storage Cycle Router#2 > Endpoint unique MSI-X PBA BAR value > > + ///< Offset 624 RST > PCIe Storage Cycle Router#3 > Endpoint unique MSI-X PBA BAR value > > + UINT32 RstPcieStorageRootPortNum[3]; ///< Offset 628 RST > PCIe > Storage Cycle Router#1 Root Port number > > + ///< Offset 632 RST > PCIe Storage Cycle Router#2 > Root Port number > > + ///< Offset 636 RST > PCIe Storage Cycle Router#3 > Root Port number > > + UINT8 EMH4; ///< Offset 640 eMMC > HS400 mode > enabled > > + UINT8 EMDS; ///< Offset 641 eMMC > Driver Strength > > + UINT8 CpuSku; ///< Offset 642 CPU > SKU > > + UINT16 IoTrapAddress[4]; ///< Offset 643 > > + UINT8 IoTrapStatus[4]; ///< Offset 651 > > + UINT16 PMBS; ///< Offset 655 ACPI > IO BASE address > > + UINT32 PWRM; ///< Offset 657 PWRM > MEM BASE > address > > + // CNVi specific > > + UINT8 CnviMode; ///< Offset 661 CNVi > mode > > + UINT8 CnviBtCore; ///< Offset 662 CNVi > BT Core > > + UINT8 CnviBtAudioOffload; ///< Offset 663 CNVi > BT Audio > Offload > > + // PCH Trace Hub > > + UINT8 PchTraceHubMode; ///< Offset 664 PCH > Trace Hub > Mode > > + // PCH PS_ON support > > + UINT8 PsOnEnable; ///< Offset 665 PCH > PS_ON enable > > + // > > + // These are for PchApciTablesSelfTest use > > + // > > + UINT8 LtrEnable[24]; ///< Offset 666 > Latency Tolerance > Reporting Enable > > + ///< Offset 667 > Latency Tolerance Reporting > Enable > > + ///< Offset 668 > Latency Tolerance Reporting > Enable > > + ///< Offset 669 > Latency Tolerance Reporting > Enable > > + ///< Offset 670 > Latency Tolerance Reporting > Enable > > + ///< Offset 671 > Latency Tolerance Reporting > Enable > > + ///< Offset 672 > Latency Tolerance Reporting > Enable > > + ///< Offset 673 > Latency Tolerance Reporting > Enable > > + ///< Offset 674 > Latency Tolerance Reporting > Enable > > + ///< Offset 675 > Latency Tolerance Reporting > Enable > > + ///< Offset 676 > Latency Tolerance Reporting > Enable > > + ///< Offset 677 > Latency Tolerance Reporting > Enable > > + ///< Offset 678 > Latency Tolerance Reporting > Enable > > + ///< Offset 679 > Latency Tolerance Reporting > Enable > > + ///< Offset 680 > Latency Tolerance Reporting > Enable > > + ///< Offset 681 > Latency Tolerance Reporting > Enable > > + ///< Offset 682 > Latency Tolerance Reporting > Enable > > + ///< Offset 683 > Latency Tolerance Reporting > Enable > > + ///< Offset 684 > Latency Tolerance Reporting > Enable > > + ///< Offset 685 > Latency Tolerance Reporting > Enable > > + ///< Offset 686 > Latency Tolerance Reporting > Enable > > + ///< Offset 687 > Latency Tolerance Reporting > Enable > > + ///< Offset 688 > Latency Tolerance Reporting > Enable > > + ///< Offset 689 > Latency Tolerance Reporting > Enable > > + UINT8 GBES; ///< Offset 690 GbE > Support > > + UINT32 PchxDCIPwrDnScale; ///< Offset 691 PCH > xDCI Power > Down Scale Value, DWC_USB3_GCTL_INIT[31:19] > > + UINT8 EmmcEnabled; ///< Offset 695 Set > to indicate that > eMMC is enabled > > + UINT8 SdCardEnabled; ///< Offset 696 Set > to indicate that > SD card is enabled > > + UINT8 EnableTimedGpio0; ///< Offset 697 Set > to indicate > that Timed GPIO 0 is enabled > > + UINT8 EnableTimedGpio1; ///< Offset 698 Set > to indicate > that Timed GPIO 1 is enabled > > + UINT8 ClockToRootPortMap[18]; ///< Offset 699 > CLOCK index > to root port index map. Used during PCIe D3Cold flows > > + UINT16 TcoBase; ///< Offset 717 TCO > base address > > + UINT16 IclkPid; ///< Offset 719 Iclk > PID number > > + UINT16 CnviPortId; ///< Offset 721 CNVi > sideband port id > > + UINT32 HybridStorageLocation; ///< Offset 723 > > + UINT8 SataPortPresence; ///< Offset 727 > Holds information > from SATA PCS register about SATA ports which recieved COMINIT from > connected devices. > > +} PCH_NVS_AREA; > > + > > +#pragma pack(pop) > > +#endif > > diff --git a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchRstHob.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchRstHob.h > new file mode 100644 > index 0000000000..428858afcf > --- /dev/null > +++ b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/PchRstHob.h > @@ -0,0 +1,58 @@ > +/** @file > > + > > + Definitions required to create RstHob > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > + > > +#ifndef _PCH_RST_HOB_ > > +#define _PCH_RST_HOB_ > > + > > +extern EFI_GUID gPchRstHobGuid; > > + > > +// > > +// This struct is used to record the fields that should be restored during > device wake up > > +// > > +typedef struct { > > + UINT8 PmCapPtr; > > + UINT8 PcieCapPtr; > > + UINT16 L1ssCapPtr; > > + UINT8 EndpointL1ssControl2; > > + UINT32 EndpointL1ssControl1; > > + UINT16 LtrCapPtr; > > + UINT32 EndpointLtrData; > > + UINT16 EndpointLctlData16; > > + UINT16 EndpointDctlData16; > > + UINT16 EndpointDctl2Data16; > > + UINT16 RootPortDctl2Data16; > > +} SAVED_DEVICE_CONFIG_SPACE; > > + > > +// > > +// This structure is used to record the result of PCIe storageremapping for > each cycle router > > +// > > +typedef struct { > > + UINT8 RootPortNum; // > Indicates the root port > number with RST PCIe Storage Remapping remapping supported and PCIe > storage device plugged on, numbering is 0-based > > + UINT8 DeviceInterface; // > Indicates the interface > of the PCIe storage device (AHCI or NVMe) > > + UINT32 EndPointUniqueMsixTableBar; // > Records the > PCIe storage device's MSI-X Table BAR if it supports unique MSI-X Table BAR > > + UINT32 EndPointUniqueMsixTableBarValue; // > Records the > PCIe storage device's MSI-X Table BAR value if it supports unique MSI-X Table > BAR > > + UINT32 EndPointUniqueMsixPbaBar; // > Records the > PCIe storage device's MSI-X PBA BAR if it supports unique MSI-X PBA BAR > > + UINT32 EndPointUniqueMsixPbaBarValue; // > Records the > PCIe storage device's MSI-X PBA BAR value if it supports unique MSI-X PBA > BAR > > +} RST_CR_CONFIGURATION; > > + > > +// > > +// Passes to DXE results of PCIe storage remapping > > +// > > +typedef struct { > > + // > > + // Stores configuration information about cycle router > > + // > > + RST_CR_CONFIGURATION > RstCrConfiguration[PCH_MAX_RST_PCIE_STORAGE_CR]; > > + > > + // > > + // Saved fields from hidden device config space to be used later by RST > driver > > + // > > + SAVED_DEVICE_CONFIG_SPACE > SavedRemapedDeviceConfigSpace[PCH_MAX_RST_PCIE_STORAGE_CR]; > > +} PCH_RST_HOB; > > + > > +#endif > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PchNvsArea. > h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PchNvsArea. > h > new file mode 100644 > index 0000000000..1c45d89225 > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PchNvsArea. > h > @@ -0,0 +1,30 @@ > +/** @file > > + This file defines the PCH NVS Area Protocol. > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > + > > +#ifndef _PCH_NVS_AREA_H_ > > +#define _PCH_NVS_AREA_H_ > > + > > +// > > +// PCH NVS Area definition > > +// > > +#include <Pch/IncludePrivate/PchNvsAreaDef.h> > > + > > +// > > +// Extern the GUID for protocol users. > > +// > > +extern EFI_GUID gPchNvsAreaProtocolGuid; > > + > > +/** > > + This protocol is used to sync PCH information from POST to runtime ASL. > > + This protocol exposes the pointer of PCH NVS Area only. Please refer to > > + ASL definition for PCH NVS AREA. > > +**/ > > +typedef struct { > > + PCH_NVS_AREA *Area; > > +} PCH_NVS_AREA_PROTOCOL; > > + > > +#endif // _PCH_NVS_AREA_H_ > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PcieIoTrap.h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PcieIoTrap.h > new file mode 100644 > index 0000000000..ecea5db4fc > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/Protocol/PcieIoTrap.h > @@ -0,0 +1,35 @@ > +/** @file > > + This file defines the PCH PCIE IoTrap Protocol. > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > +#ifndef _PCH_PCIE_IOTRAP_H_ > > +#define _PCH_PCIE_IOTRAP_H_ > > + > > +// > > +// Extern the GUID for protocol users. > > +// > > +extern EFI_GUID gPchPcieIoTrapProtocolGuid; > > + > > +// > > +// Forward reference for ANSI C compatibility > > +// > > +typedef struct _PCH_PCIE_IOTRAP_PROTOCOL > PCH_PCIE_IOTRAP_PROTOCOL; > > + > > +/// > > +/// Pcie Trap valid types > > +/// > > +typedef enum { > > + PchPciePmTrap, > > + PcieTrapTypeMaximum > > +} PCH_PCIE_TRAP_TYPE; > > + > > +/** > > + This protocol is used to provide the IoTrap address to trigger PCH PCIE call > back events > > +**/ > > +struct _PCH_PCIE_IOTRAP_PROTOCOL { > > + UINT16 PcieTrapAddress; > > +}; > > + > > +#endif > > diff --git > a/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/SiScheduleResetHob. > h > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/SiScheduleResetHob. > h > new file mode 100644 > index 0000000000..0d9b167588 > --- /dev/null > +++ > b/Silicon/Intel/TigerlakeSiliconPkg/Pch/IncludePrivate/SiScheduleResetHob. > h > @@ -0,0 +1,21 @@ > +/** @file > > + This file contains definitions of Si Schedule Reset HOB. > > + > > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > +**/ > > +#ifndef _SI_SCHEDULE_RESET_HOB_H_ > > +#define _SI_SCHEDULE_RESET_HOB_H_ > > + > > +/** > > + This structure is used to provide information about PCH Resets > > +**/ > > +typedef struct { > > + EFI_RESET_TYPE ResetType; > > + PCH_RESET_DATA ResetData; > > +} SI_SCHEDULE_RESET_HOB; > > + > > +extern EFI_GUID gSiScheduleResetHobGuid; > > + > > +#endif // _SI_SCHEDULE_RESET_HOB_H_ > > + > > -- > 2.24.0.windows.2
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#71144): https://edk2.groups.io/g/devel/message/71144 Mute This Topic: https://groups.io/mt/80274114/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-