/** @file UEFI variables used by DXE to pass PCI resource reconfiguration request to PEI. @copyright Copyright 2016 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SOCKET_PCI_RESOURCE_CONFIG_DATA_H_ #define _SOCKET_PCI_RESOURCE_CONFIG_DATA_H_ extern EFI_GUID gEfiSocketPciResourceDataGuid; /** * PCI MMIO and IO resource reconfiguration request structure. **/ #define SYSTEM_PCI_RESOURCE_CONFIGURATION_DATA_NAME L"SystemPciResourceConfigData" typedef struct { UINT64 Base; ///< Base (starting) address of a range (I/O, 32 and 64-bit mmio regions) UINT64 Limit; ///< Limit (last valid) address of a range } PCIE_BASE_LIMIT; typedef struct { PCIE_BASE_LIMIT Io; ///< Base and limit of I/O range assigned to entity PCIE_BASE_LIMIT LowMmio; ///< Base and limit of low MMIO region for entity PCIE_BASE_LIMIT HighMmio; ///< Base and limit of high (64-bit) MMIO region for entity } PCI_BASE_LIMITS; typedef struct { PCI_BASE_LIMITS SocketLimits; ///< Base and Limit of all PCIe resources for the socket PCI_BASE_LIMITS StackLimits[MAX_LOGIC_IIO_STACK]; ///< Base and Limit of all PCIe resources for each stack of the socket } SOCKET_PCI_BASE_LIMITS; typedef struct { // // Save basic system configuration parameters along with the resource map to detect a change. // Remember low and high I/O memory range when saving recource configuration. It is used to verify // whether system memory map changed. Remember also stacks configured when creating the map. // If anything changed reset the system PCI resource configuration. // UINT64 MmioHBase; UINT64 MmioHLimit; UINT32 MmioLBase; UINT32 MmioLLimit; UINT16 IoBase; UINT16 IoLimit; UINT16 StackPresentBitmap[MAX_SOCKET]; // // Used by the PciHostBridge DXE driver, these variables don't need to be exposed through setup options // The variables are used as a communication vehicle from the PciHostBridge DXE driver to an OEM hook // which updates the KTI resource map. // SOCKET_PCI_BASE_LIMITS Socket[MAX_SOCKET]; ///< Base and limit of all PCIe resources for each socket } SYSTEM_PCI_BASE_LIMITS; #endif // _SOCKET_PCI_RESOURCE_CONFIG_DATA_H_