Update DMAR and SRAT table definitions.

Synchronized tables with current specifications.
This commit is contained in:
Robert Moore 2008-05-16 10:04:17 -07:00
parent 2a6f5e2ab0
commit b622e9f4d8

59
source/include/actbl1.h Normal file → Executable file
View File

@ -423,6 +423,7 @@ typedef struct acpi_table_dbgp
/*******************************************************************************
*
* DMAR - DMA Remapping table
* From "Intel Virtualization Technology for Directed I/O", Sept. 2007
*
******************************************************************************/
@ -430,7 +431,8 @@ typedef struct acpi_table_dmar
{
ACPI_TABLE_HEADER Header; /* Common ACPI table header */
UINT8 Width; /* Host Address Width */
UINT8 Reserved[11];
UINT8 Flags;
UINT8 Reserved[10];
} ACPI_TABLE_DMAR;
@ -440,8 +442,6 @@ typedef struct acpi_dmar_header
{
UINT16 Type;
UINT16 Length;
UINT8 Flags;
UINT8 Reserved[3];
} ACPI_DMAR_HEADER;
@ -451,14 +451,16 @@ enum AcpiDmarType
{
ACPI_DMAR_TYPE_HARDWARE_UNIT = 0,
ACPI_DMAR_TYPE_RESERVED_MEMORY = 1,
ACPI_DMAR_TYPE_RESERVED = 2 /* 2 and greater are reserved */
ACPI_DMAR_TYPE_ATSR = 2,
ACPI_DMAR_TYPE_RESERVED = 3 /* 3 and greater are reserved */
};
typedef struct acpi_dmar_device_scope
{
UINT8 EntryType;
UINT8 Length;
UINT8 Segment;
UINT16 Reserved;
UINT8 EnumerationId;
UINT8 Bus;
} ACPI_DMAR_DEVICE_SCOPE;
@ -470,9 +472,17 @@ enum AcpiDmarScopeType
ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0,
ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1,
ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2,
ACPI_DMAR_SCOPE_TYPE_RESERVED = 3 /* 3 and greater are reserved */
ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3,
ACPI_DMAR_SCOPE_TYPE_HPET = 4,
ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */
};
typedef struct acpi_dmar_pci_path
{
UINT8 Device;
UINT8 Function;
} ACPI_DMAR_PCI_PATH;
/*
* DMAR Sub-tables, correspond to Type in ACPI_DMAR_HEADER
@ -483,6 +493,9 @@ enum AcpiDmarScopeType
typedef struct acpi_dmar_hardware_unit
{
ACPI_DMAR_HEADER Header;
UINT8 Flags;
UINT8 Reserved;
UINT16 Segment;
UINT64 Address; /* Register Base Address */
} ACPI_DMAR_HARDWARE_UNIT;
@ -496,7 +509,9 @@ typedef struct acpi_dmar_hardware_unit
typedef struct acpi_dmar_reserved_memory
{
ACPI_DMAR_HEADER Header;
UINT64 Address; /* 4K aligned base address */
UINT16 Reserved;
UINT16 Segment;
UINT64 BaseAddress; /* 4K aligned base address */
UINT64 EndAddress; /* 4K aligned limit address */
} ACPI_DMAR_RESERVED_MEMORY;
@ -505,6 +520,21 @@ typedef struct acpi_dmar_reserved_memory
#define ACPI_DMAR_ALLOW_ALL (1)
/* 2: Root Port ATS Capability Reporting Structure */
typedef struct acpi_dmar_atsr
{
ACPI_DMAR_HEADER Header;
UINT8 Flags;
UINT8 Reserved;
UINT16 Segment;
} ACPI_DMAR_ATSR;
/* Flags */
#define ACPI_DMAR_ALL_PORTS (1)
/*******************************************************************************
*
@ -1420,9 +1450,9 @@ typedef struct acpi_srat_mem_affinity
UINT16 Reserved; /* Reserved, must be zero */
UINT64 BaseAddress;
UINT64 Length;
UINT32 MemoryType; /* See acpi_address_range_id */
UINT32 Reserved1;
UINT32 Flags;
UINT64 Reserved1; /* Reserved, must be zero */
UINT64 Reserved2; /* Reserved, must be zero */
} ACPI_SRAT_MEM_AFFINITY;
@ -1432,17 +1462,6 @@ typedef struct acpi_srat_mem_affinity
#define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */
#define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */
/* Memory types */
enum acpi_address_range_id
{
ACPI_ADDRESS_RANGE_MEMORY = 1,
ACPI_ADDRESS_RANGE_RESERVED = 2,
ACPI_ADDRESS_RANGE_ACPI = 3,
ACPI_ADDRESS_RANGE_NVS = 4,
ACPI_ADDRESS_RANGE_COUNT = 5
};
/*******************************************************************************
*