diff options
author | Bob Moore <robert.moore@intel.com> | 2007-02-02 11:48:19 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-02 21:14:22 -0500 |
commit | 2502fffb1958da66fa50a475081cb6827acdd9f3 (patch) | |
tree | 204c0626f7fcffd1ce86eac259aa452fdac79687 /include/acpi/actbl1.h | |
parent | ad71860a17ba33eb0e673e9e2cf5ba0d8e3e3fdd (diff) |
ACPICA: Add support for DMAR table
Implement support for ACPI DMAR table (DMA
Remapping Table) in header files and disassembler.
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi/actbl1.h')
-rw-r--r-- | include/acpi/actbl1.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index 8ae30b7ed652..515d82c5ec63 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h | |||
@@ -61,6 +61,7 @@ | |||
61 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ | 61 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ |
62 | #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ | 62 | #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ |
63 | #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ | 63 | #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ |
64 | #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ | ||
64 | #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ | 65 | #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ |
65 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ | 66 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ |
66 | #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ | 67 | #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ |
@@ -228,6 +229,78 @@ struct acpi_table_dbgp { | |||
228 | 229 | ||
229 | /******************************************************************************* | 230 | /******************************************************************************* |
230 | * | 231 | * |
232 | * DMAR - DMA Remapping table | ||
233 | * | ||
234 | ******************************************************************************/ | ||
235 | |||
236 | struct acpi_table_dmar { | ||
237 | struct acpi_table_header header; /* Common ACPI table header */ | ||
238 | u8 width; /* Host Address Width */ | ||
239 | u8 reserved[11]; | ||
240 | }; | ||
241 | |||
242 | /* DMAR subtable header */ | ||
243 | |||
244 | struct acpi_dmar_header { | ||
245 | u16 type; | ||
246 | u16 length; | ||
247 | u8 flags; | ||
248 | u8 reserved[3]; | ||
249 | }; | ||
250 | |||
251 | /* Values for subtable type in struct acpi_dmar_header */ | ||
252 | |||
253 | enum acpi_dmar_type { | ||
254 | ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, | ||
255 | ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, | ||
256 | ACPI_DMAR_TYPE_RESERVED = 2 /* 2 and greater are reserved */ | ||
257 | }; | ||
258 | |||
259 | struct acpi_dmar_device_scope { | ||
260 | u8 entry_type; | ||
261 | u8 length; | ||
262 | u8 segment; | ||
263 | u8 bus; | ||
264 | }; | ||
265 | |||
266 | /* Values for entry_type in struct acpi_dmar_device_scope */ | ||
267 | |||
268 | enum acpi_dmar_scope_type { | ||
269 | ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, | ||
270 | ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1, | ||
271 | ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, | ||
272 | ACPI_DMAR_SCOPE_TYPE_RESERVED = 3 /* 3 and greater are reserved */ | ||
273 | }; | ||
274 | |||
275 | /* | ||
276 | * DMAR Sub-tables, correspond to Type in struct acpi_dmar_header | ||
277 | */ | ||
278 | |||
279 | /* 0: Hardware Unit Definition */ | ||
280 | |||
281 | struct acpi_dmar_hardware_unit { | ||
282 | struct acpi_dmar_header header; | ||
283 | u64 address; /* Register Base Address */ | ||
284 | }; | ||
285 | |||
286 | /* Flags */ | ||
287 | |||
288 | #define ACPI_DMAR_INCLUDE_ALL (1) | ||
289 | |||
290 | /* 1: Reserved Memory Defininition */ | ||
291 | |||
292 | struct acpi_dmar_reserved_memory { | ||
293 | struct acpi_dmar_header header; | ||
294 | u64 address; /* 4_k aligned base address */ | ||
295 | u64 end_address; /* 4_k aligned limit address */ | ||
296 | }; | ||
297 | |||
298 | /* Flags */ | ||
299 | |||
300 | #define ACPI_DMAR_ALLOW_ALL (1) | ||
301 | |||
302 | /******************************************************************************* | ||
303 | * | ||
231 | * ECDT - Embedded Controller Boot Resources Table | 304 | * ECDT - Embedded Controller Boot Resources Table |
232 | * | 305 | * |
233 | ******************************************************************************/ | 306 | ******************************************************************************/ |