Ronak Kanabar | 1ae366f | 2023-06-07 01:21:56 +0530 | [diff] [blame^] | 1 | /** @file |
| 2 | ACPI memory mapped configuration space access table definition, defined at |
| 3 | in the PCI Firmware Specification, version 3.0. |
| 4 | Specification is available at http://www.pcisig.com. |
| 5 | |
| 6 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> |
| 7 | SPDX-License-Identifier: BSD-2-Clause-Patent |
| 8 | **/ |
| 9 | |
| 10 | #ifndef _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ |
| 11 | #define _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ |
| 12 | |
| 13 | #include <IndustryStandard/Acpi.h> |
| 14 | |
| 15 | // |
| 16 | // Ensure proper structure formats |
| 17 | // |
| 18 | #pragma pack(1) |
| 19 | |
| 20 | /// |
| 21 | /// Memory Mapped Configuration Space Access Table (MCFG) |
| 22 | /// This table is a basic description table header followed by |
| 23 | /// a number of base address allocation structures. |
| 24 | /// |
| 25 | typedef struct { |
| 26 | UINT64 BaseAddress; |
| 27 | UINT16 PciSegmentGroupNumber; |
| 28 | UINT8 StartBusNumber; |
| 29 | UINT8 EndBusNumber; |
| 30 | UINT32 Reserved; |
| 31 | } EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE; |
| 32 | |
| 33 | /// |
| 34 | /// MCFG Table header definition. The rest of the table |
| 35 | /// must be defined in a platform specific manner. |
| 36 | /// |
| 37 | typedef struct { |
| 38 | EFI_ACPI_DESCRIPTION_HEADER Header; |
| 39 | UINT64 Reserved; |
| 40 | } EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER; |
| 41 | |
| 42 | /// |
| 43 | /// MCFG Revision (defined in spec) |
| 44 | /// |
| 45 | #define EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION 0x01 |
| 46 | |
| 47 | #pragma pack() |
| 48 | |
| 49 | #endif |