svn commit: r323614 - head/usr.sbin/acpi/acpidump
Scott Long
scottl at FreeBSD.org
Fri Sep 15 15:41:09 UTC 2017
Author: scottl
Date: Fri Sep 15 15:41:07 2017
New Revision: 323614
URL: https://svnweb.freebsd.org/changeset/base/323614
Log:
Add support for parsing the Watchdog Descriptor Table (WDDT)
Sponsored by: Netflix
Modified:
head/usr.sbin/acpi/acpidump/acpi.c
head/usr.sbin/acpi/acpidump/acpidump.8
Modified: head/usr.sbin/acpi/acpidump/acpi.c
==============================================================================
--- head/usr.sbin/acpi/acpidump/acpi.c Fri Sep 15 14:59:35 2017 (r323613)
+++ head/usr.sbin/acpi/acpidump/acpi.c Fri Sep 15 15:41:07 2017 (r323614)
@@ -65,6 +65,7 @@ static void acpi_handle_ecdt(ACPI_TABLE_HEADER *sdp);
static void acpi_handle_hpet(ACPI_TABLE_HEADER *sdp);
static void acpi_handle_mcfg(ACPI_TABLE_HEADER *sdp);
static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp);
+static void acpi_handle_wddt(ACPI_TABLE_HEADER *sdp);
static void acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain,
uint32_t flags);
static void acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp);
@@ -679,6 +680,40 @@ acpi_handle_slit(ACPI_TABLE_HEADER *sdp)
}
static void
+acpi_handle_wddt(ACPI_TABLE_HEADER *sdp)
+{
+ ACPI_TABLE_WDDT *wddt;
+
+ printf(BEGIN_COMMENT);
+ acpi_print_sdt(sdp);
+ wddt = (ACPI_TABLE_WDDT *)sdp;
+ printf("\tSpecVersion=0x%04x, TableVersion=0x%04x\n",
+ wddt->SpecVersion, wddt->TableVersion);
+ printf("\tPciVendorId=0x%04x, Address=", wddt->PciVendorId);
+ acpi_print_gas(&wddt->Address);
+ printf("\n\tMaxCount=%u, MinCount=%u, Period=%ums\n",
+ wddt->MaxCount, wddt->MinCount, wddt->Period);
+
+#define PRINTFLAG(var, flag) printflag((var), ACPI_WDDT_## flag, #flag)
+ printf("\tStatus=");
+ PRINTFLAG(wddt->Status, AVAILABLE);
+ PRINTFLAG(wddt->Status, ACTIVE);
+ PRINTFLAG(wddt->Status, TCO_OS_OWNED);
+ PRINTFLAG(wddt->Status, USER_RESET);
+ PRINTFLAG(wddt->Status, WDT_RESET);
+ PRINTFLAG(wddt->Status, POWER_FAIL);
+ PRINTFLAG(wddt->Status, UNKNOWN_RESET);
+ PRINTFLAG_END();
+ printf("\tCapability=");
+ PRINTFLAG(wddt->Capability, AUTO_RESET);
+ PRINTFLAG(wddt->Capability, ALERT_SUPPORT);
+ PRINTFLAG_END();
+#undef PRINTFLAG
+
+ printf(END_COMMENT);
+}
+
+static void
acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain,
uint32_t flags)
{
@@ -1654,6 +1689,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp)
acpi_handle_dmar(sdp);
else if (!memcmp(sdp->Signature, ACPI_SIG_NFIT, 4))
acpi_handle_nfit(sdp);
+ else if (!memcmp(sdp->Signature, ACPI_SIG_WDDT, 4))
+ acpi_handle_wddt(sdp);
else {
printf(BEGIN_COMMENT);
acpi_print_sdt(sdp);
Modified: head/usr.sbin/acpi/acpidump/acpidump.8
==============================================================================
--- head/usr.sbin/acpi/acpidump/acpidump.8 Fri Sep 15 14:59:35 2017 (r323613)
+++ head/usr.sbin/acpi/acpidump/acpidump.8 Fri Sep 15 15:41:07 2017 (r323614)
@@ -107,6 +107,7 @@ utility dumps contents of the following tables:
.It MCFG
.It RSD PTR
.It RSDT
+.It WDDT
.El
.Pp
The RSDT contains a pointer to the physical memory address of the FACP
More information about the svn-src-head
mailing list