/** @file Copyright (c) 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _EFI_SYSTEM_BOARD_PPI_H_ #define _EFI_SYSTEM_BOARD_PPI_H_ #include #include #include // GUID #include #include // PPI #include #include #include #include // Library #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // CMOS access Port address #define LAST_CMOS_BYTE 0x7F #define NMI_OFF 0x80 #define B_PCH_RTC_REGB_SRBRST 0x02 // Value to be reset to during POST #define R_PCH_RTC_REGD 0x0D // CMOS Register D Status #define R_PCH_RTC_REGE 0x0E // CMOS Register E Status #define B_PCH_RTC_REGE_INVTIM 0x04 // CMOS invalid time found #define TIMER1_CONTROL_PORT 0x43 #define TIMER1_COUNT_PORT 0x41 #define LOAD_COUNTER1_LSB 0x54 #define COUNTER1_COUNT 0x12 // // Reset Generator I/O Port // #define RESET_GENERATOR_PORT 0xCF9 //-----------------------------------------------------------------------; // PCH: Chipset Configuration Register Equates //-----------------------------------------------------------------------; #define ICH_RCRB_IRQ0 0 #define ICH_RCRB_IRQA 1 #define ICH_RCRB_IRQB 2 #define ICH_RCRB_IRQC 3 #define ICH_RCRB_IRQD 4 #define ICH_RCRB_PIRQA 0 #define ICH_RCRB_PIRQB 1 #define ICH_RCRB_PIRQC 2 #define ICH_RCRB_PIRQD 3 #define ICH_RCRB_PIRQE 4 #define ICH_RCRB_PIRQF 5 #define ICH_RCRB_PIRQG 6 #define ICH_RCRB_PIRQH 7 // // From WBG Soft Straps WIP.xlsx // #define WBG_DOWNSKU_STRAP_DSKU 0x80046000 #define WBG_DOWNSKU_STRAP_BSKU 0x8004E003 #define WBG_DOWNSKU_STRAP_TSKU 0x00044000 #define PCHSTRAP_9 9 #define PCHSTRAP_10 10 #define PCHSTRAP_16 16 #define PCHSTRAP_17 17 #define RESET_PORT 0x0CF9 #define CLEAR_RESET_BITS 0x0F1 #define COLD_RESET 0x02 // Set bit 1 for cold reset #define RST_CPU 0x04 // Setting this bit triggers a reset of the CPU #define FULL_RESET 0x08 // Set bit 4 with bit 1 for full reset // // PPI functions // VOID SetBifurcations( IN OUT IIO_GLOBALS *IioGlobalData, IN IIO_BIFURCATION_ENTRY *BifurcationTable, IN UINT8 BifurcationEntries ); VOID EnableHotPlug ( IN OUT IIO_GLOBALS *IioGlobalData, IN UINT8 Port, IN UINT8 VppPort, IN UINT8 VppAddress, IN UINT8 PortOwnership ); VOID ConfigSlots ( IN OUT IIO_GLOBALS *IioGlobalData, IN IIO_SLOT_CONFIG_ENTRY *Slot, IN UINT8 SlotEntries ); VOID OverrideConfigSlots ( IN OUT IIO_GLOBALS *IioGlobalData, IN IIO_SLOT_CONFIG_ENTRY *Slot, IN UINT8 SlotEntries ); VOID CalculatePEXPHideFromIouBif ( IN UINT8 Iou, IN UINT8 IioIndex, IN OUT IIO_GLOBALS *IioGlobalData ); VOID DumpIioConfiguration( IN UINT8 iio, IN IIO_GLOBALS *IioGlobalData ); VOID OverrideDefaultBifSlots( IN IIO_GLOBALS *IioGlobalData ); UINT8 GetUplinkPortInformationCommon ( IN UINT8 IioIndex ); VOID SystemIioPortBifurcationInitCommon ( IIO_GLOBALS *IioGlobalData, IIO_BIFURCATION_ENTRY **BifurcationTable, UINT8 *BifurcationEntries, IIO_SLOT_CONFIG_ENTRY **SlotTable, UINT8 *SlotEntries ); VOID SystemHideIioPortsCommon( IIO_GLOBALS *IioGlobalData, UINT8 IioIndex ); UINT8 GetUplinkPortInformation ( IN UINT8 IioIndex ); VOID SystemIioPortBifurcationInit ( IN IIO_GLOBALS *IioGlobalData ); #endif