From nobody Wed Jan 31 12:24:59 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TQ1St3YG0z58QVb; Wed, 31 Jan 2024 12:25:02 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TQ1St3FZ8z4YWP; Wed, 31 Jan 2024 12:25:02 +0000 (UTC) (envelope-from bapt@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706703902; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=StPZE2uGA0eJF7ek8GyCzjEXPVMnBSS5u8vx1HCNh30=; b=tYSPJKM8OTAPzwNzCQy3q2EdAHTWkl74Z0Tu/1BhxgvftvxU/CIjXsOeDHjRsAfYlhBGK5 q6DHHqVSj21LfgYNMs0Chnw2w6T/+a+pisR+Pi17TxqqaW/6IY3GRfRKGHaWl6RbsEl6IU ZFe+aOHlkMbDl0UQu7vpACMOAhxmYojJWUgIjkz8LVeBWRHiH1n376flsdazFlZ0tkVBGj sckj2KJ+Bc9+WQJC1r45zmWYgnhqZXoXqyAzQOwSwJcfRyPBY5jHYHWrsipwF0ZugH6P/4 1pKfTi/8jMghD+CC2GwgSEa8BzT7BXoGeH+1cvVXSE5uXwUdykW87z1MBs6sRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706703902; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=StPZE2uGA0eJF7ek8GyCzjEXPVMnBSS5u8vx1HCNh30=; b=eOA03PpDTidiePRh/uYu/JBUJKJOGVPl4ZTonAjEiYfuJovM/WkxmIKbO5O3+x+m5u5mJq ZOMhemClkjEmrC5LIUYrDB5SDd0l55rFUJDXpVcUsGdkPoOuYwZWitoKBiKoOzB7dq7Nl7 bQnp2nhlSaWPHx7J4ZbtNH4lStiutKHT51hzU8L8ifcDcSgUl41UPBQ3cvb7VBmTN6GCKo mZXYG5uWsPQk4r7hTMfiWaiKtFeebwZta4KUbrLe2VTgcAxZfUtXpvwV0wGgUURdBcBpXb xy+NSm35IsjQH2CawG+VJlFGzAsE+WN6VpaewPID5iloibOq9vDVIni2AU7SkA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1706703902; a=rsa-sha256; cv=none; b=E1sZ+8TH8mUZKomPAVQwot1QwC+tPYijssP9V0s7cIhD/Zkkdihdc8UIhp0RJ5sleTIq/2 waSdeM32LdR/zOq5DWxPq+20B0NxZX9ht6RgcBAVeKKnjSi8NZloHURcprcFC0LGSgfRME kbXPr7U/E7iy8H39KFapuEv4UCC4Q75SFb7J1BKbtE62ss2/eQxAJbTtQIMgm+nPSluxPs 7uJj0BS/PIBG/kVF8OQ1OAulM/m6u0Af1iJaQ8Xz7x6JYJubhTzs03fu2rjfH5qww9FgBp T7Nq6CstDSbh9LHjA38SKmc92tAGRPw4NTIJ75PU+VhwijMyjP0tttL2F5gNVA== Received: from aniel.nours.eu (nours.eu [IPv6:2001:41d0:8:3a4d::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 4TQ1Ss70SdzdHM; Wed, 31 Jan 2024 12:25:01 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: by aniel.nours.eu (Postfix, from userid 1001) id 57E9E11B386; Wed, 31 Jan 2024 13:24:59 +0100 (CET) Date: Wed, 31 Jan 2024 13:24:59 +0100 From: Baptiste Daroussin To: Jung-uk Kim Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 07c64d74917e - main - acpica: Import ACPICA 20230628 Message-ID: References: <202401310406.40V46B9a000876@gitrepo.freebsd.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202401310406.40V46B9a000876@gitrepo.freebsd.org> Hello, Either this one or the previous import is breaking arm64 build --- acpi_iort.o --- /home/bapt/worktrees/main/sys/arm64/acpica/acpi_iort.c:103:4: error: field 'data' with variable sized type 'union (unnamed union at /home/bapt/worktrees/main/sys/arm64/acpica/acpi_iort.c:98:2 )' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end] 103 | } data; | ^ best regards, Bapt On Wed, Jan 31, 2024 at 04:06:11AM +0000, Jung-uk Kim wrote: > The branch main has been updated by jkim: > > URL: https://cgit.FreeBSD.org/src/commit/?id=07c64d74917e7c8ca61c77413dbd533390e7dca7 > > commit 07c64d74917e7c8ca61c77413dbd533390e7dca7 > Author: Jung-uk Kim > AuthorDate: 2024-01-30 21:49:20 +0000 > Commit: Jung-uk Kim > CommitDate: 2024-01-31 03:58:33 +0000 > > acpica: Import ACPICA 20230628 > > (cherry picked from commit ef3ba9d625927fd4592a8c071698a562821485bd) > --- > sys/contrib/dev/acpica/changes.txt | 30 ++++ > sys/contrib/dev/acpica/common/ahpredef.c | 1 + > sys/contrib/dev/acpica/common/dmtable.c | 26 ++++ > sys/contrib/dev/acpica/common/dmtbdump2.c | 83 +++++++++- > sys/contrib/dev/acpica/common/dmtbinfo1.c | 2 +- > sys/contrib/dev/acpica/common/dmtbinfo2.c | 173 ++++++++++++++++++++- > sys/contrib/dev/acpica/compiler/aslrestype2.c | 6 +- > sys/contrib/dev/acpica/compiler/dttable2.c | 67 +++++++- > sys/contrib/dev/acpica/compiler/dttemplate.h | 51 ++++-- > .../dev/acpica/components/debugger/dbcmds.c | 59 ++++++- > .../dev/acpica/components/debugger/dbinput.c | 8 + > .../dev/acpica/components/disassembler/dmresrcl.c | 2 +- > .../dev/acpica/components/dispatcher/dswstate.c | 4 +- > sys/contrib/dev/acpica/components/events/evevent.c | 11 +- > .../dev/acpica/components/executer/exserial.c | 3 +- > .../dev/acpica/components/hardware/hwsleep.c | 11 -- > .../dev/acpica/components/parser/psopcode.c | 2 +- > .../dev/acpica/components/resources/rsaddr.c | 2 +- > .../dev/acpica/components/resources/rscreate.c | 8 +- > .../dev/acpica/components/resources/rsdumpinfo.c | 8 +- > .../dev/acpica/components/resources/rsirq.c | 12 +- > .../dev/acpica/components/utilities/utdebug.c | 5 + > .../dev/acpica/components/utilities/utglobal.c | 1 - > sys/contrib/dev/acpica/include/acdebug.h | 4 + > sys/contrib/dev/acpica/include/acdisasm.h | 13 ++ > sys/contrib/dev/acpica/include/acglobal.h | 1 + > sys/contrib/dev/acpica/include/aclocal.h | 29 ++-- > sys/contrib/dev/acpica/include/acnames.h | 1 + > sys/contrib/dev/acpica/include/acpixf.h | 2 +- > sys/contrib/dev/acpica/include/acpredef.h | 3 + > sys/contrib/dev/acpica/include/acrestyp.h | 8 +- > sys/contrib/dev/acpica/include/actbinfo.h | 15 +- > sys/contrib/dev/acpica/include/actbl1.h | 4 +- > sys/contrib/dev/acpica/include/actbl2.h | 81 +++++++++- > sys/contrib/dev/acpica/include/actbl3.h | 4 +- > sys/contrib/dev/acpica/include/actypes.h | 3 +- > sys/contrib/dev/acpica/include/amlresrc.h | 2 +- > sys/contrib/dev/acpica/include/platform/acgcc.h | 2 +- > 38 files changed, 651 insertions(+), 96 deletions(-) > > diff --git a/sys/contrib/dev/acpica/changes.txt b/sys/contrib/dev/acpica/changes.txt > index af896ec7e0b0..edcc674d90ab 100644 > --- a/sys/contrib/dev/acpica/changes.txt > +++ b/sys/contrib/dev/acpica/changes.txt > @@ -1,4 +1,34 @@ > ---------------------------------------- > +28 June 2023. Summary of changes for version 20230628: > + > +0) Global changes: > + > +Fixed a problem with the ASL/AML Timer() operator. Discovered by UBSAN: ?array-index-out-of-bounds in acpica/dswexec.c:401:12 index -1 is out of range for type 'acpi_operand_object?. Added AML_NO_OPERAND_RESOLVE flag to Timer (since there are no runtime arguments). Reported by: Abhishek Mainkar abmainkar@nvidia.com. > + > +Added a define for size of acpi_srat_generic_affinity DeviceHandle. Replaced a magic number with a define. The Linux kernel code will utilize this. Reported by Dave Jiang dave.jiang@intel.com. > + > +Added support for _DSC (Deepest State for Configuration) as per ACPI 6.5. > + > +1) ACPICA kernel-resident subsystem: > + > +Added port definitions for CDAT SSLBIS. Add upstream port and any port definitions for SSLBIS. Reported by: Dave Jiang dave.jiang@intel.com. > + > +Fixed misspelled CDAT DSMAS define: ACPI_CEDT_DSMAS_NON_VOLATILE -> ACPI_CDAT_DSMAS_NON_VOLATILE. Reported by: Dave Jiang dave.jiang@intel.com. > + > +1) ACPICA kernel-resident subsystem: > + > +Fix GCC 12 dangling-pointer warning. We're storing a persistent pointer to an ephemeral local variable which technically is a dangling pointer and the compiler is correct. However, since we never indirect the pointer, this is a safe operation and we can suppress the warning. > + > +Also, some C run-times (like MUSL) aren't including indirectly so we must include it explicitly or we won't have the type definition for uintptr_t. > + > +2) iASL Compiler/Disassembler and ACPICA tools:. > + > +IASL/RHCT: Enable dumping and compiling newly added nodes. The RHCT table is updated with new nodes. Add compile and dump functionality for these new structures. > + > +AcpiExec: Added a new command, ?interrupt?. The Interrupt command simulates an interrupt with a IntID (GSIV) equal to the first argument of the call/invocation. The acpiexec code simulates the behavior by OSPM: execute the _EVT method of the GED device associated with that IntID. Submitted by: Jose Marinho jose.marinho@arm.com. > + > +AcpiExec: Detect GED device and keep track of _EVT. The GED device is described by a _HID of ACPI0013. This code traverses the namespace identifying all GED devices. For each GED device in the namespace we record the Interrupt object and the _EVT method. This information is used when an interrupt is simulated via the ?interrupt? command. Submitted by: Jose Marinho jose.marinho@arm.com. > +---------------------------------------- > 31 March 2023. Summary of changes for version 20230331: > > This release is available at https://acpica.org/downloads > diff --git a/sys/contrib/dev/acpica/common/ahpredef.c b/sys/contrib/dev/acpica/common/ahpredef.c > index 97655cfab6f7..38653468560e 100644 > --- a/sys/contrib/dev/acpica/common/ahpredef.c > +++ b/sys/contrib/dev/acpica/common/ahpredef.c > @@ -234,6 +234,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = > AH_PREDEF ("_DMA", "Direct Memory Access", "Returns device current resources for DMA transactions, and resource field"), > AH_PREDEF ("_DOD", "Display Output Devices", "Enumerate all devices attached to the display adapter"), > AH_PREDEF ("_DOS", "Disable Output Switching", "Sets the display output switching mode"), > + AH_PREDEF ("_DSC", "Deepest State for Configuration", "Returns the deepest D-state of the device to the OSPM"), > AH_PREDEF ("_DPL", "Device Selection Polarity", "Polarity of Device Selection signal, Resource Descriptor field"), > AH_PREDEF ("_DRS", "Drive Strength", "Drive Strength setting for GPIO connection, Resource Descriptor field"), > AH_PREDEF ("_DSD", "Device-Specific Data", "Returns a list of device property information"), > diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c > index 0d7cdceb5b4a..80aa700bb5e7 100644 > --- a/sys/contrib/dev/acpica/common/dmtable.c > +++ b/sys/contrib/dev/acpica/common/dmtable.c > @@ -430,6 +430,9 @@ static const char *AcpiDmMadtSubnames[] = > "Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */ > "LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */ > "RISC-V Interrupt Controller", /* ACPI_MADT_TYPE_RINTC */ > + "RISC-V Incoming MSI Controller", /* ACPI_MADT_TYPE_IMSIC */ > + "RISC-V APLIC Controller", /* ACPI_MADT_TYPE_APLIC */ > + "RISC-V PLIC Controller", /* ACPI_MADT_TYPE_PLIC */ > "Unknown Subtable Type", /* Reserved */ > "Types 80-FF are used for OEM data" /* Reserved for OEM data */ > }; > @@ -669,6 +672,14 @@ static const char *AcpiDmGasAccessWidth[] = > "Unknown Width Encoding" > }; > > +static const char *AcpiDmRhctSubnames[] = > +{ > + "RISC-V ISA string structure", /* ACPI_RHCT_ISA_STRING */ > + "RISC-V CMO node structure", /* ACPI_RHCT_CMO_NODE */ > + "RISC-V MMU node structure", /* ACPI_RHCT_MMU_NODE */ > + "RISC-V Hart Info structure", /* ACPI_RHCT_HART_INFO */ > +}; > + > > /******************************************************************************* > * > @@ -1190,6 +1201,7 @@ AcpiDmDumpTable ( > case ACPI_DMT_NFIT: > case ACPI_DMT_NHLT1e: > case ACPI_DMT_PHAT: > + case ACPI_DMT_RHCT: > > ByteLength = 2; > break; > @@ -2169,6 +2181,20 @@ AcpiDmDumpTable ( > AcpiDmRgrtSubnames[Temp8]); > break; > > + case ACPI_DMT_RHCT: > + > + /* RHCT subtable types */ > + > + Temp16 = ACPI_GET16 (Target); > + if (Temp16 == ACPI_RHCT_NODE_TYPE_HART_INFO) > + { > + Temp16 = ACPI_RHCT_NODE_TYPE_RESERVED; > + } > + > + AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), > + AcpiDmRhctSubnames[Temp16]); > + break; > + > case ACPI_DMT_SDEV: > > /* SDEV subtable types */ > diff --git a/sys/contrib/dev/acpica/common/dmtbdump2.c b/sys/contrib/dev/acpica/common/dmtbdump2.c > index 61f62fee8315..6c94ac7bf04a 100644 > --- a/sys/contrib/dev/acpica/common/dmtbdump2.c > +++ b/sys/contrib/dev/acpica/common/dmtbdump2.c > @@ -990,6 +990,61 @@ AcpiDmDumpMadt ( > InfoTable = AcpiDmTableInfoMadt16; > break; > > + case ACPI_MADT_TYPE_CORE_PIC: > + > + InfoTable = AcpiDmTableInfoMadt17; > + break; > + > + case ACPI_MADT_TYPE_LIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt18; > + break; > + > + case ACPI_MADT_TYPE_HT_PIC: > + > + InfoTable = AcpiDmTableInfoMadt19; > + break; > + > + case ACPI_MADT_TYPE_EIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt20; > + break; > + > + case ACPI_MADT_TYPE_MSI_PIC: > + > + InfoTable = AcpiDmTableInfoMadt21; > + break; > + > + case ACPI_MADT_TYPE_BIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt22; > + break; > + > + case ACPI_MADT_TYPE_LPC_PIC: > + > + InfoTable = AcpiDmTableInfoMadt23; > + break; > + > + case ACPI_MADT_TYPE_RINTC: > + > + InfoTable = AcpiDmTableInfoMadt24; > + break; > + > + case ACPI_MADT_TYPE_IMSIC: > + > + InfoTable = AcpiDmTableInfoMadt25; > + break; > + > + case ACPI_MADT_TYPE_APLIC: > + > + InfoTable = AcpiDmTableInfoMadt26; > + break; > + > + case ACPI_MADT_TYPE_PLIC: > + > + InfoTable = AcpiDmTableInfoMadt27; > + break; > + > default: > > if ((Subtable->Type >= ACPI_MADT_TYPE_RESERVED) && > @@ -1021,7 +1076,7 @@ AcpiDmDumpMadt ( > /* Dump the OEM data */ > > Status = AcpiDmDumpTable (Length, Offset, ACPI_CAST_PTR (UINT8, Table) + Offset, > - Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt17); > + Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt128); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1058,16 +1113,16 @@ NextSubtable: > Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, > Subtable->Length); > > - DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n", > - Subtable, Subtable->Length); > - DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n", > - ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable); > - > Offset = ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table); > if (Offset >= Table->Length) > { > return; > } > + > + DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n", > + Subtable, Subtable->Length); > + DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n", > + ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable); > } > } > > @@ -2765,6 +2820,8 @@ AcpiDmDumpRhct ( > ACPI_RHCT_NODE_HEADER *Subtable; > ACPI_RHCT_HART_INFO *RhctHartInfo; > ACPI_RHCT_ISA_STRING *RhctIsaString; > + ACPI_RHCT_CMO_NODE *RhctCmoNode; > + ACPI_RHCT_MMU_NODE *RhctMmuNode; > UINT32 Length = Table->Length; > UINT8 SubtableOffset, IsaPadOffset; > UINT32 Offset = sizeof (ACPI_TABLE_RHCT); > @@ -2850,6 +2907,20 @@ AcpiDmDumpRhct ( > (Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad); > } > > + break; > + > + case ACPI_RHCT_NODE_TYPE_CMO: > + RhctCmoNode = ACPI_ADD_PTR (ACPI_RHCT_CMO_NODE, Subtable, SubtableOffset); > + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, > + RhctCmoNode, 4, AcpiDmTableInfoRhctCmo1); > + break; > + > + case ACPI_RHCT_NODE_TYPE_MMU: > + RhctMmuNode = ACPI_ADD_PTR (ACPI_RHCT_MMU_NODE, Subtable, SubtableOffset); > + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, > + RhctMmuNode, 2, AcpiDmTableInfoRhctMmu1); > + break; > + > default: > break; > } > diff --git a/sys/contrib/dev/acpica/common/dmtbinfo1.c b/sys/contrib/dev/acpica/common/dmtbinfo1.c > index 058bb2e72215..d53ec515cbde 100644 > --- a/sys/contrib/dev/acpica/common/dmtbinfo1.c > +++ b/sys/contrib/dev/acpica/common/dmtbinfo1.c > @@ -947,7 +947,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] = > { > {ACPI_DMT_UINT24, ACPI_DMAR4_OFFSET (Reserved[0]), "Reserved", 0}, > {ACPI_DMT_UINT8, ACPI_DMAR4_OFFSET (DeviceNumber), "Device Number", 0}, > - {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (u.DeviceName[0]), "Device Name", 0}, > + {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (DeviceName[0]), "Device Name", 0}, > ACPI_DMT_TERMINATOR > }; > > diff --git a/sys/contrib/dev/acpica/common/dmtbinfo2.c b/sys/contrib/dev/acpica/common/dmtbinfo2.c > index e1e325dec277..9a3bf952fe40 100644 > --- a/sys/contrib/dev/acpica/common/dmtbinfo2.c > +++ b/sys/contrib/dev/acpica/common/dmtbinfo2.c > @@ -678,8 +678,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[] = > {ACPI_DMT_UINT64, ACPI_LPIT0_OFFSET (CounterFrequency), "Counter Frequency", 0}, > ACPI_DMT_TERMINATOR > }; > - > - > /******************************************************************************* > * > * MADT - Multiple APIC Description Table and subtables > @@ -926,12 +924,155 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] = > ACPI_DMT_TERMINATOR > }; > > -/* 17: OEM data structure */ > +/* 17: core interrupt controller */ > > ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT17_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (ProcessorId), "ProcessorId", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (CoreId), "CoreId", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (Flags), "Flags", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 18: Legacy I/O interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT18_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (Address), "Address", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Size), "Size", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Cascade), "Cascade", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (CascadeMap), "CascadeMap", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 19: HT interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT19_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Address), "Address", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT19_OFFSET (Size), "Size", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Cascade), "Cascade", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 20: Extend I/O interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Cascade), "Cascade", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Node), "Node", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT20_OFFSET (NodeMap), "NodeMap", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 21: MSI controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT21_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT21_OFFSET (MsgAddress), "MsgAddress", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Start), "Start", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Count), "Count", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 22: BIO interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT22_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT22_OFFSET (Address), "Address", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Size), "Size", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Id), "Id", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (GsiBase), "GsiBase", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 23: LPC interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT23_OFFSET (Address), "Address", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT23_OFFSET (Size), "Size", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Cascade), "Cascade", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 24: RINTC interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Reserved), "Reserved", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Flags), "Flags", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (HartId), "HartId", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Uid), "Uid", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ExtIntcId), "ExtIntcId", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (ImsicAddr), "ImsicAddr", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ImsicSize), "ImsicSize", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 25: RISC-V IMSIC interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Reserved), "Reserved", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT25_OFFSET (Flags), "Flags", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumIds), "NumIds", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumGuestIds), "NumGuestIds", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GuestIndexBits), "GuestIndexBits", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (HartIndexBits), "HartIndexBits", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexBits), "GroupIndexBits", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexShift), "GroupIndexShift", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 26: RISC-V APLIC interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Id), "Id", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Flags), "Flags", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (HwId), "HwId", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumIdcs), "NumIdcs", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumSources), "NumSources", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (GsiBase), "GsiBase", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (BaseAddr), "BaseAddr", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Size), "Size", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 27: RISC-V PLIC interrupt controller */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[] = > +{ > + {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Version), "Version", 0}, > + {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Id), "Id", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (HwId), "HwId", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (NumIrqs), "NumIrqs", 0}, > + {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (MaxPrio), "MaxPrio", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Size), "Size", 0}, > + {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (BaseAddr), "BaseAddr", 0}, > + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (GsiBase), "GsiBase", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 128: OEM data structure */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[] = > { > {ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0}, > - ACPI_DMT_TERMINATOR > + ACPI_DMT_TERMINATOR > }; > > /******************************************************************************* > @@ -2080,7 +2221,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = > > ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = > { > - {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Reserved), "Reserved", 0}, > + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Flags), "Flags", 0}, > {ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0}, > {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0}, > {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0}, > @@ -2092,7 +2233,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = > > ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] = > { > - {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, > + {ACPI_DMT_RHCT, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, > {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", 0}, > {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0}, > ACPI_DMT_TERMINATOR > @@ -2116,6 +2257,26 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] = > ACPI_DMT_TERMINATOR > }; > > +/* 1: CMO node type */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[] = > +{ > + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (Reserved), "Reserved", 0}, > + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbomSize), "CBOM Block Size", 0}, > + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbopSize), "CBOP Block Size", 0}, > + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbozSize), "CBOZ Block Size", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > +/* 2: MMU node type */ > + > +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[] = > +{ > + {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (Reserved), "Reserved", 0}, > + {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (MmuType), "MMU Type", 0}, > + ACPI_DMT_TERMINATOR > +}; > + > /* 0xFFFF: Hart Info type */ > > ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] = > diff --git a/sys/contrib/dev/acpica/compiler/aslrestype2.c b/sys/contrib/dev/acpica/compiler/aslrestype2.c > index ab021866cd02..9406a2172481 100644 > --- a/sys/contrib/dev/acpica/compiler/aslrestype2.c > +++ b/sys/contrib/dev/acpica/compiler/aslrestype2.c > @@ -337,7 +337,7 @@ RsDoInterruptDescriptor ( > Descriptor->ExtendedIrq.InterruptCount = 0; > > Rover = ACPI_CAST_PTR (AML_RESOURCE, > - (&(Descriptor->ExtendedIrq.u.Interrupts[0]))); > + (&(Descriptor->ExtendedIrq.Interrupts[0]))); > > /* Process all child initialization nodes */ > > @@ -466,7 +466,7 @@ RsDoInterruptDescriptor ( > > RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT, > CurrentByteOffset + > - ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0])); > + ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); > } > } > > @@ -494,7 +494,7 @@ RsDoInterruptDescriptor ( > } > > Rnode->BufferLength = > - (ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]) - > + (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - > ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) > + OptionIndex + StringLength; > return (Rnode); > diff --git a/sys/contrib/dev/acpica/compiler/dttable2.c b/sys/contrib/dev/acpica/compiler/dttable2.c > index 9046851e313c..af6ac5f6319e 100644 > --- a/sys/contrib/dev/acpica/compiler/dttable2.c > +++ b/sys/contrib/dev/acpica/compiler/dttable2.c > @@ -371,11 +371,66 @@ DtCompileMadt ( > InfoTable = AcpiDmTableInfoMadt16; > break; > > + case ACPI_MADT_TYPE_CORE_PIC: > + > + InfoTable = AcpiDmTableInfoMadt17; > + break; > + > + case ACPI_MADT_TYPE_LIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt18; > + break; > + > + case ACPI_MADT_TYPE_HT_PIC: > + > + InfoTable = AcpiDmTableInfoMadt19; > + break; > + > + case ACPI_MADT_TYPE_EIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt20; > + break; > + > + case ACPI_MADT_TYPE_MSI_PIC: > + > + InfoTable = AcpiDmTableInfoMadt21; > + break; > + > + case ACPI_MADT_TYPE_BIO_PIC: > + > + InfoTable = AcpiDmTableInfoMadt22; > + break; > + > + case ACPI_MADT_TYPE_LPC_PIC: > + > + InfoTable = AcpiDmTableInfoMadt23; > + break; > + > + case ACPI_MADT_TYPE_RINTC: > + > + InfoTable = AcpiDmTableInfoMadt24; > + break; > + > + case ACPI_MADT_TYPE_IMSIC: > + > + InfoTable = AcpiDmTableInfoMadt25; > + break; > + > + case ACPI_MADT_TYPE_APLIC: > + > + InfoTable = AcpiDmTableInfoMadt26; > + break; > + > + case ACPI_MADT_TYPE_PLIC: > + > + InfoTable = AcpiDmTableInfoMadt27; > + break; > + > default: > > if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED) > { > - InfoTable = AcpiDmTableInfoMadt17; > + InfoTable = AcpiDmTableInfoMadt128; > } > else > { > @@ -2190,6 +2245,16 @@ DtCompileRhct ( > InfoTable = AcpiDmTableInfoRhctHartInfo1; > break; > > + case ACPI_RHCT_NODE_TYPE_CMO: > + > + InfoTable = AcpiDmTableInfoRhctCmo1; > + break; > + > + case ACPI_RHCT_NODE_TYPE_MMU: > + > + InfoTable = AcpiDmTableInfoRhctMmu1; > + break; > + > default: > > DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT"); > diff --git a/sys/contrib/dev/acpica/compiler/dttemplate.h b/sys/contrib/dev/acpica/compiler/dttemplate.h > index 755da40224e4..c97a8ed24eee 100644 > --- a/sys/contrib/dev/acpica/compiler/dttemplate.h > +++ b/sys/contrib/dev/acpica/compiler/dttemplate.h > @@ -1128,11 +1128,11 @@ const unsigned char TemplateLpit[] = > > const unsigned char TemplateMadt[] = > { > - 0x41,0x50,0x49,0x43,0x6A,0x01,0x00,0x00, /* 00000000 "APICj..." */ > - 0x05,0x9D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ > + 0x41,0x50,0x49,0x43,0x60,0x02,0x00,0x00, /* 00000000 "APIC...." */ > + 0x05,0x69,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ > 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ > 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ > - 0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */ > + 0x31,0x03,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "1." ...." */ > 0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */ > 0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ > @@ -1173,7 +1173,37 @@ const unsigned char TemplateMadt[] = > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */ > 0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, /* 00000158 "........" */ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */ > - 0x00,0x00 /* 00000168 ".." */ > + 0x00,0x00,0x11,0x0F,0x01,0x01,0x00,0x00, /* 00000168 "........" */ > + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000170 "........" */ > + 0x00,0x12,0x17,0x01,0x00,0x14,0xE0,0x1F, /* 00000178 "........" */ > + 0x00,0x00,0x00,0x00,0x80,0x00,0x02,0x03, /* 00000180 "........" */ > + 0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF, /* 00000188 "........" */ > + 0x13,0x15,0x01,0x80,0x00,0x00,0xFB,0xFD, /* 00000190 "........" */ > + 0x0E,0x00,0x00,0x40,0x00,0x00,0x00,0x00, /* 00000198 "...@...." */ > + 0xFF,0x00,0x00,0x00,0x00,0x14,0x0D,0x01, /* 000001A0 "........" */ > + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */ > + 0x00,0x00,0x15,0x13,0x01,0x00,0x00,0xF0, /* 000001B0 "........" */ > + 0x2F,0x00,0x00,0x00,0x00,0x40,0x00,0x00, /* 000001B8 "/....@.." */ > + 0x00,0xC0,0x00,0x00,0x00,0x16,0x11,0x01, /* 000001C0 "........" */ > + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, /* 000001C8 "........" */ > + 0x00,0x10,0x00,0x00,0x40,0x00,0x17,0x0E, /* 000001D0 "....@..." */ > + 0x01,0x00,0x20,0x00,0x10,0x00,0x00,0x00, /* 000001D8 ".. ....." */ > + 0x00,0x00,0x10,0x13,0x18,0x24,0x01,0x00, /* 000001E0 "........" */ > + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ > + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */ > + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28, /* 000001F8 ".......(" */ > + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, /* 00000200 "........" */ > + 0x19,0x10,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000208 "........" */ > + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x18, /* 00000210 "........" */ > + 0x1A,0x24,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000218 ".$......" */ > + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */ > + 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00, /* 00000228 "..`....." */ > + 0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x00, /* 00000230 "........" */ > + 0x00,0x80,0x00,0x00,0x1B,0x24,0x01,0x00, /* 00000238 ".....$.." */ > + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */ > + 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000248 "`.....`." */ > + 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x0C, /* 00000250 "..`....." */ > + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000258 "........" */ > }; > > const unsigned char TemplateMcfg[] = > @@ -1718,8 +1748,8 @@ const unsigned char TemplateRgrt[] = > > const unsigned char TemplateRhct[] = > { > - 0x52,0x48,0x43,0x54,0x7C,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ > - 0x01,0x7D,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */ > + 0x52,0x48,0x43,0x54,0x96,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ > + 0x01,0x24,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */ > 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ > 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ > 0x28,0x09,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */ > @@ -1731,9 +1761,12 @@ const unsigned char TemplateRhct[] = > 0x72,0x5F,0x7A,0x69,0x66,0x65,0x6E,0x63, /* 00000050 "r_zifenc" */ > 0x65,0x69,0x5F,0x7A,0x62,0x61,0x5F,0x7A, /* 00000058 "ei_zba_z" */ > 0x62,0x62,0x5F,0x7A,0x62,0x63,0x5F,0x7A, /* 00000060 "bb_zbc_z" */ > - 0x62,0x73,0x00,0x00,0xFF,0xFF,0x10,0x00, /* 00000068 "bs......" */ > - 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ > - 0x38,0x00,0x00,0x00 /* 00000078 "........" */ > + 0x62,0x73,0x00,0x00,0xFF,0xFF,0x18,0x00, /* 00000068 "bs......" */ > + 0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ > + 0x38,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, /* 00000078 "........" */ > + 0x8E,0x00,0x00,0x00,0x01,0x00,0x0A,0x00, /* 00000080 "........" */ > + 0x01,0x00,0x00,0x06,0x06,0x06,0x02,0x00, /* 00000088 "........" */ > + 0x08,0x00,0x01,0x00,0x00,0x02 /* 00000090 "........" */ > }; > > const unsigned char TemplateRsdp[] = > diff --git a/sys/contrib/dev/acpica/components/debugger/dbcmds.c b/sys/contrib/dev/acpica/components/debugger/dbcmds.c > index dca5468870ed..4c8f091f126c 100644 > --- a/sys/contrib/dev/acpica/components/debugger/dbcmds.c > +++ b/sys/contrib/dev/acpica/components/debugger/dbcmds.c > @@ -157,7 +157,6 @@ > #include > #include > > - > #define _COMPONENT ACPI_CA_DEBUGGER > ACPI_MODULE_NAME ("dbcmds") > > @@ -1291,6 +1290,64 @@ AcpiDbDisplayResources ( > } > > > +/******************************************************************************* > + * > + * FUNCTION: AcpiDbGenerateGed > + * > + * PARAMETERS: GedArg - Raw GED number, ascii string > + * > + * RETURN: None > + * > + * DESCRIPTION: Simulate firing of a GED > + * > + ******************************************************************************/ > + > +void > +AcpiDbGenerateInterrupt ( > + char *GsivArg) > +{ > + UINT32 GsivNumber; > + ACPI_GED_HANDLER_INFO *GedInfo = AcpiGbl_GedHandlerList; > + > + if (!GedInfo) { > + AcpiOsPrintf ("No GED handling present\n"); > + } > + > + GsivNumber = strtoul (GsivArg, NULL, 0); > + > + while (GedInfo) { > + > + if (GedInfo->IntId == GsivNumber) { > + ACPI_OBJECT_LIST ArgList; > + ACPI_OBJECT Arg0; > + ACPI_HANDLE EvtHandle = GedInfo->EvtMethod; > + ACPI_STATUS Status; > + > + AcpiOsPrintf ("Evaluate GED _EVT (GSIV=%d)\n", GsivNumber); > + > + if (!EvtHandle) { > + AcpiOsPrintf ("Undefined _EVT method\n"); > + return; > + } > + > + Arg0.Integer.Type = ACPI_TYPE_INTEGER; > + Arg0.Integer.Value = GsivNumber; > + > + ArgList.Count = 1; > + ArgList.Pointer = &Arg0; > + > + Status = AcpiEvaluateObject (EvtHandle, NULL, &ArgList, NULL); > + if (ACPI_FAILURE (Status)) > + { > + AcpiOsPrintf ("Could not evaluate _EVT\n"); > + return; > + } > + > + } > + GedInfo = GedInfo->Next; > + } > +} > + > #if (!ACPI_REDUCED_HARDWARE) > /******************************************************************************* > * > diff --git a/sys/contrib/dev/acpica/components/debugger/dbinput.c b/sys/contrib/dev/acpica/components/debugger/dbinput.c > index 84173d0c14e4..c900c4ec7acf 100644 > --- a/sys/contrib/dev/acpica/components/debugger/dbinput.c > +++ b/sys/contrib/dev/acpica/components/debugger/dbinput.c > @@ -264,6 +264,7 @@ enum AcpiExDebuggerCommands > CMD_THREADS, > > CMD_TEST, > + CMD_INTERRUPT, > #endif > }; > > @@ -345,6 +346,7 @@ static const ACPI_DB_COMMAND_INFO AcpiGbl_DbCommands[] = > {"THREADS", 3}, > > {"TEST", 1}, > + {"INTERRUPT", 1}, > #endif > {NULL, 0} > }; > @@ -461,6 +463,7 @@ static const ACPI_DB_COMMAND_HELP AcpiGbl_DbCommandHelp[] = > {1, " Gpes", "Display info on all GPE devices\n"}, > {1, " Sci", "Generate an SCI\n"}, > {1, " Sleep [SleepState]", "Simulate sleep/wake sequence(s) (0-5)\n"}, > + {1, " Interrupt ", "Simulate an interrupt\n"}, > #endif > {0, NULL, NULL} > }; > @@ -1263,6 +1266,11 @@ AcpiDbCommandDispatch ( > AcpiOsPrintf ("Event command not implemented\n"); > break; > > + case CMD_INTERRUPT: > + > + AcpiDbGenerateInterrupt (AcpiGbl_DbArgs[1]); > + break; > + > case CMD_GPE: > > AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); > diff --git a/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c b/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c > index 19e6eb884d0c..1df288229457 100644 > --- a/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c > +++ b/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c > @@ -1112,7 +1112,7 @@ AcpiDmInterruptDescriptor ( > { > AcpiDmIndent (Level + 1); > AcpiOsPrintf ("0x%8.8X,\n", > - (UINT32) Resource->ExtendedIrq.u.Interrupts[i]); > + (UINT32) Resource->ExtendedIrq.Interrupts[i]); > } > > AcpiDmIndent (Level); > diff --git a/sys/contrib/dev/acpica/components/dispatcher/dswstate.c b/sys/contrib/dev/acpica/components/dispatcher/dswstate.c > index 2c8cfa8a57b8..9b49696423b8 100644 > --- a/sys/contrib/dev/acpica/components/dispatcher/dswstate.c > +++ b/sys/contrib/dev/acpica/components/dispatcher/dswstate.c > @@ -310,8 +310,8 @@ AcpiDsResultPush ( > if (!Object) > { > ACPI_ERROR ((AE_INFO, > - "Null Object! Obj=%p State=%p Num=%u", > - Object, WalkState, WalkState->ResultCount)); > + "Null Object! State=%p Num=%u", > + WalkState, WalkState->ResultCount)); > return (AE_BAD_PARAMETER); > } > > diff --git a/sys/contrib/dev/acpica/components/events/evevent.c b/sys/contrib/dev/acpica/components/events/evevent.c > index 7c2e21ae7375..70255aae9bd0 100644 > --- a/sys/contrib/dev/acpica/components/events/evevent.c > +++ b/sys/contrib/dev/acpica/components/events/evevent.c > @@ -312,8 +312,7 @@ AcpiEvFixedEventInitialize ( > { > Status = AcpiWriteBitRegister ( > AcpiGbl_FixedEventInfo[i].EnableRegisterId, > - (i == ACPI_EVENT_PCIE_WAKE) ? > - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); > + ACPI_DISABLE_EVENT); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -362,11 +361,6 @@ AcpiEvFixedEventDetect ( > return (IntStatus); > } > > - if (FixedEnable & ACPI_BITMASK_PCIEXP_WAKE_DISABLE) > - FixedEnable &= ~ACPI_BITMASK_PCIEXP_WAKE_DISABLE; > - else > - FixedEnable |= ACPI_BITMASK_PCIEXP_WAKE_DISABLE; > - > ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS, > "Fixed Event Block: Enable %08X Status %08X\n", > FixedEnable, FixedStatus)); > @@ -437,8 +431,7 @@ AcpiEvFixedEventDispatch ( > { > (void) AcpiWriteBitRegister ( > AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > - (Event == ACPI_EVENT_PCIE_WAKE) ? > - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); > + ACPI_DISABLE_EVENT); > > ACPI_ERROR ((AE_INFO, > "No installed handler for fixed event - %s (%u), disabling", > diff --git a/sys/contrib/dev/acpica/components/executer/exserial.c b/sys/contrib/dev/acpica/components/executer/exserial.c > index 0f756dfaefd1..ef1eaf37daa1 100644 > --- a/sys/contrib/dev/acpica/components/executer/exserial.c > +++ b/sys/contrib/dev/acpica/components/executer/exserial.c > @@ -505,8 +505,7 @@ AcpiExWriteSerialBus ( > /* Copy the input buffer data to the transfer buffer */ > > Buffer = BufferDesc->Buffer.Pointer; > - DataLength = (BufferLength < SourceDesc->Buffer.Length ? > - BufferLength : SourceDesc->Buffer.Length); > + DataLength = ACPI_MIN (BufferLength, SourceDesc->Buffer.Length); > memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength); > > /* Lock entire transaction if requested */ > diff --git a/sys/contrib/dev/acpica/components/hardware/hwsleep.c b/sys/contrib/dev/acpica/components/hardware/hwsleep.c > index 4a352fb9b7d2..7ddb6c2b30d3 100644 > --- a/sys/contrib/dev/acpica/components/hardware/hwsleep.c > +++ b/sys/contrib/dev/acpica/components/hardware/hwsleep.c > @@ -475,17 +475,6 @@ AcpiHwLegacyWake ( > AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId, > ACPI_CLEAR_STATUS); > > - /* Enable pcie wake event if support */ > - if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) > - { > - (void) AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, > - ACPI_DISABLE_EVENT); > - (void) AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, > - ACPI_CLEAR_STATUS); > - } > - > AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING); > return_ACPI_STATUS (Status); > } > diff --git a/sys/contrib/dev/acpica/components/parser/psopcode.c b/sys/contrib/dev/acpica/components/parser/psopcode.c > index 0ec2590cc42f..a36148ebcd31 100644 > --- a/sys/contrib/dev/acpica/components/parser/psopcode.c > +++ b/sys/contrib/dev/acpica/components/parser/psopcode.c > @@ -436,7 +436,7 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] = > > /* ACPI 3.0 opcodes */ > > -/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R), > +/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE), > > /* ACPI 5.0 opcodes */ > > diff --git a/sys/contrib/dev/acpica/components/resources/rsaddr.c b/sys/contrib/dev/acpica/components/resources/rsaddr.c > index 3a719a80d737..4a2d02f4562f 100644 > --- a/sys/contrib/dev/acpica/components/resources/rsaddr.c > +++ b/sys/contrib/dev/acpica/components/resources/rsaddr.c > @@ -431,11 +431,11 @@ AcpiRsGetAddressCommon ( > ACPI_RESOURCE *Resource, > AML_RESOURCE *Aml) > { > + > /* Avoid undefined behavior: member access within misaligned address */ > > AML_RESOURCE_ADDRESS Address; > memcpy(&Address, Aml, sizeof(Address)); > - > ACPI_FUNCTION_ENTRY(); > > /* Validate the Resource Type */ > diff --git a/sys/contrib/dev/acpica/components/resources/rscreate.c b/sys/contrib/dev/acpica/components/resources/rscreate.c > index 60694d470b72..5cb7e0923c16 100644 > --- a/sys/contrib/dev/acpica/components/resources/rscreate.c > +++ b/sys/contrib/dev/acpica/components/resources/rscreate.c > @@ -475,9 +475,9 @@ AcpiRsCreatePciRoutingTable ( > /* Use *remaining* length of the buffer as max for pathname */ > > PathBuffer.Length = OutputBuffer->Length - > - (UINT32) ((UINT8 *) UserPrt->u.Source - > + (UINT32) ((UINT8 *) UserPrt->Source - > (UINT8 *) OutputBuffer->Pointer); > - PathBuffer.Pointer = UserPrt->u.Source; > + PathBuffer.Pointer = UserPrt->Source; > > Status = AcpiNsHandleToPathname ( > (ACPI_HANDLE) Node, &PathBuffer, FALSE); > *** 637 LINES SKIPPED ***