https://svn.code.sf.net/p/edk2/code/trunk/edk2/, which are for MinnowBoard MAX open source project. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Wei <david.wei@intel.com> Reviewed-by: Mike Wu <mike.wu@intel.com> Reviewed-by: Hot Tian <hot.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16599 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			168 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
| **/
 | |
| /**
 | |
| 
 | |
| Copyright (c) 2012  - 2014, Intel Corporation. All rights reserved
 | |
| 
 | |
|   This program and the accompanying materials are licensed and made available under
 | |
|   the terms and conditions of the BSD License that accompanies this distribution.
 | |
|   The full text of the license may be found at
 | |
|   http://opensource.org/licenses/bsd-license.php.
 | |
| 
 | |
|   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
|   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| 
 | |
| 
 | |
|   @file
 | |
|   PchPlatformPolicy.h
 | |
| 
 | |
|   @brief
 | |
|   PCH policy PPI produced by a platform driver specifying various
 | |
|   expected PCH settings. This PPI is consumed by the PCH PEI modules.
 | |
| 
 | |
| **/
 | |
| #ifndef PCH_PLATFORM_POLICY_H_
 | |
| #define PCH_PLATFORM_POLICY_H_
 | |
| //
 | |
| // External include files do NOT need to be explicitly specified in real EDKII
 | |
| // environment
 | |
| //
 | |
| 
 | |
| 
 | |
| #include "PchRegs.h"
 | |
| 
 | |
| //
 | |
| #define PCH_PLATFORM_POLICY_PPI_GUID \
 | |
|   { \
 | |
|     0x15344673, 0xd365, 0x4be2, 0x85, 0x13, 0x14, 0x97, 0xcc, 0x7, 0x61, 0x1d \
 | |
|   }
 | |
| 
 | |
| extern EFI_GUID                         gPchPlatformPolicyPpiGuid;
 | |
| 
 | |
| ///
 | |
| /// Forward reference for ANSI C compatibility
 | |
| ///
 | |
| typedef struct _PCH_PLATFORM_POLICY_PPI PCH_PLATFORM_POLICY_PPI;
 | |
| 
 | |
| ///
 | |
| /// PPI revision number
 | |
| /// Any backwards compatible changes to this PPI will result in an update in the revision number
 | |
| /// Major changes will require publication of a new PPI
 | |
| ///
 | |
| /// Revision 1:    Original version
 | |
| ///
 | |
| #define PCH_PLATFORM_POLICY_PPI_REVISION_1  1
 | |
| #define PCH_PLATFORM_POLICY_PPI_REVISION_2  2
 | |
| #define PCH_PLATFORM_POLICY_PPI_REVISION_3  3
 | |
| #define PCH_PLATFORM_POLICY_PPI_REVISION_4  4
 | |
| #define PCH_PLATFORM_POLICY_PPI_REVISION_5  5
 | |
| //
 | |
| // Generic definitions for device enabling/disabling used by PCH code.
 | |
| //
 | |
| #define PCH_DEVICE_ENABLE   1
 | |
| #define PCH_DEVICE_DISABLE  0
 | |
| 
 | |
| typedef struct {
 | |
|   UINT8  ThermalDataReportEnable  : 1;   // OBSOLETE from Revision 5 !!! DO NOT USE !!!
 | |
|   UINT8  MchTempReadEnable        : 1;
 | |
|   UINT8  PchTempReadEnable        : 1;
 | |
|   UINT8  CpuEnergyReadEnable      : 1;
 | |
|   UINT8  CpuTempReadEnable        : 1;
 | |
|   UINT8  Cpu2TempReadEnable       : 1;
 | |
|   UINT8  TsOnDimmEnable           : 1;
 | |
|   UINT8  Dimm1TempReadEnable      : 1;
 | |
| 
 | |
|   UINT8  Dimm2TempReadEnable      : 1;
 | |
|   UINT8  Dimm3TempReadEnable      : 1;
 | |
|   UINT8  Dimm4TempReadEnable      : 1;
 | |
|   UINT8  Rsvdbits                 : 5;
 | |
| } PCH_THERMAL_REPORT_CONTROL;
 | |
| //
 | |
| // ---------------------------- HPET Config -----------------------------
 | |
| //
 | |
| typedef struct {
 | |
|   BOOLEAN Enable; /// Determines if enable HPET function
 | |
|   UINT32  Base;   /// The HPET base address
 | |
| } PCH_HPET_CONFIG;
 | |
| 
 | |
| 
 | |
| ///
 | |
| /// ---------------------------- SATA Config -----------------------------
 | |
| ///
 | |
| typedef enum {
 | |
|   PchSataModeIde,
 | |
|   PchSataModeAhci,
 | |
|   PchSataModeRaid,
 | |
|   PchSataModeMax
 | |
| } PCH_SATA_MODE;
 | |
| 
 | |
| ///
 | |
| /// ---------------------------- PCI Express Config -----------------------------
 | |
| ///
 | |
| typedef enum {
 | |
|   PchPcieAuto,
 | |
|   PchPcieGen1,
 | |
|   PchPcieGen2
 | |
| } PCH_PCIE_SPEED;
 | |
| 
 | |
| typedef struct {
 | |
|   PCH_PCIE_SPEED  PcieSpeed[PCH_PCIE_MAX_ROOT_PORTS];
 | |
| } PCH_PCIE_CONFIG;
 | |
| 
 | |
| ///
 | |
| /// ---------------------------- IO APIC Config -----------------------------
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT8 IoApicId;
 | |
| } PCH_IOAPIC_CONFIG;
 | |
| 
 | |
| ///
 | |
| /// --------------------- Low Power Input Output Config ------------------------
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT8                   LpssPciModeEnabled    : 1;    /// Determines if LPSS PCI Mode enabled
 | |
|   UINT8                   Dma0Enabled           : 1;     /// Determines if LPSS DMA1 enabled
 | |
|   UINT8                   Dma1Enabled           : 1;     /// Determines if LPSS DMA2 enabled
 | |
|   UINT8                   I2C0Enabled           : 1;     /// Determines if LPSS I2C #1 enabled
 | |
|   UINT8                   I2C1Enabled           : 1;     /// Determines if LPSS I2C #2 enabled
 | |
|   UINT8                   I2C2Enabled           : 1;     /// Determines if LPSS I2C #3 enabled
 | |
|   UINT8                   I2C3Enabled           : 1;     /// Determines if LPSS I2C #4 enabled
 | |
|   UINT8                   I2C4Enabled           : 1;     /// Determines if LPSS I2C #5 enabled
 | |
|   UINT8                   I2C5Enabled           : 1;     /// Determines if LPSS I2C #6 enabled
 | |
|   UINT8                   I2C6Enabled           : 1;     /// Determines if LPSS I2C #7 enabled
 | |
|   UINT8                   Pwm0Enabled           : 1;     /// Determines if LPSS PWM #1 enabled
 | |
|   UINT8                   Pwm1Enabled           : 1;     /// Determines if LPSS PWM #2 enabled
 | |
|   UINT8                   Hsuart0Enabled        : 1;     /// Determines if LPSS HSUART #1 enabled
 | |
|   UINT8                   Hsuart1Enabled        : 1;     /// Determines if LPSS HSUART #2 enabled
 | |
|   UINT8                   SpiEnabled            : 1;     /// Determines if LPSS SPI enabled
 | |
|   UINT8                   Rsvdbits              : 2;
 | |
| } PEI_PCH_LPSS_CONFIG;
 | |
| 
 | |
| ///
 | |
| /// ------------ General PCH Platform Policy PPI definition ------------
 | |
| ///
 | |
| struct _PCH_PLATFORM_POLICY_PPI {
 | |
|   UINT8                         Revision;
 | |
|   UINT8                         BusNumber;  // Bus Number of the PCH device
 | |
|   UINT32                        SpiBase;    // SPI Base Address.
 | |
|   UINT32                        PmcBase;    // PMC Base Address.
 | |
|   UINT32                        SmbmBase;   // SMB Memory Base Address.
 | |
|   UINT32                        IoBase;     // IO Base Address.
 | |
|   UINT32                        IlbBase;    // Intel Legacy Block Base Address.
 | |
|   UINT32                        PUnitBase;  // PUnit Base Address.
 | |
|   UINT32                        Rcba;       // Root Complex Base Address.
 | |
|   UINT32                        MphyBase;   // MPHY Base Address.
 | |
|   UINT16                        AcpiBase;   // ACPI I/O Base address.
 | |
|   UINT16                        GpioBase;   // GPIO Base address
 | |
|   PCH_HPET_CONFIG               *HpetConfig;
 | |
|   PCH_SATA_MODE                 SataMode;
 | |
|   PCH_PCIE_CONFIG               *PcieConfig;
 | |
|   PCH_IOAPIC_CONFIG             *IoApicConfig;
 | |
|   PEI_PCH_LPSS_CONFIG           *LpssConfig;
 | |
|   BOOLEAN                       EnableRmh;      // Determines if enable USB RMH function
 | |
|   BOOLEAN                       EhciPllCfgEnable;
 | |
| };
 | |
| 
 | |
| #endif
 |