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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to