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 - 2008, Intel Corporation. All rights reserved.<BR> 7 This program and the accompanying materials 8 are licensed and made available under the terms and conditions of the BSD License 9 which accompanies this distribution. The full text of the license may be found at 10 http://opensource.org/licenses/bsd-license.php 11 12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 **/ 15 16 #ifndef _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ 17 #define _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ 18 19 // 20 // Ensure proper structure formats 21 // 22 #pragma pack(1) 23 24 /// 25 /// Memory Mapped Configuration Space Access Table (MCFG) 26 /// This table is a basic description table header followed by 27 /// a number of base address allocation structures. 28 /// 29 typedef struct { 30 UINT64 BaseAddress; 31 UINT16 PciSegmentGroupNumber; 32 UINT8 StartBusNumber; 33 UINT8 EndBusNumber; 34 UINT32 Reserved; 35 } EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE; 36 37 /// 38 /// MCFG Table header definition. The rest of the table 39 /// must be defined in a platform specific manner. 40 /// 41 typedef struct { 42 EFI_ACPI_DESCRIPTION_HEADER Header; 43 UINT64 Reserved; 44 } EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER; 45 46 /// 47 /// MCFG Revision (defined in spec) 48 /// 49 #define EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION 0x01 50 51 #pragma pack() 52 53 #endif 54