diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Chipset/NB/NBCspLib.h | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Chipset/NB/NBCspLib.h')
-rw-r--r-- | Chipset/NB/NBCspLib.h | 1278 |
1 files changed, 1278 insertions, 0 deletions
diff --git a/Chipset/NB/NBCspLib.h b/Chipset/NB/NBCspLib.h new file mode 100644 index 0000000..adac4ee --- /dev/null +++ b/Chipset/NB/NBCspLib.h @@ -0,0 +1,1278 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* + +//************************************************************************* +// $Header: /Alaska/BIN/Chipset/Intel/NorthBridge/Haswell/Intel SystemAgent NB Chipset/NBCspLib.h 5 10/14/12 5:17a Jeffch $ +// +// $Revision: 5 $ +// +// $Date: 10/14/12 5:17a $ +//************************************************************************* +// Revision History +// ---------------- +// $Log: /Alaska/BIN/Chipset/Intel/NorthBridge/Haswell/Intel SystemAgent NB Chipset/NBCspLib.h $ +// +// 5 10/14/12 5:17a Jeffch +// [TAG] None +// [Severity] Important +// [Description] Follow SA RC 0.71. +// [Files] NBPei.c, NBDxe.c; NBGeneric.c; NBCspLib.h; NBSetup.c; +// Nb.sd; GetSetupData.c; +// +// 4 10/14/12 12:20a Jeffch +// [TAG] None +// [Severity] Important +// [Description] Update by XTU4.0. +// [Files] NBPei.c, NBDxe.c, NBCspLib.h, NBGeneric.c +// +// 2 4/26/12 2:39a Yurenlai +// [TAG] None +// [Category] Improvement +// [Severity] Important +// [Description] Fixed PeiRamBootSupport = 1 warm boot system is hang. +// [Description] NBPEI.c, NBCspLib.h +// +// 1 2/08/12 4:34a Yurenlai +// Intel Haswell/NB eChipset initially releases. +// +//************************************************************************* +//<AMI_FHDR_START> +// +// Name: NbCspLib.h +// +// Description: This file contains North Bridge chipset porting functions +// and data structures definition for both PEI & DXE stage. +// +//<AMI_FHDR_END> +//************************************************************************* + +#ifndef __NBLIB_H__ +#define __NBLIB_H__ + +#include <Efi.h> +#include <Pei.h> +#include <Token.h> +#include <Protocol\PciHostBridgeResourceAllocation.h> +#include <Protocol\PciRootBridgeIo.h> +#include <PciHostBridge.h> +#include <AmiDxeLib.h> +#include <PciBus.h> + + +#if ACPI_SUPPORT + #if defined(PI_SPECIFICATION_VERSION) && (PI_SPECIFICATION_VERSION >= 0x0001000A) + #include <Protocol\S3SaveState.h> + #else + #include <Protocol\BootScriptSave.h> + #endif +#endif + +#ifndef AMI_S3_SAVE_PROTOCOL + #if defined(PI_SPECIFICATION_VERSION) && (PI_SPECIFICATION_VERSION >= 0x0001000A) + #define AMI_S3_SAVE_PROTOCOL EFI_S3_SAVE_STATE_PROTOCOL + #define AMI_S3_SAVE_PROTOCOL_GUID &gEfiS3SaveStateProtocolGuid + #else + #define AMI_S3_SAVE_PROTOCOL EFI_BOOT_SCRIPT_SAVE_PROTOCOL + #define AMI_S3_SAVE_PROTOCOL_GUID &gEfiBootScriptSaveGuid + #endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if CSM_SUPPORT +#define LEGACY_REGION_LOCK 0 +#define LEGACY_REGION_BOOT_LOCK 1 +#define LEGACY_REGION_UNLOCK 2 +#define LEGACY_REGION_DECODE_ROM 3 +#endif + +typedef struct { + UINT8 Bus; + UINT8 Dev; + UINT8 Fun; + UINT8 Reg; + EFI_BOOT_SCRIPT_WIDTH Width; + UINT32 Mask; +} BOOT_SCRIPT_NB_PCI_REG_SAVE; + +typedef struct { + UINT8 Register; + UINT8 Mask; + UINT32 StartAddress; + UINT32 Length; +} NB_PAM_STRUCT; + +UINT8 +NbFrequencyToRatio ( + UINT32 Frequency, + UINT8 RefClk, + UINT32 RefBClk +); + +UINT32 +NbRatioToFrequency ( + UINT8 Ratio, + UINT8 RefClk, + UINT32 RefBClk +); + +EFI_STATUS NBProgramPAMRegisters ( + EFI_BOOT_SERVICES *pBS, + EFI_RUNTIME_SERVICES *pRS, + UINT32 StartAddress, + UINT32 Length, + UINT8 Setting, + UINT32 *Granularity +); + +EFI_STATUS NBPeiProgramPAMRegisters ( + EFI_PEI_SERVICES **PeiServices, + UINT32 StartAddress, + UINT32 Length, + UINT8 Setting, + UINT32 *Granularity OPTIONAL +); + +VOID NBRetrainLinkPciDevice ( + IN UINT8 PciBus, + IN UINT8 PciDev, + IN UINT8 PciFun, + IN UINT8 CapPtr +); + +EFI_STATUS NBProtectedPciDevice ( + IN PCI_DEV_INFO *PciDevice +); + +EFI_STATUS NBProgramPciDevice ( + IN PCI_DEV_INFO *PciDevice +); + +EFI_STATUS NBUpdatePciDeviceAttributes ( + IN PCI_DEV_INFO *PciDevice, + IN OUT UINT64 *Attributes, + IN UINT64 Capabilities, + IN BOOLEAN Set +); + +EFI_STATUS NBPAMWriteBootScript( + IN AMI_S3_SAVE_PROTOCOL *BootScriptSave +); + +VOID NbRuntimeShadowRamWrite( + IN BOOLEAN Enable +); + +BOOLEAN +CheckPeiFvCopyToRam ( + IN EFI_PEI_SERVICES **PeiServices +); + +#if (CORE_COMBINED_VERSION >= 0x4027C) // 4.6.3.6 +#if AMI_ROOT_BRIDGE_SUPPORT == 1 +UINTN HbCspMapRootBrgToHost( + IN PCI_BUS_XLAT_HDR *RootBrgXlatHdr, + IN UINT64 *AllocationAttr, + IN UINT64 *RbSuportedAttr +); + +EFI_STATUS HbCspAllocateResources( + IN PCI_HOST_BRG_DATA *HostBrgData, + IN PCI_ROOT_BRG_DATA *RootBrgData, + IN UINTN RootBrgIndex +); +#endif +#else +UINTN HbCspMapRootBrgToHost( + IN PCI_BUS_XLAT_HDR *RootBrgXlatHdr +); +#endif + +UINT32 NBGetTsegBase ( VOID ); + +VOID NBEnableEmrr( + IN UINT32 IedStart, + IN UINT32 IedSize +); + +UINT32 NbFindCapPtr( + IN UINT64 PciAddress, + IN UINT8 CapId +); + + +VOID +WritePci8S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT8 WriteValue8 +); + +VOID +WritePci16S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT16 WriteValue16 +); + +VOID +WritePci32S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT32 WriteValue32 +); + +VOID +RwPci8S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT8 SetBit8, + IN UINT8 ResetBit8 +); + +VOID +RwPci16S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT16 SetBit16, + IN UINT16 ResetBit16 +); + +VOID +RwPci32S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT32 SetBit32, + IN UINT32 ResetBit32 +); + +VOID +WriteMem8S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT8 Value +); + +VOID +WriteMem16S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT16 Value +); + +VOID +WriteMem32S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT32 Value +); + +VOID +RwMem8S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT8 SetBit8, + IN UINT8 ResetBit8 +); + +VOID +RwMem16S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT16 SetBit16, + IN UINT16 ResetBit16 +); + +VOID +RwMem32S3( + IN AMI_S3_SAVE_PROTOCOL *mBootScriptSave, + IN UINT64 Address, + IN UINT32 SetBit32, + IN UINT32 ResetBit32 +); + +UINT8 +ReadPci8( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg +); + +UINT16 +ReadPci16( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg +); + +UINT32 +ReadPci32( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg +); + +VOID +WritePci8( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT8 Value8 +); + +VOID +WritePci16( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT16 Value16 +); + +VOID +WritePci32( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT32 Value32 +); + +VOID +RwPci8( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT8 SetBit8, + IN UINT8 ResetBit8 +); + +VOID +RwPci16( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT16 SetBit16, + IN UINT16 ResetBit16 +); + +VOID +RwPci32( + IN UINT8 Bus, + IN UINT8 Dev, + IN UINT8 Fun, + IN UINT16 Reg, + IN UINT32 SetBit32, + IN UINT32 ResetBit32 +); + +VOID +WriteMem8 ( + IN UINT64 Address, + IN UINT8 Value8 +); + +VOID +WriteMem16 ( + IN UINT64 Address, + IN UINT16 Value16 +); + +VOID +WriteMem32 ( + IN UINT64 Address, + IN UINT32 Value32 +); + +VOID +RwMem8( + IN UINT64 Address, + IN UINT8 SetBit8, + IN UINT8 ResetBit8 +); + +VOID +RwMem16( + IN UINT64 Address, + IN UINT16 SetBit16, + IN UINT16 ResetBit16 +); + +VOID +RwMem32( + IN UINT64 Address, + IN UINT32 SetBit32, + IN UINT32 ResetBit32 +); + +//---------------------------------------------------------------------------- +// Standard PCI Macros, No Porting Required. +//---------------------------------------------------------------------------- + +#define READ_PCI8(Bx, Dx, Fx, Rx) ReadPci8(Bx, Dx, Fx, Rx) +#define READ_PCI16(Bx, Dx, Fx, Rx) ReadPci16(Bx, Dx, Fx, Rx) +#define READ_PCI32(Bx, Dx, Fx, Rx) ReadPci32(Bx, Dx, Fx, Rx) +#define WRITE_PCI8(Bx, Dx, Fx, Rx, bVal) WritePci8(Bx, Dx, Fx, Rx, bVal) +#define WRITE_PCI16(Bx, Dx, Fx, Rx, wVal) WritePci16(Bx, Dx, Fx, Rx, wVal) +#define WRITE_PCI32(Bx, Dx, Fx, Rx, dVal) WritePci32(Bx, Dx, Fx, Rx, dVal) +#define RW_PCI8(Bx, Dx, Fx, Rx, Set, Rst) \ + WritePci8(Bx, Dx, Fx, Rx, ReadPci8(Bx, Dx, Fx, Rx) & ~(Rst) | (Set)) +#define RW_PCI16(Bx, Dx, Fx, Rx, Set, Rst) \ + WritePci16(Bx, Dx, Fx, Rx, ReadPci16(Bx, Dx, Fx, Rx) & ~(Rst)|(Set)) +#define RW_PCI32(Bx, Dx, Fx, Rx, Set, Rst) \ + WritePci32(Bx, Dx, Fx, Rx, ReadPci32(Bx, Dx, Fx, Rx) & ~(Rst)|(Set)) +#define SET_PCI8(Bx, Dx, Fx, Rx, bSet) \ + WritePci8(Bx, Dx, Fx, Rx, ReadPci8(Bx, Dx, Fx, Rx) | (bSet)) +#define SET_PCI16(Bx, Dx, Fx, Rx, wSet) \ + WritePci16(Bx, Dx, Fx, Rx, ReadPci16(Bx, Dx, Fx, Rx) | (wSet)) +#define SET_PCI32(Bx, Dx, Fx, Rx, dSet) \ + WritePci32(Bx, Dx, Fx, Rx, ReadPci32(Bx, Dx, Fx, Rx) | (dSet)) +#define RESET_PCI8(Bx, Dx, Fx, Rx, bReset) \ + WritePci8(Bx, Dx, Fx, Rx, ReadPci8(Bx, Dx, Fx, Rx) & ~(bReset)) +#define RESET_PCI16(Bx, Dx, Fx, Rx, wRst) \ + WritePci16(Bx, Dx, Fx, Rx, ReadPci16(Bx, Dx, Fx, Rx) & ~(wRst)) +#define RESET_PCI32(Bx, Dx, Fx, Rx, dRst) \ + WritePci32(Bx, Dx, Fx, Rx, ReadPci32(Bx, Dx, Fx, Rx) & ~(dRst)) + +#define WRITE_PCI8_S3(mBtScSv, Bx, Dx, Fx, Rx, bValue) \ + WritePci8S3(mBtScSv, Bx, Dx, Fx, Rx, bValue) +#define SET_PCI8_S3(mBtScSv, Bx, Dx, Fx, Rx, bSet) \ + RwPci8S3(mBtScSv, Bx, Dx, Fx, Rx, bSet, 0) +#define RESET_PCI8_S3(mBtScSv, Bx, Dx, Fx, Rx, bReset) \ + RwPci8S3(mBtScSv, Bx, Dx, Fx, Rx, 0, bReset) +#define RW_PCI8_S3(mBtScSv, Bx, Dx, Fx, Rx, bSet, bRst) \ + RwPci8S3(mBtScSv, Bx, Dx, Fx, Rx, bSet, bRst) +#define WRITE_PCI16_S3(mBtScSv, Bx, Dx, Fx, Rx, wValue) \ + WritePci16S3(mBtScSv, Bx, Dx, Fx, Rx, wValue) +#define SET_PCI16_S3(mBtScSv, Bx, Dx, Fx, Rx, wSet) \ + RwPci16S3(mBtScSv, Bx, Dx, Fx, Rx, wSet, 0) +#define RESET_PCI16_S3(mBtScSv, Bx, Dx, Fx, Rx, wReset) \ + RwPci16S3(mBtScSv, Bx, Dx, Fx, Rx, 0, wReset) +#define RW_PCI16_S3(mBtScSv, Bx, Dx, Fx, Rx, wSet, wRst) \ + RwPci16S3(mBtScSv, Bx, Dx, Fx, Rx, wSet, wRst) +#define WRITE_PCI32_S3(mBtScSv, Bx, Dx, Fx, Rx, dValue) \ + WritePci32S3(mBtScSv, Bx, Dx, Fx, Rx, dValue) +#define SET_PCI32_S3(mBtScSv, Bx, Dx, Fx, Rx, dSet) \ + RwPci32S3(mBtScSv, Bx, Dx, Fx, Rx, dSet, 0) +#define RESET_PCI32_S3(mBtScSv, Bx, Dx, Fx, Rx, dReset) \ + RwPci32S3(mBtScSv, Bx, Dx, Fx, Rx, 0, dReset) +#define RW_PCI32_S3(mBtScSv, Bx, Dx, Fx, Rx, dSet, dRst) \ + RwPci32S3(mBtScSv, Bx, Dx, Fx, Rx, dSet, dRst) + +//---------------------------------------------------------------------------- +// Standard Memory Macros, No Porting Required. +//---------------------------------------------------------------------------- + +#define READ_MEM8(Addr64) MMIO_READ8(Addr64) +#define MEM_READ8(Addr64) MMIO_READ8(Addr64) +#define READ_MMIO8(Addr64) MMIO_READ8(Addr64) +#define WRITE_MEM8(Addr64, bValue) WriteMem8(Addr64, bValue) +#define MEM_WRITE8(Addr64, bValue) WriteMem8(Addr64, bValue) +#define WRITE_MMIO8(Addr64, bValue) WriteMem8(Addr64, bValue) +#define SET_MEM8(Addr64, bSet) RwMem8(Addr64, bSet, 0) +#define MEM_SET8(Addr64, bSet) RwMem8(Addr64, bSet, 0) +#define SET_MMIO8(Addr64, bSet) RwMem8(Addr64, bSet, 0) +#define MMIO_SET8(Addr64, bSet) RwMem8(Addr64, bSet, 0) +#define RESET_MEM8(Addr64, bReset) RwMem8(Addr64, 0, bReset) +#define MEM_RESET8(Addr64, bReset) RwMem8(Addr64, 0, bReset) +#define RESET_MMIO8(Addr64, bReset) RwMem8(Addr64, 0, bReset) +#define MMIO_RESET8(Addr64, bReset) RwMem8(Addr64, 0, bReset) +#define RW_MEM8(Addr64, bSet, bReset) RwMem8(Addr64, bSet, bReset) +#define MEM_RW8(Addr64, bSet, bReset) RwMem8(Addr64, bSet, bReset) +#define RW_MMIO8(Addr64, bSet, bReset) RwMem8(Addr64, bSet, bReset) +#define MMIO_RW8(Addr64, bSet, bReset) RwMem8(Addr64, bSet, bReset) + +#define READ_MEM16(Addr64) MMIO_READ16(Addr64) +#define MEM_READ16(Addr64) MMIO_READ16(Addr64) +#define READ_MMIO16(Addr64) MMIO_READ16(Addr64) +#define WRITE_MEM16(Addr64, wValue) WriteMem16(Addr64, wValue) +#define MEM_WRITE16(Addr64, wValue) WriteMem16(Addr64, wValue) +#define WRITE_MMIO16(Addr64, wValue) WriteMem16(Addr64, wValue) +#define SET_MEM16(Addr64, wSet) RwMem16(Addr64, wSet, 0) +#define MEM_SET16(Addr64, wSet) RwMem16(Addr64, wSet, 0) +#define SET_MMIO16(Addr64, wSet) RwMem16(Addr64, wSet, 0) +#define MMIO_SET16(Addr64, wSet) RwMem16(Addr64, wSet, 0) +#define RESET_MEM16(Addr64, wReset) RwMem16(Addr64, 0, wReset) +#define MEM_RESET16(Addr64, wReset) RwMem16(Addr64, 0, wReset) +#define RESET_MMIO16(Addr64, wReset) RwMem16(Addr64, 0, wReset) +#define MMIO_RESET16(Addr64, wReset) RwMem16(Addr64, 0, wReset) +#define RW_MEM16(Addr64, wSet, wReset) RwMem16(Addr64, wSet, wReset) +#define MEM_RW16(Addr64, wSet, wReset) RwMem16(Addr64, wSet, wReset) +#define RW_MMIO16(Addr64, wSet, wReset) RwMem16(Addr64, wSet, wReset) +#define MMIO_RW16(Addr64, wSet, wReset) RwMem16(Addr64, wSet, wReset) + +#define READ_MEM32(Addr64) MMIO_READ32(Addr64) +#define MEM_READ32(Addr64) MMIO_READ32(Addr64) +#define READ_MMIO32(Addr64) MMIO_READ32(Addr64) +#define WRITE_MEM32(Addr64, dValue) WriteMem32(Addr64, dValue) +#define MEM_WRITE32(Addr64, dValue) WriteMem32(Addr64, dValue) +#define WRITE_MMIO32(Addr64, dValue) WriteMem32(Addr64, dValue) +#define SET_MEM32(Addr64, dSet) RwMem32(Addr64, dSet, 0) +#define MEM_SET32(Addr64, dSet) RwMem32(Addr64, dSet, 0) +#define SET_MMIO32(Addr64, dSet) RwMem32(Addr64, dSet, 0) +#define MMIO_SET32(Addr64, dSet) RwMem32(Addr64, dSet, 0) +#define RESET_MEM32(Addr64, dReset) RwMem32(Addr64, 0, dReset) +#define MEM_RESET32(Addr64, dReset) RwMem32(Addr64, 0, dReset) +#define RESET_MMIO32(Addr64, dReset) RwMem32(Addr64, 0, dReset) +#define MMIO_RESET32(Addr64, dReset) RwMem32(Addr64, 0, dReset) +#define RW_MEM32(Addr64, dSet, dReset) RwMem32(Addr64, dSet, dReset) +#define MEM_RW32(Addr64, dSet, dReset) RwMem32(Addr64, dSet, dReset) +#define RW_MMIO32(Addr64, dSet, dReset) RwMem32(Addr64, dSet, dReset) +#define MMIO_RW32(Addr64, dSet, dReset) RwMem32(Addr64, dSet, dReset) + +//---------------------------------------------------------------------------- + +#define WRITE_MEM8_S3(mBtScSv, Addr64, bValue) \ + WriteMem8S3(mBtScSv, Addr64, bValue) +#define MEM_WRITE8_S3(mBtScSv, Addr64, bValue) \ + WriteMem8S3(mBtScSv, Addr64, bValue) +#define WRITE_MMIO8_S3(mBtScSv, Addr64, bValue) \ + WriteMem8S3(mBtScSv, Addr64, bValue) +#define MMIO_WRITE8_S3(mBtScSv, Addr64, bValue) \ + WriteMem8S3(mBtScSv, Addr64, bValue) +#define SET_MEM8_S3(mBtScSv, Addr64, bSet) \ + RwMem8S3(mBtScSv, Addr64, bSet, 0) +#define MEM_SET8_S3(mBtScSv, Addr64, bSet) \ + RwMem8S3(mBtScSv, Addr64, bSet, 0) +#define SET_MMIO8_S3(mBtScSv, Addr64, bSet) \ + RwMem8S3(mBtScSv, Addr64, bSet, 0) +#define MMIO_SET8_S3(mBtScSv, Addr64, bSet) \ + RwMem8S3(mBtScSv, Addr64, bSet, 0) +#define RESET_MEM8_S3(mBtScSv, Addr64, bReset) \ + RwMem8S3(mBtScSv, Addr64, 0, bReset) +#define MEM_RESET8_S3(mBtScSv, Addr64, bReset) \ + RwMem8S3(mBtScSv, Addr64, 0, bReset) +#define RESET_MMIO8_S3(mBtScSv, Addr64, bReset) \ + RwMem8S3(mBtScSv, Addr64, 0, bReset) +#define MMIO_RESET8_S3(mBtScSv, Addr64, bReset) \ + RwMem8S3(mBtScSv, Addr64, 0, bReset) +#define RW_MEM8_S3(mBtScSv, Addr64, bSet, bReset) \ + RwMem8S3(mBtScSv, Addr64, bSet, bReset) +#define MEM_RW8_S3(mBtScSv, Addr64, bSet, bReset) \ + RwMem8S3(mBtScSv, Addr64, bSet, bReset) +#define RW_MMIO8_S3(mBtScSv, Addr64, bSet, bReset) \ + RwMem8S3(mBtScSv, Addr64, bSet, bReset) +#define MMIO_RW8_S3(mBtScSv, Addr64, bSet, bReset) \ + RwMem8S3(mBtScSv, Addr64, bSet, bReset) +#define WRITE_MEM16_S3(mBtScSv, Addr64, wValue) \ + WriteMem16S3(mBtScSv, Addr64, wValue) +#define MEM_WRITE16_S3(mBtScSv, Addr64, wValue) \ + WriteMem16S3(mBtScSv, Addr64, wValue) +#define WRITE_MMIO16_S3(mBtScSv, Addr64, wValue) \ + WriteMem16S3(mBtScSv, Addr64, wValue) +#define MMIO_WRITE16_S3(mBtScSv, Addr64, wValue) \ + WriteMem16S3(mBtScSv, Addr64, wValue) +#define SET_MEM16_S3(mBtScSv, Addr64, wSet) \ + RwMem16S3(mBtScSv, Addr64, wSet, 0) +#define MEM_SET16_S3(mBtScSv, Addr64, wSet) \ + RwMem16S3(mBtScSv, Addr64, wSet, 0) +#define SET_MMIO16_S3(mBtScSv, Addr64, wSet) \ + RwMem16S3(mBtScSv, Addr64, wSet, 0) +#define MMIO_SET16_S3(mBtScSv, Addr64, wSet) \ + RwMem16S3(mBtScSv, Addr64, wSet, 0) +#define RESET_MEM16_S3(mBtScSv, Addr64, wReset) \ + RwMem16S3(mBtScSv, Addr64, 0, wReset) +#define MEM_RESET16_S3(mBtScSv, Addr64, wReset) \ + RwMem16S3(mBtScSv, Addr64, 0, wReset) +#define RESET_MMIO16_S3(mBtScSv, Addr64, wReset) \ + RwMem16S3(mBtScSv, Addr64, 0, wReset) +#define MMIO_RESET16_S3(mBtScSv, Addr64, wReset) \ + RwMem16S3(mBtScSv, Addr64, 0, wReset) +#define RW_MEM16_S3(mBtScSv, Addr64, wSet, wReset) \ + RwMem16S3(mBtScSv, Addr64, wSet, wReset) +#define MEM_RW16_S3(mBtScSv, Addr64, wSet, wReset) \ + RwMem16S3(mBtScSv, Addr64, wSet, wReset) +#define RW_MMIO16_S3(mBtScSv, Addr64, wSet, wReset) \ + RwMem16S3(mBtScSv, Addr64, wSet, wReset) +#define MMIO_RW16_S3(mBtScSv, Addr64, wSet, wReset) \ + RwMem16S3(mBtScSv, Addr64, wSet, wReset) +#define WRITE_MEM32_S3(mBtScSv, Addr64, dValue) \ + WriteMem32S3(mBtScSv, Addr64, dValue) +#define MEM_WRITE32_S3(mBtScSv, Addr64, dValue) \ + WriteMem32S3(mBtScSv, Addr64, dValue) +#define WRITE_MMIO32_S3(mBtScSv, Addr64, dValue) \ + WriteMem32S3(mBtScSv, Addr64, dValue) +#define MMIO_WRITE32_S3(mBtScSv, Addr64, dValue) \ + WriteMem32S3(mBtScSv, Addr64, dValue) +#define SET_MEM32_S3(mBtScSv, Addr64, dSet) \ + RwMem32S3(mBtScSv, Addr64, dSet, 0) +#define MEM_SET32_S3(mBtScSv, Addr64, dSet) \ + RwMem32S3(mBtScSv, Addr64, dSet, 0) +#define SET_MMIO32_S3(mBtScSv, Addr64, dSet) \ + RwMem32S3(mBtScSv, Addr64, dSet, 0) +#define MMIO_SET32_S3(mBtScSv, Addr64, dSet) \ + RwMem32S3(mBtScSv, Addr64, dSet, 0) +#define RESET_MEM32_S3(mBtScSv, Addr64, dReset) \ + RwMem32S3(mBtScSv, Addr64, 0, dReset) +#define MEM_RESET32_S3(mBtScSv, Addr64, dReset) \ + RwMem32S3(mBtScSv, Addr64, 0, dReset) +#define RESET_MMIO32_S3(mBtScSv, Addr64, dReset) \ + RwMem32S3(mBtScSv, Addr64, 0, dReset) +#define MMIO_RESET32_S3(mBtScSv, Addr64, dReset) \ + RwMem32S3(mBtScSv, Addr64, 0, dReset) +#define RW_MEM32_S3(mBtScSv, Addr64, dSet, dReset) \ + RwMem32S3(mBtScSv, Addr64, dSet, dReset) +#define MEM_RW32_S3(mBtScSv, Addr64, dSet, dReset) \ + RwMem32S3(mBtScSv, Addr64, dSet, dReset) +#define RW_MMIO32_S3(mBtScSv, Addr64, dSet, dReset) \ + RwMem32S3(mBtScSv, Addr64, dSet, dReset) +#define MMIO_RW32_S3(mBtScSv, Addr64, dSet, dReset) \ + RwMem32S3(mBtScSv, Addr64, dSet, dReset) + +//---------------------------------------------------------------------------- +// Chipset PCI Macros, Porting Required. +//---------------------------------------------------------------------------- + +#define READ_PCI8_NB(Rx) READ_PCI8(NB_BUS, NB_DEV, NB_FUN, Rx) +#define WRITE_PCI8_NB(Rx, Val) WRITE_PCI8(NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI8_NB(Rx, Set) SET_PCI8(NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI8_NB(Rx, Rst) RESET_PCI8(NB_BUS, NB_DEV, NB_FUN, Rx, Rst) +#define RW_PCI8_NB(Rx, St, Rt) RW_PCI8(NB_BUS, NB_DEV, NB_FUN, Rx, St, Rt) +#define READ_PCI16_NB(Rx) READ_PCI16(NB_BUS, NB_DEV, NB_FUN, Rx) +#define WRITE_PCI16_NB(Rx, Val) WRITE_PCI16(NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI16_NB(Rx, Set) SET_PCI16(NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI16_NB(Rx, Rst) RESET_PCI16(NB_BUS, NB_DEV, NB_FUN, Rx, Rst) +#define RW_PCI16_NB(Rx, St, Rt) RW_PCI16(NB_BUS, NB_DEV, NB_FUN, Rx, St, Rt) +#define READ_PCI32_NB(Rx) READ_PCI32(NB_BUS, NB_DEV, NB_FUN, Rx) +#define WRITE_PCI32_NB(Rx, Val) WRITE_PCI32(NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI32_NB(Rx, Set) SET_PCI32(NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI32_NB(Rx, Rst) RESET_PCI32(NB_BUS, NB_DEV, NB_FUN, Rx, Rst) +#define RW_PCI32_NB(Rx, St, Rt) RW_PCI32(NB_BUS, NB_DEV, NB_FUN, Rx, St, Rt) + +//---------------------------------------------------------------------------- + +#define READ_PCI8_PCIEBRN(Rx) \ + READ_PCI8(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx) +#define WRITE_PCI8_PCIEBRN(Rx, Val) \ + WRITE_PCI8(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Val) +#define SET_PCI8_PCIEBRN(Rx, Set) \ + SET_PCI8(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI8_PCIEBRN(Rx, Rst) \ + RESET_PCI8(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rst) +#define RW_PCI8_PCIEBRN(Rx, St, Rt) \ + RW_PCI8(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St, Rt) +#define READ_PCI16_PCIEBRN(Rx) \ + READ_PCI16(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx) +#define WRITE_PCI16_PCIEBRN(Rx, Vx) \ + WRITE_PCI16(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Vx) +#define SET_PCI16_PCIEBRN(Rx, Set) \ + SET_PCI16(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI16_PCIEBRN(Rx, Rt) \ + RESET_PCI16(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rt) +#define RW_PCI16_PCIEBRN(Rx, St, Rt) \ + RW_PCI16(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St,Rt) +#define READ_PCI32_PCIEBRN(Rx) \ + READ_PCI32(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx) +#define WRITE_PCI32_PCIEBRN(Rx, Vx) \ + WRITE_PCI32(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Vx) +#define SET_PCI32_PCIEBRN(Rx, Set) \ + SET_PCI32(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI32_PCIEBRN(Rx, Rt) \ + RESET_PCI32(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rt) +#define RW_PCI32_PCIEBRN(Rx, St, Rt) \ + RW_PCI32(PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St,Rt) + +//---------------------------------------------------------------------------- + +#define READ_PCI8_IGD(Rx) READ_PCI8(IGD_BUS, IGD_DEV, IGD_FUN, Rx) +#define WRITE_PCI8_IGD(Rx, Val) WRITE_PCI8(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Val) +#define SET_PCI8_IGD(Rx, Set) SET_PCI8(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI8_IGD(Rx, Rst) RESET_PCI8(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Rst) +#define RW_PCI8_IGD(Rx, St, Rt) RW_PCI8(IGD_BUS, IGD_DEV, IGD_FUN, Rx, St, Rt) +#define READ_PCI16_IGD(Rx) READ_PCI16(IGD_BUS, IGD_DEV, IGD_FUN, Rx) +#define WRITE_PCI16_IGD(Rx, Vx) WRITE_PCI16(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Vx) +#define SET_PCI16_IGD(Rx, Set) SET_PCI16(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI16_IGD(Rx, Rt) RESET_PCI16(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Rt) +#define RW_PCI16_IGD(Rx, St,Rt) RW_PCI16(IGD_BUS, IGD_DEV, IGD_FUN, Rx, St,Rt) +#define READ_PCI32_IGD(Rx) READ_PCI32(IGD_BUS, IGD_DEV, IGD_FUN, Rx) +#define WRITE_PCI32_IGD(Rx, Vx) WRITE_PCI32(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Vx) +#define SET_PCI32_IGD(Rx, Set) SET_PCI32(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI32_IGD(Rx, Rt) RESET_PCI32(IGD_BUS, IGD_DEV, IGD_FUN, Rx, Rt) +#define RW_PCI32_IGD(Rx, St,Rt) RW_PCI32(IGD_BUS, IGD_DEV, IGD_FUN, Rx, St,Rt) + +//---------------------------------------------------------------------------- + +#define WRITE_PCI8_NB_S3(mBoot, Rx, Val) \ + WRITE_PCI8_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI8_NB_S3(mBoot, Rx, Set) \ + SET_PCI8_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI8_NB_S3(mBoot, Rx, Reset) \ + RESET_PCI8_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Reset) +#define RW_PCI8_NB_S3(mBoot, Rx, Set, Rst) \ + RW_PCI8_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set, Rst) +#define WRITE_PCI16_NB_S3(mBoot, Rx, Val) \ + WRITE_PCI16_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI16_NB_S3(mBoot, Rx, Set) \ + SET_PCI16_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI16_NB_S3(mBoot, Rx, Reset) \ + RESET_PCI16_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Reset) +#define RW_PCI16_NB_S3(mBoot, Rx, Set, Rst) \ + RW_PCI16_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set, Rst) +#define WRITE_PCI32_NB_S3(mBoot, Rx, Val) \ + WRITE_PCI32_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Val) +#define SET_PCI32_NB_S3(mBoot, Rx, Set) \ + SET_PCI32_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set) +#define RESET_PCI32_NB_S3(mBoot, Rx, Reset) \ + RESET_PCI32_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Reset) +#define RW_PCI32_NB_S3(mBoot, Rx, Set, Rst) \ + RW_PCI32_S3(mBoot, NB_BUS, NB_DEV, NB_FUN, Rx, Set, Rst) + +//---------------------------------------------------------------------------- + +#define WRITE_PCI8_PCIEBRN_S3(mBoot, Rx, Val) \ + WRITE_PCI8_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Val) +#define SET_PCI8_PCIEBRN_S3(mBoot, Rx, Set) \ + SET_PCI8_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI8_PCIEBRN_S3(mBoot, Rx, Rst) \ + RESET_PCI8_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rst) +#define RW_PCI8_PCIEBRN_S3(mBoot, Rx, St, Rt) \ + RW_PCI8_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St, Rt) +#define WRITE_PCI16_PCIEBRN_S3(mBoot, Rx, Val) \ + WRITE_PCI16_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Val) +#define SET_PCI16_PCIEBRN_S3(mBoot, Rx, Set) \ + SET_PCI16_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI16_PCIEBRN_S3(mBoot, Rx, Rst) \ + RESET_PCI16_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rst) +#define RW_PCI16_PCIEBRN_S3(mBoot, Rx, St, Rt) \ + RW_PCI16_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St, Rt) +#define WRITE_PCI32_PCIEBRN_S3(mBoot, Rx, Val) \ + WRITE_PCI32_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Val) +#define SET_PCI32_PCIEBRN_S3(mBoot, Rx, Set) \ + SET_PCI32_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Set) +#define RESET_PCI32_PCIEBRN_S3(mBoot, Rx, Reset) \ + RESET_PCI32_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, Rst) +#define RW_PCI32_PCIEBRN_S3(mBoot, Rx, St, Rt) \ + RW_PCI32_S3(mBoot, PCIEBRN_BUS, PCIEBRN_DEV, PCIEBRN_FUN, Rx, St, Rt) + +//---------------------------------------------------------------------------- + +#define WRITE_PCI8_IGD_S3(mBoot, Rx, Val) \ + WRITE_PCI8_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Val) +#define SET_PCI8_IGD_S3(mBoot, Rx, Set) \ + SET_PCI8_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI8_IGD_S3(mBoot, Rx, Reset) \ + RESET_PCI8_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Reset) +#define RW_PCI8_IGD_S3(mBoot, Rx, Set, Rst) \ + RW_PCI8_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set, Rst) +#define WRITE_PCI16_IGD_S3(mBoot, Rx, Val) \ + WRITE_PCI16_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Val) +#define SET_PCI16_IGD_S3(mBoot, Rx, Set) \ + SET_PCI16_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI16_IGD_S3(mBoot, Rx, Reset) \ + RESET_PCI16_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Reset) +#define RW_PCI16_IGD_S3(mBoot, Rx, Set, Rst) \ + RW_PCI16_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set, Rst) +#define WRITE_PCI32_IGD_S3(mBoot, Rx, Val) \ + WRITE_PCI32_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Val) +#define SET_PCI32_IGD_S3(mBoot, Rx, Set) \ + SET_PCI32_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set) +#define RESET_PCI32_IGD_S3(mBoot, Rx, Reset) \ + RESET_PCI32_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Reset) +#define RW_PCI32_IGD_S3(mBoot, Rx, Set, Rst) \ + RW_PCI32_S3(mBoot, IGD_BUS, IGD_DEV, IGD_FUN, Rx, Set, Rst) + +//---------------------------------------------------------------------------- +// Chipset MMIO Macros, Porting Required. +//---------------------------------------------------------------------------- + +#define READ_MEM8_EP(wReg) READ_MEM8(NB_EP_BASE_ADDRESS | wReg) +#define READ_MMIO8_EP(wReg) READ_MEM8(NB_EP_BASE_ADDRESS | wReg) +#define WRITE_MEM8_EP(wReg, bVal) WRITE_MEM8(NB_EP_BASE_ADDRESS | wReg,bVal) +#define WRITE_MMIO8_EP(wReg, bVal) WRITE_MEM8(NB_EP_BASE_ADDRESS | wReg,bVal) +#define SET_MEM8_EP(wReg, Set) RW_MEM8(NB_EP_BASE_ADDRESS | wReg, Set, 0) +#define SET_MMIO8_EP(wReg, Set) RW_MEM8(NB_EP_BASE_ADDRESS | wReg, Set, 0) +#define RESET_MEM8_EP(wReg, Rst) RW_MEM8(NB_EP_BASE_ADDRESS | wReg, 0, Rst) +#define RESET_MMIO8_EP(wReg, Rst) RW_MEM8(NB_EP_BASE_ADDRESS | wReg, 0, Rst) +#define RW_MEM8_EP(wReg, Set, Rst) RW_MEM8(NB_EP_BASE_ADDRESS|wReg, Set, Rst) +#define RW_MMIO8_EP(wReg, Set, Rst) RW_MEM8(NB_EP_BASE_ADDRESS|wReg, Set, Rst) +#define READ_MEM16_EP(wReg) READ_MEM16(NB_EP_BASE_ADDRESS | wReg) +#define READ_MMIO16_EP(wReg) READ_MEM16(NB_EP_BASE_ADDRESS | wReg) +#define WRITE_MEM16_EP(wReg, wVal) WRITE_MEM16(NB_EP_BASE_ADDRESS|wReg, wVal) +#define WRITE_MMIO16_EP(wReg, wVal) WRITE_MEM16(NB_EP_BASE_ADDRESS|wReg, wVal) +#define SET_MEM16_EP(wReg, Set) RW_MEM16(NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO16_EP(wReg, Set) RW_MEM16(NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM16_EP(wReg, Rst) RW_MEM16(NB_EP_BASE_ADDRESS | wReg, 0,Rst) +#define RESET_MMIO16_EP(wReg, Rst) RW_MEM16(NB_EP_BASE_ADDRESS | wReg, 0,Rst) +#define RW_MEM16_EP(wReg, Set, Rst) RW_MEM16(NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO16_EP(wReg, Set,Rst) RW_MEM16(NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define READ_MEM32_EP(wReg) READ_MEM32(NB_EP_BASE_ADDRESS | wReg) +#define READ_MMIO32_EP(wReg) READ_MEM32(NB_EP_BASE_ADDRESS | wReg) +#define WRITE_MEM32_EP(wReg, dVal) WRITE_MEM32(NB_EP_BASE_ADDRESS|wReg, dVal) +#define WRITE_MMIO32_EP(wReg, dVal) WRITE_MEM32(NB_EP_BASE_ADDRESS|wReg, dVal) +#define SET_MEM32_EP(wReg, Set) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_EP(wReg, Set) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_EP(wReg, Rst) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_EP(wReg, Rst) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_EP(wReg, Set, Rst) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO32_EP(wReg, Set,Rst) RW_MEM32(NB_EP_BASE_ADDRESS|wReg, Set,Rst) + +//---------------------------------------------------------------------------- + +#define READ_MEM8_MCH(wReg) READ_MEM8(NB_MCH_BASE_ADDRESS | wReg) +#define READ_MMIO8_MCH(wReg) READ_MEM8(NB_MCH_BASE_ADDRESS | wReg) +#define WRITE_MEM8_MCH(wReg, bVal) WRITE_MEM8(NB_MCH_BASE_ADDRESS| wReg,bVal) +#define WRITE_MMIO8_MCH(wReg, bVal) WRITE_MEM8(NB_MCH_BASE_ADDRESS| wReg,bVal) +#define SET_MEM8_MCH(wReg, Set) RW_MEM8(NB_MCH_BASE_ADDRESS | wReg, Set,0) +#define SET_MMIO8_MCH(wReg, Set) RW_MEM8(NB_MCH_BASE_ADDRESS | wReg, Set,0) +#define RESET_MEM8_MCH(wReg, Rst) RW_MEM8(NB_MCH_BASE_ADDRESS | wReg,0, Rst) +#define RESET_MMIO8_MCH(wReg, Rst) RW_MEM8(NB_MCH_BASE_ADDRESS | wReg,0, Rst) +#define RW_MEM8_MCH(wReg, Set, Rst) RW_MEM8(NB_MCH_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO8_MCH(wReg, Set,Rst) RW_MEM8(NB_MCH_BASE_ADDRESS|wReg, Set,Rst) +#define READ_MEM16_MCH(wReg) READ_MEM16(NB_MCH_BASE_ADDRESS | wReg) +#define READ_MMIO16_MCH(wReg) READ_MEM16(NB_MCH_BASE_ADDRESS | wReg) +#define WRITE_MEM16_MCH(wReg, wVal) WRITE_MEM16(NB_MCH_BASE_ADDRESS|wReg,wVal) +#define WRITE_MMIO16_MCH(wReg,wVal) WRITE_MEM16(NB_MCH_BASE_ADDRESS|wReg,wVal) +#define SET_MEM16_MCH(wReg, Set) RW_MEM16(NB_MCH_BASE_ADDRESS|wReg,Set, 0) +#define SET_MMIO16_MCH(wReg, Set) RW_MEM16(NB_MCH_BASE_ADDRESS|wReg,Set, 0) +#define RESET_MEM16_MCH(wReg, Rst) RW_MEM16(NB_MCH_BASE_ADDRESS | wReg,0,Rst) +#define RESET_MMIO16_MCH(wReg, Rst) RW_MEM16(NB_MCH_BASE_ADDRESS | wReg,0,Rst) +#define RW_MEM16_MCH(wReg, Set,Rst) RW_MEM16(NB_MCH_BASE_ADDRESS|wReg,Set,Rst) +#define RW_MMIO16_MCH(wReg,Set,Rst) RW_MEM16(NB_MCH_BASE_ADDRESS|wReg,Set,Rst) +#define READ_MEM32_MCH(wReg) READ_MEM32(NB_MCH_BASE_ADDRESS | wReg) +#define READ_MMIO32_MCH(wReg) READ_MEM32(NB_MCH_BASE_ADDRESS | wReg) +#define WRITE_MEM32_MCH(wReg, dVal) WRITE_MEM32(NB_MCH_BASE_ADDRESS|wReg,dVal) +#define WRITE_MMIO32_MCH(wReg,dVal) WRITE_MEM32(NB_MCH_BASE_ADDRESS|wReg,dVal) +#define SET_MEM32_MCH(wReg, Set) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_MCH(wReg, Set) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_MCH(wReg, Rst) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_MCH(wReg, Rst) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_MCH(wReg, Set,Rst) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg,Set,Rst) +#define RW_MMIO32_MCH(wReg,Set,Rst) RW_MEM32(NB_MCH_BASE_ADDRESS|wReg,Set,Rst) + +//---------------------------------------------------------------------------- + +#define READ_MEM8_DMI(wReg) READ_MEM8(NB_DMI_BASE_ADDRESS | wReg) +#define READ_MMIO8_DMI(wReg) READ_MEM8(NB_DMI_BASE_ADDRESS | wReg) +#define WRITE_MEM8_DMI(wReg, bVal) WRITE_MEM8(NB_DMI_BASE_ADDRESS| wReg,bVal) +#define WRITE_MMIO8_DMI(wReg, bVal) WRITE_MEM8(NB_DMI_BASE_ADDRESS| wReg,bVal) +#define SET_MEM8_DMI(wReg, Set) RW_MEM8(NB_DMI_BASE_ADDRESS | wReg, Set,0) +#define SET_MMIO8_DMI(wReg, Set) RW_MEM8(NB_DMI_BASE_ADDRESS | wReg, Set,0) +#define RESET_MEM8_DMI(wReg, Rst) RW_MEM8(NB_DMI_BASE_ADDRESS | wReg,0, Rst) +#define RESET_MMIO8_DMI(wReg, Rst) RW_MEM8(NB_DMI_BASE_ADDRESS | wReg,0, Rst) +#define RW_MEM8_DMI(wReg, Set, Rst) RW_MEM8(NB_DMI_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO8_DMI(wReg, Set,Rst) RW_MEM8(NB_DMI_BASE_ADDRESS|wReg, Set,Rst) +#define READ_MEM16_DMI(wReg) READ_MEM16(NB_DMI_BASE_ADDRESS | wReg) +#define READ_MMIO16_DMI(wReg) READ_MEM16(NB_DMI_BASE_ADDRESS | wReg) +#define WRITE_MEM16_DMI(wReg, wVal) WRITE_MEM16(NB_DMI_BASE_ADDRESS|wReg,wVal) +#define WRITE_MMIO16_DMI(wReg,wVal) WRITE_MEM16(NB_DMI_BASE_ADDRESS|wReg,wVal) +#define SET_MEM16_DMI(wReg, Set) RW_MEM16(NB_DMI_BASE_ADDRESS|wReg,Set, 0) +#define SET_MMIO16_DMI(wReg, Set) RW_MEM16(NB_DMI_BASE_ADDRESS|wReg,Set, 0) +#define RESET_MEM16_DMI(wReg, Rst) RW_MEM16(NB_DMI_BASE_ADDRESS | wReg,0,Rst) +#define RESET_MMIO16_DMI(wReg, Rst) RW_MEM16(NB_DMI_BASE_ADDRESS | wReg,0,Rst) +#define RW_MEM16_DMI(wReg, Set,Rst) RW_MEM16(NB_DMI_BASE_ADDRESS|wReg,Set,Rst) +#define RW_MMIO16_DMI(wReg,Set,Rst) RW_MEM16(NB_DMI_BASE_ADDRESS|wReg,Set,Rst) +#define READ_MEM32_DMI(wReg) READ_MEM32(NB_DMI_BASE_ADDRESS | wReg) +#define READ_MMIO32_DMI(wReg) READ_MEM32(NB_DMI_BASE_ADDRESS | wReg) +#define WRITE_MEM32_DMI(wReg, dVal) WRITE_MEM32(NB_DMI_BASE_ADDRESS|wReg,dVal) +#define WRITE_MMIO32_DMI(wReg,dVal) WRITE_MEM32(NB_DMI_BASE_ADDRESS|wReg,dVal) +#define SET_MEM32_DMI(wReg, Set) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_DMI(wReg, Set) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_DMI(wReg, Rst) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_DMI(wReg,Rst) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_DMI(wReg, Set,Rst) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg,Set,Rst) +#define RW_MMIO32_DMI(wReg,Set,Rst) RW_MEM32(NB_DMI_BASE_ADDRESS|wReg,Set,Rst) + +//---------------------------------------------------------------------------- + +#define WRITE_MEM8_EP_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg,bVal) +#define WRITE_MMIO8_EP_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg,bVal) +#define SET_MEM8_EP_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, Set, 0) +#define SET_MMIO8_EP_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, Set, 0) +#define RESET_MEM8_EP_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, 0, Rst) +#define RESET_MMIO8_EP_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, 0, Rst) +#define RW_MEM8_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, Rst) +#define RW_MMIO8_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, Rst) +#define WRITE_MEM16_EP_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, wVal) +#define WRITE_MMIO16_EP_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, wVal) +#define SET_MEM16_EP_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO16_EP_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM16_EP_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, 0,Rst) +#define RESET_MMIO16_EP_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS | wReg, 0,Rst) +#define RW_MEM16_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO16_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define WRITE_MEM32_EP_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, dVal) +#define WRITE_MMIO32_EP_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, dVal) +#define SET_MEM32_EP_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_EP_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_EP_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_EP_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO32_EP_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_EP_BASE_ADDRESS|wReg, Set,Rst) + +//---------------------------------------------------------------------------- + +#define WRITE_MEM8_MCH_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg,bVal) +#define WRITE_MMIO8_MCH_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg,bVal) +#define SET_MEM8_MCH_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, Set, 0) +#define SET_MMIO8_MCH_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, Set, 0) +#define RESET_MEM8_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, 0, Rst) +#define RESET_MMIO8_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, 0, Rst) +#define RW_MEM8_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, Rst) +#define RW_MMIO8_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, Rst) +#define WRITE_MEM16_MCH_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, wVal) +#define WRITE_MMIO16_MCH_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, wVal) +#define SET_MEM16_MCH_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO16_MCH_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM16_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, 0,Rst) +#define RESET_MMIO16_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS | wReg, 0,Rst) +#define RW_MEM16_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO16_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set,Rst) +#define WRITE_MEM32_MCH_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, dVal) +#define WRITE_MMIO32_MCH_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, dVal) +#define SET_MEM32_MCH_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_MCH_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_MCH_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO32_MCH_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_MCH_BASE_ADDRESS|wReg, Set,Rst) + +//---------------------------------------------------------------------------- + +#define WRITE_MEM8_DMI_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg,bVal) +#define WRITE_MMIO8_DMI_S3(mBoot, wReg, bVal) \ + WRITE_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg,bVal) +#define SET_MEM8_DMI_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, Set, 0) +#define SET_MMIO8_DMI_S3(mBoot, wReg, Set) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, Set, 0) +#define RESET_MEM8_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, 0, Rst) +#define RESET_MMIO8_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, 0, Rst) +#define RW_MEM8_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, Rst) +#define RW_MMIO8_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM8_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, Rst) +#define WRITE_MEM16_DMI_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, wVal) +#define WRITE_MMIO16_DMI_S3(mBoot, wReg, wVal) \ + WRITE_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, wVal) +#define SET_MEM16_DMI_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO16_DMI_S3(mBoot, wReg, Set) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM16_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, 0,Rst) +#define RESET_MMIO16_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS | wReg, 0,Rst) +#define RW_MEM16_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO16_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM16_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set,Rst) +#define WRITE_MEM32_DMI_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, dVal) +#define WRITE_MMIO32_DMI_S3(mBoot, wReg, dVal) \ + WRITE_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, dVal) +#define SET_MEM32_DMI_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define SET_MMIO32_DMI_S3(mBoot, wReg, Set) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set, 0) +#define RESET_MEM32_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, 0, Rst) +#define RESET_MMIO32_DMI_S3(mBoot, wReg, Rst) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, 0, Rst) +#define RW_MEM32_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set,Rst) +#define RW_MMIO32_DMI_S3(mBoot, wReg, Set, Rst) \ + RW_MEM32_S3(mBoot, NB_DMI_BASE_ADDRESS|wReg, Set,Rst) + +//---------------------------------------------------------------------------- +// Chipset I/O Macros, Porting Required if needed. +//---------------------------------------------------------------------------- + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +//To Exclude AMI Native Root Bridge Driver HOOKS from CSP LIB +#if AMI_ROOT_BRIDGE_SUPPORT == 1 + +//---------------------------------------------------------------------------- +//Function Prototypes for PciRootBridgeIo +//---------------------------------------------------------------------------- + +extern DXE_SERVICES *gDxeSvcTbl; + +EFI_STATUS HbResAllocNotifyPhase ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase +); + +EFI_STATUS HbResAllocGetNextRootBridge ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN OUT EFI_HANDLE *RootBridgeHandle +); + +EFI_STATUS HbResAllocGetAllocAttributes ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + OUT UINT64 *Attributes +); + +EFI_STATUS HbResAllocStartBusEnumeration ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + OUT VOID **Configuration +); + +EFI_STATUS HbResAllocSetBusNumbers ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + IN VOID *Configuration +); + +EFI_STATUS HbResAllocSubmitResources ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + IN VOID *Configuration +); + +EFI_STATUS HbResAllocGetProposedResources ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + OUT VOID **Configuration +); + +EFI_STATUS HbResAllocPreprocessController ( + IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *This, + IN EFI_HANDLE RootBridgeHandle, + IN EFI_PCI_CONFIGURATION_ADDRESS PciAddress, + IN EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE Phase +); + +EFI_STATUS HbNotifyCspBeforeEnumeration ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspBeginBusAllocation ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspEndBusAllocation ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspBeginResourceAllocation ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspAllocateResources ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspSetResources ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbNotifyCspEndResourceAllocation ( + EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *ResAllocProtocol, + EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL **RbIoProtocolBuffer, + UINTN RbCount +); + +EFI_STATUS HbCspStartBusEnumeration ( + PCI_HOST_BRG_DATA *HostBrgData, + PCI_ROOT_BRG_DATA *RootBrgData, + UINTN RootBrgIndex +); + +EFI_STATUS HbCspSetBusNnumbers ( + PCI_HOST_BRG_DATA *HostBrgData, + PCI_ROOT_BRG_DATA *RootBrgData, + UINTN RootBrgIndex +); + +EFI_STATUS HbCspSubmitResources ( + PCI_HOST_BRG_DATA *HostBrgData, + PCI_ROOT_BRG_DATA *RootBrgData, + UINTN RootBrgIndex +); + +EFI_STATUS HbCspAdjustMemoryMmioOverlap ( + PCI_HOST_BRG_DATA *HostBrgData, + PCI_ROOT_BRG_DATA *RootBrgData, + UINTN RootBrgIndex +); + +EFI_STATUS HbCspBasicChipsetInit ( + PCI_HOST_BRG_DATA *HostBrg0 +); + +UINTN HbCspGetPciSegment ( + UINTN HostBridgeNumber, + UINTN RootBridgeNumber +); + +EFI_STATUS HbCspPreprocessController ( + PCI_HOST_BRG_DATA *HostBrgData, + PCI_ROOT_BRG_DATA *RootBrgData, + UINTN RootBrgNumber, + EFI_PCI_CONFIGURATION_ADDRESS PciAddress, + EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE Phase +); + +EFI_STATUS RbCspIoPciMap ( + IN PCI_ROOT_BRG_DATA *RbData, + IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION Operation, + IN EFI_PHYSICAL_ADDRESS HostAddress, + IN OUT UINTN *NumberOfBytes, + OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, + OUT VOID **Mapping +); + +EFI_STATUS RbCspIoPciUnmap ( + IN PCI_ROOT_BRG_DATA *RbData, + IN PCI_ROOT_BRIDGE_MAPPING *Mapping +); + +EFI_STATUS RbCspIoPciAttributes( + IN PCI_ROOT_BRG_DATA *RbData, + IN UINT64 Attributes, + IN OUT UINT64 *ResourceBase OPTIONAL, + IN OUT UINT64 *ResourceLength OPTIONAL +); + +EFI_STATUS RootBridgeIoPciRW ( + IN PCI_ROOT_BRG_DATA *RbData, + IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN OUT VOID *Buffer, + IN BOOLEAN Write +); + +EFI_STATUS RbCspIoPciUnmap ( + IN PCI_ROOT_BRG_DATA *RbData, + OUT PCI_ROOT_BRIDGE_MAPPING *Mapping +); + +EFI_STATUS RbCspIoPciMap ( + IN PCI_ROOT_BRG_DATA *RbData, + IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION Operation, + IN EFI_PHYSICAL_ADDRESS HostAddress, + IN OUT UINTN *NumberOfBytes, + OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, + OUT VOID **Mapping +); + +//-------------------------------------- +//#if AMI_ROOT_BRIDGE_SUPPORT == 1 +#endif + +#ifdef __cplusplus +} +#endif +#endif + +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* |