CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun May 12 23:00:21 UTC 2024 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: s/iast/iasl/ from FreeBSD. To generate a diff of this commit: cvs rdiff -u -r1.55 -r1.56 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.55 src/usr.sbin/acpitools/acpidump/acpi.c:1.56 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.55 Tue May 24 20:50:21 2022 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sun May 12 23:00:21 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.55 2022/05/24 20:50:21 andvar Exp $ */ +/* $NetBSD: acpi.c,v 1.56 2024/05/12 23:00:21 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.55 2022/05/24 20:50:21 andvar Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.56 2024/05/12 23:00:21 msaitoh Exp $"); #include #include @@ -4719,7 +4719,7 @@ aml_disassemble(ACPI_TABLE_HEADER *rsdt, goto out; } if (status != 0) { - fprintf(stderr, "iast exit status = %d\n", status); + fprintf(stderr, "iasl exit status = %d\n", status); } /* Dump iasl's output to stdout */
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun May 12 23:00:21 UTC 2024 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: s/iast/iasl/ from FreeBSD. To generate a diff of this commit: cvs rdiff -u -r1.55 -r1.56 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: skrll Date: Mon Nov 8 10:19:42 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpi_print_gicc_flags: print {en,dis}abled To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 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.52 src/usr.sbin/acpitools/acpidump/acpi.c:1.53 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.52 Sun Sep 19 10:34:10 2021 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Nov 8 10:19:42 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.52 2021/09/19 10:34:10 andvar Exp $ */ +/* $NetBSD: acpi.c,v 1.53 2021/11/08 10:19:42 skrll Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.52 2021/09/19 10:34:10 andvar Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.53 2021/11/08 10:19:42 skrll Exp $"); #include #include @@ -979,7 +979,12 @@ static void acpi_print_gicc_flags(uint32_t flags) { - printf("\tFlags={Performance intr="); + printf("\tFlags={"); + if (flags & ACPI_MADT_ENABLED) + printf("enabled"); + else + printf("disabled"); + printf(", Performance intr="); if (flags & ACPI_MADT_PERFORMANCE_IRQ_MODE) printf("edge"); else
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: skrll Date: Mon Nov 8 10:19:42 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpi_print_gicc_flags: print {en,dis}abled To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 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.
Re: CVS commit: src/usr.sbin/acpitools/acpidump
On 2021/09/15 8:30, Jason Thorpe wrote: On Sep 14, 2021, at 1:34 PM, Roland Illig wrote: When lint runs on the code, it defines the preprocessor macro 'lint' to be 1. Due to that, this name cannot be used as a regular identifier. Perhaps all of the "#ifdef lint" conditions should become "#ifdef __lint__"? Agreed. lint should not pollute public namespace. Thanks, rin
Re: CVS commit: src/usr.sbin/acpitools/acpidump
> On Sep 14, 2021, at 1:34 PM, Roland Illig wrote: > > When lint runs on the code, it defines the preprocessor macro 'lint' to > be 1. Due to that, this name cannot be used as a regular identifier. Perhaps all of the "#ifdef lint" conditions should become "#ifdef __lint__"? -- thorpej
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: rillig Date: Tue Sep 14 20:34:36 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpidump: fix lint errors When lint runs on the code, it defines the preprocessor macro 'lint' to be 1. Due to that, this name cannot be used as a regular identifier. acpi.c(86): error: syntax error '1' [249] acpi.c(1004): error: syntax error '1' [249] acpi.c(2422): error: void function acpi_print_lpit cannot return value [213] The FreeBSD code doesn't need this name change since lint is specific to NetBSD. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 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.50 src/usr.sbin/acpitools/acpidump/acpi.c:1.51 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.50 Wed Jan 20 15:27:51 2021 +++ src/usr.sbin/acpitools/acpidump/acpi.c Tue Sep 14 20:34:36 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.50 2021/01/20 15:27:51 skrll Exp $ */ +/* $NetBSD: acpi.c,v 1.51 2021/09/14 20:34:36 rillig Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.50 2021/01/20 15:27:51 skrll Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.51 2021/09/14 20:34:36 rillig Exp $"); #include #include @@ -83,7 +83,7 @@ static void acpi_print_io_apic(uint32_t uint64_t apic_addr); static void acpi_print_mps_flags(uint16_t flags); static void acpi_print_intr(uint32_t intr, uint16_t mps_flags); -static void acpi_print_local_nmi(u_int lint, uint16_t mps_flags); +static void acpi_print_local_nmi(u_int local_int, uint16_t mps_flags); static void acpi_print_madt(ACPI_SUBTABLE_HEADER *mp); static void acpi_handle_bert(ACPI_TABLE_HEADER *sdp); static void acpi_handle_bgrt(ACPI_TABLE_HEADER *sdp); @@ -1001,10 +1001,10 @@ acpi_print_intr(uint32_t intr, uint16_t } static void -acpi_print_local_nmi(u_int lint, uint16_t mps_flags) +acpi_print_local_nmi(u_int local_int, uint16_t mps_flags) { - printf("\tLINT Pin=%d\n", lint); + printf("\tLINT Pin=%d\n", local_int); acpi_print_mps_flags(mps_flags); } @@ -2419,7 +2419,7 @@ acpi_print_lpit(ACPI_LPIT_HEADER *lpit) #undef PRINTFLAG if (lpit->Type == ACPI_LPIT_TYPE_NATIVE_CSTATE) - return acpi_print_native_lpit((ACPI_LPIT_NATIVE *)lpit); + acpi_print_native_lpit((ACPI_LPIT_NATIVE *)lpit); } static void
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: rillig Date: Tue Sep 14 20:34:36 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpidump: fix lint errors When lint runs on the code, it defines the preprocessor macro 'lint' to be 1. Due to that, this name cannot be used as a regular identifier. acpi.c(86): error: syntax error '1' [249] acpi.c(1004): error: syntax error '1' [249] acpi.c(2422): error: void function acpi_print_lpit cannot return value [213] The FreeBSD code doesn't need this name change since lint is specific to NetBSD. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: skrll Date: Wed Jan 20 15:27:51 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Consistently use ACPI_SIG_SSDT To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: skrll Date: Wed Jan 20 15:27:51 UTC 2021 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Consistently use ACPI_SIG_SSDT To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 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.49 src/usr.sbin/acpitools/acpidump/acpi.c:1.50 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.49 Mon Dec 14 10:18:28 2020 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Jan 20 15:27:51 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.49 2020/12/14 10:18:28 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.50 2021/01/20 15:27:51 skrll Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.49 2020/12/14 10:18:28 jmcneill Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.50 2021/01/20 15:27:51 skrll Exp $"); #include #include @@ -4625,11 +4625,11 @@ write_dsdt(int fd, ACPI_TABLE_HEADER *rs /* Write out any SSDTs (if present.) */ if (rsdt != NULL) { - ssdt = sdt_from_rsdt(rsdt, "SSDT", NULL); + ssdt = sdt_from_rsdt(rsdt, ACPI_SIG_SSDT, NULL); while (ssdt != NULL) { write(fd, ssdt + 1, ssdt->Length - sizeof(ACPI_TABLE_HEADER)); - ssdt = sdt_from_rsdt(rsdt, "SSDT", ssdt); + ssdt = sdt_from_rsdt(rsdt, ACPI_SIG_SSDT, ssdt); } } return (0);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Mon Dec 14 10:18:28 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: MAsk -> Mask, spotted by rillig@ To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 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.48 src/usr.sbin/acpitools/acpidump/acpi.c:1.49 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.48 Sat Dec 12 16:08:39 2020 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Dec 14 10:18:28 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.48 2020/12/12 16:08:39 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.49 2020/12/14 10:18:28 jmcneill Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.48 2020/12/12 16:08:39 jmcneill Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.49 2020/12/14 10:18:28 jmcneill Exp $"); #include #include @@ -2648,7 +2648,7 @@ acpi_print_pcct_ext_pcc_master(ACPI_PCCT acpi_print_gas(>CmdUpdateRegister); printf("\n"); printf("\tCommand Update Preserve Mask=0x%016jx\n", subspace->CmdUpdatePreserveMask); - printf("\tCommand Update Set MAsk=0x%016jx\n", subspace->CmdUpdateSetMask); + printf("\tCommand Update Set Mask=0x%016jx\n", subspace->CmdUpdateSetMask); printf("\tError Status Register="); acpi_print_gas(>ErrorStatusRegister); printf("\n"); @@ -2694,7 +2694,7 @@ acpi_print_pcct_ext_pcc_slave(ACPI_PCCT_ acpi_print_gas(>CmdUpdateRegister); printf("\n"); printf("\tCommand Update Preserve Mask=0x%016jx\n", subspace->CmdUpdatePreserveMask); - printf("\tCommand Update Set MAsk=0x%016jx\n", subspace->CmdUpdateSetMask); + printf("\tCommand Update Set Mask=0x%016jx\n", subspace->CmdUpdateSetMask); printf("\tError Status Register="); acpi_print_gas(>ErrorStatusRegister); printf("\n");
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Mon Dec 14 10:18:28 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: MAsk -> Mask, spotted by rillig@ To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Sat Dec 12 16:08:39 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add support for decoding Platform Communications Channel Tables ("PCCT"). To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 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.47 src/usr.sbin/acpitools/acpidump/acpi.c:1.48 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.47 Sun Dec 6 18:38:58 2020 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sat Dec 12 16:08:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.47 2020/12/06 18:38:58 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.48 2020/12/12 16:08:39 jmcneill Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.47 2020/12/06 18:38:58 jmcneill Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.48 2020/12/12 16:08:39 jmcneill Exp $"); #include #include @@ -103,6 +103,7 @@ static void acpi_handle_msct(ACPI_TABLE_ 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_pcct(ACPI_TABLE_HEADER *sdp); static void acpi_handle_pptt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_sbst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp); @@ -2532,6 +2533,222 @@ acpi_handle_mcfg(ACPI_TABLE_HEADER *sdp) } static void +acpi_print_pcct_subspace(ACPI_PCCT_SUBSPACE *subspace) +{ + printf("\tType=Generic Subspace\n"); + printf("\tBase Address=0x%016jx\n", subspace->BaseAddress); + printf("\tLength=%jd\n", subspace->Length); + printf("\tDoorbell Address="); + acpi_print_gas(>DoorbellRegister); + printf("\n"); + printf("\tDoorbell Preserve=0x%016jx\n", subspace->PreserveMask); + printf("\tDoorbell Write=0x%016jx\n", subspace->WriteMask); + printf("\tLatency=%u us\n", subspace->Latency); + printf("\tMax Access Rate=%u\n", subspace->MaxAccessRate); + printf("\tMin Turnaround Time=%u us\n", subspace->MinTurnaroundTime); +} + +static void +acpi_print_pcct_hw_reduced(ACPI_PCCT_HW_REDUCED *subspace) +{ + printf("\tType=HW-reduced Subspace\n"); + printf("\tPlatform Interrupt=%u", subspace->PlatformInterrupt); + if (subspace->Flags & ACPI_PCCT_INTERRUPT_POLARITY) { + printf(", Edge triggered"); + } else { + printf(", Level triggered"); + } + if (subspace->Flags & ACPI_PCCT_INTERRUPT_MODE) { + printf(", Active low"); + } else { + printf(", Active high"); + } + printf("\n"); + printf("\tBase Address=0x%016jx\n", subspace->BaseAddress); + printf("\tLength=%jd\n", subspace->Length); + printf("\tDoorbell Register="); + acpi_print_gas(>DoorbellRegister); + printf("\n"); + printf("\tDoorbell Preserve=0x%016jx\n", subspace->PreserveMask); + printf("\tDoorbell Write=0x%016jx\n", subspace->WriteMask); + printf("\tLatency=%u us\n", subspace->Latency); + printf("\tMax Access Rate=%u\n", subspace->MaxAccessRate); + printf("\tMin Turnaround Time=%u us\n", subspace->MinTurnaroundTime); +} + +static void +acpi_print_pcct_hw_reduced_type2(ACPI_PCCT_HW_REDUCED_TYPE2 *subspace) +{ + printf("\tType=HW-reduced Subspace Type 2\n"); + printf("\tPlatform Interrupt=%u", subspace->PlatformInterrupt); + if (subspace->Flags & ACPI_PCCT_INTERRUPT_POLARITY) { + printf(", Edge triggered"); + } else { + printf(", Level triggered"); + } + if (subspace->Flags & ACPI_PCCT_INTERRUPT_MODE) { + printf(", Active low"); + } else { + printf(", Active high"); + } + printf("\n"); + printf("\tBase Address=0x%016jx\n", subspace->BaseAddress); + printf("\tLength=%jd\n", subspace->Length); + printf("\tDoorbell Register="); + acpi_print_gas(>DoorbellRegister); + printf("\n"); + printf("\tDoorbell Preserve=0x%016jx\n", subspace->PreserveMask); + printf("\tDoorbell Write=0x%016jx\n", subspace->WriteMask); + printf("\tLatency=%u us\n", subspace->Latency); + printf("\tMax Access Rate=%u\n", subspace->MaxAccessRate); + printf("\tMin Turnaround Time=%u us\n", subspace->MinTurnaroundTime); + printf("\tPlatform Interrupt Ack Register="); + acpi_print_gas(>PlatformAckRegister); + printf("\n"); + printf("\tPlatform Interrupt Ack Preserve=0x%016jx\n", subspace->AckPreserveMask); + printf("\tPlatform Interrupt Ack Write=0x%016jx\n", subspace->AckWriteMask); +} + +static void +acpi_print_pcct_ext_pcc_master(ACPI_PCCT_EXT_PCC_MASTER *subspace) +{ + printf("\tType=Extended PCC Master Subspace\n"); + printf("\tPlatform Interrupt=%u", subspace->PlatformInterrupt); + if (subspace->Flags & ACPI_PCCT_INTERRUPT_POLARITY) { + printf(", Edge triggered"); + } else { + printf(", Level triggered"); + } + if (subspace->Flags & ACPI_PCCT_INTERRUPT_MODE) { + printf(", Active low"); + } else { + printf(", Active high"); + } + printf("\n"); +
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Sat Dec 12 16:08:39 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add support for decoding Platform Communications Channel Tables ("PCCT"). To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Sun Dec 6 18:38:58 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpidump: Do not print FACS if HW_REDUCED flag is set. According to ACPI 6.3 spec, FACS is optional when HW_REDUCED is set. ACPICA ignores the FACS completely when HW_REDUCED is set, so we need to follow suit since it is not available through /dev/acpi as the table is not installed. To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 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.46 src/usr.sbin/acpitools/acpidump/acpi.c:1.47 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.46 Sat Jun 22 12:39:40 2019 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sun Dec 6 18:38:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.46 2019/06/22 12:39:40 maxv Exp $ */ +/* $NetBSD: acpi.c,v 1.47 2020/12/06 18:38:58 jmcneill Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.46 2019/06/22 12:39:40 maxv Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.47 2020/12/06 18:38:58 jmcneill Exp $"); #include #include @@ -836,7 +836,7 @@ acpi_handle_fadt(ACPI_TABLE_HEADER *sdp) if (acpi_select_address(fadt->Facs, fadt->XFacs) == 0) { if ((fadt->Flags & ACPI_FADT_HW_REDUCED) == 0) errx(EXIT_FAILURE, "Missing FACS and HW_REDUCED_ACPI flag not set in FADT"); - } else { + } else if ((fadt->Flags & ACPI_FADT_HW_REDUCED) == 0) { facs = (ACPI_TABLE_FACS *)acpi_map_sdt( acpi_select_address(fadt->Facs, fadt->XFacs)); if (memcmp(facs->Signature, ACPI_SIG_FACS, 4) != 0 || facs->Length < 64)
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Sun Dec 6 18:38:58 UTC 2020 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpidump: Do not print FACS if HW_REDUCED flag is set. According to ACPI 6.3 spec, FACS is optional when HW_REDUCED is set. ACPICA ignores the FACS completely when HW_REDUCED is set, so we need to follow suit since it is not available through /dev/acpi as the table is not installed. To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: maxv Date: Sat Jun 22 12:39:40 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Dump TPM2. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: maxv Date: Sat Jun 22 12:39:40 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Dump TPM2. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/acpitools/acpidump/acpidump.8 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.45 src/usr.sbin/acpitools/acpidump/acpi.c:1.46 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.45 Mon Apr 29 02:49:35 2019 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sat Jun 22 12:39:40 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.45 2019/04/29 02:49:35 dogcow Exp $ */ +/* $NetBSD: acpi.c,v 1.46 2019/06/22 12:39:40 maxv Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.45 2019/04/29 02:49:35 dogcow Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.46 2019/06/22 12:39:40 maxv Exp $"); #include #include @@ -115,6 +115,7 @@ static void acpi_print_srat_memory(ACPI_ static void acpi_print_srat(ACPI_SUBTABLE_HEADER *srat); static void acpi_handle_srat(ACPI_TABLE_HEADER *sdp); static void acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_tpm2(ACPI_TABLE_HEADER *sdp); static void acpi_print_nfit(ACPI_NFIT_HEADER *nfit); static void acpi_handle_nfit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_uefi(ACPI_TABLE_HEADER *sdp); @@ -3339,6 +3340,31 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) printf(END_COMMENT); } +static void +acpi_handle_tpm2(ACPI_TABLE_HEADER *sdp) +{ + ACPI_TABLE_TPM2 *tpm2; + const char *class; + + printf(BEGIN_COMMENT); + + acpi_print_sdt(sdp); + tpm2 = (ACPI_TABLE_TPM2 *)sdp; + + if (tpm2->PlatformClass == 0) { + class = "Client"; + } else if (tpm2->PlatformClass == 1) { + class = "Server"; + } else { + class = "Unknown"; + } + printf("\tClass=%s (%u)\n", class, tpm2->PlatformClass); + printf("\tControl Address=0x%"PRIx64"\n", tpm2->ControlAddress); + printf("\tStart Method=%u\n", tpm2->StartMethod); + + printf(END_COMMENT); +} + static const char * devscope_type2str(int type) { @@ -4297,6 +4323,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp acpi_handle_srat(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_TCPA, 4)) acpi_handle_tcpa(sdp); + else if (!memcmp(sdp->Signature, ACPI_SIG_TPM2, 4)) + acpi_handle_tpm2(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_NFIT, 4)) acpi_handle_nfit(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_UEFI, 4)) Index: src/usr.sbin/acpitools/acpidump/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.15 src/usr.sbin/acpitools/acpidump/acpidump.8:1.16 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.15 Sun Dec 2 10:51:07 2018 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Sat Jun 22 12:39:40 2019 @@ -1,4 +1,4 @@ -.\" $NetBSD: acpidump.8,v 1.15 2018/12/02 10:51:07 msaitoh Exp $ +.\" $NetBSD: acpidump.8,v 1.16 2019/06/22 12:39:40 maxv Exp $ .\" ACPI (ACPI Package) .\" .\" Copyright (c) 1999 Doug Rabson @@ -30,7 +30,7 @@ .\" .\" $FreeBSD: head/usr.sbin/acpi/acpidump/acpidump.8 267668 2014-06-20 09:57:27Z bapt $ .\" -.Dd December 2, 2018 +.Dd June 22, 2019 .Dt ACPIDUMP 8 .Os .Sh NAME @@ -128,6 +128,7 @@ utility dumps contents of the following .It SPMI .It SRAT .It TCPA +.It TPM2 .It UEFI .It WAET .It WDAT
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: dogcow Date: Mon Apr 29 02:49:35 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpica 20190405 changed some internal macros; update code to match To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 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.44 src/usr.sbin/acpitools/acpidump/acpi.c:1.45 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.44 Sat Feb 9 16:00:41 2019 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Apr 29 02:49:35 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.44 2019/02/09 16:00:41 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.45 2019/04/29 02:49:35 dogcow Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.44 2019/02/09 16:00:41 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.45 2019/04/29 02:49:35 dogcow Exp $"); #include #include @@ -3855,7 +3855,7 @@ static void acpi_print_sdt(ACPI_TABLE_HEADER *sdp) { printf(" "); - acpi_print_string(sdp->Signature, ACPI_NAME_SIZE); + acpi_print_string(sdp->Signature, ACPI_NAMESEG_SIZE); printf(": Length=%d, Revision=%d, Checksum=%d", sdp->Length, sdp->Revision, sdp->Checksum); if (acpi_checksum(sdp, sdp->Length)) @@ -3866,7 +3866,7 @@ acpi_print_sdt(ACPI_TABLE_HEADER *sdp) acpi_print_string(sdp->OemTableId, ACPI_OEM_TABLE_ID_SIZE); printf(", OEM Revision=0x%x,\n", sdp->OemRevision); printf("\tCreator ID="); - acpi_print_string(sdp->AslCompilerId, ACPI_NAME_SIZE); + acpi_print_string(sdp->AslCompilerId, ACPI_NAMESEG_SIZE); printf(", Creator Revision=0x%x\n", sdp->AslCompilerRevision); }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: dogcow Date: Mon Apr 29 02:49:35 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: acpica 20190405 changed some internal macros; update code to match To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sat Feb 9 16:00:42 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add missing newline. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 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.43 src/usr.sbin/acpitools/acpidump/acpi.c:1.44 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.43 Sun Dec 30 05:05:21 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sat Feb 9 16:00:41 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.43 2018/12/30 05:05:21 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.44 2019/02/09 16:00:41 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.43 2018/12/30 05:05:21 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.44 2019/02/09 16:00:41 msaitoh Exp $"); #include #include @@ -717,7 +717,7 @@ acpi_print_hest_generic_v2(ACPI_HEST_GEN printf("\tError Status Address"); acpi_print_gas(>ReadAckRegister); - printf("\tRead Ack Preserve=0x%016jx\n", + printf("\n\tRead Ack Preserve=0x%016jx\n", (uintmax_t)data->ReadAckPreserve); printf("\tRead Ack Write=0x%016jx\n", (uintmax_t)data->ReadAckWrite); @@ -2050,7 +2050,7 @@ acpi_handle_hpet(ACPI_TABLE_HEADER *sdp) printf("\tHPET Number=%d\n", hpet->Sequence); printf("\tADDR="); acpi_print_gas(>Address); - printf("\tHW Rev=0x%x\n", hpet->Id & ACPI_HPET_ID_HARDWARE_REV_ID); + printf("\n\tHW Rev=0x%x\n", hpet->Id & ACPI_HPET_ID_HARDWARE_REV_ID); printf("\tComparators=%d\n", (hpet->Id & ACPI_HPET_ID_COMPARATORS) >> 8); printf("\tCounter Size=%d\n", hpet->Id & ACPI_HPET_ID_COUNT_SIZE_CAP ? @@ -2385,13 +2385,14 @@ acpi_print_native_lpit(ACPI_LPIT_NATIVE { printf("\tEntryTrigger="); acpi_print_gas(>EntryTrigger); - printf("\tResidency=%u\n", nl->Residency); + printf("\n\tResidency=%u\n", nl->Residency); printf("\tLatency=%u\n", nl->Latency); if (nl->Header.Flags & ACPI_LPIT_NO_COUNTER) printf("\tResidencyCounter=Not Present"); else { printf("\tResidencyCounter="); acpi_print_gas(>ResidencyCounter); + printf("\n"); } if (nl->CounterFrequency) printf("\tCounterFrequency=%ju\n", nl->CounterFrequency); @@ -3818,8 +3819,9 @@ acpi_handle_wdrt(ACPI_TABLE_HEADER *sdp) printf("\tControl Register="); acpi_print_gas(>ControlRegister); - printf("\tCount Register="); + printf("\n\tCount Register="); acpi_print_gas(>CountRegister); + printf("\n"); acpi_print_pci(wdrt->PciVendorId, wdrt->PciDeviceId, wdrt->PciSegment, wdrt->PciBus, wdrt->PciDevice, wdrt->PciFunction);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sat Feb 9 16:00:42 UTC 2019 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add missing newline. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun Dec 30 05:05:22 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix acpi_print_string(). Treat NUL termination correctly to not to print NUL character. For example, this change prints an OEMID "41 4d 44 00 41 4d" with "AMD". Tested by Patrick Welche. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 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.42 src/usr.sbin/acpitools/acpidump/acpi.c:1.43 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.42 Sun Dec 2 10:51:07 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sun Dec 30 05:05:21 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.42 2018/12/02 10:51:07 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.43 2018/12/30 05:05:21 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.42 2018/12/02 10:51:07 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.43 2018/12/30 05:05:21 msaitoh Exp $"); #include #include @@ -215,6 +215,8 @@ acpi_print_string(char *s, size_t length while (length--) { c = *s++; + if (c == '\0') + return; putchar(c); } }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun Dec 30 05:05:22 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix acpi_print_string(). Treat NUL termination correctly to not to print NUL character. For example, this change prints an OEMID "41 4d 44 00 41 4d" with "AMD". Tested by Patrick Welche. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun Dec 2 10:51:07 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode IO Remapping Table. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.14 -r1.15 src/usr.sbin/acpitools/acpidump/acpidump.8 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.41 src/usr.sbin/acpitools/acpidump/acpi.c:1.42 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.41 Sun Nov 11 00:24:01 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sun Dec 2 10:51:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.41 2018/11/11 00:24:01 maya Exp $ */ +/* $NetBSD: acpi.c,v 1.42 2018/12/02 10:51:07 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.41 2018/11/11 00:24:01 maya Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.42 2018/12/02 10:51:07 msaitoh Exp $"); #include #include @@ -96,6 +96,7 @@ static void acpi_handle_einj(ACPI_TABLE_ static void acpi_handle_erst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_gtdt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_hest(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_iort(ACPI_TABLE_HEADER *sdp); static void acpi_handle_lpit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_madt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_msct(ACPI_TABLE_HEADER *sdp); @@ -2063,6 +2064,320 @@ acpi_handle_hpet(ACPI_TABLE_HEADER *sdp) printf(END_COMMENT); } +/* + * IORT + * I/O Remapping Table + */ + +static void acpi_print_iort_its_group(ACPI_IORT_NODE *); +static void acpi_print_iort_named_component(ACPI_IORT_NODE *); +static void acpi_print_iort_root_complex(ACPI_IORT_NODE *); +static void acpi_print_iort_smmuv1v2(ACPI_IORT_NODE *); +static void acpi_print_iort_smmuv3(ACPI_IORT_NODE *); + +struct iort_node_list { + uint8_t Type; + const char *gname; + void (*func)(ACPI_IORT_NODE *); +} iort_node_list [] = { +#define NDMAC(name) ACPI_IORT_NODE_## name +#define PRFN(name) acpi_print_iort_## name + { NDMAC(ITS_GROUP), "ITS group", PRFN(its_group)}, + { NDMAC(NAMED_COMPONENT), "Named component", PRFN(named_component)}, + { NDMAC(PCI_ROOT_COMPLEX), "Root complex",PRFN(root_complex)}, + { NDMAC(SMMU), "SMMUv1 or v2",PRFN(smmuv1v2)}, + { NDMAC(SMMU_V3), "SMMUv3", PRFN(smmuv3)}, + { 255, NULL, NULL}, +#undef NDMAC +#undef PRFN +}; + +static void +acpi_print_iort_memory_access(ACPI_IORT_MEMORY_ACCESS *memacc) +{ + + printf("\tMemory Access={\n"); + printf("\t\tCacheCoherency="); + switch (memacc->CacheCoherency) { + case ACPI_IORT_NODE_COHERENT: + printf("Fully coherent\n"); + break; + case ACPI_IORT_NODE_NOT_COHERENT: + printf("Not coherent\n"); + break; + default: + printf("resrved (%u)\n", memacc->CacheCoherency); + break; + } + printf("\t\tAllocation Hints="); +#define PRINTFLAG(var, flag) printflag((var), ACPI_IORT_HT_## flag, #flag) + PRINTFLAG(memacc->Hints, TRANSIENT); + PRINTFLAG(memacc->Hints, WRITE); + PRINTFLAG(memacc->Hints, READ); + PRINTFLAG(memacc->Hints, OVERRIDE); + PRINTFLAG_END(); +#undef PRINTFLAG + printf("\t\tMemory Access Flags="); +#define PRINTFLAG(var, flag) printflag((var), ACPI_IORT_MF_## flag, #flag) + PRINTFLAG(memacc->MemoryFlags, COHERENCY); + PRINTFLAG(memacc->MemoryFlags, ATTRIBUTES); + PRINTFLAG_END(); +#undef PRINTFLAG + printf("\t}\n"); +} + +static void +acpi_print_iort_its_group(ACPI_IORT_NODE *node) +{ + ACPI_IORT_ITS_GROUP *itsg = (ACPI_IORT_ITS_GROUP *)node->NodeData; + uint32_t *idp; + unsigned int i; + + idp = itsg->Identifiers; + for (i = 0; i < itsg->ItsCount; i++) + printf("\tGIC ITS ID=%d\n", idp[i]); +} + +static void +acpi_print_iort_named_component(ACPI_IORT_NODE *node) +{ + ACPI_IORT_NAMED_COMPONENT *ncomp + = (ACPI_IORT_NAMED_COMPONENT *)node->NodeData; + +#define PRINTFLAG(var, flag) printflag((var), ACPI_IORT_NC_## flag, #flag) + printf("\tNode Flags={PASID_BITS=%u", + (ncomp->NodeFlags & ACPI_IORT_NC_PASID_BITS) >> 1); + pf_sep = ','; + PRINTFLAG(ncomp->NodeFlags, STALL_SUPPORTED); + PRINTFLAG_END(); +#undef PRINTFLAG + acpi_print_iort_memory_access( + (ACPI_IORT_MEMORY_ACCESS *)>MemoryProperties); + printf("\tMemory address size=%hhu\n", ncomp->MemoryAddressLimit); + printf("\tDevice object Name=%s\n", ncomp->DeviceName); +} + +static void +acpi_print_iort_root_complex(ACPI_IORT_NODE *node) +{ + ACPI_IORT_ROOT_COMPLEX *rcmp + = (ACPI_IORT_ROOT_COMPLEX *)node->NodeData; + + acpi_print_iort_memory_access( + (ACPI_IORT_MEMORY_ACCESS *)>MemoryProperties); + printf("\tATS Attribute=%s\n", + (rcmp->AtsAttribute & ACPI_IORT_ATS_SUPPORTED) + ? "supported" : "not supported"); + printf("\tPCI Segment=%u\n", rcmp->PciSegmentNumber); + printf("\tMemory address size
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Sun Dec 2 10:51:07 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode IO Remapping Table. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.14 -r1.15 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: maya Date: Sun Nov 11 00:24:01 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: & promotes to int already, so clang warns about the hh modifier. (and we use -Werror) ok xtos To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: maya Date: Sun Nov 11 00:24:01 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: & promotes to int already, so clang warns about the hh modifier. (and we use -Werror) ok xtos To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 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.40 src/usr.sbin/acpitools/acpidump/acpi.c:1.41 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.40 Mon Nov 5 07:39:57 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sun Nov 11 00:24:01 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.40 2018/11/05 07:39:57 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.41 2018/11/11 00:24:01 maya Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.40 2018/11/05 07:39:57 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.41 2018/11/11 00:24:01 maya Exp $"); #include #include @@ -1236,7 +1236,7 @@ acpi_handle_bgrt(ACPI_TABLE_HEADER *sdp) degree = ((unsigned int)(bgrt->Status & ACPI_BGRT_ORIENTATION_OFFSET) >> 1) * 90; printf("\tDegree=%u\n", degree); - printf("\tDisplayed=%hhu\n", bgrt->Status & ACPI_BGRT_DISPLAYED); + printf("\tDisplayed=%u\n", bgrt->Status & ACPI_BGRT_DISPLAYED); printf("\tImage Type="); switch (bgrt->ImageType) { case 0:
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Nov 5 07:39:57 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode Boot Graghics Resource Table (BGRT). To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Nov 5 07:39:57 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode Boot Graghics Resource Table (BGRT). To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/acpitools/acpidump/acpidump.8 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.39 src/usr.sbin/acpitools/acpidump/acpi.c:1.40 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.39 Thu Nov 1 03:08:46 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Nov 5 07:39:57 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.39 2018/11/01 03:08:46 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.40 2018/11/05 07:39:57 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.39 2018/11/01 03:08:46 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.40 2018/11/05 07:39:57 msaitoh Exp $"); #include #include @@ -86,6 +86,7 @@ static void acpi_print_intr(uint32_t int static void acpi_print_local_nmi(u_int lint, uint16_t mps_flags); static void acpi_print_madt(ACPI_SUBTABLE_HEADER *mp); static void acpi_handle_bert(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_bgrt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_boot(ACPI_TABLE_HEADER *sdp); static void acpi_handle_cpep(ACPI_TABLE_HEADER *sdp); static void acpi_handle_csrt(ACPI_TABLE_HEADER *sdp); @@ -1222,6 +1223,37 @@ acpi_handle_bert(ACPI_TABLE_HEADER *sdp) } static void +acpi_handle_bgrt(ACPI_TABLE_HEADER *sdp) +{ + ACPI_TABLE_BGRT *bgrt; + unsigned int degree; + + printf(BEGIN_COMMENT); + acpi_print_sdt(sdp); + bgrt = (ACPI_TABLE_BGRT *)sdp; + + printf("\tVersion=%hu\n", bgrt->Version); + degree = ((unsigned int)(bgrt->Status & ACPI_BGRT_ORIENTATION_OFFSET) + >> 1) * 90; + printf("\tDegree=%u\n", degree); + printf("\tDisplayed=%hhu\n", bgrt->Status & ACPI_BGRT_DISPLAYED); + printf("\tImage Type="); + switch (bgrt->ImageType) { + case 0: + printf("Bitmap\n"); + break; + default: + printf("reserved (0x%hhx)\n", bgrt->ImageType); + break; + } + printf("\tImage Address=0x%"PRIx64"\n", bgrt->ImageAddress); + printf("\tImage Offset X=0x%08x\n", bgrt->ImageOffsetX); + printf("\tImage Offset Y=0x%08x\n", bgrt->ImageOffsetY); + + printf(END_COMMENT); +} + +static void acpi_handle_boot(ACPI_TABLE_HEADER *sdp) { ACPI_TABLE_BOOT *boot; @@ -3896,6 +3928,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp acpi_handle_fadt(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_BERT, 4)) acpi_handle_bert(sdp); + else if (!memcmp(sdp->Signature, ACPI_SIG_BGRT, 4)) + acpi_handle_bgrt(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_BOOT, 4)) acpi_handle_boot(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_CPEP, 4)) Index: src/usr.sbin/acpitools/acpidump/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.13 src/usr.sbin/acpitools/acpidump/acpidump.8:1.14 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.13 Thu Nov 1 03:08:46 2018 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Mon Nov 5 07:39:57 2018 @@ -1,4 +1,4 @@ -.\" $NetBSD: acpidump.8,v 1.13 2018/11/01 03:08:46 msaitoh Exp $ +.\" $NetBSD: acpidump.8,v 1.14 2018/11/05 07:39:57 msaitoh Exp $ .\" ACPI (ACPI Package) .\" .\" Copyright (c) 1999 Doug Rabson @@ -30,7 +30,7 @@ .\" .\" $FreeBSD: head/usr.sbin/acpi/acpidump/acpidump.8 267668 2014-06-20 09:57:27Z bapt $ .\" -.Dd November 1, 2018 +.Dd November 5, 2018 .Dt ACPIDUMP 8 .Os .Sh NAME @@ -97,6 +97,7 @@ utility dumps contents of the following .Bl -tag -offset indent -width 12345 -compact .It APIC .It BERT +.It BGRT .It BOOT .It CPEP .It CSRT
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Nov 1 03:08:46 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode CSRT (Core System Resources Table). To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.12 -r1.13 src/usr.sbin/acpitools/acpidump/acpidump.8 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.38 src/usr.sbin/acpitools/acpidump/acpi.c:1.39 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.38 Thu Oct 18 05:20:05 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Nov 1 03:08:46 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.38 2018/10/18 05:20:05 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.39 2018/11/01 03:08:46 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.38 2018/10/18 05:20:05 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.39 2018/11/01 03:08:46 msaitoh Exp $"); #include #include @@ -40,6 +40,7 @@ __RCSID("$NetBSD: acpi.c,v 1.38 2018/10/ #include #include #include +#include #include #include #include @@ -53,7 +54,11 @@ __RCSID("$NetBSD: acpi.c,v 1.38 2018/10/ #define BEGIN_COMMENT "/*\n" #define END_COMMENT " */\n" +/* Commonly used helper functions */ static void acpi_print_string(char *s, size_t length); +static void acpi_print_tabs(unsigned int n); +static void acpi_dump_bytes(uint8_t *p, uint32_t len, unsigned int ntabs); +static void acpi_dump_table(ACPI_TABLE_HEADER *sdp); static void acpi_print_gas(ACPI_GENERIC_ADDRESS *gas); static void acpi_print_pci(uint16_t vendorid, uint16_t deviceid, uint8_t seg, uint8_t bus, uint8_t device, uint8_t func); @@ -68,6 +73,8 @@ static void acpi_print_whea(ACPI_WHEA_HE void (*print_ins)(ACPI_WHEA_HEADER *), void (*print_flags)(ACPI_WHEA_HEADER *)); static uint64_t acpi_select_address(uint32_t, uint64_t); + +/* Handlers for each table */ static void acpi_handle_fadt(ACPI_TABLE_HEADER *fadt); static void acpi_print_cpu(u_char cpu_id); static void acpi_print_cpu_uid(uint32_t uid, char *uid_string); @@ -81,6 +88,7 @@ static void acpi_print_madt(ACPI_SUBTABL static void acpi_handle_bert(ACPI_TABLE_HEADER *sdp); static void acpi_handle_boot(ACPI_TABLE_HEADER *sdp); static void acpi_handle_cpep(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_csrt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_dbgp(ACPI_TABLE_HEADER *sdp); static void acpi_handle_dbg2(ACPI_TABLE_HEADER *sdp); static void acpi_handle_einj(ACPI_TABLE_HEADER *sdp); @@ -113,7 +121,6 @@ static void acpi_handle_wdat(ACPI_TABLE_ static void acpi_handle_wddt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_wdrt(ACPI_TABLE_HEADER *sdp); static void acpi_print_sdt(ACPI_TABLE_HEADER *sdp); -static void acpi_dump_bytes(ACPI_TABLE_HEADER *sdp); static void acpi_print_fadt(ACPI_TABLE_HEADER *sdp); static void acpi_print_facs(ACPI_TABLE_FACS *facs); static void acpi_print_dsdt(ACPI_TABLE_HEADER *dsdp); @@ -1249,6 +1256,130 @@ acpi_handle_cpep(ACPI_TABLE_HEADER *sdp) } static void +acpi_print_csrt_resource_group(ACPI_CSRT_GROUP *grp) +{ + ACPI_CSRT_DESCRIPTOR *desc; + + printf("\tLength=%u\n", grp->Length); + printf("\tVendorId="); + acpi_print_string((char *)>VendorId, 4); + printf("\n"); + if (grp->SubvendorId != 0) { + printf("\tSubvendorId="); + acpi_print_string((char *)>SubvendorId, 4); + printf("\n"); + } + printf("\tDeviceId=0x%08x\n", grp->DeviceId); + if (grp->SubdeviceId != 0) + printf("\tSubdeviceId=0x%08x\n", grp->SubdeviceId); + printf("\tRevision=%hu\n", grp->Revision); + printf("\tSharedInfoLength=%u\n", grp->SharedInfoLength); + + /* Next is Shared Info */ + if (grp->SharedInfoLength != 0) { + printf("\tShared Info "); + acpi_dump_bytes((uint8_t *)(grp + 1), + grp->SharedInfoLength, 1); + } + + /* And then, Resource Descriptors */ + desc = (ACPI_CSRT_DESCRIPTOR *) + ((vaddr_t)(grp + 1) + grp->SharedInfoLength); + while (desc < (ACPI_CSRT_DESCRIPTOR *)((vaddr_t)grp + grp->Length)) { + bool unknownsubytpe = false; + printf("\n\tLength=%u\n", desc->Length); + printf("\tResource Type="); + switch (desc->Type) { + case ACPI_CSRT_TYPE_INTERRUPT: + printf("Interrupt"); + switch (desc->Subtype) { + case ACPI_CSRT_XRUPT_LINE: +printf("(Interrupt line)\n"); +break; + case ACPI_CSRT_XRUPT_CONTROLLER: +printf("(Interrupt controller)\n"); +break; + default: +unknownsubytpe = true; +break; + } + break; + case ACPI_CSRT_TYPE_TIMER: + printf("Timer"); + switch (desc->Subtype) { + case ACPI_CSRT_TIMER: +printf("\n"); +break; + default: +unknownsubytpe = true; +break; + } + break; + case ACPI_CSRT_TYPE_DMA: + printf("DMA"); + switch (desc->Subtype) { + case
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Nov 1 03:08:46 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode CSRT (Core System Resources Table). To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.12 -r1.13 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Oct 19 05:04:45 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.8 Log Message: Add GTDT and PPTT. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/acpitools/acpidump/acpidump.8 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/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.11 src/usr.sbin/acpitools/acpidump/acpidump.8:1.12 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.11 Wed Oct 3 09:46:11 2018 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Fri Oct 19 05:04:45 2018 @@ -1,4 +1,4 @@ -.\" $NetBSD: acpidump.8,v 1.11 2018/10/03 09:46:11 msaitoh Exp $ +.\" $NetBSD: acpidump.8,v 1.12 2018/10/19 05:04:45 msaitoh Exp $ .\" ACPI (ACPI Package) .\" .\" Copyright (c) 1999 Doug Rabson @@ -30,7 +30,7 @@ .\" .\" $FreeBSD: head/usr.sbin/acpi/acpidump/acpidump.8 267668 2014-06-20 09:57:27Z bapt $ .\" -.Dd October 3, 2018 +.Dd October 19, 2018 .Dt ACPIDUMP 8 .Os .Sh NAME @@ -108,6 +108,7 @@ utility dumps contents of the following .It ERST .It FACS .It FADT +.It GTDT .It HEST .It HPET .It LPIT @@ -115,6 +116,7 @@ utility dumps contents of the following .It MCFG .It MSCT .It NFIT +.It PPTT .It RSD PTR .It RSDT .It SBST
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Oct 19 05:04:45 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.8 Log Message: Add GTDT and PPTT. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 05:20:06 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix output of Cache type in PPTT. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 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.37 src/usr.sbin/acpitools/acpidump/acpi.c:1.38 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.37 Thu Oct 18 05:04:44 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Oct 18 05:20:05 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.37 2018/10/18 05:04:44 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.38 2018/10/18 05:20:05 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.37 2018/10/18 05:04:44 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.38 2018/10/18 05:20:05 msaitoh Exp $"); #include #include @@ -2102,8 +2102,7 @@ acpi_print_pptt_cache(ACPI_PPTT_CACHE *c printf("\tAssociativity=%d\n", cache->Associativity); if (cache->Flags & ACPI_PPTT_ALLOCATION_TYPE_VALID) { printf("\tAllocation type="); - switch (__SHIFTOUT(cache->Attributes, - ACPI_PPTT_MASK_ALLOCATION_TYPE)) { + switch (cache->Attributes & ACPI_PPTT_MASK_ALLOCATION_TYPE) { case ACPI_PPTT_CACHE_READ_ALLOCATE: printf("Read allocate\n"); break; @@ -2118,8 +2117,7 @@ acpi_print_pptt_cache(ACPI_PPTT_CACHE *c } if (cache->Flags & ACPI_PPTT_CACHE_TYPE_VALID) { printf("\tCache type="); - switch (__SHIFTOUT(cache->Attributes, - ACPI_PPTT_MASK_CACHE_TYPE)) { + switch (cache->Attributes & ACPI_PPTT_MASK_CACHE_TYPE) { case ACPI_PPTT_CACHE_TYPE_DATA: printf("Data\n"); break;
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 05:20:06 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix output of Cache type in PPTT. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 05:04:44 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't print X_PM_TMR_BLK if the address value is 0. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 05:04:44 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't print X_PM_TMR_BLK if the address value is 0. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 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.36 src/usr.sbin/acpitools/acpidump/acpi.c:1.37 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.36 Thu Oct 18 04:52:00 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Oct 18 05:04:44 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.36 2018/10/18 04:52:00 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.37 2018/10/18 05:04:44 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.36 2018/10/18 04:52:00 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.37 2018/10/18 05:04:44 msaitoh Exp $"); #include #include @@ -3589,8 +3589,10 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) printf("\n\tX_PM2_CNT_BLK="); acpi_print_gas(>XPm2ControlBlock); } - printf("\n\tX_PM_TMR_BLK="); - acpi_print_gas(>XPmTimerBlock); + if (fadt->XPmTimerBlock.Address != 0) { + printf("\n\tX_PM_TMR_BLK="); + acpi_print_gas(>XPmTimerBlock); + } if (fadt->XGpe0Block.Address != 0) { printf("\n\tX_GPE0_BLK="); acpi_print_gas(>XGpe0Block);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:52:00 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't print PM_TMR_BLK if the value is 0 (see also acpi_timer.c rev. 1.23). To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 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.35 src/usr.sbin/acpitools/acpidump/acpi.c:1.36 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.35 Thu Oct 18 04:29:44 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Oct 18 04:52:00 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.35 2018/10/18 04:29:44 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.36 2018/10/18 04:52:00 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.35 2018/10/18 04:29:44 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.36 2018/10/18 04:52:00 msaitoh Exp $"); #include #include @@ -3490,9 +3490,10 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) printf("\tPM2_CNT_BLK=0x%x-0x%x\n", fadt->Pm2ControlBlock, fadt->Pm2ControlBlock + fadt->Pm2ControlLength - 1); - printf("\tPM_TMR_BLK=0x%x-0x%x\n", - fadt->PmTimerBlock, - fadt->PmTimerBlock + fadt->PmTimerLength - 1); + if (fadt->PmTimerBlock != 0) + printf("\tPM_TMR_BLK=0x%x-0x%x\n", + fadt->PmTimerBlock, + fadt->PmTimerBlock + fadt->PmTimerLength - 1); if (fadt->Gpe0Block != 0) printf("\tGPE0_BLK=0x%x-0x%x\n", fadt->Gpe0Block,
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:52:00 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't print PM_TMR_BLK if the value is 0 (see also acpi_timer.c rev. 1.23). To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:29:44 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Decode Generic Timer Description Table(GTDT) and Processor Properties Topology Table(PPTT). Cosmetic changes and fixes might be required. Testesd by jmcneill. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 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.34 src/usr.sbin/acpitools/acpidump/acpi.c:1.35 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.34 Thu Oct 18 04:25:34 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Oct 18 04:29:44 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.34 2018/10/18 04:25:34 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.35 2018/10/18 04:29:44 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.34 2018/10/18 04:25:34 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.35 2018/10/18 04:29:44 msaitoh Exp $"); #include #include @@ -85,6 +85,7 @@ static void acpi_handle_dbgp(ACPI_TABLE_ static void acpi_handle_dbg2(ACPI_TABLE_HEADER *sdp); static void acpi_handle_einj(ACPI_TABLE_HEADER *sdp); static void acpi_handle_erst(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_gtdt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_hest(ACPI_TABLE_HEADER *sdp); static void acpi_handle_lpit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_madt(ACPI_TABLE_HEADER *sdp); @@ -92,6 +93,7 @@ static void acpi_handle_msct(ACPI_TABLE_ 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_pptt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_sbst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_spcr(ACPI_TABLE_HEADER *sdp); @@ -1679,6 +1681,182 @@ acpi_handle_erst(ACPI_TABLE_HEADER *sdp) } static void +acpi_print_gtd_timer(const char *name, uint32_t interrupt, uint32_t flags) +{ + + printf("\t%s Timer GSIV=%d\n", name, interrupt); + printf("\t%s Flags={Mode=", name); + if (flags & ACPI_GTDT_INTERRUPT_MODE) + printf("edge"); + else + printf("level"); + printf(", Polarity="); + if (flags & ACPI_GTDT_INTERRUPT_POLARITY) + printf("active-lo"); + else + printf("active-hi"); + if (flags & ACPI_GTDT_ALWAYS_ON) + printf(", always-on"); + printf("}\n"); +} + +static void +acpi_print_gtd_block_timer_flags(const char *name, uint32_t interrupt, +uint32_t flags) +{ + + printf("\t\t%s Timer GSIV=%d\n", name, interrupt); + printf("\t\t%s Timer Flags={Mode=", name); + if (flags & ACPI_GTDT_GT_IRQ_MODE) + printf("Secure"); + else + printf("Non-Secure"); + printf(", Polarity="); + if (flags & ACPI_GTDT_GT_IRQ_POLARITY) + printf("active-lo"); + else + printf("active-hi"); + printf("}\n"); +} + +static void +acpi_print_gtblock(ACPI_GTDT_TIMER_BLOCK *gtblock) +{ + ACPI_GTDT_TIMER_ENTRY *entry; + unsigned int i; + + printf("\tType=GT Block\n"); + printf("\tLength=%d\n", gtblock->Header.Length); + /* XXX might not 8byte aligned */ + printf("\tBlockAddress=%016jx\n", + (uintmax_t)gtblock->BlockAddress); + + printf("\tGT Block Timer Count=%d\n", gtblock->TimerCount); + entry = (ACPI_GTDT_TIMER_ENTRY *)((vaddr_t)gtblock + + gtblock->TimerOffset); + for (i = 0; i < gtblock->TimerCount; i++) { + printf("\n"); + if (entry >= (ACPI_GTDT_TIMER_ENTRY *)((vaddr_t)gtblock + + gtblock->Header.Length)) { + printf("\\ttWrong Timer entry\n"); + break; + } + printf("\t\tFrame Number=%d\n", entry->FrameNumber); + /* XXX might not 8byte aligned */ + printf("\t\tBaseAddress=%016jx\n", + (uintmax_t)entry->BaseAddress); + /* XXX might not 8byte aligned */ + printf("\t\tEl0BaseAddress=%016jx\n", + (uintmax_t)entry->El0BaseAddress); + + acpi_print_gtd_block_timer_flags("Physical", + entry->TimerInterrupt, entry->TimerFlags); + acpi_print_gtd_block_timer_flags("Virtual", + entry->VirtualTimerInterrupt, entry->VirtualTimerFlags); + + printf("\t\tCommon Flags={Mode="); + if (entry->CommonFlags & ACPI_GTDT_GT_IS_SECURE_TIMER) + printf("Secure"); + else + printf("Non-Secure"); + if (entry->CommonFlags & ACPI_GTDT_GT_ALWAYS_ON) + printf(", always-on"); + printf("}\n"); + + entry++; + } +} + +static void +acpi_print_sbsa_watchdog(ACPI_GTDT_WATCHDOG *wdog) +{ + + printf("\tType=Watchdog GT\n"); + printf("\tLength=%d\n", wdog->Header.Length); + /* XXX might not 8byte aligned */ + printf("\tRefreshFrameAddress=%016jx\n", + (uintmax_t)wdog->RefreshFrameAddress); + /* XXX might not 8byte aligned */ + printf("\tControlFrameAddress=%016jx\n", + (uintmax_t)wdog->ControlFrameAddress); + printf("\tGSIV=%d\n",
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:29:44 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Decode Generic Timer Description Table(GTDT) and Processor Properties Topology Table(PPTT). Cosmetic changes and fixes might be required. Testesd by jmcneill. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:25:35 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Print SPCR's Interface Type and ARMH GIC Interrupt Type. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 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.33 src/usr.sbin/acpitools/acpidump/acpi.c:1.34 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.33 Tue Oct 16 21:44:37 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Oct 18 04:25:34 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.33 2018/10/16 21:44:37 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.34 2018/10/18 04:25:34 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.33 2018/10/16 21:44:37 jmcneill Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.34 2018/10/18 04:25:34 msaitoh Exp $"); #include #include @@ -1270,6 +1270,39 @@ acpi_handle_dbgp(ACPI_TABLE_HEADER *sdp) printf(END_COMMENT); } +/* This function is used by DBG2 and SPCR. */ +static void +acpi_print_dbg2_serial_subtype(uint16_t subtype) +{ + + switch (subtype) { + case ACPI_DBG2_16550_COMPATIBLE: + printf("Fully 16550 compatible\n"); + break; + case ACPI_DBG2_16550_SUBSET: + printf("16550 subset with DBGP Rev. 1\n"); + break; + case ACPI_DBG2_ARM_PL011: + printf("ARM PL011\n"); + break; + case ACPI_DBG2_ARM_SBSA_32BIT: + printf("ARM SBSA 32bit only\n"); + break; + case ACPI_DBG2_ARM_SBSA_GENERIC: + printf("ARM SBSA Generic\n"); + break; + case ACPI_DBG2_ARM_DCC: + printf("ARM DCC\n"); + break; + case ACPI_DBG2_BCM2835: + printf("BCM2835\n"); + break; + default: + printf("reserved (%04hx)\n", subtype); + break; + } +} + static void acpi_print_dbg2_device(ACPI_DBG2_DEVICE *dev) { @@ -1293,32 +1326,7 @@ acpi_print_dbg2_device(ACPI_DBG2_DEVICE switch (dev->PortType) { case ACPI_DBG2_SERIAL_PORT: printf("Serial\n" "\t\tPortSubtype="); - switch (dev->PortSubtype) { - case ACPI_DBG2_16550_COMPATIBLE: - printf("Fully 16550 compatible\n"); - break; - case ACPI_DBG2_16550_SUBSET: - printf("16550 subset with DBGP Rev. 1\n"); - break; - case ACPI_DBG2_ARM_PL011: - printf("ARM PL011\n"); - break; - case ACPI_DBG2_ARM_SBSA_32BIT: - printf("ARM SBSA 32bit only\n"); - break; - case ACPI_DBG2_ARM_SBSA_GENERIC: - printf("ARM SBSA Generic\n"); - break; - case ACPI_DBG2_ARM_DCC: - printf("ARM DCC\n"); - break; - case ACPI_DBG2_BCM2835: - printf("BCM2835\n"); - break; - default: - printf("reserved (%04hx)\n", dev->PortSubtype); - break; - } + acpi_print_dbg2_serial_subtype(dev->PortSubtype); break; case ACPI_DBG2_1394_PORT: printf("IEEE1394\n" "\t\tPortSubtype="); @@ -1914,6 +1922,21 @@ acpi_handle_spcr(ACPI_TABLE_HEADER *sdp) acpi_print_sdt(sdp); spcr = (ACPI_TABLE_SPCR *)sdp; + printf("\n\tInterface Type="); + switch (sdp->Revision) { + case 1: + printf("full 16550%s\n", + (spcr->InterfaceType == 1) ? + "(must also accept writing FCR register)" : ""); + break; + case 2: + acpi_print_dbg2_serial_subtype(spcr->InterfaceType); + break; + default: + printf("unknown Revision\n"); + break; + } + printf("\tSerial Port="); acpi_print_gas(>SerialPort); printf("\n\tInterrupt Type={"); @@ -1936,6 +1959,9 @@ acpi_handle_spcr(ACPI_TABLE_HEADER *sdp) if (spcr->InterruptType & 0x4) { printf("\n\t\tIO SAPIC={ GSI=%d }", spcr->Interrupt); } + if (spcr->InterruptType & 0x8) { + printf("\n\t\tARMH GIC={ GSI=%d }", spcr->Interrupt); + } printf("\n\t}\n"); printf("\tBaud Rate=");
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Oct 18 04:25:35 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Print SPCR's Interface Type and ARMH GIC Interrupt Type. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Tue Oct 16 21:44:38 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: FACS is optional if the HW_REDUCED_ACPI flag is set in the FADT. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 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.32 src/usr.sbin/acpitools/acpidump/acpi.c:1.33 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.32 Fri Oct 5 05:09:31 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Tue Oct 16 21:44:37 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.32 2018/10/05 05:09:31 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.33 2018/10/16 21:44:37 jmcneill Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.32 2018/10/05 05:09:31 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.33 2018/10/16 21:44:37 jmcneill Exp $"); #include #include @@ -819,11 +819,16 @@ acpi_handle_fadt(ACPI_TABLE_HEADER *sdp) fadt = (ACPI_TABLE_FADT *)sdp; acpi_print_fadt(sdp); - facs = (ACPI_TABLE_FACS *)acpi_map_sdt( - acpi_select_address(fadt->Facs, fadt->XFacs)); - if (memcmp(facs->Signature, ACPI_SIG_FACS, 4) != 0 || facs->Length < 64) - errx(EXIT_FAILURE, "FACS is corrupt"); - acpi_print_facs(facs); + if (acpi_select_address(fadt->Facs, fadt->XFacs) == 0) { + if ((fadt->Flags & ACPI_FADT_HW_REDUCED) == 0) + errx(EXIT_FAILURE, "Missing FACS and HW_REDUCED_ACPI flag not set in FADT"); + } else { + facs = (ACPI_TABLE_FACS *)acpi_map_sdt( + acpi_select_address(fadt->Facs, fadt->XFacs)); + if (memcmp(facs->Signature, ACPI_SIG_FACS, 4) != 0 || facs->Length < 64) + errx(EXIT_FAILURE, "FACS is corrupt"); + acpi_print_facs(facs); + } dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt( acpi_select_address(fadt->Dsdt, fadt->XDsdt));
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Tue Oct 16 21:44:38 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: FACS is optional if the HW_REDUCED_ACPI flag is set in the FADT. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Oct 5 05:09:31 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Remove extra newline in SPMI table. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 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.31 src/usr.sbin/acpitools/acpidump/acpi.c:1.32 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.31 Wed Oct 3 09:52:59 2018 +++ src/usr.sbin/acpitools/acpidump/acpi.c Fri Oct 5 05:09:31 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.31 2018/10/03 09:52:59 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.32 2018/10/05 05:09:31 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.31 2018/10/03 09:52:59 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.32 2018/10/05 05:09:31 msaitoh Exp $"); #include #include @@ -2040,7 +2040,7 @@ acpi_handle_spmi(ACPI_TABLE_HEADER *sdp) printf("Reserved(%d)", spmi->InterfaceType); break; } - printf("\n\tSpecRevision=%d.%d\n", spmi->SpecRevision >> 8, + printf("\n\tSpecRevision=%d.%d", spmi->SpecRevision >> 8, spmi->SpecRevision & 0xff); printf("\n\tInterrupt Type={");
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Oct 5 05:09:31 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Remove extra newline in SPMI table. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 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.
CVS commit: src/usr.sbin/acpitools/acpidump
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 -__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 #include @@ -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
CVS commit: src/usr.sbin/acpitools/acpidump
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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Oct 3 09:46:11 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Add ACPI LPIT (Low Power Idle Table) from FreeBSD r336185. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/acpitools/acpidump/acpidump.8 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.29 src/usr.sbin/acpitools/acpidump/acpi.c:1.30 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.29 Thu Sep 28 06:55:08 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Oct 3 09:46:11 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.29 2017/09/28 06:55:08 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.30 2018/10/03 09:46:11 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.29 2017/09/28 06:55:08 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.30 2018/10/03 09:46:11 msaitoh Exp $"); #include #include @@ -86,6 +86,7 @@ static void acpi_handle_dbg2(ACPI_TABLE_ static void acpi_handle_einj(ACPI_TABLE_HEADER *sdp); static void acpi_handle_erst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_hest(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_lpit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_madt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_msct(ACPI_TABLE_HEADER *sdp); static void acpi_handle_ecdt(ACPI_TABLE_HEADER *sdp); @@ -1709,6 +1710,79 @@ acpi_handle_hpet(ACPI_TABLE_HEADER *sdp) } static void +acpi_print_native_lpit(ACPI_LPIT_NATIVE *nl) +{ + printf("\tEntryTrigger="); + acpi_print_gas(>EntryTrigger); + printf("\tResidency=%u\n", nl->Residency); + printf("\tLatency=%u\n", nl->Latency); + if (nl->Header.Flags & ACPI_LPIT_NO_COUNTER) + printf("\tResidencyCounter=Not Present"); + else { + printf("\tResidencyCounter="); + acpi_print_gas(>ResidencyCounter); + } + if (nl->CounterFrequency) + printf("\tCounterFrequency=%ju\n", nl->CounterFrequency); + else + printf("\tCounterFrequency=TSC\n"); +} + +static void +acpi_print_lpit(ACPI_LPIT_HEADER *lpit) +{ + if (lpit->Type == ACPI_LPIT_TYPE_NATIVE_CSTATE) + printf("\tType=ACPI_LPIT_TYPE_NATIVE_CSTATE\n"); + else + warnx("unknown LPIT type %u", lpit->Type); + + printf("\tLength=%u\n", lpit->Length); + printf("\tUniqueId=0x%04x\n", lpit->UniqueId); +#define PRINTFLAG(var, flag) printflag((var), ACPI_LPIT_## flag, #flag) + printf("\tFlags="); + PRINTFLAG(lpit->Flags, STATE_DISABLED); + PRINTFLAG_END(); +#undef PRINTFLAG + + if (lpit->Type == ACPI_LPIT_TYPE_NATIVE_CSTATE) + return acpi_print_native_lpit((ACPI_LPIT_NATIVE *)lpit); +} + +static void +acpi_walk_lpit(ACPI_TABLE_HEADER *table, void *first, +void (*action)(ACPI_LPIT_HEADER *)) +{ + ACPI_LPIT_HEADER *subtable; + char *end; + + subtable = first; + end = (char *)table + table->Length; + while ((char *)subtable < end) { + printf("\n"); + if (subtable->Length < sizeof(ACPI_LPIT_HEADER)) { + warnx("invalid subtable length %u", subtable->Length); + return; + } + action(subtable); + subtable = (ACPI_LPIT_HEADER *)((char *)subtable + + subtable->Length); + } +} + +static void +acpi_handle_lpit(ACPI_TABLE_HEADER *sdp) +{ + ACPI_TABLE_LPIT *lpit; + + printf(BEGIN_COMMENT); + acpi_print_sdt(sdp); + lpit = (ACPI_TABLE_LPIT *)sdp; + acpi_walk_lpit(sdp, (lpit + 1), acpi_print_lpit); + + printf(END_COMMENT); +} + +static void acpi_handle_msct(ACPI_TABLE_HEADER *sdp) { ACPI_TABLE_MSCT *msct; @@ -3323,6 +3397,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp acpi_handle_hpet(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_ECDT, 4)) acpi_handle_ecdt(sdp); + else if (!memcmp(sdp->Signature, ACPI_SIG_LPIT, 4)) + acpi_handle_lpit(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_MCFG, 4)) acpi_handle_mcfg(sdp); else if (!memcmp(sdp->Signature, ACPI_SIG_SBST, 4)) Index: src/usr.sbin/acpitools/acpidump/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.10 src/usr.sbin/acpitools/acpidump/acpidump.8:1.11 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.10 Fri Sep 1 18:35:50 2017 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Wed Oct 3 09:46:11 2018 @@ -1,4 +1,4 @@ -.\" $NetBSD: acpidump.8,v 1.10 2017/09/01 18:35:50 msaitoh Exp $ +.\" $NetBSD: acpidump.8,v 1.11 2018/10/03 09:46:11 msaitoh Exp $ .\" ACPI (ACPI Package) .\" .\" Copyright (c) 1999 Doug Rabson @@ -30,7 +30,7 @@ .\" .\" $FreeBSD: head/usr.sbin/acpi/acpidump/acpidump.8 267668 2014-06-20 09:57:27Z bapt $ .\" -.Dd September 1, 2017 +.Dd October 3, 2018 .Dt ACPIDUMP 8 .Os .Sh NAME @@ -110,6 +110,7 @@ utility dumps contents of the following .It FADT .It HEST .It HPET +.It LPIT .It MADT .It MCFG .It MSCT
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Oct 3 09:46:11 UTC 2018 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Add ACPI LPIT (Low Power Idle Table) from FreeBSD r336185. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Sep 28 06:55:08 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Print ACPI_HEST_GHES_ASSIST flag (ACPI 6.2). To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 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.28 src/usr.sbin/acpitools/acpidump/acpi.c:1.29 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.28 Wed Sep 27 08:14:18 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Sep 28 06:55:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.28 2017/09/27 08:14:18 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.29 2017/09/28 06:55:08 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.28 2017/09/27 08:14:18 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.29 2017/09/28 06:55:08 msaitoh Exp $"); #include #include @@ -390,12 +390,17 @@ acpi_print_hest_header(ACPI_HEST_HEADER static void acpi_print_hest_aer_common(ACPI_HEST_AER_COMMON *data) { - printf("\tFlags={ "); - if (data->Flags & ACPI_HEST_FIRMWARE_FIRST) - printf("FIRMWARE_FIRST"); - if (data->Flags & ACPI_HEST_GLOBAL) - printf("GLOBAL"); - printf(" }\n"); + +#define PRINTFLAG(var, flag) printflag((var), ACPI_HEST_## flag, #flag) + + printf("\tFlags="); + PRINTFLAG(data->Flags, FIRMWARE_FIRST); + PRINTFLAG(data->Flags, GLOBAL); + PRINTFLAG(data->Flags, GHES_ASSIST); + PRINTFLAG_END(); + +#undef PRINTFLAG + printf("\tEnabled={ %s ", data->Flags ? "YES" : "NO"); if (data->Flags & ACPI_HEST_FIRMWARE_FIRST) printf("(ignored) ");
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Sep 28 06:55:08 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Print ACPI_HEST_GHES_ASSIST flag (ACPI 6.2). To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Sep 27 08:14:18 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Cosmetic change (tab and newline). To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Sep 27 08:14:18 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Cosmetic change (tab and newline). To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 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.27 src/usr.sbin/acpitools/acpidump/acpi.c:1.28 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.27 Wed Sep 27 05:43:55 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Sep 27 08:14:18 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.28 2017/09/27 08:14:18 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.28 2017/09/27 08:14:18 msaitoh Exp $"); #include #include @@ -1253,8 +1253,9 @@ acpi_handle_dbgp(ACPI_TABLE_HEADER *sdp) break; } printf("}\n"); - printf("DebugPort="); + printf("\tDebugPort="); acpi_print_gas(>DebugPort); + printf("\n"); printf(END_COMMENT); }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Sep 27 05:43:55 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Print SAPIC EID of Processor Local APIC/SAPIC Affinity. - Print GIC Interrupt Translation Service(ITS) Affinity (ACPI 6.2) - KNF - Whilte space cleanup. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 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.26 src/usr.sbin/acpitools/acpidump/acpi.c:1.27 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.26 Thu Sep 7 04:40:56 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Sep 27 05:43:55 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $"); #include #include @@ -95,9 +95,9 @@ static void acpi_handle_sbst(ACPI_TABLE_ static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_spcr(ACPI_TABLE_HEADER *sdp); static void acpi_handle_spmi(ACPI_TABLE_HEADER *sdp); -static void acpi_print_srat_cpu(uint32_t apic_id, +static void acpi_print_srat_cpu(uint8_t type, uint32_t apic_id, uint32_t proximity_domain, - uint32_t flags, uint32_t clockdomain); + uint32_t flags, uint32_t clockdomain, uint8_t sapic_eid); static void acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp); static void acpi_print_srat(ACPI_SUBTABLE_HEADER *srat); static void acpi_handle_srat(ACPI_TABLE_HEADER *sdp); @@ -210,7 +210,7 @@ acpi_print_string(char *s, size_t length static void acpi_print_gas(ACPI_GENERIC_ADDRESS *gas) { - switch(gas->SpaceId) { + switch (gas->SpaceId) { case ACPI_ADR_SPACE_SYSTEM_MEMORY: if (gas->BitWidth <= 32) printf("0x%08x:%u[%u] (Memory)", @@ -1984,8 +1984,8 @@ acpi_handle_spmi(ACPI_TABLE_HEADER *sdp) } static void -acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain, -uint32_t flags, uint32_t clockdomain) +acpi_print_srat_cpu(uint8_t type, uint32_t apic_id, uint32_t proximity_domain, +uint32_t flags, uint32_t clockdomain, uint8_t sapic_eid) { printf("\tFlags={"); @@ -1994,9 +1994,14 @@ acpi_print_srat_cpu(uint32_t apic_id, ui else printf("DISABLED"); printf("}\n"); - printf("\tAPIC ID=%d\n", apic_id); + printf("\t%s ID=%d\n", + (type == ACPI_SRAT_TYPE_GIC_ITS_AFFINITY) ? "ITS" : "APIC", + apic_id); + if (type == ACPI_SRAT_TYPE_CPU_AFFINITY) + printf("\tSAPIC EID=%d\n", sapic_eid); printf("\tProximity Domain=%d\n", proximity_domain); - printf("\tClock Domain=%d\n", clockdomain); + if (type != ACPI_SRAT_TYPE_GIC_ITS_AFFINITY) + printf("\tClock Domain=%d\n", clockdomain); } static void @@ -2023,6 +2028,7 @@ static const char *srat_types[] = { [ACPI_SRAT_TYPE_MEMORY_AFFINITY] = "Memory", [ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY] = "X2APIC", [ACPI_SRAT_TYPE_GICC_AFFINITY] = "GICC", +[ACPI_SRAT_TYPE_GIC_ITS_AFFINITY] = "GIC ITS", }; static void @@ -2030,7 +2036,8 @@ acpi_print_srat(ACPI_SUBTABLE_HEADER *sr { ACPI_SRAT_CPU_AFFINITY *cpu; ACPI_SRAT_X2APIC_CPU_AFFINITY *x2apic; - ACPI_SRAT_GICC_AFFINITY *gic; + ACPI_SRAT_GICC_AFFINITY *gicc; + ACPI_SRAT_GIC_ITS_AFFINITY *gici; if (srat->Type < __arraycount(srat_types)) printf("\tType=%s\n", srat_types[srat->Type]); @@ -2039,25 +2046,33 @@ acpi_print_srat(ACPI_SUBTABLE_HEADER *sr switch (srat->Type) { case ACPI_SRAT_TYPE_CPU_AFFINITY: cpu = (ACPI_SRAT_CPU_AFFINITY *)srat; - acpi_print_srat_cpu(cpu->ApicId, + acpi_print_srat_cpu(srat->Type, cpu->ApicId, cpu->ProximityDomainHi[2] << 24 | cpu->ProximityDomainHi[1] << 16 | cpu->ProximityDomainHi[0] << 0 | cpu->ProximityDomainLo, - cpu->Flags, cpu->ClockDomain); + cpu->Flags, cpu->ClockDomain, cpu->LocalSapicEid); break; case ACPI_SRAT_TYPE_MEMORY_AFFINITY: acpi_print_srat_memory((ACPI_SRAT_MEM_AFFINITY *)srat); break; case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY: x2apic = (ACPI_SRAT_X2APIC_CPU_AFFINITY *)srat; - acpi_print_srat_cpu(x2apic->ApicId, x2apic->ProximityDomain, - x2apic->Flags, x2apic->ClockDomain); + acpi_print_srat_cpu(srat->Type, x2apic->ApicId, + x2apic->ProximityDomain, + x2apic->Flags, x2apic->ClockDomain, 0 /* dummy */); break; case ACPI_SRAT_TYPE_GICC_AFFINITY: - gic = (ACPI_SRAT_GICC_AFFINITY *)srat; - acpi_print_srat_cpu(gic->AcpiProcessorUid, gic->ProximityDomain, - gic->Flags, gic->ClockDomain); + gicc = (ACPI_SRAT_GICC_AFFINITY *)srat; + acpi_print_srat_cpu(srat->Type, gicc->AcpiProcessorUid, + gicc->ProximityDomain, + gicc->Flags,
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Wed Sep 27 05:43:55 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Print SAPIC EID of Processor Local APIC/SAPIC Affinity. - Print GIC Interrupt Translation Service(ITS) Affinity (ACPI 6.2) - KNF - Whilte space cleanup. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Sep 7 04:40:56 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.h Log Message: Don't define GAS adddess ID constants in acpidump.h and use actypes.h's definitions. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.6 -r1.7 src/usr.sbin/acpitools/acpidump/acpidump.h 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.25 src/usr.sbin/acpitools/acpidump/acpi.c:1.26 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.25 Mon Sep 4 08:12:29 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Sep 7 04:40:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.25 2017/09/04 08:12:29 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.25 2017/09/04 08:12:29 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $"); #include #include @@ -211,7 +211,7 @@ static void acpi_print_gas(ACPI_GENERIC_ADDRESS *gas) { switch(gas->SpaceId) { - case ACPI_GAS_MEMORY: + case ACPI_ADR_SPACE_SYSTEM_MEMORY: if (gas->BitWidth <= 32) printf("0x%08x:%u[%u] (Memory)", (u_int)gas->Address, gas->BitOffset, @@ -221,28 +221,31 @@ acpi_print_gas(ACPI_GENERIC_ADDRESS *gas (uintmax_t)gas->Address, gas->BitOffset, gas->BitWidth); break; - case ACPI_GAS_IO: + case ACPI_ADR_SPACE_SYSTEM_IO: printf("0x%02x:%u[%u] (IO)", (u_int)gas->Address, gas->BitOffset, gas->BitWidth); break; - case ACPI_GAS_PCI: + case ACPI_ADR_SPACE_PCI_CONFIG: printf("%x:%x+0x%x (PCI)", (uint16_t)(gas->Address >> 32), (uint16_t)((gas->Address >> 16) & 0x), (uint16_t)gas->Address); break; /* XXX How to handle these below? */ - case ACPI_GAS_EMBEDDED: + case ACPI_ADR_SPACE_EC: printf("0x%x:%u[%u] (EC)", (uint16_t)gas->Address, gas->BitOffset, gas->BitWidth); break; - case ACPI_GAS_SMBUS: + case ACPI_ADR_SPACE_SMBUS: printf("0x%x:%u[%u] (SMBus)", (uint16_t)gas->Address, gas->BitOffset, gas->BitWidth); break; - case ACPI_GAS_CMOS: - case ACPI_GAS_PCIBAR: - case ACPI_GAS_DATATABLE: - case ACPI_GAS_FIXED: + case ACPI_ADR_SPACE_CMOS: + case ACPI_ADR_SPACE_PCI_BAR_TARGET: + case ACPI_ADR_SPACE_IPMI: + case ACPI_ADR_SPACE_GPIO: + case ACPI_ADR_SPACE_GSBUS: + case ACPI_ADR_SPACE_PLATFORM_COMM: + case ACPI_ADR_SPACE_FIXED_HARDWARE: default: printf("0x%016jx (SpaceID=%hhu)", (uintmax_t)gas->Address, gas->SpaceId); Index: src/usr.sbin/acpitools/acpidump/acpidump.h diff -u src/usr.sbin/acpitools/acpidump/acpidump.h:1.6 src/usr.sbin/acpitools/acpidump/acpidump.h:1.7 --- src/usr.sbin/acpitools/acpidump/acpidump.h:1.6 Fri Aug 4 06:30:36 2017 +++ src/usr.sbin/acpitools/acpidump/acpidump.h Thu Sep 7 04:40:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpidump.h,v 1.6 2017/08/04 06:30:36 msaitoh Exp $ */ +/* $NetBSD: acpidump.h,v 1.7 2017/09/07 04:40:56 msaitoh Exp $ */ /*- * Copyright (c) 1999 Doug Rabson @@ -36,17 +36,6 @@ #include #include -/* GAS address space ID constants. */ -#define ACPI_GAS_MEMORY 0 -#define ACPI_GAS_IO 1 -#define ACPI_GAS_PCI 2 -#define ACPI_GAS_EMBEDDED 3 -#define ACPI_GAS_SMBUS 4 -#define ACPI_GAS_CMOS 5 -#define ACPI_GAS_PCIBAR 6 -#define ACPI_GAS_DATATABLE 7 -#define ACPI_GAS_FIXED 0x7f - /* Subfields in the HPET Id member. */ #define ACPI_HPET_ID_HARDWARE_REV_ID 0x00ff #define ACPI_HPET_ID_COMPARATORS 0x1f00
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Sep 7 04:40:56 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.h Log Message: Don't define GAS adddess ID constants in acpidump.h and use actypes.h's definitions. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.6 -r1.7 src/usr.sbin/acpitools/acpidump/acpidump.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 08:12:29 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Space, tab and newline change for consistency output. - Print a type number for unknown HEST sub entry ID. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 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.24 src/usr.sbin/acpitools/acpidump/acpi.c:1.25 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.24 Mon Sep 4 08:08:41 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Sep 4 08:12:29 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.24 2017/09/04 08:08:41 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.25 2017/09/04 08:12:29 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.24 2017/09/04 08:08:41 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.25 2017/09/04 08:12:29 msaitoh Exp $"); #include #include @@ -317,7 +317,7 @@ acpi_print_hest_errorbank(ACPI_HEST_IA_E { printf("\n"); printf("\tBank Number=%d\n", bank->BankNumber); - printf("\tClear Status On Init={ %s }\n", + printf("\tClear Status On Init={%s}\n", bank->ClearStatusOnInit ? "NO" : "YES"); printf("\tStatus Data Format={ "); switch (bank->StatusFormat) { @@ -344,43 +344,43 @@ acpi_print_hest_errorbank(ACPI_HEST_IA_E static void acpi_print_hest_header(ACPI_HEST_HEADER *hest) { - printf("\tType={ "); + printf("\tType={"); switch (hest->Type) { case ACPI_HEST_TYPE_IA32_CHECK: printf("IA32 Machine Check Exception"); break; case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: - printf("IA32 Corrected Machine Check\n"); + printf("IA32 Corrected Machine Check"); break; case ACPI_HEST_TYPE_IA32_NMI: - printf("IA32 Non-Maskable Interrupt\n"); + printf("IA32 Non-Maskable Interrupt"); break; case ACPI_HEST_TYPE_NOT_USED3: case ACPI_HEST_TYPE_NOT_USED4: case ACPI_HEST_TYPE_NOT_USED5: - printf("unused type: %d\n", hest->Type); + printf("unused type: %d", hest->Type); break; case ACPI_HEST_TYPE_AER_ROOT_PORT: - printf("PCI Express Root Port AER\n"); + printf("PCI Express Root Port AER"); break; case ACPI_HEST_TYPE_AER_ENDPOINT: - printf("PCI Express Endpoint AER\n"); + printf("PCI Express Endpoint AER"); break; case ACPI_HEST_TYPE_AER_BRIDGE: - printf("PCI Express/PCI-X Bridge AER\n"); + printf("PCI Express/PCI-X Bridge AER"); break; case ACPI_HEST_TYPE_GENERIC_ERROR: - printf("Generic Hardware Error Source\n"); + printf("Generic Hardware Error Source"); break; case ACPI_HEST_TYPE_GENERIC_ERROR_V2: - printf("Generic Hardware Error Source version 2\n"); + printf("Generic Hardware Error Source version 2"); break; case ACPI_HEST_TYPE_RESERVED: default: - printf("Reserved\n"); + printf("Reserved (%d)", hest->Type); break; } - printf(" }\n"); + printf("}\n"); printf("\tSourceId=%d\n", hest->SourceId); } @@ -417,7 +417,7 @@ static void acpi_print_hest_notify(ACPI_HEST_NOTIFY *notify) { printf("\tHW Error Notification={\n"); - printf("\t\tType={ "); + printf("\t\tType={"); switch (notify->Type) { case ACPI_HEST_NOTIFY_POLLED: printf("POLLED"); @@ -456,10 +456,10 @@ acpi_print_hest_notify(ACPI_HEST_NOTIFY printf("RESERVED"); break; default: - printf(" %d (reserved)", notify->Type); + printf("%d (reserved)", notify->Type); break; } - printf(" }\n"); + printf("}\n"); printf("\t\tLength=%d\n", notify->Length); @@ -674,13 +674,14 @@ acpi_print_hest_generic(ACPI_HEST_GENERI acpi_print_hest_header(>Header); if (data->RelatedSourceId != 0x) printf("\tReleated SourceId=%d\n", data->RelatedSourceId); - printf("\tEnabled={ %s }\n", data->Enabled ? "YES" : "NO"); + printf("\tEnabled={%s}\n", data->Enabled ? "YES" : "NO"); printf("\tNumber of Records to pre-allocate=%u\n", data->RecordsToPreallocate); printf("\tMax Sections per Record=%u\n", data->MaxSectionsPerRecord); printf("\tMax Raw Data Length=%u\n", data->MaxRawDataLength); printf("\tError Status Address="); acpi_print_gas(>ErrorStatusAddress); + printf("\n"); acpi_print_hest_notify(>Notify); printf("\tError Block Length=%u\n", data->ErrorBlockLength); } @@ -1005,7 +1006,7 @@ acpi_print_gicm_flags(ACPI_MADT_GENERIC_ { uint32_t flags = gicm->Flags; - printf("\tFLAGS={ "); + printf("\tFLAGS={"); if (flags & ACPI_MADT_OVERRIDE_SPI_VALUES) printf("SPI Count/Base Select"); printf("}\n"); @@ -1446,7 +1447,7 @@ acpi_print_einj_flags(ACPI_WHEA_HEADER * { uint32_t flags = whea->Flags; - printf("\tFLAGS={ "); + printf("\tFLAGS={"); if (flags & ACPI_EINJ_PRESERVE) printf("PRESERVED"); printf("}\n"); @@ -1622,7 +1623,7 @@ acpi_print_erst_flags(ACPI_WHEA_HEADER * { uint32_t flags = whea->Flags; -
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 08:12:29 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Space, tab and newline change for consistency output. - Print a type number for unknown HEST sub entry ID. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 08:08:41 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Calculate offset of a sub header correctly in acpi_handle_hest() to print all of sub entries in HEST correctly. - Print a SpaceID number for unknown ID in acpi_print_gas(). - Use PRINTFLAG() in acpi_print_hest_notify(). - Use %u instead of %d for unsgined values in acpi_print_hest_generic(). To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 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.23 src/usr.sbin/acpitools/acpidump/acpi.c:1.24 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.23 Mon Sep 4 07:59:15 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Sep 4 08:08:41 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.23 2017/09/04 07:59:15 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.24 2017/09/04 08:08:41 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.23 2017/09/04 07:59:15 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.24 2017/09/04 08:08:41 msaitoh Exp $"); #include #include @@ -244,7 +244,8 @@ acpi_print_gas(ACPI_GENERIC_ADDRESS *gas case ACPI_GAS_DATATABLE: case ACPI_GAS_FIXED: default: - printf("0x%016jx (?)", (uintmax_t)gas->Address); + printf("0x%016jx (SpaceID=%hhu)", (uintmax_t)gas->Address, + gas->SpaceId); break; } } @@ -461,20 +462,19 @@ acpi_print_hest_notify(ACPI_HEST_NOTIFY printf(" }\n"); printf("\t\tLength=%d\n", notify->Length); - printf("\t\tConfig Write Enable={\n"); - if (notify->ConfigWriteEnable & ACPI_HEST_TYPE) - printf("TYPE"); - if (notify->ConfigWriteEnable & ACPI_HEST_POLL_INTERVAL) - printf("POLL INTERVAL"); - if (notify->ConfigWriteEnable & ACPI_HEST_POLL_THRESHOLD_VALUE) - printf("THRESHOLD VALUE"); - if (notify->ConfigWriteEnable & ACPI_HEST_POLL_THRESHOLD_WINDOW) - printf("THRESHOLD WINDOW"); - if (notify->ConfigWriteEnable & ACPI_HEST_ERR_THRESHOLD_VALUE) - printf("THRESHOLD VALUE"); - if (notify->ConfigWriteEnable & ACPI_HEST_ERR_THRESHOLD_WINDOW) - printf("THRESHOLD WINDOW"); - printf("}\n"); + +#define PRINTFLAG(var, flag) printflag((var), ACPI_HEST_## flag, #flag) + + printf("\t\tConfig Write Enable="); + PRINTFLAG(notify->ConfigWriteEnable, TYPE); + PRINTFLAG(notify->ConfigWriteEnable, POLL_INTERVAL); + PRINTFLAG(notify->ConfigWriteEnable, POLL_THRESHOLD_VALUE); + PRINTFLAG(notify->ConfigWriteEnable, POLL_THRESHOLD_WINDOW); + PRINTFLAG(notify->ConfigWriteEnable, ERR_THRESHOLD_VALUE); + PRINTFLAG(notify->ConfigWriteEnable, ERR_THRESHOLD_WINDOW); + PRINTFLAG_END(); + +#undef PRINTFLAG printf("\t\tPoll Interval=%d msec\n", notify->PollInterval); printf("\t\tInterrupt Vector=%d\n", notify->Vector); @@ -675,15 +675,14 @@ acpi_print_hest_generic(ACPI_HEST_GENERI if (data->RelatedSourceId != 0x) printf("\tReleated SourceId=%d\n", data->RelatedSourceId); printf("\tEnabled={ %s }\n", data->Enabled ? "YES" : "NO"); - printf("\tNumber of Records to pre-allocate=%d\n", + printf("\tNumber of Records to pre-allocate=%u\n", data->RecordsToPreallocate); - printf("\tMax Sections per Record=%d\n", - data->MaxSectionsPerRecord); - printf("\tMax Raw Data Length=%d\n", data->MaxRawDataLength); + printf("\tMax Sections per Record=%u\n", data->MaxSectionsPerRecord); + printf("\tMax Raw Data Length=%u\n", data->MaxRawDataLength); printf("\tError Status Address="); acpi_print_gas(>ErrorStatusAddress); acpi_print_hest_notify(>Notify); - printf("\tError Block Length=%d\n", data->ErrorBlockLength); + printf("\tError Block Length=%u\n", data->ErrorBlockLength); } static void @@ -707,7 +706,6 @@ acpi_handle_hest(ACPI_TABLE_HEADER *sdp) ACPI_TABLE_HEST *hest; ACPI_HEST_HEADER *subhest; uint32_t i, pos; - void *subtable; printf(BEGIN_COMMENT); acpi_print_sdt(sdp); @@ -717,23 +715,24 @@ acpi_handle_hest(ACPI_TABLE_HEADER *sdp) pos = sizeof(ACPI_TABLE_HEST); for (i = 0; i < hest->ErrorSourceCount; i++) { subhest = (ACPI_HEST_HEADER *)((char *)hest + pos); - subtable = (void *)((char *)subhest + sizeof(ACPI_HEST_HEADER)); printf("\n"); - printf("\tType={ "); switch (subhest->Type) { case ACPI_HEST_TYPE_IA32_CHECK: - acpi_print_hest_ia32_check(subtable); + acpi_print_hest_ia32_check( +(ACPI_HEST_IA_MACHINE_CHECK *)subhest); pos += sizeof(ACPI_HEST_IA_MACHINE_CHECK); break; case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: - acpi_print_hest_ia32_correctedcheck(subtable); + acpi_print_hest_ia32_correctedcheck( +(ACPI_HEST_IA_CORRECTED *)subhest); pos += sizeof(ACPI_HEST_IA_CORRECTED); break; case ACPI_HEST_TYPE_IA32_NMI: - acpi_print_hest_ia32_nmi(subtable); + acpi_print_hest_ia32_nmi( +
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 08:08:41 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Calculate offset of a sub header correctly in acpi_handle_hest() to print all of sub entries in HEST correctly. - Print a SpaceID number for unknown ID in acpi_print_gas(). - Use PRINTFLAG() in acpi_print_hest_notify(). - Use %u instead of %d for unsgined values in acpi_print_hest_generic(). To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 07:59:15 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix calculation the offset of the Action Table in WDAT to print each entries correctly. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Sep 4 07:59:15 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Fix calculation the offset of the Action Table in WDAT to print each entries correctly. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 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.22 src/usr.sbin/acpitools/acpidump/acpi.c:1.23 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.22 Fri Sep 1 18:35:50 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Sep 4 07:59:15 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.22 2017/09/01 18:35:50 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.23 2017/09/04 07:59:15 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.22 2017/09/01 18:35:50 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.23 2017/09/04 07:59:15 msaitoh Exp $"); #include #include @@ -2785,7 +2785,7 @@ acpi_handle_wdat(ACPI_TABLE_HEADER *sdp) { ACPI_TABLE_WDAT *wdat; ACPI_WHEA_HEADER *whea; - char *wdat_pos; + ACPI_WDAT_ENTRY *wdat_pos; u_int i; printf(BEGIN_COMMENT); @@ -2807,15 +2807,14 @@ acpi_handle_wdat(ACPI_TABLE_HEADER *sdp) printf(", STOPPED"); printf("}\n"); - wdat_pos = ((char *)wdat + sizeof(ACPI_TABLE_HEADER) - + wdat->HeaderLength); + wdat_pos = (ACPI_WDAT_ENTRY *)((char *)wdat + sizeof(ACPI_TABLE_WDAT)); for (i = 0; i < wdat->Entries; i++) { whea = (ACPI_WHEA_HEADER *)wdat_pos; acpi_print_whea(whea, acpi_print_wdat_action, acpi_print_wdat_instruction, NULL); - wdat_pos += sizeof(ACPI_WDAT_ENTRY); + wdat_pos++; } printf(END_COMMENT); }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Sep 1 18:35:50 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode the following entries: - DBG2 (Debug Port Table 2) - SPMI (Server Platform Management Interface Table) - WDDT (Watchdog Timer Description Table) - UEFI (UEFI, not fully decoded yet) To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/acpitools/acpidump/acpidump.8 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.21 src/usr.sbin/acpitools/acpidump/acpi.c:1.22 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.21 Fri Sep 1 05:53:09 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Fri Sep 1 18:35:50 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.21 2017/09/01 05:53:09 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.22 2017/09/01 18:35:50 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.21 2017/09/01 05:53:09 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.22 2017/09/01 18:35:50 msaitoh Exp $"); #include #include @@ -57,7 +57,7 @@ static void acpi_print_string(char *s, s static void acpi_print_gas(ACPI_GENERIC_ADDRESS *gas); static void acpi_print_pci(uint16_t vendorid, uint16_t deviceid, uint8_t seg, uint8_t bus, uint8_t device, uint8_t func); -static void acpi_print_pci_sbfd(uint8_t seg, uint8_t bus, uint8_t device, +static void acpi_print_pci_sbdf(uint8_t seg, uint8_t bus, uint8_t device, uint8_t func); #ifdef notyet static void acpi_print_hest_generic_status(ACPI_HEST_GENERIC_STATUS *); @@ -82,6 +82,7 @@ static void acpi_handle_bert(ACPI_TABLE_ static void acpi_handle_boot(ACPI_TABLE_HEADER *sdp); static void acpi_handle_cpep(ACPI_TABLE_HEADER *sdp); static void acpi_handle_dbgp(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_dbg2(ACPI_TABLE_HEADER *sdp); static void acpi_handle_einj(ACPI_TABLE_HEADER *sdp); static void acpi_handle_erst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_hest(ACPI_TABLE_HEADER *sdp); @@ -93,6 +94,7 @@ static void acpi_handle_mcfg(ACPI_TABLE_ static void acpi_handle_sbst(ACPI_TABLE_HEADER *sdp); static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_spcr(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_spmi(ACPI_TABLE_HEADER *sdp); static void acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain, uint32_t flags, uint32_t clockdomain); @@ -102,8 +104,10 @@ static void acpi_handle_srat(ACPI_TABLE_ static void acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp); static void acpi_print_nfit(ACPI_NFIT_HEADER *nfit); static void acpi_handle_nfit(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_uefi(ACPI_TABLE_HEADER *sdp); static void acpi_handle_waet(ACPI_TABLE_HEADER *sdp); static void acpi_handle_wdat(ACPI_TABLE_HEADER *sdp); +static void acpi_handle_wddt(ACPI_TABLE_HEADER *sdp); static void acpi_handle_wdrt(ACPI_TABLE_HEADER *sdp); static void acpi_print_sdt(ACPI_TABLE_HEADER *sdp); static void acpi_dump_bytes(ACPI_TABLE_HEADER *sdp); @@ -266,7 +270,7 @@ acpi_print_pci(uint16_t vendorid, uint16 } static void -acpi_print_pci_sbfd(uint8_t seg, uint8_t bus, uint8_t device, uint8_t func) +acpi_print_pci_sbdf(uint8_t seg, uint8_t bus, uint8_t device, uint8_t func) { if (bus == 0xff && device == 0xff && func == 0xff) { printf("\tPCI Device=NONE\n"); @@ -396,7 +400,7 @@ acpi_print_hest_aer_common(ACPI_HEST_AER data->RecordsToPreallocate); printf("\tMax. Sections per Record=%d\n", data->MaxSectionsPerRecord); if (!(data->Flags & ACPI_HEST_GLOBAL)) - acpi_print_pci_sbfd(0, data->Bus, data->Device, data->Function); + acpi_print_pci_sbdf(0, data->Bus, data->Device, data->Function); printf("\tDevice Control=0x%x\n", data->DeviceControl); printf("\tUncorrectable Error Mask Register=0x%x\n", data->UncorrectableMask); @@ -1251,6 +1255,113 @@ acpi_handle_dbgp(ACPI_TABLE_HEADER *sdp) } static void +acpi_print_dbg2_device(ACPI_DBG2_DEVICE *dev) +{ + + printf("\t\tRevision=%u\n", dev->Revision); + printf("\t\tLength=%u\n", dev->Length); + printf("\t\tRegisterCount=%u\n", dev->RegisterCount); + + printf("\t\tNamepath="); + acpi_print_string((char *)((vaddr_t)dev + dev->NamepathOffset), + dev->NamepathLength); + printf("\n"); + + if (dev->OemDataLength) { + printf("\t\tOemDataLength=%u\n", dev->OemDataLength); + printf("\t\tOemDataOffset=%u\n", dev->OemDataOffset); + /* XXX need dump */ + } + + printf("\t\tPortType="); + switch (dev->PortType) { + case ACPI_DBG2_SERIAL_PORT: + printf("Serial\n" "\t\tPortSubtype="); + switch (dev->PortSubtype) { + case ACPI_DBG2_16550_COMPATIBLE: + printf("Fully 16550 compatible\n"); + break; + case ACPI_DBG2_16550_SUBSET: +
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Sep 1 18:35:50 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: Decode the following entries: - DBG2 (Debug Port Table 2) - SPMI (Server Platform Management Interface Table) - WDDT (Watchdog Timer Description Table) - UEFI (UEFI, not fully decoded yet) To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Sep 1 05:53:09 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Add "Performance Server" and "Tablet" for Preferred_PM_Profile. - Don't print FADT_RESET_REG if FADT version is 1. - Print FADT ArmBootFlags, MinorRevision, SleepControl, SleepStatus and HypervisorId. - Print "{}" even if any flags aren't set. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Sep 1 05:53:09 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: - Add "Performance Server" and "Tablet" for Preferred_PM_Profile. - Don't print FADT_RESET_REG if FADT version is 1. - Print FADT ArmBootFlags, MinorRevision, SleepControl, SleepStatus and HypervisorId. - Print "{}" even if any flags aren't set. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 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.20 src/usr.sbin/acpitools/acpidump/acpi.c:1.21 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.20 Thu Aug 31 09:27:51 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Fri Sep 1 05:53:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.20 2017/08/31 09:27:51 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.21 2017/09/01 05:53:09 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.20 2017/08/31 09:27:51 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.21 2017/09/01 05:53:09 msaitoh Exp $"); #include #include @@ -67,7 +67,6 @@ static void acpi_print_whea(ACPI_WHEA_HE void (*print_action)(ACPI_WHEA_HEADER *), void (*print_ins)(ACPI_WHEA_HEADER *), void (*print_flags)(ACPI_WHEA_HEADER *)); -static int acpi_get_fadt_revision(ACPI_TABLE_FADT *fadt); static uint64_t acpi_select_address(uint32_t, uint64_t); static void acpi_handle_fadt(ACPI_TABLE_HEADER *fadt); static void acpi_print_cpu(u_char cpu_id); @@ -170,10 +169,12 @@ static void printflag_end(void) { - if (pf_sep != '{') { + if (pf_sep == ',') { printf("}"); - pf_sep = '{'; + } else if (pf_sep == '{') { + printf("{}"); } + pf_sep = '{'; printf("\n"); } @@ -773,31 +774,6 @@ acpi_handle_hest(ACPI_TABLE_HEADER *sdp) printf(END_COMMENT); } -/* The FADT revision indicates whether we use the DSDT or X_DSDT addresses. */ -static int -acpi_get_fadt_revision(ACPI_TABLE_FADT *fadt) -{ - int fadt_revision; - - /* Set the FADT revision separately from the RSDP version. */ - if (addr_size == 8) { - fadt_revision = 2; - - /* - * A few systems (e.g., IBM T23) have an RSDP that claims - * revision 2 but the 64 bit addresses are invalid. If - * revision 2 and the 32 bit address is non-zero but the - * 32 and 64 bit versions don't match, prefer the 32 bit - * version for all subsequent tables. - */ - if (fadt->Facs != 0 && - (fadt->XFacs & 0x) != fadt->Facs) - fadt_revision = 1; - } else - fadt_revision = 1; - return (fadt_revision); -} - static uint64_t acpi_select_address(uint32_t addr32, uint64_t addr64) { @@ -2774,7 +2750,8 @@ acpi_print_rsdt(ACPI_TABLE_HEADER *rsdp) static const char *acpi_pm_profiles[] = { "Unspecified", "Desktop", "Mobile", "Workstation", - "Enterprise Server", "SOHO Server", "Appliance PC" + "Enterprise Server", "SOHO Server", "Appliance PC", + "Performance Server", "Tablet" }; static void @@ -2788,6 +2765,7 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) acpi_print_sdt(sdp); printf(" \tFACS=0x%x, DSDT=0x%x\n", fadt->Facs, fadt->Dsdt); + /* XXX ACPI 2.0 eliminated this */ printf("\tINT_MODEL=%s\n", fadt->Model ? "APIC" : "PIC"); if (fadt->PreferredProfile >= sizeof(acpi_pm_profiles) / sizeof(char *)) pm = "Reserved"; @@ -2877,45 +2855,77 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) PRINTFLAG(fadt->Flags, LOW_POWER_S0); PRINTFLAG_END(); -#undef PRINTFLAG + if (sdp->Length < ACPI_FADT_V2_SIZE) + goto out; if (fadt->Flags & ACPI_FADT_RESET_REGISTER) { printf("\tRESET_REG="); acpi_print_gas(>ResetRegister); printf(", RESET_VALUE=%#x\n", fadt->ResetValue); } - if (acpi_get_fadt_revision(fadt) > 1) { - printf("\tX_FACS=0x%016jx, ", (uintmax_t)fadt->XFacs); - printf("X_DSDT=0x%016jx\n", (uintmax_t)fadt->XDsdt); - printf("\tX_PM1a_EVT_BLK="); - acpi_print_gas(>XPm1aEventBlock); - if (fadt->XPm1bEventBlock.Address != 0) { - printf("\n\tX_PM1b_EVT_BLK="); - acpi_print_gas(>XPm1bEventBlock); - } - printf("\n\tX_PM1a_CNT_BLK="); - acpi_print_gas(>XPm1aControlBlock); - if (fadt->XPm1bControlBlock.Address != 0) { - printf("\n\tX_PM1b_CNT_BLK="); - acpi_print_gas(>XPm1bControlBlock); - } - if (fadt->XPm2ControlBlock.Address != 0) { - printf("\n\tX_PM2_CNT_BLK="); - acpi_print_gas(>XPm2ControlBlock); - } - printf("\n\tX_PM_TMR_BLK="); - acpi_print_gas(>XPmTimerBlock); - if (fadt->XGpe0Block.Address != 0) { - printf("\n\tX_GPE0_BLK="); - acpi_print_gas(>XGpe0Block); - } - if (fadt->XGpe1Block.Address != 0) { - printf("\n\tX_GPE1_BLK="); - acpi_print_gas(>XGpe1Block); - } + + printf("\tArmBootFlags="); + PRINTFLAG(fadt->ArmBootFlags, PSCI_COMPLIANT); + PRINTFLAG(fadt->ArmBootFlags, PSCI_USE_HVC); + PRINTFLAG_END(); +
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 31 09:27:51 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Part of FreeBSD r323045: - Print Valid Field in ACPI_NFIT_CONTROL_REGION with 0x%02x. - Fix Flags of ACPI_NFIT_CONTROL_REGION. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 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.19 src/usr.sbin/acpitools/acpidump/acpi.c:1.20 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.19 Thu Aug 31 06:53:58 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Aug 31 09:27:51 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.19 2017/08/31 06:53:58 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.20 2017/08/31 09:27:51 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.19 2017/08/31 06:53:58 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.20 2017/08/31 09:27:51 msaitoh Exp $"); #include #include @@ -2043,7 +2043,7 @@ acpi_print_nfit(ACPI_NFIT_HEADER *nfit) (u_int)ctlreg->SubsystemDeviceId); printf("\tSubsystemRevisionId=%u\n", (u_int)ctlreg->SubsystemRevisionId); - printf("\tValidFields=%u\n", (u_int)ctlreg->ValidFields); + printf("\tValidFields=%02x\n", (u_int)ctlreg->ValidFields); printf("\tManufacturingLocation=%u\n", (u_int)ctlreg->ManufacturingLocation); printf("\tManufacturingDate=%u\n", @@ -2066,8 +2066,7 @@ acpi_print_nfit(ACPI_NFIT_HEADER *nfit) #define PRINTFLAG(var, flag) printflag((var), ACPI_NFIT_## flag, #flag) printf("\tFlags="); - PRINTFLAG(ctlreg->Flags, ADD_ONLINE_ONLY); - PRINTFLAG(ctlreg->Flags, PROXIMITY_VALID); + PRINTFLAG(ctlreg->Flags, CONTROL_BUFFERED); PRINTFLAG_END(); #undef PRINTFLAG
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 31 09:27:51 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Part of FreeBSD r323045: - Print Valid Field in ACPI_NFIT_CONTROL_REGION with 0x%02x. - Fix Flags of ACPI_NFIT_CONTROL_REGION. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 31 06:53:58 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: - Decode ACPI_HEST_GENERIC_V2. - Decode ACPI_MADT_GENERIC_MSI_FRAME. - Add NMI, CMCI, MCE, GPIO-Signal, ARMv8 SEA, ARMv8 SEI and GSIV in acpi_print_hest_notify(). - Add ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS and ACPI_EINJ_GET_EXECUTE_TIMINGS in acpi_print_einj_action(). - Add ACPI_ERST_EXECUTE_TIMINGS in acpi_print_erst_action(). - Decode NFIT (NVDIMM Firmware Interface Table) from FreeBSD. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/acpitools/acpidump/acpidump.8 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.18 src/usr.sbin/acpitools/acpidump/acpi.c:1.19 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.18 Mon Aug 21 02:58:49 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Aug 31 06:53:58 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.18 2017/08/21 02:58:49 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.19 2017/08/31 06:53:58 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.18 2017/08/21 02:58:49 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.19 2017/08/31 06:53:58 msaitoh Exp $"); #include #include @@ -46,6 +46,7 @@ __RCSID("$NetBSD: acpi.c,v 1.18 2017/08/ #include #include #include +#include #include "acpidump.h" @@ -100,6 +101,8 @@ static void acpi_print_srat_memory(ACPI_ static void acpi_print_srat(ACPI_SUBTABLE_HEADER *srat); static void acpi_handle_srat(ACPI_TABLE_HEADER *sdp); static void acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp); +static void acpi_print_nfit(ACPI_NFIT_HEADER *nfit); +static void acpi_handle_nfit(ACPI_TABLE_HEADER *sdp); static void acpi_handle_waet(ACPI_TABLE_HEADER *sdp); static void acpi_handle_wdat(ACPI_TABLE_HEADER *sdp); static void acpi_handle_wdrt(ACPI_TABLE_HEADER *sdp); @@ -113,6 +116,8 @@ static void acpi_print_rsd_ptr(ACPI_TABL static void acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp); static void acpi_walk_subtables(ACPI_TABLE_HEADER *table, void *first, void (*action)(ACPI_SUBTABLE_HEADER *)); +static void acpi_walk_nfit(ACPI_TABLE_HEADER *table, void *first, + void (*action)(ACPI_NFIT_HEADER *)); /* Size of an address. 32-bit for ACPI 1.0, 64-bit for ACPI 2.0 and up. */ static int addr_size; @@ -361,6 +366,9 @@ acpi_print_hest_header(ACPI_HEST_HEADER case ACPI_HEST_TYPE_GENERIC_ERROR: printf("Generic Hardware Error Source\n"); break; + case ACPI_HEST_TYPE_GENERIC_ERROR_V2: + printf("Generic Hardware Error Source version 2\n"); + break; case ACPI_HEST_TYPE_RESERVED: default: printf("Reserved\n"); @@ -420,6 +428,24 @@ acpi_print_hest_notify(ACPI_HEST_NOTIFY case ACPI_HEST_NOTIFY_NMI: printf("NMI"); break; + case ACPI_HEST_NOTIFY_CMCI: + printf("CMCI"); + break; + case ACPI_HEST_NOTIFY_MCE: + printf("MCE"); + break; + case ACPI_HEST_NOTIFY_GPIO: + printf("GPIO-Signal"); + break; + case ACPI_HEST_NOTIFY_SEA: + printf("ARMv8 SEA"); + break; + case ACPI_HEST_NOTIFY_SEI: + printf("ARMv8 SEI"); + break; + case ACPI_HEST_NOTIFY_GSIV: + printf("External Interrupt - GSIV"); + break; case ACPI_HEST_NOTIFY_RESERVED: printf("RESERVED"); break; @@ -656,6 +682,21 @@ acpi_print_hest_generic(ACPI_HEST_GENERI } static void +acpi_print_hest_generic_v2(ACPI_HEST_GENERIC_V2 *data) +{ + + /* The first 64 bytes are the same as ACPI_HEST_GENERIC */ + acpi_print_hest_generic((ACPI_HEST_GENERIC *)data); + + printf("\tError Status Address"); + acpi_print_gas(>ReadAckRegister); + printf("\tRead Ack Preserve=0x%016jx\n", + (uintmax_t)data->ReadAckPreserve); + printf("\tRead Ack Write=0x%016jx\n", + (uintmax_t)data->ReadAckWrite); +} + +static void acpi_handle_hest(ACPI_TABLE_HEADER *sdp) { ACPI_TABLE_HEST *hest; @@ -717,6 +758,11 @@ acpi_handle_hest(ACPI_TABLE_HEADER *sdp) pos += sizeof(ACPI_HEST_GENERIC); break; + case ACPI_HEST_TYPE_GENERIC_ERROR_V2: + acpi_print_hest_generic_v2(subtable); + pos += sizeof(ACPI_HEST_GENERIC_V2); + break; + case ACPI_HEST_TYPE_RESERVED: default: pos += sizeof(ACPI_HEST_HEADER); @@ -820,6 +866,27 @@ acpi_walk_subtables(ACPI_TABLE_HEADER *t } static void +acpi_walk_nfit(ACPI_TABLE_HEADER *table, void *first, +void (*action)(ACPI_NFIT_HEADER *)) +{ + ACPI_NFIT_HEADER *subtable; + char *end; + + subtable = first; + end = (char *)table + table->Length; + while ((char *)subtable < end) { + printf("\n"); + if (subtable->Length < sizeof(ACPI_NFIT_HEADER)) { + warnx("invalid subtable length %u", subtable->Length); + return; + } + action(subtable); + subtable = (ACPI_NFIT_HEADER *)((char *)subtable + +
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 31 06:53:58 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.8 Log Message: - Decode ACPI_HEST_GENERIC_V2. - Decode ACPI_MADT_GENERIC_MSI_FRAME. - Add NMI, CMCI, MCE, GPIO-Signal, ARMv8 SEA, ARMv8 SEI and GSIV in acpi_print_hest_notify(). - Add ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS and ACPI_EINJ_GET_EXECUTE_TIMINGS in acpi_print_einj_action(). - Add ACPI_ERST_EXECUTE_TIMINGS in acpi_print_erst_action(). - Decode NFIT (NVDIMM Firmware Interface Table) from FreeBSD. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/acpitools/acpidump/acpidump.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Aug 21 02:58:49 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add new function acpi_select_address() derived from acpi_get_fadt_revision(). On some systems, 32bit address is used for (X)Dsdt even if (X)Facs uses 64bit. Don't assume an address size from FADT revision. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Mon Aug 21 02:58:49 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Add new function acpi_select_address() derived from acpi_get_fadt_revision(). On some systems, 32bit address is used for (X)Dsdt even if (X)Facs uses 64bit. Don't assume an address size from FADT revision. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 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.17 src/usr.sbin/acpitools/acpidump/acpi.c:1.18 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.17 Fri Aug 18 09:49:24 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Aug 21 02:58:49 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.17 2017/08/18 09:49:24 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.18 2017/08/21 02:58:49 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.17 2017/08/18 09:49:24 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.18 2017/08/21 02:58:49 msaitoh Exp $"); #include #include @@ -67,6 +67,7 @@ static void acpi_print_whea(ACPI_WHEA_HE void (*print_ins)(ACPI_WHEA_HEADER *), void (*print_flags)(ACPI_WHEA_HEADER *)); static int acpi_get_fadt_revision(ACPI_TABLE_FADT *fadt); +static uint64_t acpi_select_address(uint32_t, uint64_t); static void acpi_handle_fadt(ACPI_TABLE_HEADER *fadt); static void acpi_print_cpu(u_char cpu_id); static void acpi_print_cpu_uid(uint32_t uid, char *uid_string); @@ -751,30 +752,45 @@ acpi_get_fadt_revision(ACPI_TABLE_FADT * return (fadt_revision); } +static uint64_t +acpi_select_address(uint32_t addr32, uint64_t addr64) +{ + + if (addr64 == 0) + return addr32; + + if ((addr32 != 0) && ((addr64 & 0xfff) != addr32)) { + /* + * A few systems (e.g., IBM T23) have an RSDP that claims + * revision 2 but the 64 bit addresses are invalid. If + * revision 2 and the 32 bit address is non-zero but the + * 32 and 64 bit versions don't match, prefer the 32 bit + * version for all subsequent tables. + */ + return addr32; + } + + return addr64; +} + static void acpi_handle_fadt(ACPI_TABLE_HEADER *sdp) { ACPI_TABLE_HEADER *dsdp; ACPI_TABLE_FACS *facs; ACPI_TABLE_FADT *fadt; - int fadt_revision; fadt = (ACPI_TABLE_FADT *)sdp; acpi_print_fadt(sdp); - fadt_revision = acpi_get_fadt_revision(fadt); - if (fadt_revision == 1) - facs = (ACPI_TABLE_FACS *)acpi_map_sdt(fadt->Facs); - else - facs = (ACPI_TABLE_FACS *)acpi_map_sdt(fadt->XFacs); + facs = (ACPI_TABLE_FACS *)acpi_map_sdt( + acpi_select_address(fadt->Facs, fadt->XFacs)); if (memcmp(facs->Signature, ACPI_SIG_FACS, 4) != 0 || facs->Length < 64) errx(EXIT_FAILURE, "FACS is corrupt"); acpi_print_facs(facs); - if (fadt_revision == 1) - dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->Dsdt); - else - dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->XDsdt); + dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt( + acpi_select_address(fadt->Dsdt, fadt->XDsdt)); if (memcmp(dsdp->Signature, ACPI_SIG_DSDT, 4) != 0) errx(EXIT_FAILURE, "DSDT signature mismatch"); if (acpi_checksum(dsdp, dsdp->Length)) @@ -3020,10 +3036,8 @@ dsdt_from_fadt(ACPI_TABLE_FADT *fadt) ACPI_TABLE_HEADER *sdt; /* Use the DSDT address if it is version 1, otherwise use XDSDT. */ - if (acpi_get_fadt_revision(fadt) == 1) - sdt = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->Dsdt); - else - sdt = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->XDsdt); + sdt = (ACPI_TABLE_HEADER *)acpi_map_sdt( + acpi_select_address(fadt->Dsdt, fadt->XDsdt)); if (acpi_checksum(sdt, sdt->Length)) errx(EXIT_FAILURE, "DSDT is corrupt"); return (sdt);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Aug 18 09:49:24 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Check DSDT signature in acpi_handle_fadt() for broken ACPI table. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Aug 18 09:49:24 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Check DSDT signature in acpi_handle_fadt() for broken ACPI table. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 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.16 src/usr.sbin/acpitools/acpidump/acpi.c:1.17 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.16 Fri Aug 4 06:30:36 2017 +++ src/usr.sbin/acpitools/acpidump/acpi.c Fri Aug 18 09:49:24 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.16 2017/08/04 06:30:36 msaitoh Exp $ */ +/* $NetBSD: acpi.c,v 1.17 2017/08/18 09:49:24 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.16 2017/08/04 06:30:36 msaitoh Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.17 2017/08/18 09:49:24 msaitoh Exp $"); #include #include @@ -775,6 +775,8 @@ acpi_handle_fadt(ACPI_TABLE_HEADER *sdp) dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->Dsdt); else dsdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(fadt->XDsdt); + if (memcmp(dsdp->Signature, ACPI_SIG_DSDT, 4) != 0) + errx(EXIT_FAILURE, "DSDT signature mismatch"); if (acpi_checksum(dsdp, dsdp->Length)) errx(EXIT_FAILURE, "DSDT is corrupt"); acpi_print_dsdt(dsdp);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Aug 4 06:30:36 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpi_user.c acpidump.8 acpidump.c acpidump.h Log Message: Sync with FreeBSD's r321294: - Dump TCG ACPI spec table (TCPA) more. - Dump DMA Remapping Reporting table (DMAR). - Consistently cast ACPICA 64-bit integer types when we print them. - Display the 'Flags' field in the HPET Description Table. - Do not crash when RSDT/XSDT contains an empty entry. - Print 64-bit addresses clearly with leading zeros to avoid confusions. - Create temp file safely. - Add missing flags into FADT. - Print some new ACPI 5.1 MADT entries. - Use __arraycount(). - Warn and exit loop on invalid subtable length. - Fix the type used to hold the value returned from getopt. On arm64 char is unsigned so will never be -1. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/acpitools/acpidump/acpi_user.c cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/acpitools/acpidump/acpidump.8 cvs rdiff -u -r1.6 -r1.7 src/usr.sbin/acpitools/acpidump/acpidump.c cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/acpitools/acpidump/acpidump.h 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.15 src/usr.sbin/acpitools/acpidump/acpi.c:1.16 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.15 Sat Feb 27 16:40:22 2016 +++ src/usr.sbin/acpitools/acpidump/acpi.c Fri Aug 4 06:30:36 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.15 2016/02/27 16:40:22 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.16 2017/08/04 06:30:36 msaitoh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -26,11 +26,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/acpi/acpidump/acpi.c,v 1.37 2009/08/25 20:35:57 jhb Exp $ + * $FreeBSD: head/usr.sbin/acpi/acpidump/acpi.c 321299 2017-07-20 17:36:17Z emaste $ */ #include -__RCSID("$NetBSD: acpi.c,v 1.15 2016/02/27 16:40:22 christos Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.16 2017/08/04 06:30:36 msaitoh Exp $"); #include #include @@ -116,6 +116,71 @@ static void acpi_walk_subtables(ACPI_TAB /* Size of an address. 32-bit for ACPI 1.0, 64-bit for ACPI 2.0 and up. */ static int addr_size; +/* Strings used in the TCPA table */ +static const char *tcpa_event_type_strings[] = { + "PREBOOT Certificate", + "POST Code", + "Unused", + "No Action", + "Separator", + "Action", + "Event Tag", + "S-CRTM Contents", + "S-CRTM Version", + "CPU Microcode", + "Platform Config Flags", + "Table of Devices", + "Compact Hash", + "IPL", + "IPL Partition Data", + "Non-Host Code", + "Non-Host Config", + "Non-Host Info" +}; + +static const char *TCPA_pcclient_strings[] = { + "", + "SMBIOS", + "BIS Certificate", + "POST BIOS ROM Strings", + "ESCD", + "CMOS", + "NVRAM", + "Option ROM Execute", + "Option ROM Configurateion", + "", + "Option ROM Microcode Update ", + "S-CRTM Version String", + "S-CRTM Contents", + "POST Contents", + "Table of Devices", +}; + +#define PRINTFLAG_END() printflag_end() + +static char pf_sep = '{'; + +static void +printflag_end(void) +{ + + if (pf_sep != '{') { + printf("}"); + pf_sep = '{'; + } + printf("\n"); +} + +static void +printflag(uint64_t var, uint64_t mask, const char *name) +{ + + if (var & mask) { + printf("%c%s", pf_sep, name); + pf_sep = ','; + } +} + static void acpi_print_string(char *s, size_t length) { @@ -136,12 +201,18 @@ acpi_print_gas(ACPI_GENERIC_ADDRESS *gas { switch(gas->SpaceId) { case ACPI_GAS_MEMORY: - printf("0x%08lx:%u[%u] (Memory)", (u_long)gas->Address, - gas->BitOffset, gas->BitWidth); + if (gas->BitWidth <= 32) + printf("0x%08x:%u[%u] (Memory)", + (u_int)gas->Address, gas->BitOffset, + gas->BitWidth); + else + printf("0x%016jx:%u[%u] (Memory)", + (uintmax_t)gas->Address, gas->BitOffset, + gas->BitWidth); break; case ACPI_GAS_IO: - printf("0x%02lx:%u[%u] (IO)", (u_long)gas->Address, - gas->BitOffset, gas->BitWidth); + printf("0x%02x:%u[%u] (IO)", (u_int)gas->Address, + gas->BitOffset, gas->BitWidth); break; case ACPI_GAS_PCI: printf("%x:%x+0x%x (PCI)", (uint16_t)(gas->Address >> 32), @@ -162,7 +233,7 @@ acpi_print_gas(ACPI_GENERIC_ADDRESS *gas case ACPI_GAS_DATATABLE: case ACPI_GAS_FIXED: default: - printf("0x%08lx (?)", (u_long)gas->Address); + printf("0x%016jx (?)", (uintmax_t)gas->Address); break; } } @@ -720,6 +791,10 @@ acpi_walk_subtables(ACPI_TABLE_HEADER *t end = (char *)table + table->Length; while ((char *)subtable < end) { printf("\n"); + if (subtable->Length < sizeof(ACPI_SUBTABLE_HEADER)) { + warnx("invalid subtable length %u", subtable->Length); + return; + } action(subtable); subtable
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Fri Aug 4 06:30:36 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpi_user.c acpidump.8 acpidump.c acpidump.h Log Message: Sync with FreeBSD's r321294: - Dump TCG ACPI spec table (TCPA) more. - Dump DMA Remapping Reporting table (DMAR). - Consistently cast ACPICA 64-bit integer types when we print them. - Display the 'Flags' field in the HPET Description Table. - Do not crash when RSDT/XSDT contains an empty entry. - Print 64-bit addresses clearly with leading zeros to avoid confusions. - Create temp file safely. - Add missing flags into FADT. - Print some new ACPI 5.1 MADT entries. - Use __arraycount(). - Warn and exit loop on invalid subtable length. - Fix the type used to hold the value returned from getopt. On arm64 char is unsigned so will never be -1. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/acpitools/acpidump/acpi_user.c cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/acpitools/acpidump/acpidump.8 cvs rdiff -u -r1.6 -r1.7 src/usr.sbin/acpitools/acpidump/acpidump.c cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/acpitools/acpidump/acpidump.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 3 05:54:45 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi_user.c Log Message: On UEFI environment, ACPI table is not at low address. Get ACPI root pointer from hw.acpi.root first. Same as FreeBSD. This change fixes a problem that acpidump(8) showed "acpidump: Can't find ACPI information". XXX pullup-8 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/acpitools/acpidump/acpi_user.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: msaitoh Date: Thu Aug 3 05:54:45 UTC 2017 Modified Files: src/usr.sbin/acpitools/acpidump: acpi_user.c Log Message: On UEFI environment, ACPI table is not at low address. Get ACPI root pointer from hw.acpi.root first. Same as FreeBSD. This change fixes a problem that acpidump(8) showed "acpidump: Can't find ACPI information". XXX pullup-8 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/acpitools/acpidump/acpi_user.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_user.c diff -u src/usr.sbin/acpitools/acpidump/acpi_user.c:1.2 src/usr.sbin/acpitools/acpidump/acpi_user.c:1.3 --- src/usr.sbin/acpitools/acpidump/acpi_user.c:1.2 Tue Dec 22 08:44:03 2009 +++ src/usr.sbin/acpitools/acpidump/acpi_user.c Thu Aug 3 05:54:45 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_user.c,v 1.2 2009/12/22 08:44:03 cegger Exp $ */ +/* $NetBSD: acpi_user.c,v 1.3 2017/08/03 05:54:45 msaitoh Exp $ */ /*- * Copyright (c) 1999 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi_user.c,v 1.2 2009/12/22 08:44:03 cegger Exp $"); +__RCSID("$NetBSD: acpi_user.c,v 1.3 2017/08/03 05:54:45 msaitoh Exp $"); #include #include @@ -46,6 +46,7 @@ __RCSID("$NetBSD: acpi_user.c,v 1.2 2009 #include "acpidump.h" +static char machdep_acpi_root[] = "hw.acpi.root"; static int acpi_mem_fd = -1; struct acpi_user_mapping { @@ -164,22 +165,16 @@ acpi_scan_rsd_ptr(void) ACPI_TABLE_RSDP * acpi_find_rsd_ptr(void) { - int i; - uint8_t buf[sizeof(ACPI_TABLE_RSDP)]; + ACPI_TABLE_RSDP *rsdp; + u_long addr = 0; + size_t len = sizeof(addr); acpi_user_init(); - for (i = 0; i < 1024 * 1024; i += 16) { - read(acpi_mem_fd, buf, 16); - if (!memcmp(buf, "RSD PTR ", 8)) { - /* Read the rest of the structure */ - read(acpi_mem_fd, buf + 16, sizeof(ACPI_TABLE_RSDP) - 16); - - /* Verify checksum before accepting it. */ - if (acpi_checksum(buf, sizeof(ACPI_TABLE_RSDP))) -continue; - return (acpi_map_physical(i, sizeof(ACPI_TABLE_RSDP))); - } - } + + if (sysctlbyname(machdep_acpi_root, , , NULL, 0) != 0) + addr = 0; + if (addr != 0 && (rsdp = acpi_get_rsdp(addr)) != NULL) + return rsdp; return acpi_scan_rsd_ptr(); }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Sat Feb 27 16:40:22 UTC 2016 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: CID 1354301, 1354302, 1354303: Fix uninitialized variable. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Sat Feb 27 16:40:22 UTC 2016 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: CID 1354301, 1354302, 1354303: Fix uninitialized variable. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 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.14 src/usr.sbin/acpitools/acpidump/acpi.c:1.15 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.14 Mon Feb 1 12:46:22 2016 +++ src/usr.sbin/acpitools/acpidump/acpi.c Sat Feb 27 11:40:22 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.14 2016/02/01 17:46:22 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.15 2016/02/27 16:40:22 christos Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.14 2016/02/01 17:46:22 christos Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.15 2016/02/27 16:40:22 christos Exp $"); #include #include @@ -1950,7 +1950,7 @@ acpi_print_rsdt(ACPI_TABLE_HEADER *rsdp) ACPI_TABLE_RSDT *rsdt; ACPI_TABLE_XSDT *xsdt; int i, entries; - u_long addr; + u_long addr = 0; rsdt = (ACPI_TABLE_RSDT *)rsdp; xsdt = (ACPI_TABLE_XSDT *)rsdp; @@ -1969,7 +1969,7 @@ acpi_print_rsdt(ACPI_TABLE_HEADER *rsdp) addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr == 0)); + assert(addr == 0); } printf("0x%08lx", addr); } @@ -2219,7 +2219,7 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp ACPI_TABLE_HEADER *sdp; ACPI_TABLE_RSDT *rsdt; ACPI_TABLE_XSDT *xsdt; - vm_offset_t addr; + vm_offset_t addr = 0; int entries, i; acpi_print_rsdt(rsdp); @@ -2235,7 +2235,7 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr == 0)); + assert(addr == 0); } sdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(addr); @@ -2456,7 +2456,7 @@ sdt_from_rsdt(ACPI_TABLE_HEADER *rsdp, c ACPI_TABLE_HEADER *sdt; ACPI_TABLE_RSDT *rsdt; ACPI_TABLE_XSDT *xsdt; - vm_offset_t addr; + vm_offset_t addr = 0; int entries, i; rsdt = (ACPI_TABLE_RSDT *)rsdp; @@ -2471,7 +2471,7 @@ sdt_from_rsdt(ACPI_TABLE_HEADER *rsdp, c addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr == 0)); + assert(addr == 0); } sdt = (ACPI_TABLE_HEADER *)acpi_map_sdt(addr); if (last != NULL) {
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Mon Feb 1 17:46:22 UTC 2016 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: PR/50741: David Binderman: Fix assignment in assert. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Mon Feb 1 17:46:22 UTC 2016 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: PR/50741: David Binderman: Fix assignment in assert. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 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.13 src/usr.sbin/acpitools/acpidump/acpi.c:1.14 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.13 Wed Aug 19 03:37:17 2015 +++ src/usr.sbin/acpitools/acpidump/acpi.c Mon Feb 1 12:46:22 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.13 2015/08/19 07:37:17 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.14 2016/02/01 17:46:22 christos Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: acpi.c,v 1.13 2015/08/19 07:37:17 christos Exp $"); +__RCSID("$NetBSD: acpi.c,v 1.14 2016/02/01 17:46:22 christos Exp $"); #include #include @@ -1969,7 +1969,7 @@ acpi_print_rsdt(ACPI_TABLE_HEADER *rsdp) addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr = 0)); + assert((addr == 0)); } printf("0x%08lx", addr); } @@ -2235,7 +2235,7 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr = 0)); + assert((addr == 0)); } sdp = (ACPI_TABLE_HEADER *)acpi_map_sdt(addr); @@ -2471,7 +2471,7 @@ sdt_from_rsdt(ACPI_TABLE_HEADER *rsdp, c addr = le64toh(xsdt->TableOffsetEntry[i]); break; default: - assert((addr = 0)); + assert((addr == 0)); } sdt = (ACPI_TABLE_HEADER *)acpi_map_sdt(addr); if (last != NULL) {
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: wiz Date: Sun Sep 20 17:45:25 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.c Log Message: Add -s to getopt(3)-string. Noted missing by Henning Petersen in PR 50255. While here, clean up usage. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/acpitools/acpidump/acpidump.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/acpidump.c diff -u src/usr.sbin/acpitools/acpidump/acpidump.c:1.5 src/usr.sbin/acpitools/acpidump/acpidump.c:1.6 --- src/usr.sbin/acpitools/acpidump/acpidump.c:1.5 Mon Aug 29 20:38:54 2011 +++ src/usr.sbin/acpitools/acpidump/acpidump.c Sun Sep 20 17:45:25 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: acpidump.c,v 1.5 2011/08/29 20:38:54 joerg Exp $ */ +/* $NetBSD: acpidump.c,v 1.6 2015/09/20 17:45:25 wiz Exp $ */ /*- * Copyright (c) 2000 Mitsuru IWASAKI@@ -29,7 +29,7 @@ */ #include -__RCSID("$NetBSD: acpidump.c,v 1.5 2011/08/29 20:38:54 joerg Exp $"); +__RCSID("$NetBSD: acpidump.c,v 1.6 2015/09/20 17:45:25 wiz Exp $"); #include @@ -53,7 +53,7 @@ usage(void) { const char *progname = getprogname(); - fprintf(stderr, "usage: %s [-c] [-d] [-s] [-t] [-h] [-v] " + fprintf(stderr, "usage: %s [-cdhstv] " "[-f dsdt_input] [-o dsdt_output]\n", progname); fprintf(stderr, "To send ASL:\n\t%s -dt | gzip -c9 > foo.asl.gz\n", progname); @@ -72,7 +72,7 @@ main(int argc, char *argv[]) if (argc < 2) usage(); - while ((c = getopt(argc, argv, "cdhtvf:o:")) != -1) { + while ((c = getopt(argc, argv, "cdhtsvf:o:")) != -1) { switch (c) { case 'c': cflag = 1;
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: wiz Date: Sun Sep 20 17:45:25 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.c Log Message: Add -s to getopt(3)-string. Noted missing by Henning Petersen in PR 50255. While here, clean up usage. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/acpitools/acpidump/acpidump.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Wed Aug 19 07:37:17 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Put back a Trusted Computing Platform Alliance table pretty printer. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 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.12 src/usr.sbin/acpitools/acpidump/acpi.c:1.13 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.12 Tue Aug 18 13:49:49 2015 +++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Aug 19 03:37:17 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.12 2015/08/18 17:49:49 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.13 2015/08/19 07:37:17 christos Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpi.c,v 1.12 2015/08/18 17:49:49 christos Exp $); +__RCSID($NetBSD: acpi.c,v 1.13 2015/08/19 07:37:17 christos Exp $); #include sys/param.h #include sys/endian.h @@ -1667,18 +1667,37 @@ acpi_handle_srat(ACPI_TABLE_HEADER *sdp) static void acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) { -#if 0 - ACPI_TABLE_TCPA *tcpa; + ACPI_TABLE_TCPA_HDR *tcpah; + ACPI_TABLE_TCPA_CLIENT *tcpac; + ACPI_TABLE_TCPA_SERVER *tcpas; printf(BEGIN_COMMENT); acpi_print_sdt(sdp); - tcpa = (ACPI_TABLE_TCPA *)sdp; + tcpah = (void *)sdp; + switch (tcpah-PlatformClass) { + case ACPI_TCPA_CLIENT_TABLE: + tcpac = (void *)((char *)sdp + sizeof(*tcpah)); + printf(\tMinimum Length of Event Log Area=%PRIu32\n, + tcpac-MinimumLogLength); + printf(\tPhysical Address of Log Area=0x%08PRIx64\n, + tcpac-LogAddress); + break; + + case ACPI_TCPA_SERVER_TABLE: + tcpas = (void *)((char *)sdp + sizeof(*tcpah)); + printf(\tMinimum Length of Event Log Area=%PRIu64\n, + tcpas-MinimumLogLength); + printf(\tPhysical Address of Log Area=0x%08PRIx64\n, + tcpas-LogAddress); + break; + + default: + printf (\tUnknown TCPA Platform Class 0x%X\n, + tcpah-PlatformClass); + break; + } - printf(\tMaximum Length of Event Log Area=%d\n, tcpa-MaxLogLength); - printf(\tPhysical Address of Log Area=0x%08PRIx64\n, - tcpa-LogAddress); printf(END_COMMENT); -#endif } static void
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Wed Aug 19 07:37:17 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Put back a Trusted Computing Platform Alliance table pretty printer. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Tue Aug 18 17:46:09 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: comment out tcpa printout since it has been split between server and client struct. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Tue Aug 18 17:46:09 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: comment out tcpa printout since it has been split between server and client struct. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 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.10 src/usr.sbin/acpitools/acpidump/acpi.c:1.11 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.10 Tue Jun 16 19:04:13 2015 +++ src/usr.sbin/acpitools/acpidump/acpi.c Tue Aug 18 13:46:09 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.10 2015/06/16 23:04:13 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.11 2015/08/18 17:46:09 christos Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpi.c,v 1.10 2015/06/16 23:04:13 christos Exp $); +__RCSID($NetBSD: acpi.c,v 1.11 2015/08/18 17:46:09 christos Exp $); #include sys/param.h #include sys/endian.h @@ -1667,6 +1667,7 @@ acpi_handle_srat(ACPI_TABLE_HEADER *sdp) static void acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) { +#if 0 ACPI_TABLE_TCPA *tcpa; printf(BEGIN_COMMENT); @@ -1676,7 +1677,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) printf(\tMaximum Length of Event Log Area=%d\n, tcpa-MaxLogLength); printf(\tPhysical Address of Log Area=0x%08PRIx64\n, tcpa-LogAddress); - +#endif printf(END_COMMENT); }
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Tue Aug 18 17:49:50 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: comment out end comment printing. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 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.11 src/usr.sbin/acpitools/acpidump/acpi.c:1.12 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.11 Tue Aug 18 13:46:09 2015 +++ src/usr.sbin/acpitools/acpidump/acpi.c Tue Aug 18 13:49:49 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.11 2015/08/18 17:46:09 christos Exp $ */ +/* $NetBSD: acpi.c,v 1.12 2015/08/18 17:49:49 christos Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpi.c,v 1.11 2015/08/18 17:46:09 christos Exp $); +__RCSID($NetBSD: acpi.c,v 1.12 2015/08/18 17:49:49 christos Exp $); #include sys/param.h #include sys/endian.h @@ -1677,8 +1677,8 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) printf(\tMaximum Length of Event Log Area=%d\n, tcpa-MaxLogLength); printf(\tPhysical Address of Log Area=0x%08PRIx64\n, tcpa-LogAddress); -#endif printf(END_COMMENT); +#endif } static void
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: christos Date: Tue Aug 18 17:49:50 UTC 2015 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: comment out end comment printing. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: riastradh Date: Thu Mar 20 14:39:43 UTC 2014 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't choke on an assertion for an RSDT with a null address entry. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 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.8 src/usr.sbin/acpitools/acpidump/acpi.c:1.9 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.8 Thu Feb 17 10:18:05 2011 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Mar 20 14:39:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.9 2014/03/20 14:39:43 riastradh Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $); +__RCSID($NetBSD: acpi.c,v 1.9 2014/03/20 14:39:43 riastradh Exp $); #include sys/param.h #include sys/endian.h @@ -1949,9 +1949,8 @@ acpi_print_rsdt(ACPI_TABLE_HEADER *rsdp) addr = le64toh(xsdt-TableOffsetEntry[i]); break; default: - addr = 0; + assert((addr = 0)); } - assert(addr != 0); printf(0x%08lx, addr); } printf( }\n);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: riastradh Date: Thu Mar 20 14:39:43 UTC 2014 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c Log Message: Don't choke on an assertion for an RSDT with a null address entry. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 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.
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Thu Feb 17 10:18:05 UTC 2011 Modified Files: src/usr.sbin/acpitools/acpidump: acpi.c acpidump.c acpidump.h Log Message: - when dumping table bytes, make sure to dump our header and not the next one - also dump tables with bad checksums, unless the -s flag is specified To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/acpitools/acpidump/acpi.c cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/acpitools/acpidump/acpidump.c \ src/usr.sbin/acpitools/acpidump/acpidump.h 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.7 src/usr.sbin/acpitools/acpidump/acpi.c:1.8 --- src/usr.sbin/acpitools/acpidump/acpi.c:1.7 Thu Feb 17 02:55:16 2011 +++ src/usr.sbin/acpitools/acpidump/acpi.c Thu Feb 17 10:18:05 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.7 2011/02/17 02:55:16 jmcneill Exp $ */ +/* $NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $ */ /*- * Copyright (c) 1998 Doug Rabson @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpi.c,v 1.7 2011/02/17 02:55:16 jmcneill Exp $); +__RCSID($NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $); #include sys/param.h #include sys/endian.h @@ -1884,9 +1884,11 @@ { printf( ); acpi_print_string(sdp-Signature, ACPI_NAME_SIZE); - printf(: Length=%d, Revision=%d, Checksum=%d,\n, + printf(: Length=%d, Revision=%d, Checksum=%d, sdp-Length, sdp-Revision, sdp-Checksum); - printf(\tOEMID=); + if (acpi_checksum(sdp, sdp-Length)) + printf( (Incorrect)); + printf(,\n\tOEMID=); acpi_print_string(sdp-OemId, ACPI_OEM_ID_SIZE); printf(, OEM Table ID=); acpi_print_string(sdp-OemTableId, ACPI_OEM_TABLE_ID_SIZE); @@ -1902,7 +1904,7 @@ unsigned int i; uint8_t *p; - p = (uint8_t *)sdp + sizeof(*sdp); + p = (uint8_t *)sdp; printf(\n\tData={); for (i = 0; i sdp-Length; i++) { if (cflag) { @@ -2221,7 +2223,8 @@ if (acpi_checksum(sdp, sdp-Length)) { warnx(RSDT entry %d (sig %.4s) is corrupt, i, sdp-Signature); - continue; + if (sflag) +continue; } if (!memcmp(sdp-Signature, ACPI_SIG_FADT, 4)) acpi_handle_fadt(sdp); Index: src/usr.sbin/acpitools/acpidump/acpidump.c diff -u src/usr.sbin/acpitools/acpidump/acpidump.c:1.3 src/usr.sbin/acpitools/acpidump/acpidump.c:1.4 --- src/usr.sbin/acpitools/acpidump/acpidump.c:1.3 Thu Feb 17 02:55:16 2011 +++ src/usr.sbin/acpitools/acpidump/acpidump.c Thu Feb 17 10:18:05 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpidump.c,v 1.3 2011/02/17 02:55:16 jmcneill Exp $ */ +/* $NetBSD: acpidump.c,v 1.4 2011/02/17 10:18:05 jmcneill Exp $ */ /*- * Copyright (c) 2000 Mitsuru IWASAKI iwas...@freebsd.org @@ -29,7 +29,7 @@ */ #include sys/cdefs.h -__RCSID($NetBSD: acpidump.c,v 1.3 2011/02/17 02:55:16 jmcneill Exp $); +__RCSID($NetBSD: acpidump.c,v 1.4 2011/02/17 10:18:05 jmcneill Exp $); #include sys/param.h @@ -42,18 +42,19 @@ #include acpidump.h +int cflag; /* Dump unknown table data as characters */ int dflag; /* Disassemble AML using iasl(8) */ +int sflag; /* Skip tables with bad checksums */ int tflag; /* Dump contents of SDT tables */ int vflag; /* Use verbose messages */ -int cflag; /* Dump unknown table data as characters */ static void usage(void) { const char *progname = getprogname(); - fprintf(stderr, usage: %s [-c] [-d] [-t] [-h] [-v] [-f dsdt_input] - [-o dsdt_output]\n, progname); + fprintf(stderr, usage: %s [-c] [-d] [-s] [-t] [-h] [-v] + [-f dsdt_input] [-o dsdt_output]\n, progname); fprintf(stderr, To send ASL:\n\t%s -dt | gzip -c9 foo.asl.gz\n, progname); exit(EXIT_FAILURE); @@ -79,6 +80,9 @@ case 'd': dflag = 1; break; + case 's': + sflag = 1; + break; case 't': tflag = 1; break; Index: src/usr.sbin/acpitools/acpidump/acpidump.h diff -u src/usr.sbin/acpitools/acpidump/acpidump.h:1.3 src/usr.sbin/acpitools/acpidump/acpidump.h:1.4 --- src/usr.sbin/acpitools/acpidump/acpidump.h:1.3 Thu Feb 17 02:55:16 2011 +++ src/usr.sbin/acpitools/acpidump/acpidump.h Thu Feb 17 10:18:05 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpidump.h,v 1.3 2011/02/17 02:55:16 jmcneill Exp $ */ +/* $NetBSD: acpidump.h,v 1.4 2011/02/17 10:18:05 jmcneill Exp $ */ /*- * Copyright (c) 1999 Doug Rabson @@ -83,6 +83,7 @@ /* Command line flags */ extern int cflag; extern int dflag; +extern int sflag; extern int tflag; extern int vflag;
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jmcneill Date: Thu Feb 17 10:21:02 UTC 2011 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.8 Log Message: document -c and -s flags To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/acpitools/acpidump/acpidump.8 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/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.3 src/usr.sbin/acpitools/acpidump/acpidump.8:1.4 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.3 Tue Dec 22 08:44:03 2009 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Thu Feb 17 10:21:02 2011 @@ -1,4 +1,4 @@ -.\ $NetBSD: acpidump.8,v 1.3 2009/12/22 08:44:03 cegger Exp $ +.\ $NetBSD: acpidump.8,v 1.4 2011/02/17 10:21:02 jmcneill Exp $ .\ ACPI (ACPI Package) .\ .\ Copyright (c) 1999 Doug Rabson d...@freebsd.org @@ -30,7 +30,7 @@ .\ .\ $FreeBSD: src/usr.sbin/acpi/acpidump/acpidump.8,v 1.24 2007/03/14 22:55:30 njl Exp $ .\ -.Dd February 14, 2005 +.Dd February 17, 2011 .Dt ACPIDUMP 8 .Os .Sh NAME @@ -38,7 +38,9 @@ .Nd dump ACPI tables and ASL .Sh SYNOPSIS .Nm +.Op Fl c .Op Fl d +.Op Fl s .Op Fl t .Op Fl h .Op Fl v @@ -140,10 +142,14 @@ The following options are supported by .Nm : .Bl -tag -width indent +.It Fl c +Dump unknown table data as characters instead of hex. .It Fl d Disassemble the DSDT into ASL using .Xr iasl 8 and print the results to stdout. +.It Fl s +Skip tables with bad checksums. .It Fl t Dump the contents of the various fixed tables listed above. .It Fl h
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: jruoho Date: Thu Feb 17 15:06:34 UTC 2011 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.h Log Message: Provide a definition for the size of the RSDP in ACPI 1.0. Appears to be missing in the new ACPICA. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/acpitools/acpidump/acpidump.h 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/acpidump.h diff -u src/usr.sbin/acpitools/acpidump/acpidump.h:1.4 src/usr.sbin/acpitools/acpidump/acpidump.h:1.5 --- src/usr.sbin/acpitools/acpidump/acpidump.h:1.4 Thu Feb 17 10:18:05 2011 +++ src/usr.sbin/acpitools/acpidump/acpidump.h Thu Feb 17 15:06:34 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpidump.h,v 1.4 2011/02/17 10:18:05 jmcneill Exp $ */ +/* $NetBSD: acpidump.h,v 1.5 2011/02/17 15:06:34 jruoho Exp $ */ /*- * Copyright (c) 1999 Doug Rabson @@ -54,6 +54,8 @@ #define ACPI_HPET_ID_LEGACY_CAPABLE 0x8000 #define ACPI_HPET_ID_PCI_VENDOR_ID 0x +#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */ + /* Find and map the RSD PTR structure and return it for parsing */ ACPI_TABLE_HEADER *sdt_load_devmem(void);
CVS commit: src/usr.sbin/acpitools/acpidump
Module Name:src Committed By: wiz Date: Thu Feb 17 17:05:06 UTC 2011 Modified Files: src/usr.sbin/acpitools/acpidump: acpidump.8 Log Message: Sort option descriptions. Merge single-letter options in SYNOPSIS. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/acpitools/acpidump/acpidump.8 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/acpidump.8 diff -u src/usr.sbin/acpitools/acpidump/acpidump.8:1.4 src/usr.sbin/acpitools/acpidump/acpidump.8:1.5 --- src/usr.sbin/acpitools/acpidump/acpidump.8:1.4 Thu Feb 17 10:21:02 2011 +++ src/usr.sbin/acpitools/acpidump/acpidump.8 Thu Feb 17 17:05:05 2011 @@ -1,4 +1,4 @@ -.\ $NetBSD: acpidump.8,v 1.4 2011/02/17 10:21:02 jmcneill Exp $ +.\ $NetBSD: acpidump.8,v 1.5 2011/02/17 17:05:05 wiz Exp $ .\ ACPI (ACPI Package) .\ .\ Copyright (c) 1999 Doug Rabson d...@freebsd.org @@ -38,12 +38,7 @@ .Nd dump ACPI tables and ASL .Sh SYNOPSIS .Nm -.Op Fl c -.Op Fl d -.Op Fl s -.Op Fl t -.Op Fl h -.Op Fl v +.Op Fl cdhstv .Op Fl f Ar dsdt_input .Op Fl o Ar dsdt_output .Sh DESCRIPTION @@ -148,21 +143,21 @@ Disassemble the DSDT into ASL using .Xr iasl 8 and print the results to stdout. -.It Fl s -Skip tables with bad checksums. -.It Fl t -Dump the contents of the various fixed tables listed above. -.It Fl h -Displays usage and exit. -.It Fl v -Enable verbose messages. .It Fl f Ar dsdt_input Load the DSDT from the specified file instead of physical memory. Since only the DSDT is stored in the file, the .Fl t flag may not be used with this option. +.It Fl h +Displays usage and exit. .It Fl o Ar dsdt_output Store the DSDT data block from physical memory into the specified file. +.It Fl s +Skip tables with bad checksums. +.It Fl t +Dump the contents of the various fixed tables listed above. +.It Fl v +Enable verbose messages. .El .Sh FILES .Bl -tag -width /dev/mem