Home | History | Annotate | Download | only in Mcfg
      1 /*++
      2 
      3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials are licensed and made available under
      6   the terms and conditions of the BSD License that accompanies this distribution.
      7   The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php.
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 
     14 
     15 Module Name:
     16 
     17   Mcfg.c
     18 
     19 Abstract:
     20 
     21   This file contains a structure definition for the ACPI Memory mapped
     22   configuration space base address Description Table (MCFG).  Any changes
     23   to the MCFG table require updating the respective structure count in
     24   Mcfg.h and then adding the structure to the MCFG defined in this file.
     25   The table layout is defined in Mcfg.h and the table contents are defined
     26   in McfgTable.h and Mcfg.h.
     27 
     28 --*/
     29 
     30 //
     31 // Statements that include other files
     32 //
     33 #include <Mcfg.h>
     34 
     35 //
     36 // MCFG Table definition
     37 //
     38 EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE MCFG = {
     39   EFI_ACPI_3_0_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE,
     40   sizeof (EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE),
     41   EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_REVISION,
     42   //
     43   // Checksum will be updated at runtime
     44   //
     45   0x00,
     46   //
     47   // It is expected that these values will be programmed at runtime
     48   //
     49   ' ',
     50   ' ',
     51   ' ',
     52   ' ',
     53   ' ',
     54   ' ',
     55 
     56   0,
     57   EFI_ACPI_OEM_MCFG_REVISION,
     58   0,
     59   0,
     60   //
     61   // Beginning of MCFG specific fields
     62   //
     63   EFI_ACPI_RESERVED_QWORD,
     64   //
     65   // Sample Memory Mapped Configuration Space Base Address Structure
     66   //
     67   // 0x0,                                                              // Base Address
     68   // 0x0,                                                              // PCI Segment Group Number
     69   // 0x0,                                                              // Start Bus Number
     70   // 0x0,                                                              // End Bus Number
     71   // EFI_ACPI_RESERVED_DWORD,                                          // Reserved
     72   //
     73   // Memory Mapped Configuration Space Base Address Structure
     74   //
     75   0x0,                      // Base Address, will be updated by AcpiPlatform
     76   0x0,                      // PCI Segment Group Number
     77   0x0,                      // Start Bus Number
     78   PLATFORM_MAX_BUS_NUM,     // End Bus Number
     79   EFI_ACPI_RESERVED_DWORD,  // Reserved
     80 };
     81 
     82 VOID*
     83 ReferenceAcpiTable (
     84   VOID
     85   )
     86 {
     87   //
     88   // Reference the table being generated to prevent the optimizer from
     89   // removing the data structure from the executable
     90   //
     91   return (VOID*)&MCFG;
     92 }
     93