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///
29typedef 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///
41typedef 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