/** @file
Copyright (c) 2018, Intel Corporation. All rights reserved.
Copyright (c) 2021, American Megatrends International LLC.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __PCH_RC_CONFIG_DATA_H__
#define __PCH_RC_CONFIG_DATA_H__
#include
#define HDAUDIO_FEATURES 3
#define HDAUDIO_PP_MODULES 2
/// sSATA max ports for Wellsburg
#define PCH_SSATA_MAX_PORTS 6
#pragma pack(1)
typedef struct {
UINT8 BiosGuard;
UINT8 Reserved1;
UINT8 Dwr_Enable;
UINT8 Dwr_Stall;
UINT8 Dwr_BmcRootPort;
UINT8 DwrEn_PMCGBL;
UINT8 DwrEn_CPUTHRM;
UINT8 DwrEn_PCHTHRM;
UINT8 DwrEn_PBO;
UINT8 DwrEn_MEPBO;
UINT8 DwrEn_MEWDT;
UINT8 DwrEn_MEGBL;
UINT8 DwrEn_CTWDT;
UINT8 DwrEn_PMCWDT;
UINT8 DwrEn_ME_UERR;
UINT8 DwrEn_SYSPWR;
UINT8 DwrEn_OCWDT;
UINT8 DwrEn_IEPBO;
UINT8 DwrEn_IEWDT;
UINT8 DwrEn_IEGBLN;
UINT8 DwrEn_IE_UERRN;
UINT8 DwrEn_ACRU_ERR_2H_EN;
UINT8 DwrPmcEn_HOST_RESET_TIMEOUT;
UINT8 DwrPmcEn_SX_ENTRY_TIMEOUT;
UINT8 DwrPmcEn_HOST_RST_PROM;
UINT8 DwrPmcEn_HSMB_MSG;
UINT8 DwrPmcEn_IE_MTP_TIMEOUT;
UINT8 DwrPmcEn_MTP_TIMEOUT;
UINT8 DwrPmcEn_ESPI_ERROR_DETECT;
UINT8 Dwr_MeResetPrepDone;
UINT8 Dwr_IeResetPrepDone;
//
// PCH_DEVICE_ENABLES
//
UINT8 BoardCapability;
UINT8 DeepSxMode;
UINT8 Gp27WakeFromDeepSx;
UINT8 GbeRegionInvalid;
UINT8 LomLanSupported;
UINT8 PchWakeOnLan;
UINT8 PchSlpLanLowDc;
UINT8 PchSmbus;
UINT8 PchPciClockRun;
UINT8 PchDisplay;
UINT8 PchCrid;
UINT8 PchRtcLock;
UINT8 PchBiosLock;
UINT8 PchAllUnLock;
UINT8 PchThermalUnlock;
UINT8 PchSerm;
UINT8 PchGbeFlashLockDown;
UINT8 PchSmmBwp;
UINT8 Hpet;
UINT8 PchPort80Route;
UINT8 EnableClockSpreadSpec;
UINT8 IchPort80Route;
UINT8 PchSirqMode;
//
// Usb Config
//
UINT8 PchUsbManualMode;
UINT8 PchGpioLockDown;
UINT8 RouteUsb2PinsToWhichHc;
UINT8 RouteUsb2Pin0;
UINT8 RouteUsb2Pin1;
UINT8 RouteUsb2Pin2;
UINT8 RouteUsb2Pin3;
UINT8 RouteUsb2Pin4;
UINT8 RouteUsb2Pin5;
UINT8 RouteUsb2Pin6;
UINT8 RouteUsb2Pin7;
UINT8 RouteUsb2Pin8;
UINT8 RouteUsb2Pin9;
UINT8 RouteUsb2Pin10;
UINT8 RouteUsb2Pin11;
UINT8 RouteUsb2Pin12;
UINT8 RouteUsb2Pin13;
UINT8 Usb3PinsTermination;
UINT8 EnableUsb3Pin[10];
UINT8 PchUsbHsPort[16];
UINT8 PchUsbSsPort[10];
UINT8 PchUsbPortDisable;
UINT8 UsbSensorHub;
UINT8 UsbSsicSupport[2];
UINT8 XhciDisMSICapability;
UINT8 PchUsbPerPortCtl;
UINT8 PchUsb30Port[6];
UINT8 UsbPrecondition;
UINT8 XhciIdleL1;
UINT8 Btcg;
UINT8 PchUsbDegradeBar;
//
// XHCI OC Map
//
UINT8 XhciOcMapEnabled;
//
// xDCI Config
//
UINT8 PchXdciSupport;
//
// Sata CONFIG
//
UINT8 PchSata;
//
// Sata Interface Mode
// 0 - IDE 1 - RAID 2 - AHCI
//
UINT8 SataInterfaceMode;
UINT8 SataPort[PCH_MAX_SATA_PORTS];
UINT8 SataHotPlug[PCH_MAX_SATA_PORTS];
UINT8 SataMechanicalSw[PCH_MAX_SATA_PORTS];
UINT8 SataSpinUp[PCH_MAX_SATA_PORTS];
UINT8 SataExternal[PCH_MAX_SATA_PORTS];
UINT8 SataType[PCH_MAX_SATA_PORTS];
UINT8 SataRaidR0;
UINT8 SataRaidR1;
UINT8 SataRaidR10;
UINT8 SataRaidR5;
UINT8 SataRaidIrrt;
UINT8 SataRaidOub;
UINT8 SataHddlk;
UINT8 SataLedl;
UINT8 SataRaidIooe;
UINT8 SataRaidSrt;
UINT8 SataRaidLoadEfiDriver;
UINT8 SataRaidOromDelay;
UINT8 SataAlternateId;
UINT8 SataSalp;
UINT8 SataTestMode;
UINT8 PxDevSlp[PCH_MAX_SATA_PORTS];
UINT8 EnableDitoConfig[PCH_MAX_SATA_PORTS];
UINT16 DitoVal[PCH_MAX_SATA_PORTS];
UINT8 DmVal[PCH_MAX_SATA_PORTS];
UINT8 SataTopology[PCH_MAX_SATA_PORTS];
//
// sSata CONFIG
//
UINT8 PchsSata;
//
// Sata Interface Mode
// 0 - IDE 1 - RAID 2 - AHCI
//
UINT8 sSataInterfaceMode;
UINT8 sSataPort[PCH_SSATA_MAX_PORTS];
UINT8 sSataHotPlug[PCH_SSATA_MAX_PORTS];
UINT8 sSataSpinUp[PCH_SSATA_MAX_PORTS];
UINT8 sSataExternal[PCH_SSATA_MAX_PORTS];
UINT8 sPxDevSlp[PCH_SSATA_MAX_PORTS];
UINT8 sSataType[PCH_SSATA_MAX_PORTS];
UINT8 sSataRaidR0;
UINT8 sSataRaidR1;
UINT8 sSataRaidR10;
UINT8 sSataRaidR5;
UINT8 sSataRaidIrrt;
UINT8 sSataRaidOub;
UINT8 sSataHddlk;
UINT8 sSataLedl;
UINT8 sSataRaidIooe;
UINT8 sSataRaidSrt;
UINT8 sSataRaidLoadEfiDriver;
UINT8 sSataRaidOromDelay;
UINT8 sSataAlternateId;
UINT8 sSataSalp;
UINT8 sSataTestMode;
UINT8 sEnableDitoConfig[PCH_SSATA_MAX_PORTS];
UINT8 sDmVal[PCH_SSATA_MAX_PORTS];
UINT8 sDitoVal[PCH_SSATA_MAX_PORTS];
UINT8 sSataTopology[PCH_SSATA_MAX_PORTS];
//PCH THERMAL SENSOR
UINT8 ThermalDeviceEnable;
UINT8 PchCrossThrottling;
UINT8 PchDmiExtSync;
UINT8 PcieDmiExtSync;
// AcpiDebug Setup Options
UINT8 PciDelayOptimizationEcr;
UINT8 PchPcieGlobalAspm;
UINT8 PcieDmiStopAndScreamEnable;
UINT8 DmiLinkDownHangBypass;
UINT8 XTpmLen;
UINT8 PcieRootPort8xhDecode;
UINT8 Pcie8xhDecodePortIndex;
UINT8 PcieRootPortPeerMemoryWriteEnable;
UINT8 PcieComplianceTestMode;
UINT8 PcieRootPortSBDE;
UINT8 PcieSBDEPort;
UINT8 RstPcieStorageRemap[PCH_MAX_RST_PCIE_STORAGE_CR];
UINT8 RstPcieStorageRemapPort[PCH_MAX_RST_PCIE_STORAGE_CR];
UINT8 PcieRootPortFunctionSwapping;
UINT8 PcieRootPortEn[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortAspm[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortURE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortFEE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortNFE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortCEE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortMSIE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortMaxPayLoadSize[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortAER[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieTopology[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieLaneCm[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieLaneCp[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieSwEqOverride;
UINT8 PcieSwEqCoeffCm[PCH_PCIE_SWEQ_COEFFS_MAX];
UINT8 PcieSwEqCoeffCp[PCH_PCIE_SWEQ_COEFFS_MAX];
UINT8 PchPcieUX8MaxPayloadSize;
UINT8 PchPcieUX16MaxPayloadSize;
UINT8 PcieRootPortCompletionTimeout[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieClockGatingDisabled;
UINT8 PcieUsbGlitchWa;
UINT8 PcieRootPortPIE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortACS[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortEqPh3Method[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortMaxReadRequestSize;
UINT8 PcieRootPortSFE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortSNE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortSCE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortPMCE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortHPE[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortSpeed[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PcieRootPortTHS[PCH_MAX_PCIE_ROOT_PORTS];
//
// PCI Bridge Resources
//
UINT8 PcieRootPortL1SubStates[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 MemoryThermalManagement;
UINT8 ExttsViaTsOnBoard;
UINT8 ExttsViaTsOnDimm;
UINT8 FixupPlatformSpecificSoftstraps;
//
// SMBUS Configuration
//
UINT8 TestSmbusSpdWriteDisable;
//
// HD-Audio Configuration
//
UINT8 PchHdAudio;
UINT8 PchHdAudioDsp;
UINT8 PchHdAudioPme;
UINT8 PchHdAudioIoBufferOwnership;
UINT8 PchHdAudioIoBufferVoltage;
UINT8 PchHdAudioCodecSelect;
UINT8 PchHdAudioFeature[HDAUDIO_FEATURES];
UINT8 PchHdAudioPostProcessingMod[HDAUDIO_PP_MODULES];
UINT8 RtoHdaVcType;
//
// DMI Configuration
//
UINT8 TestDmiAspmCtrl;
//
//
// PCIe LTR Configuration
//
UINT8 PchPcieLtrEnable[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieLtrConfigLock[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieSnoopLatencyOverrideMode[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieSnoopLatencyOverrideMultiplier[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieNonSnoopLatencyOverrideMode[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieNonSnoopLatencyOverrideMultiplier[PCH_MAX_PCIE_ROOT_PORTS];
UINT16 PchPcieSnoopLatencyOverrideValue[PCH_MAX_PCIE_ROOT_PORTS];
UINT16 PchPcieNonSnoopLatencyOverrideValue[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchPcieForceLtrOverride[PCH_MAX_PCIE_ROOT_PORTS];
UINT8 PchSataLtrOverride;
UINT8 PchSataLtrEnable;
UINT16 PchSataSnoopLatencyOverrideValue;
UINT8 PchSataSnoopLatencyOverrideMultiplier;
UINT8 PchSataLtrConfigLock;
UINT8 PchSSataLtrOverride;
UINT16 PchSSataSnoopLatencyOverrideValue;
UINT8 PchSSataSnoopLatencyOverrideMultiplier;
UINT8 PchSSataLtrEnable;
UINT8 PchSSataLtrConfigLock;
UINT8 PchPcieUX16CompletionTimeout;
UINT8 PchPcieUX8CompletionTimeout;
//
// Interrupt Configuration
//
UINT8 PchIoApic24119Entries;
//
// DPTF SETUP items begin
//
UINT8 EnableDptf;
UINT8 EnablePchDevice;
//
// CPU
//
UINT8 DebugDciEnable;
UINT8 DebugInterfaceEnable;
//
// Miscellaneous options
//
UINT8 OsDebugPort;
UINT8 SlpLanLowDc;
UINT8 PchLanK1Off;
UINT8 PchWakeOnWlan;
UINT8 PchWakeOnWlanDeepSx;
UINT8 StateAfterG3;
UINT8 PciePllSsc;
UINT8 FirmwareConfiguration;
UINT8 PchDciEn;
UINT8 PchDciAutoDetect;
// Acpi.sd
UINT8 CSNotifyEC;
UINT8 EcLowPowerMode;
//
// TraceHub Setup Options
//
UINT8 TraceHubEnableMode;
UINT8 MemRegion0BufferSize;
UINT8 MemRegion1BufferSize;
//
// PCH P2SB hide and lock options
//
UINT8 PchP2sbDevReveal;
UINT8 PchP2sbUnlock;
//
// PCH SPI hide and lock options
//
UINT8 FlashLockDown;
//
// PCH PMC option
//
UINT8 PmcReadDisable;
//
// ADR Configuration
//
UINT8 PchAdrEn;
UINT8 AdrTimerEn;
UINT8 AdrTimerVal;
UINT8 AdrMultiplierVal;
UINT8 AdrGpioSel;
UINT8 AdrHostPartitionReset;
UINT8 AdrSysPwrOk;
UINT8 AdrOverClockingWdt;
UINT8 AdrCpuThermalWdt;
UINT8 AdrPmcParityError;
//
// Audio DSP Configuration
//
UINT8 PchAudioDsp;
UINT8 PchAudioDspD3PowerGating;
UINT8 PchAudioDspAcpiMode;
UINT8 PchAudioDspBluetooth;
UINT8 PchAudioDspAcpiInterruptMode;
//
// Miscellaneous options
//
UINT8 PchEvaMrom0HookEnable;
UINT8 PchEvaMrom1HookEnable;
UINT8 TestMctpBroadcastCycle;
UINT8 PchEvaLockDown;
UINT8 PchTraceHubHide;
} PCH_RC_CONFIGURATION;
#pragma pack()
#endif