Module Name: src Committed By: msaitoh Date: Wed Oct 3 09:52:59 UTC 2018
Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Decode DMAR's ANDD (ACPI Name Space). - Add X2APIC_MODE flag of DMAR. Note that Intel's VT-d's document says the flag's name is DMA_CTRL_PLATFORM_OPT_IN but actbl1.h says it's DMAR_X2APIC_MODE. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/usr.sbin/acpitools/acpidump/acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/acpitools/acpidump/acpi.c diff -u src/usr.sbin/acpitools/acpidump/acpi.c:1.30 src/usr.sbin/acpitools/acpidump/acpi.c:1.31 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.30 Wed Oct 3 09:46:11 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Oct 3 09:52:59 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.30 2018/10/03 09:46:11 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.31 2018/10/03 09:52:59 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: acpi.c,v 1.30 2018/10/03 09:46:11 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.31 2018/10/03 09:52:59 msaitoh Exp $"); #include <sys/param.h> #include <sys/endian.h> @@ -2520,6 +2520,8 @@ devscope_type2str(int type) return ("IOAPIC"); case 4: return ("HPET"); + case 5: + return ("ACPI Name space"); default: snprintf(typebuf, sizeof(typebuf), "%d", type); return (typebuf); @@ -2667,6 +2669,17 @@ acpi_handle_dmar_rhsa(ACPI_DMAR_RHSA *rh printf("\tProximityDomain=0x%08x\n", rhsa->ProximityDomain); } +static void +acpi_handle_dmar_andd(ACPI_DMAR_ANDD *andd) +{ + + printf("\n"); + printf("\tType=ANDD\n"); + printf("\tLength=%d\n", andd->Header.Length); + printf("\tDeviceNumber=%d\n", andd->DeviceNumber); + printf("\tDeviceName=0x%s\n", andd->DeviceName); +} + static int acpi_handle_dmar_remapping_structure(void *addr, int remaining) { @@ -2691,6 +2704,9 @@ acpi_handle_dmar_remapping_structure(voi case ACPI_DMAR_TYPE_HARDWARE_AFFINITY: acpi_handle_dmar_rhsa(addr); break; + case ACPI_DMAR_TYPE_NAMESPACE: + acpi_handle_dmar_andd(addr); + break; default: printf("\n"); printf("\tType=%d\n", hdr->Type); @@ -2721,6 +2737,7 @@ acpi_handle_dmar(ACPI_TABLE_HEADER *sdp) printf("\tFlags="); PRINTFLAG(dmar->Flags, INTR_REMAP); PRINTFLAG(dmar->Flags, X2APIC_OPT_OUT); + PRINTFLAG(dmar->Flags, X2APIC_MODE); PRINTFLAG_END(); #undef PRINTFLAG