Mcfg.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /** @file
  2. ACPI Memory mapped configuration space base address Description Table
  3. implementation, based on PCI Firmware Specification Revision 3.0 final draft,
  4. downloadable at http://www.pcisig.com/home
  5. @copyright
  6. Copyright 1999 - 2019 Intel Corporation. <BR>
  7. SPDX-License-Identifier: BSD-2-Clause-Patent
  8. **/
  9. #ifndef _MCFG_H_
  10. #define _MCFG_H_
  11. //
  12. // Statements that include other files
  13. //
  14. #include <IndustryStandard/Acpi.h>
  15. #include <IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h>
  16. #include "Platform.h"
  17. //
  18. // "MCFG" Static Resource Affinity Table
  19. //
  20. #define EFI_ACPI_6_2_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE 0x4746434D
  21. //
  22. // MCFG Definitions, see specification for details.
  23. //
  24. #define EFI_ACPI_OEM_MCFG_REVISION 0x00000001
  25. //
  26. // Define the number of each table type.
  27. // This is where the table layout is modified.
  28. //
  29. #define EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRESS_STRUCTURE_COUNT MAX_SOCKET
  30. //
  31. // MCFG Table definition. The table must be defined in a platform
  32. // specific manner.
  33. //
  34. //
  35. // Ensure proper structure formats
  36. //
  37. #pragma pack(1)
  38. typedef struct {
  39. EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER Header;
  40. #if EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRESS_STRUCTURE_COUNT > 0
  41. EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE Segment[
  42. EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRESS_STRUCTURE_COUNT];
  43. #endif
  44. } EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE;
  45. #pragma pack()
  46. #endif // _MCFG_H_