/** @file
Defines and prototypes for the System Agent PCIe library module
This library is expected to share between DXE and SMM drivers.
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _SA_PCIE_LIB_H_
#define _SA_PCIE_LIB_H_
#include
#include
#define MAX_SUPPORTED_ROOT_BRIDGE_NUMBER 3
#define MAX_SUPPORTED_DEVICE_NUMBER 192
/**
Enumerate all end point devices connected to root bridge ports and record their MMIO base address
@exception EFI_UNSUPPORTED PCIe capability structure not found
@retval EFI_SUCCESS All done successfully
**/
EFI_STATUS
EnumerateAllPcieDevices (
VOID
);
/**
Sets Common Clock, TCx-VC0 mapping, and Max Payload for PCIe
**/
VOID
SaPcieConfigBeforeOpRom (
VOID
);
/**
This function does all SA ASPM initialization
**/
VOID
SaAspm (
VOID
);
/**
This function checks PEG end point device for extended tag capability and enables them if they are.
**/
VOID
EnableExtendedTag (
VOID
);
/**
This function handles SA S3 resume
**/
VOID
SaS3Resume (
VOID
);
/**
Wrapper function for all SA S3 resume tasks which can be a callback function.
**/
VOID
SaS3ResumeCallback (
VOID
);
#endif