From 8e013e1e3b81740266738226667431cf5c28b17a Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Jan 30 2024 21:43:45 +0000 Subject: Import ACPICA 20230331 --- diff --git a/changes.txt b/changes.txt index cf3c218..af896ec 100644 --- a/changes.txt +++ b/changes.txt @@ -1,4 +1,109 @@ ---------------------------------------- +31 March 2023. Summary of changes for version 20230331: + +This release is available at https://acpica.org/downloads + +0) Global changes: + + +Update all copyright notices to the year 2023. This effects all source +modules, as well as utility signons. +Add OS-specific support for Zephyr RTOS. +Fix miscellaneous code that accesses various objects. +Remove some dead code. +Add C ?Flexible Array? support. +Add support for 64 bit LoongArch compilation. +Add first batch of RISC-V related definitions. +Performed a global automated update to remove tabs, fix indentation +issues, etc. + +1) ACPICA kernel-resident subsystem: + +hwvalid: Drop port I/O validation. + +2) ACPICA tools and utilities: + +iASL: Added full macro support in the preprocessor. Example: +#define ABCD(a,b,c,d) a+b+c-d + +Known macro support limitations (at this time): + No support for multi-line #define macros (backslash continuation +lines) + No support for the C-style ternary operator + No support for the stringizing operator (#) + No support for the concatenation (token pasting) operator (##) + No support for variable number of macro arguments + +Add support for AMD Secure Processor Table (ASPT) version 1. +Add support for Arm's MPAM ACPI table version 2. +ACPI 6.5: MADT: add support for trace buffer extension in GICC. +Headers: Delete bogus NodeArray array of pointers from AEST table. +PHAT table support is still ongoing. + + +---------------------------------------- +20 October 2022. Summary of changes for version 20221020: + +This release is available at https://acpica.org/downloads + +0) Global changes: + +Allow disabling of -Werror. For distro maintainers having `-Werror` can +delay update of GCC. Since every GCC release might add new warnings that +were not yet captured, it might break the build of packages. With this +change, distros can now build with `NOWERROR=TRUE` instead of patching +either the errors or the makefiles. The default behavior keeps on using +`-Werror`. + +1) ACPICA kernel-resident subsystem: + +Added support for FFH Operation Region special context data. FFH(Fixed +Function Hardware) Opregion is approved to be added in ACPI 6.5 via code +first approach[1]. It requires special context data similar to GPIO and +Generic Serial Bus as it needs to know platform specific offset and +length. + +Reverted this commit "executer/exsystem: Warn about sleeps greater than +10 ms." Due to user complaints about valid sleeps greater than 10ms seen +in some existing machines -- generating lots of warnings. + +Do not touch VGA memory when EBDA < 1KiB. The ACPICA code assumes that +EBDA region must be at least 1KiB in size. Because this is not +guaranteed, it might happen that while scanning the memory for RSDP +pointer, the kernel touches memory above 640KiB. This is unwanted as the +VGA memory range may not be decoded or even present when running under +virtualization. + +Check that EBDA pointer is in valid memory. If the memory at 0x40e is +uninitialized, the retrieved physical memory address of EBDA may be +beyond the low memory (i.e. above 640K). If so, the kernel may +unintentionally access the VGA memory, that might not be decoded or even +present in case of virtualization. + +2) iASL Compiler/Disassembler and ACPICA tools: + +Completed the existing partial support for the CDAT "table". Although +this isn't technically an ACPI table (It doesn't go into the XSDT), it is +possible to support this table in the Data Table compiler. Created one +new file, "utilities/utcksum.c", used to centralize checksum +generation/validation into one location. Includes changes to makefiles +and MSVC project files. + +Updated support for the IORT table - update to version E.e + +Added CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table + +iASL: Added CCEL table to both compiler/disassembler. + +iASL: NHLT table: Fixed compilation of optional undocumented fields + +iASL: Fix iASL compile error due to ACPI_TDEL_OFFSET. Commit # 10e4763 +("iASL: Add CCEL table to both compiler/disassembler") introduced the +iASL build issue. The issue is due to using ACPI_TDEL_OFFSET for CCEL +table member reference. To fix it, change ACPI_TDEL_OFFSET with +ACPI_CCEL_OFFSET. + +---------------------------------------- 31 March 2022. Summary of changes for version 20220331: 0) Global changes: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 77f7337..a9118f6 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/acgetline.c b/source/common/acgetline.c index e5d0bf5..b264992 100644 --- a/source/common/acgetline.c +++ b/source/common/acgetline.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adfile.c b/source/common/adfile.c index 647333d..8bca727 100644 --- a/source/common/adfile.c +++ b/source/common/adfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adisasm.c b/source/common/adisasm.c index 49338e7..ccb98bf 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -789,6 +789,7 @@ AdDoExternalFileList ( AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode, OwnerId); AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot); + AcpiGbl_ParseOpRoot = NULL; ExternalListHead = ExternalListHead->Next; } diff --git a/source/common/adwalk.c b/source/common/adwalk.c index 6d51c7e..f810aba 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahids.c b/source/common/ahids.c index 05c31bf..8930dc6 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index 724abe6..f408058 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahtable.c b/source/common/ahtable.c index 418621b..6013b94 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -202,6 +202,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_AEST, "Arm Error Source Table"}, {ACPI_SIG_AGDI, "Arm Generic Diagnostic Dump and Reset Device Interface Table"}, {ACPI_SIG_ASF, "Alert Standard Format Table"}, + {ACPI_SIG_ASPT, "AMD Secure Processor Table"}, {ACPI_SIG_BDAT, "BIOS Data ACPI Table"}, {ACPI_SIG_BERT, "Boot Error Record Table"}, {ACPI_SIG_BGRT, "Boot Graphics Resource Table"}, @@ -232,6 +233,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_MADT, "Multiple APIC Description Table (MADT)"}, {ACPI_SIG_MCFG, "Memory Mapped Configuration Table"}, {ACPI_SIG_MCHI, "Management Controller Host Interface Table"}, + {ACPI_SIG_MPAM, "Memory System Resource Partitioning and Monitoring Table"}, {ACPI_SIG_MPST, "Memory Power State Table"}, {ACPI_SIG_MSCT, "Maximum System Characteristics Table"}, {ACPI_SIG_MSDM, "Microsoft Data Management Table"}, @@ -244,6 +246,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_PPTT, "Processor Properties Topology Table"}, {ACPI_SIG_PRMT, "Platform Runtime Mechanism Table"}, {ACPI_SIG_RASF, "RAS Features Table"}, + {ACPI_SIG_RHCT, "RISC-V Hart Capabilities Table"}, {ACPI_SIG_RGRT, "Regulatory Graphics Resource Table"}, {ACPI_RSDP_NAME,"Root System Description Pointer"}, {ACPI_SIG_RSDT, "Root System Description Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index dcf0c4b..219f0e8 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index 474ccd9..e303b76 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmextern.c b/source/common/dmextern.c index 806daa3..6827d5e 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1493,7 +1493,6 @@ AcpiDmMarkExternalConflict ( ACPI_EXTERNAL_LIST *ExternalList = AcpiGbl_ExternalList; char *ExternalPath; char *InternalPath; - char *Temp; ACPI_STATUS Status; @@ -1526,13 +1525,6 @@ AcpiDmMarkExternalConflict ( while (ExternalList) { - Temp = ExternalList->InternalPath; - if ((*ExternalList->InternalPath == AML_ROOT_PREFIX) && - (ExternalList->InternalPath[1])) - { - Temp++; - } - if (!strcmp (ExternalList->InternalPath, InternalPath)) { ExternalList->Flags |= ACPI_EXT_CONFLICTING_DECLARATION; diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index b677298..afacf6f 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,6 +480,14 @@ static const ACPI_RESOURCE_TAG AcpiDmIoFlagTags[] = {0, NULL} }; +/* Subtype tables for ClockInput descriptor */ + +static const ACPI_RESOURCE_TAG AcpiDmClockInputTags[] = +{ + {( 6 * 8), ACPI_RESTAG_FQD}, + {( 8 * 8), ACPI_RESTAG_FQN}, + {0, NULL} +}; /* * Dispatch table used to obtain the correct tag table for a descriptor. @@ -531,6 +539,7 @@ static const ACPI_RESOURCE_TAG *AcpiGbl_ResourceTags[] = NULL, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiDmPinGroupFunctionTags, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiDmPinConfigTags, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG - Same as PinConfig */ + AcpiDmClockInputTags, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; /* GPIO Subtypes */ diff --git a/source/common/dmswitch.c b/source/common/dmswitch.c index 4a43473..c6e9f8b 100644 --- a/source/common/dmswitch.c +++ b/source/common/dmswitch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 9b95ecc..31ca739 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -234,6 +234,14 @@ static const char *AcpiDmAsfSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmAsptSubnames[] = +{ + "ASPT Global Registers", + "ASPT SEV Mailbox Registers", + "ASPT ACPI Mailbox Registers", + "Unknown Subtable Type" /* Reserved */ +}; + static const char *AcpiDmCdatSubnames[] = { "Device Scoped Memory Affinity Structure (DSMAS)", @@ -421,10 +429,22 @@ static const char *AcpiDmMadtSubnames[] = "MSI Interrupt Controller", /* ACPI_MADT_TYPE_MSI_PIC */ "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 */ "Unknown Subtable Type", /* Reserved */ "Types 80-FF are used for OEM data" /* Reserved for OEM data */ }; +static const char *AcpiDmMpamSubnames[] = +{ + "Processor cache", /* ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE */ + "Memory", /* ACPI_MPAM_LOCATION_TYPE_MEMORY */ + "SMMU", /* ACPI_MPAM_LOCATION_TYPE_SMMU */ + "Memory-side cache", /* ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE */ + "ACPI device", /* ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE */ + "Interconnect", /* ACPI_MPAM_LOCATION_TYPE_INTERCONNECT */ + "Unknown" /* ACPI_MPAM_LOCATION_TYPE_UNKNOWN */ +}; + static const char *AcpiDmNfitSubnames[] = { "System Physical Address Range", /* ACPI_NFIT_TYPE_SYSTEM_ADDRESS */ @@ -672,6 +692,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_AGDI, AcpiDmTableInfoAgdi, NULL, NULL, TemplateAgdi}, {ACPI_SIG_APMT, NULL, AcpiDmDumpApmt, DtCompileApmt, TemplateApmt}, {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf}, + {ACPI_SIG_ASPT, NULL, AcpiDmDumpAspt, DtCompileAspt, TemplateAspt}, {ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat}, {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, {ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt}, @@ -700,6 +721,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, TemplateMadt}, {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, TemplateMcfg}, {ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, NULL, TemplateMchi}, + {ACPI_SIG_MPAM, NULL, AcpiDmDumpMpam, DtCompileMpam, TemplateMpam}, {ACPI_SIG_MPST, AcpiDmTableInfoMpst, AcpiDmDumpMpst, DtCompileMpst, TemplateMpst}, {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct}, {ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm}, @@ -713,6 +735,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_PRMT, NULL, AcpiDmDumpPrmt, DtCompilePrmt, TemplatePrmt}, {ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf}, {ACPI_SIG_RGRT, NULL, AcpiDmDumpRgrt, DtCompileRgrt, TemplateRgrt}, + {ACPI_SIG_RHCT, NULL, AcpiDmDumpRhct, DtCompileRhct, TemplateRhct}, {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt}, {ACPI_SIG_S3PT, NULL, NULL, NULL, TemplateS3pt}, {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst}, @@ -1128,6 +1151,7 @@ AcpiDmDumpTable ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_MPAM_LOCATOR: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: case ACPI_DMT_NHLT1b: @@ -1158,6 +1182,7 @@ AcpiDmDumpTable ( ByteLength = 1; break; + case ACPI_DMT_ASPT: case ACPI_DMT_UINT16: case ACPI_DMT_DMAR: case ACPI_DMT_HEST: @@ -1375,7 +1400,7 @@ AcpiDmDumpTable ( AcpiOsPrintf ("%2.2X\n", (*Target >> 2) & 0xFF); break; - case ACPI_DMT_FLAGS4: + case ACPI_DMT_FLAGS4: AcpiOsPrintf ("%1.1X\n", (*Target >> 4) & 0x03); break; @@ -1661,6 +1686,17 @@ AcpiDmDumpTable ( AcpiDmAestXruptNames[Temp8]); break; + case ACPI_DMT_ASPT: + /* ASPT subtable types */ + Temp16 = ACPI_GET16(Target); + if (Temp16 > ACPI_ASPT_TYPE_UNKNOWN) + { + Temp16 = ACPI_ASPT_TYPE_UNKNOWN; + } + + AcpiOsPrintf(UINT16_FORMAT, Temp16, AcpiDmAsptSubnames[Temp16]); + break; + case ACPI_DMT_ASF: /* ASF subtable types */ @@ -1890,6 +1926,20 @@ AcpiDmDumpTable ( AcpiDmMadtSubnames[Temp8]); break; + case ACPI_DMT_MPAM_LOCATOR: + + /* MPAM subtable locator types */ + + Temp8 = *Target; + if (Temp8 > ACPI_MPAM_LOCATION_TYPE_INTERCONNECT) + { + Temp8 = ACPI_MPAM_LOCATION_TYPE_INTERCONNECT + 1; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmMpamSubnames[Temp8]); + break; + case ACPI_DMT_NFIT: /* NFIT subtable types */ diff --git a/source/common/dmtables.c b/source/common/dmtables.c index 7ade786..c474a8c 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index dc1745d..c4046b8 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index ae5f0f8..0dee045 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -609,6 +609,95 @@ AcpiDmDumpAsf ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpAspt + * + * PARAMETERS: Table - A ASPT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a ASPT table + * + ******************************************************************************/ + +void +AcpiDmDumpAspt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + UINT32 Offset = sizeof (ACPI_TABLE_ASPT); + UINT32 Length = Table->Length; + ACPI_ASPT_HEADER *Subtable; + ACPI_DMTABLE_INFO *InfoTable; + UINT16 Type; + + /* Main table */ + Status = AcpiDmDumpTable(Length, 0, Table, 0, AcpiDmTableInfoAspt); + + /* Subtables */ + + Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Table, Offset); + while (Offset < Table->Length) + { + AcpiOsPrintf ("\n"); + + /* Common subtable header */ + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoAsptHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Type = Subtable->Type; + + switch (Type) + { + case ACPI_ASPT_TYPE_GLOBAL_REGS: + + InfoTable = AcpiDmTableInfoAspt0; + break; + + case ACPI_ASPT_TYPE_SEV_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt1; + break; + + case ACPI_ASPT_TYPE_ACPI_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt2; + break; + + default: + + AcpiOsPrintf ("\n**** Unknown ASPT subtable type 0x%X\n", + Subtable->Type); + return; + } + + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + AcpiOsPrintf ("\n"); + + /* Point to next subtable */ + if (!Subtable->Length) + { + AcpiOsPrintf ("Invalid zero subtable header length\n"); + return; + } + + Offset += Subtable->Length; + Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Subtable, + Subtable->Length); + } +} + /******************************************************************************* * @@ -2030,7 +2119,7 @@ AcpiDmDumpHmat ( return; } - /* Dump HMAT structure additionals */ + /* Dump HMAT structure additional */ switch (HmatStruct->Type) { diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 3fb4d53..e9c5dbf 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1129,6 +1129,124 @@ AcpiDmDumpMcfg ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpMpam + * + * PARAMETERS: Table - A MPAM table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a MPAM table + * + ******************************************************************************/ + +void +AcpiDmDumpMpam ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_MPAM_MSC_NODE *MpamMscNode; + ACPI_MPAM_RESOURCE_NODE *MpamResourceNode; + ACPI_DMTABLE_INFO *InfoTable; + UINT32 Offset = sizeof(ACPI_TABLE_HEADER); + UINT32 MpamResourceNodeLength = 0; + + while (Offset < Table->Length) + { + MpamMscNode = ACPI_ADD_PTR (ACPI_MPAM_MSC_NODE, Table, Offset); + + /* Subtable: MSC */ + Status = AcpiDmDumpTable (MpamMscNode->Length, 0, MpamMscNode, 0, + AcpiDmTableInfoMpam0); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Offset the start of the array of resources */ + Offset += sizeof(ACPI_MPAM_MSC_NODE); + + /* Subtable: MSC RIS(es) */ + for (UINT32 ResourceIdx = 0; ResourceIdx < MpamMscNode->NumResouceNodes; ResourceIdx++) + { + MpamResourceNode = ACPI_ADD_PTR (ACPI_MPAM_RESOURCE_NODE, Table, Offset); + + MpamResourceNodeLength = sizeof(ACPI_MPAM_RESOURCE_NODE) + + MpamResourceNode->NumFunctionalDeps * sizeof(ACPI_MPAM_FUNC_DEPS); + + Offset += MpamResourceNodeLength; + + /* Subtable: MSC RIS */ + Status = AcpiDmDumpTable (MpamResourceNodeLength, 0, MpamResourceNode, 0, + AcpiDmTableInfoMpam1); + if (ACPI_FAILURE (Status)) + { + return; + } + + switch (MpamResourceNode->LocatorType) + { + case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE: + InfoTable = AcpiDmTableInfoMpam1A; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY: + InfoTable = AcpiDmTableInfoMpam1B; + break; + case ACPI_MPAM_LOCATION_TYPE_SMMU: + InfoTable = AcpiDmTableInfoMpam1C; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE: + InfoTable = AcpiDmTableInfoMpam1D; + break; + case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE: + InfoTable = AcpiDmTableInfoMpam1E; + break; + case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT: + InfoTable = AcpiDmTableInfoMpam1F; + break; + case ACPI_MPAM_LOCATION_TYPE_UNKNOWN: + InfoTable = AcpiDmTableInfoMpam1G; + default: + AcpiOsPrintf ("\n**** Unknown MPAM locator type 0x%X\n", + MpamResourceNode->LocatorType); + return; + } + + /* Subtable: MSC Resource Locator(s) */ + Status = AcpiDmDumpTable (sizeof(ACPI_MPAM_RESOURCE_LOCATOR), 0, + &MpamResourceNode->Locator, 0, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Get the number of functional dependencies of an RIS */ + Status = AcpiDmDumpTable (sizeof(UINT32), 0, &MpamResourceNode->NumFunctionalDeps, 0, + AcpiDmTableInfoMpam1Deps); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Subtable: MSC functional dependencies */ + for (UINT32 funcDep = 0; funcDep < MpamResourceNode->NumFunctionalDeps; funcDep++) + { + Status = AcpiDmDumpTable (sizeof(ACPI_MPAM_FUNC_DEPS), 0, + &MpamResourceNode->NumFunctionalDeps, 0, AcpiDmTableInfoMpam2); + if (ACPI_FAILURE (Status)) + { + return; + } + } + + AcpiOsPrintf ("\n\n"); + } + + } + + return; +} /******************************************************************************* * @@ -1420,7 +1538,7 @@ AcpiDmDumpNfit ( /* Has a variable number of 64-bit addresses at the end */ InfoTable = AcpiDmTableInfoNfit6; - FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64); + FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS); break; case ACPI_NFIT_TYPE_CAPABILITIES: /* ACPI 6.0A */ @@ -1474,12 +1592,12 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_SMBIOS: Length = Subtable->Length - - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); + sizeof (ACPI_NFIT_SMBIOS); if (Length) { Status = AcpiDmDumpTable (Table->Length, - sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), + sizeof (ACPI_NFIT_SMBIOS), SmbiosInfo, Length, AcpiDmTableInfoNfit3a); if (ACPI_FAILURE (Status)) @@ -2629,6 +2747,122 @@ AcpiDmDumpRgrt ( /******************************************************************************* * + * FUNCTION: AcpiDmDumpRhct + * + * PARAMETERS: Table - A RHCT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a RHCT. + * + ******************************************************************************/ + +void +AcpiDmDumpRhct ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_RHCT_NODE_HEADER *Subtable; + ACPI_RHCT_HART_INFO *RhctHartInfo; + ACPI_RHCT_ISA_STRING *RhctIsaString; + UINT32 Length = Table->Length; + UINT8 SubtableOffset, IsaPadOffset; + UINT32 Offset = sizeof (ACPI_TABLE_RHCT); + UINT32 i; + + /* Main table */ + + Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRhct); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Subtables */ + + while (Offset < Table->Length) + { + AcpiOsPrintf ("\n"); + + /* Common subtable header */ + + Subtable = ACPI_ADD_PTR (ACPI_RHCT_NODE_HEADER, Table, Offset); + if (Subtable->Length < sizeof (ACPI_RHCT_NODE_HEADER)) + { + AcpiOsPrintf ("Invalid subtable length\n"); + return; + } + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoRhctNodeHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Length = sizeof (ACPI_RHCT_NODE_HEADER); + + if (Subtable->Length < Length) + { + AcpiOsPrintf ("Invalid subtable length\n"); + return; + } + SubtableOffset = (UINT8) Length; + + switch (Subtable->Type) + { + case ACPI_RHCT_NODE_TYPE_HART_INFO: + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset), + sizeof (ACPI_RHCT_HART_INFO), AcpiDmTableInfoRhctHartInfo1); + + RhctHartInfo = ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset); + + if ((UINT16)(Subtable->Length - SubtableOffset) < + (UINT16)(RhctHartInfo->NumOffsets * 4)) + { + AcpiOsPrintf ("Invalid number of offsets\n"); + return; + } + SubtableOffset += sizeof (ACPI_RHCT_HART_INFO); + for (i = 0; i < RhctHartInfo->NumOffsets; i++) + { + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (UINT32, Subtable, SubtableOffset), + 4, AcpiDmTableInfoRhctHartInfo2); + if (ACPI_FAILURE (Status)) + { + return; + } + + SubtableOffset += 4; + } + break; + + case ACPI_RHCT_NODE_TYPE_ISA_STRING: + RhctIsaString = ACPI_ADD_PTR (ACPI_RHCT_ISA_STRING, Subtable, SubtableOffset); + IsaPadOffset = (UINT8) (SubtableOffset + 2 + RhctIsaString->IsaLength); + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + RhctIsaString, RhctIsaString->IsaLength, AcpiDmTableInfoRhctIsa1); + if (Subtable->Length > IsaPadOffset) + { + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (UINT8, Subtable, IsaPadOffset), + (Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad); + } + + default: + break; + } + + /* Point to next subtable */ + + Offset += Subtable->Length; + } +} + + +/******************************************************************************* + * * FUNCTION: AcpiDmDumpS3pt * * PARAMETERS: Table - A S3PT table diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index cbcd9e7..8ac16ce 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index 4053996..717e7df 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index 9afed4d..e463208 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -435,6 +435,57 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] = /******************************************************************************* * + * ASPT - AMD Secure Processor table (Signature "ASPT") + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT_OFFSET(NumEntries), "Number of Subtables", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Common Subtable header (one per Subtable) */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[] = +{ + {ACPI_DMT_ASPT, ACPI_ASPTH_OFFSET(Type), "Type", 0}, + {ACPI_DMT_UINT16, ACPI_ASPTH_OFFSET(Length), "Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0: ASPT Global Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT0_OFFSET(Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(FeatureRegAddr), "Feature Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqEnRegAddr), "Interrupt Enable Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqStRegAddr), "Interrupt Status Register Address", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1: ASPT SEV Mailbox Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[] = +{ + {ACPI_DMT_UINT8, ACPI_ASPT1_OFFSET(MboxIrqId), "Mailbox Interrupt ID", 0}, + {ACPI_DMT_UINT24, ACPI_ASPT1_OFFSET(Reserved[0]), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufLoRegAddr), "CmdBufAddr_Lo Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufHiRegAddr), "CmdBufAddr_Hi Register Address", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 2: ASPT ACPI Maiblox Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT2_OFFSET(Reserved1), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[0]), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[1]), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/******************************************************************************* + * * BDAT - BIOS Data ACPI Table * ******************************************************************************/ @@ -896,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 (DeviceName[0]), "Device Name", 0}, + {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (u.DeviceName[0]), "Device Name", 0}, ACPI_DMT_TERMINATOR }; diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 3676be8..214206a 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -864,6 +864,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[] = {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0}, {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0}, {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0}, + {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0}, ACPI_DMT_TERMINATOR }; @@ -979,6 +980,133 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[] = ACPI_DMT_TERMINATOR }; +/******************************************************************************* + * + * MPAM - Memory System Resource Partitioning and Monitoring Tables + * Arm's DEN0065 MPAM ACPI 2.0. December 2022. + ******************************************************************************/ + +/* MPAM subtables */ + +/* 0: MPAM Resource Node Structure - A root MSC table. + * Arm's DEN0065 MPAM ACPI 2.0. Table 4: MPAM MSC node body. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[] = +{ + {ACPI_DMT_UINT16, ACPI_MPAM0_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (InterfaceType), "Interface type", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Identifier), "Identifier", 0}, + {ACPI_DMT_UINT64, ACPI_MPAM0_OFFSET (BaseAddress), "Base address", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MMIOSize), "MMIO size", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterrupt), "Overflow interrupt", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptFlags), "Overflow interrupt flags", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved1), "Reserved1", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptAffinity), "Overflow interrupt affinity", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterrupt), "Error interrupt", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptFlags), "Error interrupt flags", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved2), "Reserved2", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptAffinity), "Error interrupt affinity", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MaxNrdyUsec), "MAX_NRDY_USEC", 0}, + {ACPI_DMT_NAME8, ACPI_MPAM0_OFFSET (HardwareIdLinkedDevice), "Hardware ID of linked device", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (InstanceIdLinkedDevice), "Instance ID of linked device", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (NumResouceNodes), "Number of resource nodes", 0}, + + ACPI_DMT_TERMINATOR +}; + +/* 1: MPAM Resource (RIS) Node Structure - A subtable of MSC Nodes. + * Arm's DEN0065 MPAM ACPI 2.0. Table 9: Resource node. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[] = +{ + {ACPI_DMT_UINT32, ACPI_MPAM1_OFFSET (Identifier), "Identifier", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM1_OFFSET (RISIndex), "RIS Index", 0}, + {ACPI_DMT_UINT16, ACPI_MPAM1_OFFSET (Reserved1), "Reserved1", 0}, + {ACPI_DMT_MPAM_LOCATOR, ACPI_MPAM1_OFFSET (LocatorType), "Locator type", 0}, + ACPI_DMT_TERMINATOR +}; + +/* An RIS field part of the RIS subtable */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[] = +{ + {ACPI_DMT_UINT32, 0, "Number of functional dependencies", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1A: MPAM Processor cache locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 13. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1A_OFFSET (CacheReference), "Cache reference", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1A_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1B: MPAM Memory locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 14. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1B_OFFSET (ProximityDomain), "Proximity domain", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1B_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1C: MPAM SMMU locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 15. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1C_OFFSET (SmmuInterface), "SMMU Interface", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1C_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1D: MPAM Memory-side cache locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 16. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[] = +{ + {ACPI_DMT_UINT56, ACPI_MPAM1D_OFFSET (Level), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM1D_OFFSET (Level), "Level", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1D_OFFSET (Reference), "Reference", 0}, +}; + +/* 1E: MPAM ACPI device locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 17. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1E_OFFSET (AcpiHwId), "ACPI Hardware ID", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1E_OFFSET (AcpiUniqueId), "ACPI Unique ID", 0}, +}; + +/* 1F: MPAM Interconnect locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 18. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1F_OFFSET (InterConnectDescTblOff), "Interconnect descriptor table offset", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1F_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1G: MPAM Locator structure. + * Arm's DEN0065 MPAM ACPI 2.0. Table 12. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1G_OFFSET (Descriptor1), "Descriptor1", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1G_OFFSET (Descriptor2), "Descriptor2", 0}, +}; + +/* 2: MPAM Functional dependency descriptor. + * Arm's DEN0065 MPAM ACPI 2.0. Table 10. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[] = +{ + {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Producer), "Producer", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Reserved), "Reserved", 0}, +}; + /******************************************************************************* * @@ -1946,6 +2074,67 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = /******************************************************************************* * + * RHCT - RISC-V Hart Capabilities Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = +{ + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Reserved), "Reserved", 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}, + ACPI_DMT_TERMINATOR +}; + + +/* Common Subtable header (one per Subtable) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] = +{ + {ACPI_DMT_UINT16, 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 +}; + +/* 0: ISA string type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[] = +{ + {ACPI_DMT_UINT16, ACPI_RHCT0_OFFSET (IsaLength), "ISA string length", 0}, + {ACPI_DMT_STRING, ACPI_RHCT0_OFFSET (Isa[0]), "ISA string", 0}, + ACPI_DMT_TERMINATOR +}; + + +/* Optional padding field */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Optional Padding", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + +/* 0xFFFF: Hart Info type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] = +{ + {ACPI_DMT_UINT16, ACPI_RHCTFFFF_OFFSET (NumOffsets), "Number of offsets", 0}, + {ACPI_DMT_UINT32, ACPI_RHCTFFFF_OFFSET (Uid), "Processor UID", 0}, + ACPI_DMT_TERMINATOR +}; + + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[] = +{ + {ACPI_DMT_UINT32, 0, "Nodes", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + + +/******************************************************************************* + * * S3PT - S3 Performance Table * ******************************************************************************/ diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index b8ddb7a..280baf3 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/getopt.c b/source/common/getopt.c index 772b66c..a2658ef 100644 --- a/source/common/getopt.c +++ b/source/common/getopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index d697d05..d86b5f3 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -295,9 +295,13 @@ void UtFreeLineBuffers ( void) { - free (AslGbl_CurrentLineBuffer); + free (AslGbl_MainTokenBuffer); + free (AslGbl_MacroTokenBuffer); + + free (AslGbl_MacroTokenReplaceBuffer); + free (AslGbl_ExpressionTokenBuffer); } diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index 9db7d4f..1941a46 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index 6c0e62c..b6b2727 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslbtypes.c b/source/compiler/aslbtypes.c index f7b3fb1..e2f72d8 100644 --- a/source/compiler/aslbtypes.c +++ b/source/compiler/aslbtypes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -501,10 +501,11 @@ AnGetBtype ( ACPI_PARSE_OBJECT *ReferencedNode; UINT32 ThisNodeBtype = 0; + ACPI_FUNCTION_NAME (AnGetBtype); if (!Op) { - AcpiOsPrintf ("Null Op in AnGetBtype\n"); + AcpiOsPrintf ("Null Op in %s\n", ACPI_GET_FUNCTION_NAME); return (ACPI_UINT32_MAX); } diff --git a/source/compiler/aslcache.c b/source/compiler/aslcache.c index 9cc707e..11ba5f4 100644 --- a/source/compiler/aslcache.c +++ b/source/compiler/aslcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index a0c6742..4013398 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index f97cd9d..4217182 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index d52f60f..ca20de4 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1566,6 +1566,9 @@ ASL_RESOURCE_NODE * RsDoPinGroupConfigDescriptor ( ASL_RESOURCE_INFO *Info); +ASL_RESOURCE_NODE * +RsDoClockInputDescriptor ( + ASL_RESOURCE_INFO *Info); /* * aslrestype2d - DWord address descriptors diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index 881096a..fbc38a6 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -461,6 +461,7 @@ NamePathTail [.]{NameSeg} "PinGroup" { count (1); return (PARSEOP_PINGROUP); } "PinGroupConfig" { count (1); return (PARSEOP_PINGROUPCONFIG); } "PinGroupFunction" { count (1); return (PARSEOP_PINGROUPFUNCTION); } +"ClockInput" { count (1); return (PARSEOP_CLOCKINPUT); } "QWordIO" { count (1); return (PARSEOP_QWORDIO); } "QWordMemory" { count (1); return (PARSEOP_QWORDMEMORY); } "QWordSpace" { count (1); return (PARSEOP_QWORDSPACE); } @@ -665,6 +666,17 @@ NamePathTail [.]{NameSeg} "PullDown" { count (0); return (PARSEOP_PIN_PULLDOWN); } "PullNone" { count (0); return (PARSEOP_PIN_NOPULL); } + /* ClockScaleKeyword: Resource Descriptors (ACPI 6.5) */ + +"Hz" { count (0); return (PARSEOP_CLOCK_HZ); } +"KHz" { count (0); return (PARSEOP_CLOCK_KHZ); } +"MHz" { count (0); return (PARSEOP_CLOCK_MHZ); } + + /* ClockModeKeyword: Resource Descriptors (ACPI 6.5) */ + +"Fixed" { count (0); return (PARSEOP_CLOCK_FIXED); } +"Variable" { count (0); return (PARSEOP_CLOCK_VARIABLE); } + /* PolarityKeyword: Resource Descriptors (ACPI 5.0) */ "PolarityLow" { count (0); return (PARSEOP_DEVICEPOLARITY_LOW); } diff --git a/source/compiler/aslcstyle.y b/source/compiler/aslcstyle.y index b4e9065..d249b51 100644 --- a/source/compiler/aslcstyle.y +++ b/source/compiler/aslcstyle.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldebug.c b/source/compiler/asldebug.c index 5ac6a4e..928bb20 100644 --- a/source/compiler/asldebug.c +++ b/source/compiler/asldebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h index 12b2899..fe11d45 100644 --- a/source/compiler/asldefine.h +++ b/source/compiler/asldefine.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 3a61bc6..54d247e 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c index a7d2c9c..243145e 100644 --- a/source/compiler/aslexternal.c +++ b/source/compiler/aslexternal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfileio.c b/source/compiler/aslfileio.c index 88b9def..7920de7 100644 --- a/source/compiler/aslfileio.c +++ b/source/compiler/aslfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index 2479b40..51de2d1 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfold.c b/source/compiler/aslfold.c index 316890c..f03d19c 100644 --- a/source/compiler/aslfold.c +++ b/source/compiler/aslfold.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index ff00b92..438d0c5 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index 1cdbf8a..137736d 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index 2764bf6..37cc584 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhex.c b/source/compiler/aslhex.c index a6e80fd..4a71182 100644 --- a/source/compiler/aslhex.c +++ b/source/compiler/aslhex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslkeywords.y b/source/compiler/aslkeywords.y index 661cfc9..d559fd0 100644 --- a/source/compiler/aslkeywords.y +++ b/source/compiler/aslkeywords.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -462,3 +462,14 @@ XferTypeKeyword | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_8_16);} | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_16);} ; + +ClockScaleKeyword + : PARSEOP_CLOCK_HZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_HZ);} + | PARSEOP_CLOCK_KHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_KHZ);} + | PARSEOP_CLOCK_MHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_MHZ);} + ; + +ClockModeKeyword + : PARSEOP_CLOCK_FIXED {$$ = TrCreateLeafOp (PARSEOP_CLOCK_FIXED);} + | PARSEOP_CLOCK_VARIABLE {$$ = TrCreateLeafOp (PARSEOP_CLOCK_VARIABLE);} + ; diff --git a/source/compiler/asllength.c b/source/compiler/asllength.c index b1c0624..f554435 100644 --- a/source/compiler/asllength.c +++ b/source/compiler/asllength.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllisting.c b/source/compiler/asllisting.c index 290d506..1dd3b39 100644 --- a/source/compiler/asllisting.c +++ b/source/compiler/asllisting.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllistsup.c b/source/compiler/asllistsup.c index b03560d..44a87f0 100644 --- a/source/compiler/asllistsup.c +++ b/source/compiler/asllistsup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index 3f827d0..3e35d6a 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllookup.c b/source/compiler/asllookup.c index 44bf9a3..ae0729b 100644 --- a/source/compiler/asllookup.c +++ b/source/compiler/asllookup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmain.c b/source/compiler/aslmain.c index 3c2ce58..5b8f54e 100644 --- a/source/compiler/aslmain.c +++ b/source/compiler/aslmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index 782d0d9..71fb5f0 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -462,6 +462,12 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* PIN_PULLDEFAULT */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), /* PIN_PULLDOWN */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0), /* PIN_PULLUP */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), +/* CLOCKINPUT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), +/* CLOCK_HZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), +/* CLOCK_KHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), +/* CLOCK_MHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0), +/* CLOCK_FIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), +/* CLOCK_VARIABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), /* POWERRESOURCE */ OP_TABLE_ENTRY (AML_POWER_RESOURCE_OP, 0, OP_AML_PACKAGE, 0), /* PROCESSOR */ OP_TABLE_ENTRY (AML_PROCESSOR_OP, 0, OP_AML_PACKAGE, 0), /* QWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_QWORD, 0, 0, ACPI_BTYPE_INTEGER), diff --git a/source/compiler/aslmapenter.c b/source/compiler/aslmapenter.c index 5dae3e9..b167fb4 100644 --- a/source/compiler/aslmapenter.c +++ b/source/compiler/aslmapenter.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapoutput.c b/source/compiler/aslmapoutput.c index 95146ea..74540f0 100644 --- a/source/compiler/aslmapoutput.c +++ b/source/compiler/aslmapoutput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmaputils.c b/source/compiler/aslmaputils.c index 0b2c7e2..48b6760 100644 --- a/source/compiler/aslmaputils.c +++ b/source/compiler/aslmaputils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index 990e376..fe697c8 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index 197e9e2..3346c5e 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 517ba77..f092a29 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 60c488d..a3578d3 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c index b0954c7..874e6e5 100644 --- a/source/compiler/asloffset.c +++ b/source/compiler/asloffset.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index e07910b..f6c993e 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index 9330fdf..2c3c6fa 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c index 916aebf..c81e27b 100644 --- a/source/compiler/aslopt.c +++ b/source/compiler/aslopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index 37484f7..ca894a3 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index ab81ac2..38169fe 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -817,6 +817,8 @@ TrAllocateOp ( ACPI_PARSE_OBJECT *Op; ACPI_PARSE_OBJECT *LatestOp; + ACPI_FUNCTION_NAME (TrAllocateOp); + Op = UtParseOpCacheCalloc (); @@ -861,7 +863,7 @@ TrAllocateOp ( } AslGbl_CommentState.LatestParseOp = Op; - CvDbgPrint ("TrAllocateOp=Set latest parse op to this op.\n"); + CvDbgPrint ("%s=Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME); CvDbgPrint (" Op->Asl.ParseOpName = %s\n", AslGbl_CommentState.LatestParseOp->Asl.ParseOpName); CvDbgPrint (" Op->Asl.ParseOpcode = 0x%x\n", ParseOpcode); diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index dff1561..3e1c661 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -208,7 +208,7 @@ AslLocalAllocate ( * These shift/reduce conflicts are expected. There should be zero * reduce/reduce conflicts. */ -%expect 127 +%expect 128 /*! [Begin] no source code translation */ diff --git a/source/compiler/aslpld.c b/source/compiler/aslpld.c index 9faa8c2..eedfaa2 100644 --- a/source/compiler/aslpld.c +++ b/source/compiler/aslpld.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index 2804e12..9253299 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprepkg.c b/source/compiler/aslprepkg.c index f562dbe..21fe2db 100644 --- a/source/compiler/aslprepkg.c +++ b/source/compiler/aslprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprimaries.y b/source/compiler/aslprimaries.y index 69565de..f705971 100644 --- a/source/compiler/aslprimaries.y +++ b/source/compiler/aslprimaries.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index 3f270fe..b2da003 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprune.c b/source/compiler/aslprune.c index 4626a1e..dc1162c 100644 --- a/source/compiler/aslprune.c +++ b/source/compiler/aslprune.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index 104a483..4d20c5e 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -762,6 +762,12 @@ RsDoOneResourceDescriptor ( switch (Info->DescriptorTypeOp->Asl.ParseOpcode) { + + case PARSEOP_CLOCKINPUT: + + Rnode = RsDoClockInputDescriptor(Info); + break; + case PARSEOP_DMA: Rnode = RsDoDmaDescriptor (Info); diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index a5752b0..52bff9c 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -214,6 +214,7 @@ ResourceMacroTerm | Memory32Term {} | PinConfigTerm {} | PinFunctionTerm {} + | ClockInputTerm {} | PinGroupTerm {} | PinGroupConfigTerm {} | PinGroupFunctionTerm {} @@ -666,6 +667,21 @@ PinFunctionTerm error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} ; +ClockInputTerm + : PARSEOP_CLOCKINPUT + PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);} + DWordConstExpr /* 04: FrequencyNumerator */ + ',' WordConstExpr /* 06: FrequencyDivisor */ + ',' ClockScaleKeyword /* 08: Scale */ + ',' ClockModeKeyword /* 10: Mode*/ + OptionalStringData /* 11: ResourceSource */ + OptionalByteConstExpr /* 12: ResourceSourceIndex */ + PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($3,6,$4,$6,$8,$10,$11,$12);} + | PARSEOP_CLOCKINPUT + PARSEOP_OPEN_PAREN + error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} + ; + PinGroupTerm : PARSEOP_PINGROUP PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_PINGROUP);} diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c index a6625c0..53fa862 100644 --- a/source/compiler/aslrestype1.c +++ b/source/compiler/aslrestype1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c index 84d5b65..d352e65 100644 --- a/source/compiler/aslrestype1i.c +++ b/source/compiler/aslrestype1i.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index 387e85c..bf6f77e 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -337,7 +337,7 @@ RsDoInterruptDescriptor ( Descriptor->ExtendedIrq.InterruptCount = 0; Rover = ACPI_CAST_PTR (AML_RESOURCE, - (&(Descriptor->ExtendedIrq.Interrupts[0]))); + (&(Descriptor->ExtendedIrq.u.Interrupts[0]))); /* Process all child initialization nodes */ @@ -466,7 +466,7 @@ RsDoInterruptDescriptor ( RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT, CurrentByteOffset + - ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); + ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0])); } } @@ -494,7 +494,7 @@ RsDoInterruptDescriptor ( } Rnode->BufferLength = - (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - + (ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]) - ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) + OptionIndex + StringLength; return (Rnode); diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c index 6b597e2..45013c2 100644 --- a/source/compiler/aslrestype2d.c +++ b/source/compiler/aslrestype2d.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c index 414b2d2..c557f40 100644 --- a/source/compiler/aslrestype2e.c +++ b/source/compiler/aslrestype2e.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c index ce79659..6286659 100644 --- a/source/compiler/aslrestype2q.c +++ b/source/compiler/aslrestype2q.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index ea832da..0548079 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1550,7 +1550,6 @@ RsDoPinFunctionDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -1668,15 +1667,10 @@ RsDoPinFunctionDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 8: First pin number in list */ @@ -1708,6 +1702,115 @@ RsDoPinFunctionDescriptor ( return (Rnode); } +/******************************************************************************* + * + * FUNCTION: RsDoClockInputDescriptor + * + * PARAMETERS: Info - Parse Op and resource template offset + * + * RETURN: Completed resource node + * + * DESCRIPTION: Construct a long "ClockInput" descriptor + * + ******************************************************************************/ + +ASL_RESOURCE_NODE * +RsDoClockInputDescriptor ( + ASL_RESOURCE_INFO *Info) +{ + AML_RESOURCE *Descriptor; + ACPI_PARSE_OBJECT *InitializerOp; + ASL_RESOURCE_NODE *Rnode; + char *ResourceSourceString = NULL; + UINT8 *ResourceSourceIndex = NULL; + UINT16 ResSourceLength; + UINT16 DescriptorSize; + UINT32 i; + UINT32 CurrentByteOffset; + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; + CurrentByteOffset = Info->CurrentByteOffset; + + /* + * Calculate lengths for fields that have variable length: + * 1) Resource Source string + */ + ResSourceLength = RsGetStringDataLength (InitializerOp); + + DescriptorSize = ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT) + ResSourceLength + 1; + + /* Allocate the local resource node and initialize */ + + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; + Descriptor->ClockInput.ResourceLength = DescriptorSize; + Descriptor->ClockInput.DescriptorType = ACPI_RESOURCE_NAME_CLOCK_INPUT; + Descriptor->ClockInput.RevisionId = AML_RESOURCE_CLOCK_INPUT_REVISION; + + /* Build pointers to optional areas */ + + if (ResSourceLength){ + ResourceSourceIndex = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT)); + ResourceSourceString = ACPI_ADD_PTR (char, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT) + 1); + } + + /* Process all child initialization nodes */ + + for (i = 0; InitializerOp; i++) + { + switch (i) + { + case 0: + Descriptor->ClockInput.FrequencyNumerator = (UINT32)InitializerOp->Asl.Value.Integer; + RsCreateDwordField (InitializerOp, ACPI_RESTAG_FQN, + CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyNumerator)); + + break; + + case 1: + Descriptor->ClockInput.FrequencyDivisor = (UINT16)InitializerOp->Asl.Value.Integer; + RsCreateWordField (InitializerOp, ACPI_RESTAG_FQD, + CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyDivisor)); + + break; + + case 2: + RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 1, 0); + break; + + case 3: + RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 0, 0); + break; + + case 4: /* ResSource String [Optional Field] */ + + if (ResourceSourceString) + { + /* Copy string to the descriptor */ + + strcpy (ResourceSourceString, InitializerOp->Asl.Value.String); + } + break; + + case 5: /* ResSource Index [Optional Field] */ + if (ResourceSourceIndex) + { + *ResourceSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + } + break; + + default: + break; + } + + InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); + } + + return (Rnode); +} + /******************************************************************************* * @@ -1736,7 +1839,6 @@ RsDoPinConfigDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -1868,15 +1970,10 @@ RsDoPinConfigDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 8: First pin number in list */ @@ -1936,7 +2033,6 @@ RsDoPinGroupDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -2022,15 +2118,10 @@ RsDoPinGroupDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 3: First pin number in list */ diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c index a758e05..9908494 100644 --- a/source/compiler/aslrestype2w.c +++ b/source/compiler/aslrestype2w.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrules.y b/source/compiler/aslrules.y index 79aa221..2793749 100644 --- a/source/compiler/aslrules.y +++ b/source/compiler/aslrules.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 9542a79..8b4e5c7 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstubs.c b/source/compiler/aslstubs.c index 0e6cd56..e90115b 100644 --- a/source/compiler/aslstubs.c +++ b/source/compiler/aslstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l index 0daec60..8d589a9 100644 --- a/source/compiler/aslsupport.l +++ b/source/compiler/aslsupport.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -195,7 +195,7 @@ AslParserCleanup ( * * DESCRIPTION: Handle #line directives emitted by the preprocessor. * - * The #line directive is emitted by the preprocesser, and is used to + * The #line directive is emitted by the preprocessor, and is used to * pass through line numbers from the original source code file to the * preprocessor output file (.i). This allows any compiler-generated * error messages to be displayed with the correct line number. diff --git a/source/compiler/aslsupport.y b/source/compiler/aslsupport.y index 3f19af2..f742067 100644 --- a/source/compiler/aslsupport.y +++ b/source/compiler/aslsupport.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index c43561e..48db2e2 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -399,6 +399,12 @@ NoEcho(' %token PARSEOP_PIN_PULLDEFAULT %token PARSEOP_PIN_PULLDOWN %token PARSEOP_PIN_PULLUP +%token PARSEOP_CLOCKINPUT +%token PARSEOP_CLOCK_HZ +%token PARSEOP_CLOCK_KHZ +%token PARSEOP_CLOCK_MHZ +%token PARSEOP_CLOCK_FIXED +%token PARSEOP_CLOCK_VARIABLE %token PARSEOP_POWERRESOURCE %token PARSEOP_PROCESSOR %token PARSEOP_QWORDCONST diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 573ddad..d1fcbed 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltree.c b/source/compiler/asltree.c index 9cf4926..f390c4f 100644 --- a/source/compiler/asltree.c +++ b/source/compiler/asltree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -467,6 +467,7 @@ TrLinkOpChildren ( UINT32 i; BOOLEAN FirstChild; + ACPI_FUNCTION_NAME (TrLinkOpChildren); va_start (ap, NumChildren); @@ -624,7 +625,7 @@ TrLinkOpChildren ( if (AcpiGbl_CaptureComments) { AslGbl_CommentState.LatestParseOp = Op; - CvDbgPrint ("TrLinkOpChildren=====Set latest parse op to this op.\n"); + CvDbgPrint ("%s=====Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME); } return (Op); diff --git a/source/compiler/asltypes.h b/source/compiler/asltypes.h index d5689de..577d3b8 100644 --- a/source/compiler/asltypes.h +++ b/source/compiler/asltypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -336,7 +336,7 @@ typedef struct asl_file_desc typedef struct asl_cache_info { void *Next; - char Buffer[1]; + char Buffer[]; } ASL_CACHE_INFO; diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index ba98362..d5f020d 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -359,6 +359,8 @@ NoEcho(' %type WireModeKeyword %type XferSizeKeyword %type XferTypeKeyword +%type ClockScaleKeyword +%type ClockModeKeyword /* Types */ @@ -411,6 +413,7 @@ NoEcho(' /* Resource Descriptors */ +%type ClockInputTerm %type ConnectionTerm %type Csi2SerialBusTerm %type DMATerm diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index e91fd46..86b040b 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -610,7 +610,7 @@ UtSetParseOpName ( * * FUNCTION: UtDisplayOneSummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * @@ -733,7 +733,7 @@ UtDisplayOneSummary ( * * FUNCTION: UtDisplayErrorSummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * @@ -800,7 +800,7 @@ UtDisplayErrorSummary ( * * FUNCTION: UtDisplaySummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index 0eb3605..fbbf644 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 6e32f08..0f7bc94 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index 3a00f5a..0e1034b 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxrefout.c b/source/compiler/aslxrefout.c index dd3fe80..04471c6 100644 --- a/source/compiler/aslxrefout.c +++ b/source/compiler/aslxrefout.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c index b51a688..6689ca8 100644 --- a/source/compiler/cvcompiler.c +++ b/source/compiler/cvcompiler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c index 250c009..7561e90 100644 --- a/source/compiler/cvdisasm.c +++ b/source/compiler/cvdisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c index 66b04e9..574cbe8 100644 --- a/source/compiler/cvparser.c +++ b/source/compiler/cvparser.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index 11fcb8b..afb4e34 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index e85ca53..cddc951 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -578,6 +578,10 @@ DtCompileAsf ( void **PFieldList); ACPI_STATUS +DtCompileAspt ( + void **PFieldList); + +ACPI_STATUS DtCompileCdat ( void **PFieldList); @@ -654,6 +658,10 @@ DtCompileMcfg ( void **PFieldList); ACPI_STATUS +DtCompileMpam ( + void **PFieldList); + +ACPI_STATUS DtCompileMpst ( void **PFieldList); @@ -698,6 +706,10 @@ DtCompileRgrt ( void **PFieldList); ACPI_STATUS +DtCompileRhct ( + void **PFieldList); + +ACPI_STATUS DtCompileRsdt ( void **PFieldList); @@ -773,6 +785,7 @@ extern const unsigned char TemplateAest[]; extern const unsigned char TemplateAgdi[]; extern const unsigned char TemplateApmt[]; extern const unsigned char TemplateAsf[]; +extern const unsigned char TemplateAspt[]; extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBdat[]; extern const unsigned char TemplateBert[]; @@ -801,6 +814,7 @@ extern const unsigned char TemplateLpit[]; extern const unsigned char TemplateMadt[]; extern const unsigned char TemplateMcfg[]; extern const unsigned char TemplateMchi[]; +extern const unsigned char TemplateMpam[]; extern const unsigned char TemplateMpst[]; extern const unsigned char TemplateMsct[]; extern const unsigned char TemplateMsdm[]; @@ -814,6 +828,7 @@ extern const unsigned char TemplatePptt[]; extern const unsigned char TemplatePrmt[]; extern const unsigned char TemplateRasf[]; extern const unsigned char TemplateRgrt[]; +extern const unsigned char TemplateRhct[]; extern const unsigned char TemplateRsdt[]; extern const unsigned char TemplateS3pt[]; extern const unsigned char TemplateSbst[]; diff --git a/source/compiler/dtcompilerparser.l b/source/compiler/dtcompilerparser.l index a00ef56..a4ff02a 100644 --- a/source/compiler/dtcompilerparser.l +++ b/source/compiler/dtcompilerparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompilerparser.y b/source/compiler/dtcompilerparser.y index 30ead3a..f03615f 100644 --- a/source/compiler/dtcompilerparser.y +++ b/source/compiler/dtcompilerparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c index fd292d8..7d61472 100644 --- a/source/compiler/dtexpress.c +++ b/source/compiler/dtexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,10 +480,11 @@ static void DtInsertLabelField ( DT_FIELD *Field) { + ACPI_FUNCTION_NAME (DtInsertLabelField); DbgPrint (ASL_DEBUG_OUTPUT, - "DtInsertLabelField: Found Label : %s at output table offset %X\n", - Field->Value, Field->TableOffset); + "%s: Found Label : %s at output table offset %X\n", + ACPI_GET_FUNCTION_NAME, Field->Value, Field->TableOffset); Field->NextLabel = AslGbl_LabelList; AslGbl_LabelList = Field; diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index f931631..b2ba669 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -678,7 +678,7 @@ DtCompileFlag ( case ACPI_DMT_FLAGS8_2: - BitPosition = 2; + BitPosition = 2; BitLength = 8; break; diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 9ec18cd..7d7fb2b 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index b7cb26e..0c003ec 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.y b/source/compiler/dtparser.y index fc8275c..df804c9 100644 --- a/source/compiler/dtparser.y +++ b/source/compiler/dtparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtsubtable.c b/source/compiler/dtsubtable.c index 3c2798b..0bbaa81 100644 --- a/source/compiler/dtsubtable.c +++ b/source/compiler/dtsubtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable.c b/source/compiler/dttable.c index dfc34c1..1cbd461 100644 --- a/source/compiler/dttable.c +++ b/source/compiler/dttable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index dc25e9b..8ffcb40 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -654,6 +654,91 @@ DtCompileAsf ( return (AE_OK); } +/****************************************************************************** + * + * FUNCTION: DtCompileAspt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile ASPT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileAspt ( + void **List) +{ + ACPI_ASPT_HEADER *AsptTable; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_STATUS Status; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAspt, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsptHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + AsptTable = ACPI_CAST_PTR (ACPI_ASPT_HEADER, Subtable->Buffer); + + switch (AsptTable->Type) /* Mask off top bit */ + { + case ACPI_ASPT_TYPE_GLOBAL_REGS: + + InfoTable = AcpiDmTableInfoAspt0; + break; + + case ACPI_ASPT_TYPE_SEV_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt1; + break; + + case ACPI_ASPT_TYPE_ACPI_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt2; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASPT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + /****************************************************************************** * @@ -854,7 +939,7 @@ DtCompileCedt ( /* Look in buffer for the number of targets */ offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays); dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt1 */ - max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */ + max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */ if (max > 8) max=1; /* Error in encoding Interleaving Ways. */ if (max == 1) /* if only one target, then break here. */ break; /* break if only one target. */ @@ -2009,7 +2094,7 @@ DtCompileHmat ( DtInsertSubtable (ParentTable, Subtable); HmatStruct->Length += Subtable->Length; - /* Compile HMAT structure additionals */ + /* Compile HMAT structure additional */ switch (HmatStruct->Type) { diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 59d578f..007b674 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -425,6 +425,163 @@ DtCompileMcfg ( return (Status); } +/****************************************************************************** + * + * FUNCTION: DtCompileMpam + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MPAM. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMpam ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *ParentTable; + DT_SUBTABLE *Subtable; + DT_FIELD *SubtableStart; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_MPAM_MSC_NODE *MpamMscNode; + ACPI_MPAM_RESOURCE_NODE *MpamResourceNode; + UINT32 FuncDepsCount; + UINT32 RisLength; + ACPI_DMTABLE_INFO *InfoTable; + + ParentTable = DtPeekSubtable (); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* Main MSC Node table */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + MpamMscNode = ACPI_CAST_PTR (ACPI_MPAM_MSC_NODE, Subtable->Buffer); + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ParentTable = DtPeekSubtable (); + + /* + * RIS(es) per MSC node have variable lengths depending on how many RISes there and + * any how many functional dependencies per RIS. Calculate it in order + * to properly set the overall MSC length. + */ + RisLength = 0; + + /* Iterate over RIS subtables per MSC node */ + for (UINT32 ris = 0; ris < MpamMscNode->NumResouceNodes; ris++) + { + /* Compile RIS subtable */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + MpamResourceNode = ACPI_CAST_PTR (ACPI_MPAM_RESOURCE_NODE, Subtable->Buffer); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ParentTable = DtPeekSubtable (); + + switch (MpamResourceNode->LocatorType) + { + case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE: + InfoTable = AcpiDmTableInfoMpam1A; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY: + InfoTable = AcpiDmTableInfoMpam1B; + break; + case ACPI_MPAM_LOCATION_TYPE_SMMU: + InfoTable = AcpiDmTableInfoMpam1C; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE: + InfoTable = AcpiDmTableInfoMpam1D; + break; + case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE: + InfoTable = AcpiDmTableInfoMpam1E; + break; + case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT: + InfoTable = AcpiDmTableInfoMpam1F; + break; + case ACPI_MPAM_LOCATION_TYPE_UNKNOWN: + InfoTable = AcpiDmTableInfoMpam1G; + default: + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "Resource Locator Type"); + return (AE_ERROR); + } + + /* Compile Resource Locator Table */ + Status = DtCompileTable (PFieldList, InfoTable, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + /* Compile the number of functional dependencies per RIS */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1Deps, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + FuncDepsCount = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); + + RisLength += sizeof(ACPI_MPAM_RESOURCE_NODE) + + FuncDepsCount * sizeof(ACPI_MPAM_FUNC_DEPS); + + /* Iterate over functional dependencies per RIS */ + for (UINT32 funcDep = 0; funcDep < FuncDepsCount; funcDep++) + { + /* Compiler functional dependencies table */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam2, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + + DtPopSubtable (); + } + + /* Check if the length of the MSC is correct and override with the correct length */ + if (MpamMscNode->Length != sizeof(ACPI_MPAM_MSC_NODE) + RisLength) + { + MpamMscNode->Length = (UINT16) (sizeof(ACPI_MPAM_MSC_NODE) + RisLength); + DbgPrint (ASL_DEBUG_OUTPUT, "Overriding MSC->Length: %X\n", MpamMscNode->Length); + } + + DtPopSubtable (); + } + + return (AE_OK); +} + /****************************************************************************** * @@ -1086,7 +1243,7 @@ DtCompileNhlt ( /* * If we are not done with the current Endpoint yet, then there must be - * some non documeneted structure(s) yet to be processed. First, get + * some non documented structure(s) yet to be processed. First, get * the count of such structure(s). */ if (*PFieldList && !(strcmp ((const char *) (*PFieldList)->Name, "Device Info struct count"))) @@ -1800,7 +1957,7 @@ DtCompilePptt ( DtInsertSubtable (ParentTable, Subtable); PpttHeader->Length += (UINT8)(Subtable->Length); - /* Compile PPTT subtable additionals */ + /* Compile PPTT subtable additional */ switch (PpttHeader->Type) { @@ -1971,6 +2128,128 @@ DtCompileRgrt ( /****************************************************************************** * + * FUNCTION: DtCompileRhct + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile RHCT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileRhct ( + void **List) +{ + ACPI_STATUS Status; + ACPI_RHCT_NODE_HEADER *RhctHeader; + ACPI_RHCT_HART_INFO *RhctHartInfo = NULL; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhct, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* Compile RHCT subtable header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhctNodeHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + RhctHeader = ACPI_CAST_PTR (ACPI_RHCT_NODE_HEADER, Subtable->Buffer); + RhctHeader->Length = (UINT16)(Subtable->Length); + + switch (RhctHeader->Type) + { + case ACPI_RHCT_NODE_TYPE_ISA_STRING: + + InfoTable = AcpiDmTableInfoRhctIsa1; + break; + + case ACPI_RHCT_NODE_TYPE_HART_INFO: + + InfoTable = AcpiDmTableInfoRhctHartInfo1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT"); + return (AE_ERROR); + } + + /* Compile RHCT subtable body */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + RhctHeader->Length += (UINT16)(Subtable->Length); + + /* Compile RHCT subtable additionals */ + + switch (RhctHeader->Type) + { + case ACPI_RHCT_NODE_TYPE_HART_INFO: + + RhctHartInfo = ACPI_SUB_PTR (ACPI_RHCT_HART_INFO, + Subtable->Buffer, sizeof (ACPI_RHCT_NODE_HEADER)); + if (RhctHartInfo) + { + + RhctHartInfo->NumOffsets = 0; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, + AcpiDmTableInfoRhctHartInfo2, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + RhctHeader->Length += (UINT16)(Subtable->Length); + RhctHartInfo->NumOffsets++; + } + } + break; + + default: + + break; + } + } + + return (AE_OK); +} + + +/****************************************************************************** + * * FUNCTION: DtCompileRsdt * * PARAMETERS: List - Current field list pointer diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 1bcc4a1..77edbc8 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 3ab9997..755da40 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -301,6 +301,27 @@ const unsigned char TemplateAsf[] = 0x01,0x00 /* 00000070 ".." */ }; +const unsigned char TemplateAspt[] = +{ + 0x41,0x53,0x50,0x54,0x88,0x00,0x00,0x00, /* 00000000 "ASPT...." */ + 0x01,0x2D,0x56,0x52,0x54,0x55,0x41,0x4C, /* 00000008 "..VRTUAL" */ + 0x4D,0x49,0x43,0x52,0x4F,0x53,0x46,0x54, /* 00000010 "MICROSFT" */ + 0x01,0x00,0x00,0x00,0x4D,0x53,0x46,0x54, /* 00000018 "....INTL" */ + 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000020 " ." ...." */ + 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000028 ".. ....." */ + 0x00,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000030 "........" */ + 0x04,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000038 "........" */ + 0x08,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x01,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000048 ".. ....." */ + 0x10,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x14,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000058 "........" */ + 0x18,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000060 "........" */ + 0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".. ....." */ + 0x20,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000070 " ......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ +}; + const unsigned char TemplateBdat[] = { 0x42,0x44,0x41,0x54,0x30,0x00,0x00,0x00, /* 00000000 "BDAT0..." */ @@ -1197,6 +1218,42 @@ const unsigned char TemplateMsdm[] = 0x22,0x23,0x24,0x25 /* 00000060 ""#$%" */ }; +const unsigned char TemplateMpam[] = +{ + 0x4D,0x50,0x41,0x4D,0xFC,0x00,0x00,0x00, /* 00000000 "MPAM...." */ + 0x02,0x34,0x48,0x49,0x53,0x49,0x20,0x20, /* 00000008 ".4HISI " */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x02,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x20,0x10,0x22,0x20,0x60,0x00,0x00,0x00, /* 00000020 " ." `..." */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0, /* 00000028 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000030 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "2......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */ + 0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00, /* 00000068 "........" */ + 0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00, /* 00000070 ".... ..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ + 0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00, /* 00000080 "....x..." */ + 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xD0, /* 00000088 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000090 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ + 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "2......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */ + 0x02,0x00,0x00,0x00,0x12,0x00,0x00,0x00, /* 000000C8 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000D0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "........" */ + 0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00, /* 000000E0 "........" */ + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 000000E8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */ + 0x00,0x00,0x00,0x00 /* 000000F8 "...." */ +}; + const unsigned char TemplateMpst[] = { 0x4D,0x50,0x53,0x54,0xB6,0x00,0x00,0x00, /* 00000000 "MPST...." */ @@ -1659,6 +1716,26 @@ const unsigned char TemplateRgrt[] = 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27 /* 00000048 " !"#$%&'" */ }; +const unsigned char TemplateRhct[] = +{ + 0x52,0x48,0x43,0x54,0x7C,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ + 0x01,0x7D,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 "... ...." */ + 0x80,0x96,0x98,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ + 0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00, /* 00000030 "....8..." */ + 0x00,0x00,0x34,0x00,0x01,0x00,0x2B,0x00, /* 00000038 "..4...*." */ + 0x72,0x76,0x36,0x34,0x69,0x6D,0x61,0x66, /* 00000040 "rv64imaf" */ + 0x64,0x63,0x68,0x5F,0x7A,0x69,0x63,0x73, /* 00000048 "dch_zics" */ + 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 "........" */ +}; + const unsigned char TemplateRsdp[] = { 0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20, /* 00000000 "RSD PTR " */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 45bff3d..de321e5 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -584,6 +584,7 @@ DtGetFieldLength ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_MPAM_LOCATOR: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: case ACPI_DMT_NHLT1b: @@ -614,6 +615,7 @@ DtGetFieldLength ( ByteLength = 1; break; + case ACPI_DMT_ASPT: case ACPI_DMT_UINT16: case ACPI_DMT_DMAR: case ACPI_DMT_HEST: diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index 9c25dd1..818eac2 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -249,6 +249,7 @@ typedef struct directive_info */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MainTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ +PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenReplaceBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_ExpressionTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN UINT32 AslGbl_PreprocessorLineNumber; @@ -370,6 +371,14 @@ PrError ( UINT32 Column); void +PrReplaceResizeSubstring( + PR_MACRO_ARG *Args, + UINT32 Diff1, + UINT32 Diff2, + UINT32 i, + char *Token); + +char * PrReplaceData ( char *Buffer, UINT32 LengthToRemove, diff --git a/source/compiler/prexpress.c b/source/compiler/prexpress.c index 8ac1fd8..8857068 100644 --- a/source/compiler/prexpress.c +++ b/source/compiler/prexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prmacros.c b/source/compiler/prmacros.c index 5b36697..6414867 100644 --- a/source/compiler/prmacros.c +++ b/source/compiler/prmacros.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -393,10 +393,10 @@ PrAddMacro ( UINT16 UseCount = 0; UINT16 ArgCount = 0; UINT32 Depth = 1; + /*UINT32 Depth = 1;*/ UINT32 EndOfArgList; char BufferChar; - /* Find the end of the arguments list */ TokenOffset = Name - AslGbl_MainTokenBuffer + strlen (Name) + 1; @@ -437,6 +437,7 @@ PrAddMacro ( for (i = 0; i < PR_MAX_MACRO_ARGS; i++) { Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next); + if (!Token) { /* This is the case for a NULL macro body */ @@ -454,14 +455,13 @@ PrAddMacro ( } DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID - "Macro arg: %s \n", + "Macro param: %s \n", AslGbl_CurrentLineNumber, Token); Args[i].Name = UtLocalCalloc (strlen (Token) + 1); strcpy (Args[i].Name, Token); Args[i].UseCount = 0; - ArgCount++; if (ArgCount >= PR_MAX_MACRO_ARGS) { @@ -476,7 +476,6 @@ PrAddMacro ( /* Match each method arg in the macro body for later use */ - Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next); while (Token) { /* Search the macro arg list for matching arg */ @@ -496,12 +495,14 @@ PrAddMacro ( Args[i].Offset[UseCount] = (Token - AslGbl_MainTokenBuffer) - MacroBodyOffset; + DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID "Macro Arg #%u: %s UseCount %u Offset %u \n", AslGbl_CurrentLineNumber, i, Token, UseCount+1, Args[i].Offset[UseCount]); Args[i].UseCount++; + if (Args[i].UseCount >= PR_MAX_ARG_INSTANCES) { PrError (ASL_ERROR, ASL_MSG_TOO_MANY_ARGUMENTS, @@ -596,7 +597,8 @@ PrDoMacroInvocation ( UINT32 TokenOffset; UINT32 Length; UINT32 i; - + UINT32 Diff1; + UINT32 Diff2; /* Take a copy of the macro body for expansion */ @@ -610,6 +612,7 @@ PrDoMacroInvocation ( /* This macro has no arguments */ Token = PrGetNextToken (NULL, PR_MACRO_ARGUMENTS, Next); + if (!Token) { goto BadInvocation; @@ -634,21 +637,35 @@ PrDoMacroInvocation ( goto BadInvocation; } + /* + * Avoid optimizing using just 1 signed int due to specific + * non-portable implementations of signed ints + */ + Diff1 = strlen (Args->Name) > strlen (Token) ? strlen (Args->Name) - + strlen (Token) : 0; + + Diff2 = strlen (Args->Name) < strlen (Token) ? strlen (Token) - + strlen (Args->Name) : 0; + /* Replace all instances of this argument */ for (i = 0; i < Args->UseCount; i++) { - /* Offset zero indicates "arg not used" */ - /* TBD: Not really needed now, with UseCount available */ + /* + * To test the output of the preprocessed macro function that + * is passed to the compiler + */ - if (Args->Offset[i] == 0) - { - break; - } + /* + * fprintf (stderr, "Current token = %s \t Current arg_name = %s \ + * \t strlen (Token) = %u \t strlen (Args->Name) = %u \t Offset = %u \ + * \t UseCount = %u \t", Token, Args->Name, strlen (Token), \ + * strlen (Args->Name), Args->Offset[i], Args->UseCount); + */ + + AslGbl_MacroTokenReplaceBuffer = (char *) calloc ((strlen (AslGbl_MacroTokenBuffer)), sizeof (char)); - PrReplaceData ( - &AslGbl_MacroTokenBuffer[Args->Offset[i]], strlen (Args->Name), - Token, strlen (Token)); + PrReplaceResizeSubstring (Args, Diff1, Diff2, i, Token); DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID "ExpandArg: %s \n", @@ -658,8 +675,6 @@ PrDoMacroInvocation ( Args++; } - /* TBD: need to make sure macro was not invoked with too many arguments */ - if (!Token) { return; @@ -676,7 +691,6 @@ PrDoMacroInvocation ( return; - BadInvocation: PrError (ASL_ERROR, ASL_MSG_INVALID_INVOCATION, THIS_TOKEN_OFFSET (MacroStart)); diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index 828d81b..c701da4 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.y b/source/compiler/prparser.y index 3854d98..2f4d032 100644 --- a/source/compiler/prparser.y +++ b/source/compiler/prparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prscan.c b/source/compiler/prscan.c index 0d9af86..d29f4e9 100644 --- a/source/compiler/prscan.c +++ b/source/compiler/prscan.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -780,8 +780,9 @@ PrDoDirective ( TokenOffset = Token - AslGbl_MainTokenBuffer + strlen (Token); if (*(&AslGbl_CurrentLineBuffer[TokenOffset]) == '(') { -#ifndef MACROS_SUPPORTED - AcpiOsPrintf ( + +#ifdef MACROS_SUPPORTED + AcpiOsPrintf( "%s ERROR - line %u: #define macros are not supported yet\n", AslGbl_CurrentLineBuffer, AslGbl_LogicalLineNumber); exit(1); @@ -789,6 +790,8 @@ PrDoDirective ( PrAddMacro (Token, Next); #endif } + + else { /* Use the remainder of the line for the #define */ diff --git a/source/compiler/prutils.c b/source/compiler/prutils.c index eea42f8..2eb91a6 100644 --- a/source/compiler/prutils.c +++ b/source/compiler/prutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -284,6 +284,238 @@ PrError ( /******************************************************************************* * + * FUNCTION: PrReplaceResizeSubstring + * + * PARAMETERS: Args - Struct containing name, offset & usecount + * Diff1 - Difference in lengths when new < old + * Diff2 - Difference in lengths when new > old +* i - The curr. no. of iteration of replacement + * Token - Substring that replaces Args->Name + * + * RETURN: None + * + * DESCRIPTION: Advanced substring replacement in a string using resized buffer. + * + ******************************************************************************/ + +void +PrReplaceResizeSubstring( + PR_MACRO_ARG *Args, + UINT32 Diff1, + UINT32 Diff2, + UINT32 i, + char *Token) +{ + UINT32 b, PrevOffset; + char *temp; + char macro_sep[64]; + + + AslGbl_MacroTokenReplaceBuffer = (char *) realloc (AslGbl_MacroTokenReplaceBuffer, + (2 * (strlen (AslGbl_MacroTokenBuffer)))); + + strcpy (macro_sep, "~,() {}!*/%+-<>=&^|\"\t\n"); + + /* + * When the replacement argument (during invocation) length + * < replaced parameter (in the macro function definition + * and its expansion) length + */ + if (Diff1 != 0) + { + /* + * We save the offset value to reset it after replacing each + * instance of each arg and setting the offset value to + * the start of the arg to be replaced since it changes + * with each iteration when arg length != token length + */ + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere1: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere1; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp += strlen (Args->Name); + goto ResetHere1; + } + + /* + * For now, we simply set the extra char positions (generated + * due to longer name replaced by shorter name) to whitespace + * chars so it will be ignored during compilation + */ +JumpHere1: + b = strlen (Token) + Args->Offset[i]; + memset (&AslGbl_MacroTokenBuffer[b], ' ', Diff1); + +# if 0 + + /* Work in progress as of 03/08/2023 - experimental 'if' block + * to test code for removing extra whitespaces from the macro + * replacement when replacement arg < replaced param + */ + char Buff[8192]; + /* char* Replace; */ + /* Replace = Buff; */ + + for (j = 0; j < strlen (AslGbl_MacroTokenBuffer); j++) + { + Buff[j] = AslGbl_MacroTokenBuffer[j]; + } + Buff[strlen (AslGbl_MacroTokenBuffer)] = '\0'; + //fprintf (stderr, "Buff: %s\n", Buff); + + UINT32 len = strlen (Buff); + + for (j = 0; j < len; j++) + { + if (Buff[0] == ' ') + { + for (j = 0; j < (len - 1); j++) + { + Buff[j] = Buff[j + 1]; + } + Buff[j] = '\0'; + len--; + j = -1; + continue; + } + + if (Buff[j] == ' ' && Buff[j + 1] == ' ') + { + for (k = 0; k < (len - 1); k++) + { + Buff[j] = Buff[j + 1]; + } + Buff[j] = '\0'; + len--; + j--; + } + } + //fprintf(stderr, "Buff: %s\n", Buff); + + for (k = 0; k < strlen (Buff); k++) + { + AslGbl_MacroTokenBuffer[k] = Buff[k]; + } +#endif + + PrReplaceData ( + &AslGbl_MacroTokenBuffer[Args->Offset[i]], + strlen (Token), Token, strlen (Token)); + + temp = NULL; + Args->Offset[i] = PrevOffset; + } + + /* + * When the replacement argument (during invocation) length + * > replaced parameter (in the macro function definition + * and its expansion) length + */ + else if (Diff2 != 0) + { + /* Doing the same thing with offset value as for prev case */ + + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere2: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere2; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp+= strlen (Args->Name); + goto ResetHere2; + } + + /* + * We will need to allocate some extra space in our buffer to + * accommodate the increase in the replacement string length + * over the shorter outgoing arg string and do the replacement + * at the correct offset value which is resetted every iteration + */ +JumpHere2: + strncpy (AslGbl_MacroTokenReplaceBuffer, AslGbl_MacroTokenBuffer, Args->Offset[i]); + strcat (AslGbl_MacroTokenReplaceBuffer, Token); + strcat (AslGbl_MacroTokenReplaceBuffer, (AslGbl_MacroTokenBuffer + + (Args->Offset[i] + strlen (Args->Name)))); + + strcpy (AslGbl_MacroTokenBuffer, AslGbl_MacroTokenReplaceBuffer); + + temp = NULL; + Args->Offset[i] = PrevOffset; + } + + /* + * When the replacement argument (during invocation) length = + * replaced parameter (in the macro function definition and + * its expansion) length + */ + else + { + + /* + * We still need to reset the offset for each iteration even when + * arg and param lengths are same since any macro func invocation + * could use various cases for each separate arg-param pair + */ + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere3: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere3; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp += strlen (Args->Name); + goto ResetHere3; + } + +JumpHere3: + PrReplaceData ( + &AslGbl_MacroTokenBuffer[Args->Offset[i]], + strlen (Args->Name), Token, strlen (Token)); + temp = NULL; + Args->Offset[i] = PrevOffset; + } +} + + +/******************************************************************************* + * * FUNCTION: PrReplaceData * * PARAMETERS: Buffer - Original(target) buffer pointer @@ -291,13 +523,13 @@ PrError ( * BufferToAdd - Data to be inserted into target buffer * LengthToAdd - Length of BufferToAdd * - * RETURN: None + * RETURN: Pointer to where the buffer is replaced with data * * DESCRIPTION: Generic buffer data replacement. * ******************************************************************************/ -void +char * PrReplaceData ( char *Buffer, UINT32 LengthToRemove, @@ -325,12 +557,14 @@ PrReplaceData ( } } + /* Now we can move in the new data */ if (LengthToAdd > 0) { memmove (Buffer, BufferToAdd, LengthToAdd); } + return (Buffer + LengthToAdd); } diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 6f55147..b8c2b42 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index 9d1e1dd..0b85226 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index 276217f..ad69737 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index eed0aa3..73759c8 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 09f8f22..8fc11da 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index 31bfc3c..ecdfaeb 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 0f21b73..5e5c628 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index 82202e8..5060bf6 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index 963f812..040fed2 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -884,6 +884,9 @@ AcpiDbDisplayObjects ( { ObjectInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_OBJECT_INFO)); + if (!ObjectInfo) + return (AE_NO_MEMORY); + /* Walk the namespace from the root */ (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index b8bade4..fe38be9 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index 30a686d..a30d994 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c index 23690ed..a4d48c7 100644 --- a/source/components/debugger/dbtest.c +++ b/source/components/debugger/dbtest.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index ef649b2..70664ee 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index c44e1d0..667e90e 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c index d5d813c..79f5a3c 100644 --- a/source/components/disassembler/dmbuffer.c +++ b/source/components/disassembler/dmbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c index f0bef68..0af72d1 100644 --- a/source/components/disassembler/dmcstyle.c +++ b/source/components/disassembler/dmcstyle.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmdeferred.c b/source/components/disassembler/dmdeferred.c index 82ce2be..3a1ca55 100644 --- a/source/components/disassembler/dmdeferred.c +++ b/source/components/disassembler/dmdeferred.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c index 8852921..356af85 100644 --- a/source/components/disassembler/dmnames.c +++ b/source/components/disassembler/dmnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c index 1cfe710..8f201d2 100644 --- a/source/components/disassembler/dmopcode.c +++ b/source/components/disassembler/dmopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c index 0a183e9..644c8a9 100644 --- a/source/components/disassembler/dmresrc.c +++ b/source/components/disassembler/dmresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -203,6 +203,7 @@ static ACPI_RESOURCE_HANDLER AcpiGbl_DmResourceDispatch [] = AcpiDmPinGroupDescriptor, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiDmPinGroupFunctionDescriptor, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiDmPinGroupConfigDescriptor, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */ + AcpiDmClockInputDescriptor, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index 9aa6ac1..88d1903 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1112,7 +1112,7 @@ AcpiDmInterruptDescriptor ( { AcpiDmIndent (Level + 1); AcpiOsPrintf ("0x%8.8X,\n", - (UINT32) Resource->ExtendedIrq.Interrupts[i]); + (UINT32) Resource->ExtendedIrq.u.Interrupts[i]); } AcpiDmIndent (Level); diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index 59d00f6..1d732e2 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -523,6 +523,46 @@ AcpiDmGpioDescriptor ( } } +void +AcpiDmClockInputDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level) +{ + char *DeviceName = NULL; + UINT8 *ResourceIndex = NULL; + AcpiDmIndent (Level); + + AcpiOsPrintf ("ClockInput ("); + + AcpiOsPrintf ("0x%8.8X, ", Resource->ClockInput.FrequencyNumerator); + + AcpiOsPrintf ("0x%4.4X, ", Resource->ClockInput.FrequencyDivisor); + + AcpiOsPrintf ("%s, ", + AcpiGbl_ClockInputScale [ACPI_EXTRACT_2BIT_FLAG (Resource->ClockInput.Flags, 1)]); + + AcpiOsPrintf ("%s, ", + AcpiGbl_ClockInputMode [ACPI_GET_1BIT_FLAG (Resource->ClockInput.Flags)]); + + if (Length > sizeof(Resource->ClockInput)) + { + DeviceName = ACPI_ADD_PTR (char, + Resource, sizeof(Resource->ClockInput)+1), + AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); + + AcpiOsPrintf (", "); + ResourceIndex = ACPI_ADD_PTR (UINT8, + Resource, sizeof(Resource->ClockInput)), + + AcpiOsPrintf ("0x%2.2X", *ResourceIndex); + } + + AcpiOsPrintf (")\n"); + +} + /******************************************************************************* * * FUNCTION: AcpiDmPinFunctionDescriptor diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c index db5ce5d..3588362 100644 --- a/source/components/disassembler/dmresrcs.c +++ b/source/components/disassembler/dmresrcs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmutils.c b/source/components/disassembler/dmutils.c index 2a7b7b3..b6c133f 100644 --- a/source/components/disassembler/dmutils.c +++ b/source/components/disassembler/dmutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 7d2429b..beaa5f0 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c index 5224669..6b9e4a3 100644 --- a/source/components/dispatcher/dsargs.c +++ b/source/components/dispatcher/dsargs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 1d7d676..205b9b5 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index 9111a21..06f7ec8 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index 2d3851f..37cc25a 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c index 5f941f0..79e5571 100644 --- a/source/components/dispatcher/dsinit.c +++ b/source/components/dispatcher/dsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index d5fc303..02d9c6b 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -705,7 +705,7 @@ AcpiDsCallControlMethod ( if (!Info) { Status = AE_NO_MEMORY; - goto Cleanup; + goto PopWalkState; } Info->Parameters = &ThisWalkState->Operands[0]; @@ -717,7 +717,7 @@ AcpiDsCallControlMethod ( ACPI_FREE (Info); if (ACPI_FAILURE (Status)) { - goto Cleanup; + goto PopWalkState; } NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1; @@ -764,6 +764,12 @@ AcpiDsCallControlMethod ( return_ACPI_STATUS (Status); +PopWalkState: + + /* On error, pop the walk state to be deleted from thread */ + + AcpiDsPopWalkState(Thread); + Cleanup: /* On error, we must terminate the method properly */ diff --git a/source/components/dispatcher/dsmthdat.c b/source/components/dispatcher/dsmthdat.c index af15679..1461af5 100644 --- a/source/components/dispatcher/dsmthdat.c +++ b/source/components/dispatcher/dsmthdat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c index 5ffd198..147edc2 100644 --- a/source/components/dispatcher/dsobject.c +++ b/source/components/dispatcher/dsobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index 190be1b..7689df6 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c index bd2bf2e..a159d76 100644 --- a/source/components/dispatcher/dspkginit.c +++ b/source/components/dispatcher/dspkginit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c index b159b34..059e055 100644 --- a/source/components/dispatcher/dsutils.c +++ b/source/components/dispatcher/dsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 686f03c..5ae0ad7 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -569,9 +569,11 @@ AcpiDsExecEndOp ( /* * All opcodes require operand resolution, with the only exceptions - * being the ObjectType and SizeOf operators. + * being the ObjectType and SizeOf operators as well as opcodes that + * take no arguments. */ - if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE)) + if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE) && + (WalkState->OpInfo->Flags & AML_HAS_ARGS)) { /* Resolve all operands */ diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index 4fdf955..74071c2 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 496ee91..c48b555 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswscope.c b/source/components/dispatcher/dswscope.c index dad0c49..bce120c 100644 --- a/source/components/dispatcher/dswscope.c +++ b/source/components/dispatcher/dswscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index 68b7f3d..cc648e3 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -785,9 +785,14 @@ AcpiDsInitAmlWalk ( WalkState->ParserState.Aml = - WalkState->ParserState.AmlStart = AmlStart; + WalkState->ParserState.AmlStart = WalkState->ParserState.AmlEnd = - WalkState->ParserState.PkgEnd = AmlStart + AmlLength; + WalkState->ParserState.PkgEnd = AmlStart; + /* Avoid undefined behavior: applying zero offset to null pointer */ + if (AmlLength != 0) { + WalkState->ParserState.AmlEnd += AmlLength; + WalkState->ParserState.PkgEnd += AmlLength; + } /* The NextOp of the NextWalk will be the beginning of the method */ diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index b92646a..913cbd1 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -438,7 +438,7 @@ AcpiEvFixedEventDispatch ( (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[Event].EnableRegisterId, (Event == ACPI_EVENT_PCIE_WAKE) ? - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); + ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); ACPI_ERROR ((AE_INFO, "No installed handler for fixed event - %s (%u), disabling", diff --git a/source/components/events/evglock.c b/source/components/events/evglock.c index 79b519a..5992671 100644 --- a/source/components/events/evglock.c +++ b/source/components/events/evglock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c index b246567..d7dcc3e 100644 --- a/source/components/events/evgpe.c +++ b/source/components/events/evgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c index 4dac205..7317f6e 100644 --- a/source/components/events/evgpeblk.c +++ b/source/components/events/evgpeblk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c index 6f0472c..adbe86e 100644 --- a/source/components/events/evgpeinit.c +++ b/source/components/events/evgpeinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeutil.c b/source/components/events/evgpeutil.c index 1f66717..23f6369 100644 --- a/source/components/events/evgpeutil.c +++ b/source/components/events/evgpeutil.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index e0859c3..47393a7 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evmisc.c b/source/components/events/evmisc.c index b6c6eb6..40548b5 100644 --- a/source/components/events/evmisc.c +++ b/source/components/events/evmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index fb0cc43..73db629 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c index 7cbbe30..6d329cb 100644 --- a/source/components/events/evrgnini.c +++ b/source/components/events/evrgnini.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evsci.c b/source/components/events/evsci.c index 2689192..bb850e4 100644 --- a/source/components/events/evsci.c +++ b/source/components/events/evsci.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c index 245ca8a..ef2fbcc 100644 --- a/source/components/events/evxface.c +++ b/source/components/events/evxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfevnt.c b/source/components/events/evxfevnt.c index 3384e09..2b95395 100644 --- a/source/components/events/evxfevnt.c +++ b/source/components/events/evxfevnt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c index 87dab0f..fe354d2 100644 --- a/source/components/events/evxfgpe.c +++ b/source/components/events/evxfgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index ee44e10..00fe862 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -163,13 +163,14 @@ /******************************************************************************* * - * FUNCTION: AcpiInstallAddressSpaceHandler + * FUNCTION: AcpiInstallAddressSpaceHandlerInternal * * PARAMETERS: Device - Handle for the device * SpaceId - The address space ID * Handler - Address of the handler * Setup - Address of the setup function * Context - Value passed to the handler on each access + * Run_Reg - Run _REG methods for this address space? * * RETURN: Status * @@ -180,16 +181,19 @@ * are executed here, and these methods can only be safely executed after * the default handlers have been installed and the hardware has been * initialized (via AcpiEnableSubsystem.) + * To avoid this problem pass FALSE for Run_Reg and later on call + * AcpiExecuteRegMethods() to execute _REG. * ******************************************************************************/ -ACPI_STATUS -AcpiInstallAddressSpaceHandler ( +static ACPI_STATUS +AcpiInstallAddressSpaceHandlerInternal ( ACPI_HANDLE Device, ACPI_ADR_SPACE_TYPE SpaceId, ACPI_ADR_SPACE_HANDLER Handler, ACPI_ADR_SPACE_SETUP Setup, - void *Context) + void *Context, + BOOLEAN Run_Reg) { ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; @@ -231,16 +235,42 @@ AcpiInstallAddressSpaceHandler ( /* Run all _REG methods for this address space */ - AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); - + if (Run_Reg) + { + AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); + } UnlockAndExit: (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } +ACPI_STATUS +AcpiInstallAddressSpaceHandler ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context) +{ + return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, TRUE); +} + ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler) +ACPI_STATUS +AcpiInstallAddressSpaceHandlerNo_Reg ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context) +{ + return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, FALSE); +} + +ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandlerNo_Reg) + /******************************************************************************* * @@ -387,3 +417,62 @@ UnlockAndExit: } ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler) + + +/******************************************************************************* + * + * FUNCTION: AcpiExecuteRegMethods + * + * PARAMETERS: Device - Handle for the device + * SpaceId - The address space ID + * + * RETURN: Status + * + * DESCRIPTION: Execute _REG for all OpRegions of a given SpaceId. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiExecuteRegMethods ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId) +{ + ACPI_NAMESPACE_NODE *Node; + ACPI_STATUS Status; + + + ACPI_FUNCTION_TRACE (AcpiExecuteRegMethods); + + + /* Parameter validation */ + + if (!Device) + { + return_ACPI_STATUS (AE_BAD_PARAMETER); + } + + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + + /* Convert and validate the device handle */ + + Node = AcpiNsValidateHandle (Device); + if (Node) + { + /* Run all _REG methods for this address space */ + + AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); + } + else + { + Status = AE_BAD_PARAMETER; + } + + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); + return_ACPI_STATUS (Status); +} + +ACPI_EXPORT_SYMBOL (AcpiExecuteRegMethods) diff --git a/source/components/executer/exconcat.c b/source/components/executer/exconcat.c index 335d78f..f504bc0 100644 --- a/source/components/executer/exconcat.c +++ b/source/components/executer/exconcat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index 11c8ba6..ae95a92 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c index c9572e9..3382b52 100644 --- a/source/components/executer/exconvrt.c +++ b/source/components/executer/exconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c index e838108..5635572 100644 --- a/source/components/executer/excreate.c +++ b/source/components/executer/excreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c index 88f7596..5ccfccd 100644 --- a/source/components/executer/exdebug.c +++ b/source/components/executer/exdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index e72ac01..7a2c4a8 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 4175b8e..f7d0920 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 30d17c1..c29cd0e 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmisc.c b/source/components/executer/exmisc.c index 4a1e2ff..9b6608b 100644 --- a/source/components/executer/exmisc.c +++ b/source/components/executer/exmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index 8b33568..3abac6a 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c index 6045bc6..af68c82 100644 --- a/source/components/executer/exnames.c +++ b/source/components/executer/exnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg1.c b/source/components/executer/exoparg1.c index 2d9bbdd..82250ff 100644 --- a/source/components/executer/exoparg1.c +++ b/source/components/executer/exoparg1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c index 8b63d61..29d9dc7 100644 --- a/source/components/executer/exoparg2.c +++ b/source/components/executer/exoparg2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg3.c b/source/components/executer/exoparg3.c index 7b74d32..a22b725 100644 --- a/source/components/executer/exoparg3.c +++ b/source/components/executer/exoparg3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg6.c b/source/components/executer/exoparg6.c index 5506b2c..ad69405 100644 --- a/source/components/executer/exoparg6.c +++ b/source/components/executer/exoparg6.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exprep.c b/source/components/executer/exprep.c index 6d239d7..678ee8a 100644 --- a/source/components/executer/exprep.c +++ b/source/components/executer/exprep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exregion.c b/source/components/executer/exregion.c index 01d4906..858d31f 100644 --- a/source/components/executer/exregion.c +++ b/source/components/executer/exregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 6801b25..b5dc24c 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index af5202a..460c6d7 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index 4abe937..f4734d8 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index c92a895..6d57e37 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index ba1a05d..95bb19a 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstoren.c b/source/components/executer/exstoren.c index df4a6f4..628592f 100644 --- a/source/components/executer/exstoren.c +++ b/source/components/executer/exstoren.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstorob.c b/source/components/executer/exstorob.c index 56d048a..f318f02 100644 --- a/source/components/executer/exstorob.c +++ b/source/components/executer/exstorob.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index 44d3a00..68a074b 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -303,10 +303,10 @@ AcpiExSystemDoStall ( else { if (HowLongUs > 100) - { + { ACPI_WARNING ((AE_INFO, "Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.", HowLongUs)); - } + } AcpiOsStall (HowLongUs); } diff --git a/source/components/executer/extrace.c b/source/components/executer/extrace.c index a677393..e574e48 100644 --- a/source/components/executer/extrace.c +++ b/source/components/executer/extrace.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c index e27f567..3d9dd4f 100644 --- a/source/components/executer/exutils.c +++ b/source/components/executer/exutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index 8b32220..1772e79 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index 85e4cb9..ec03e5e 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index 7f9a5f0..994fc47 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwpci.c b/source/components/hardware/hwpci.c index b8e8aa9..745f9c8 100644 --- a/source/components/hardware/hwpci.c +++ b/source/components/hardware/hwpci.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index 7b4ae88..c499c11 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index 6667c27..d9bb8ae 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -476,13 +476,14 @@ AcpiHwLegacyWake ( ACPI_CLEAR_STATUS); /* Enable pcie wake event if support */ - if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) { + if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) + { (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, - ACPI_DISABLE_EVENT); + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, + ACPI_DISABLE_EVENT); (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, - ACPI_CLEAR_STATUS); + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, + ACPI_CLEAR_STATUS); } AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING); diff --git a/source/components/hardware/hwtimer.c b/source/components/hardware/hwtimer.c index 829e2a3..504f84d 100644 --- a/source/components/hardware/hwtimer.c +++ b/source/components/hardware/hwtimer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwvalid.c b/source/components/hardware/hwvalid.c index d297905..80f0f57 100644 --- a/source/components/hardware/hwvalid.c +++ b/source/components/hardware/hwvalid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -169,8 +169,8 @@ AcpiHwValidateIoRequest ( * * The table is used to implement the Microsoft port access rules that * first appeared in Windows XP. Some ports are always illegal, and some - * ports are only illegal if the BIOS calls _OSI with a WinXP string or - * later (meaning that the BIOS itelf is post-XP.) + * ports are only illegal if the BIOS calls _OSI with nothing newer than + * the specific _OSI strings. * * This provides ACPICA with the desired port protections and * Microsoft compatibility. @@ -301,8 +301,8 @@ AcpiHwValidateIoRequest ( if ((Address <= PortInfo->End) && (LastAddress >= PortInfo->Start)) { /* Port illegality may depend on the _OSI calls made by the BIOS */ - - if (AcpiGbl_OsiData >= PortInfo->OsiDependency) + if (PortInfo->OsiDependency == ACPI_ALWAYS_ILLEGAL || + AcpiGbl_OsiData == PortInfo->OsiDependency) { ACPI_DEBUG_PRINT ((ACPI_DB_VALUES, "Denied AML access to port 0x%8.8X%8.8X/%X (%s 0x%.4X-0x%.4X)\n", diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 8fd3561..febe90d 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 5f8b7db..4cd7eba 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index 2b810fa..b6d9d84 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index 560f6f3..7062707 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsarguments.c b/source/components/namespace/nsarguments.c index 2da06f2..bb081b7 100644 --- a/source/components/namespace/nsarguments.c +++ b/source/components/namespace/nsarguments.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsconvert.c b/source/components/namespace/nsconvert.c index 2971f08..ed2fa03 100644 --- a/source/components/namespace/nsconvert.c +++ b/source/components/namespace/nsconvert.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index 36cfbdf..731c32d 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c index 0cc9b5a..af0b296 100644 --- a/source/components/namespace/nsdumpdv.c +++ b/source/components/namespace/nsdumpdv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c index 1cb0761..23ed486 100644 --- a/source/components/namespace/nseval.c +++ b/source/components/namespace/nseval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c index c523035..5ca332e 100644 --- a/source/components/namespace/nsinit.c +++ b/source/components/namespace/nsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index c3423e5..0e93791 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c index c8412c2..ea3d7d5 100644 --- a/source/components/namespace/nsnames.c +++ b/source/components/namespace/nsnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c index 82d735e..842a36a 100644 --- a/source/components/namespace/nsobject.c +++ b/source/components/namespace/nsobject.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c index 0ac5efb..86afef0 100644 --- a/source/components/namespace/nsparse.c +++ b/source/components/namespace/nsparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nspredef.c b/source/components/namespace/nspredef.c index e28d689..04c3012 100644 --- a/source/components/namespace/nspredef.c +++ b/source/components/namespace/nspredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsprepkg.c b/source/components/namespace/nsprepkg.c index e6959da..2bfc89a 100644 --- a/source/components/namespace/nsprepkg.c +++ b/source/components/namespace/nsprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c index 59f7aa3..7aa02a8 100644 --- a/source/components/namespace/nsrepair.c +++ b/source/components/namespace/nsrepair.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -328,9 +328,10 @@ AcpiNsSimpleRepair ( */ if (!ReturnObject) { - if (ExpectedBtypes && (!(ExpectedBtypes & ACPI_RTYPE_NONE))) + if (ExpectedBtypes) { - if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT) + if (!(ExpectedBtypes & ACPI_RTYPE_NONE) && + PackageIndex != ACPI_NOT_PACKAGE_ELEMENT) { ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, ACPI_WARN_ALWAYS, "Found unexpected NULL package element")); @@ -342,13 +343,14 @@ AcpiNsSimpleRepair ( return (AE_OK); /* Repair was successful */ } } - else + + if (ExpectedBtypes != ACPI_RTYPE_NONE) { ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, - ACPI_WARN_ALWAYS, "Missing expected return value")); + ACPI_WARN_ALWAYS, + "Missing expected return value")); + return (AE_AML_NO_RETURN_VALUE); } - - return (AE_AML_NO_RETURN_VALUE); } } diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index bf76b7d..7f50c05 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -565,13 +565,6 @@ AcpiNsRepair_CID ( (*ElementPtr)->Common.ReferenceCount = OriginalRefCount; - - /* - * The OriginalElement holds a reference from the package object - * that represents _HID. Since a new element was created by _HID, - * remove the reference from the _CID package. - */ - AcpiUtRemoveReference (OriginalElement); } ElementPtr++; @@ -702,7 +695,7 @@ AcpiNsRepair_HID ( char *Dest; - ACPI_FUNCTION_NAME (NsRepair_HID); + ACPI_FUNCTION_TRACE (NsRepair_HID); /* We only care about string _HID objects (not integers) */ diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c index 706963c..a992a7e 100644 --- a/source/components/namespace/nssearch.c +++ b/source/components/namespace/nssearch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c index f420817..1162fca 100644 --- a/source/components/namespace/nsutils.c +++ b/source/components/namespace/nsutils.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -500,7 +500,7 @@ AcpiNsBuildInternalName ( * * PARAMETERS: *ExternalName - External representation of name * **Converted Name - Where to return the resulting - * internal represention of the name + * internal representation of the name * * RETURN: Status * diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c index 3d0fc63..7abc6b8 100644 --- a/source/components/namespace/nswalk.c +++ b/source/components/namespace/nswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c index 9724d02..a4213f2 100644 --- a/source/components/namespace/nsxfeval.c +++ b/source/components/namespace/nsxfeval.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 7d52330..c19b024 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -192,7 +192,7 @@ AcpiNsCopyDeviceId ( ACPI_STATUS AcpiGetHandle ( ACPI_HANDLE Parent, - ACPI_STRING Pathname, + const char *Pathname, ACPI_HANDLE *RetHandle) { ACPI_STATUS Status; diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c index 2aa1fc1..50ca5b2 100644 --- a/source/components/namespace/nsxfobj.c +++ b/source/components/namespace/nsxfobj.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c index f510623..ff0780c 100644 --- a/source/components/parser/psargs.c +++ b/source/components/parser/psargs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 2b4c1f2..e759e08 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psobject.c b/source/components/parser/psobject.c index 18a32ef..ff1069d 100644 --- a/source/components/parser/psobject.c +++ b/source/components/parser/psobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index 540716a..db0c2e4 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopinfo.c b/source/components/parser/psopinfo.c index fcb080c..99fada1 100644 --- a/source/components/parser/psopinfo.c +++ b/source/components/parser/psopinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index e0cd591..f7e584b 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psscope.c b/source/components/parser/psscope.c index 269410a..9fe84e3 100644 --- a/source/components/parser/psscope.c +++ b/source/components/parser/psscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pstree.c b/source/components/parser/pstree.c index 92f6230..cbcb359 100644 --- a/source/components/parser/pstree.c +++ b/source/components/parser/pstree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psutils.c b/source/components/parser/psutils.c index a9ea353..f101793 100644 --- a/source/components/parser/psutils.c +++ b/source/components/parser/psutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pswalk.c b/source/components/parser/pswalk.c index 31232fd..4a5fd98 100644 --- a/source/components/parser/pswalk.c +++ b/source/components/parser/pswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c index 295da1a..d44cb9f 100644 --- a/source/components/parser/psxface.c +++ b/source/components/parser/psxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index 93d45ca..beee838 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -431,13 +431,17 @@ AcpiRsGetAddressCommon ( ACPI_RESOURCE *Resource, AML_RESOURCE *Aml) { - ACPI_FUNCTION_ENTRY (); + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_ADDRESS Address; + memcpy(&Address, Aml, sizeof(Address)); + ACPI_FUNCTION_ENTRY(); /* Validate the Resource Type */ - if ((Aml->Address.ResourceType > 2) && - (Aml->Address.ResourceType < 0xC0)) + if ((Address.ResourceType > 2) && + (Address.ResourceType < 0xC0)) { return (FALSE); } @@ -464,7 +468,7 @@ AcpiRsGetAddressCommon ( /* Generic resource type, just grab the TypeSpecific byte */ Resource->Data.Address.Info.TypeSpecific = - Aml->Address.SpecificFlags; + Address.SpecificFlags; } return (TRUE); diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index c966636..55694f1 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,6 +480,13 @@ AcpiRsGetAmlLength ( break; + case ACPI_RESOURCE_TYPE_CLOCK_INPUT: + + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + Resource->Data.ClockInput.ResourceSource.StringLength); + + break; + case ACPI_RESOURCE_TYPE_SERIAL_BUS: @@ -733,14 +740,19 @@ AcpiRsGetListLength ( } break; - case ACPI_RESOURCE_NAME_SERIAL_BUS: + case ACPI_RESOURCE_NAME_SERIAL_BUS: { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); MinimumAmlResourceLength = AcpiGbl_ResourceAmlSerialBusSizes[ - AmlResource->CommonSerialBus.Type]; + CommonSerialBus.Type]; ExtraStructBytes += - AmlResource->CommonSerialBus.ResourceLength - + CommonSerialBus.ResourceLength - MinimumAmlResourceLength; break; + } case ACPI_RESOURCE_NAME_PIN_CONFIG: @@ -789,6 +801,12 @@ AcpiRsGetListLength ( break; + case ACPI_RESOURCE_NAME_CLOCK_INPUT: + ExtraStructBytes = AcpiRsStreamOptionLength ( + ResourceLength, MinimumAmlResourceLength); + + break; + default: break; @@ -803,8 +821,13 @@ AcpiRsGetListLength ( if (AcpiUtGetResourceType (AmlBuffer) == ACPI_RESOURCE_NAME_SERIAL_BUS) { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + BufferSize = AcpiGbl_ResourceStructSerialBusSizes[ - AmlResource->CommonSerialBus.Type] + ExtraStructBytes; + CommonSerialBus.Type] + ExtraStructBytes; } else { diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index 6c230bc..583abe1 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -475,9 +475,9 @@ AcpiRsCreatePciRoutingTable ( /* Use *remaining* length of the buffer as max for pathname */ PathBuffer.Length = OutputBuffer->Length - - (UINT32) ((UINT8 *) UserPrt->Source - + (UINT32) ((UINT8 *) UserPrt->u.Source - (UINT8 *) OutputBuffer->Pointer); - PathBuffer.Pointer = UserPrt->Source; + PathBuffer.Pointer = UserPrt->u.Source; Status = AcpiNsHandleToPathname ( (ACPI_HANDLE) Node, &PathBuffer, FALSE); @@ -488,12 +488,12 @@ AcpiRsCreatePciRoutingTable ( /* +1 to include null terminator */ - UserPrt->Length += (UINT32) strlen (UserPrt->Source) + 1; + UserPrt->Length += (UINT32) strlen (UserPrt->u.Source) + 1; break; case ACPI_TYPE_STRING: - strcpy (UserPrt->Source, ObjDesc->String.Pointer); + strcpy (UserPrt->u.Source, ObjDesc->String.Pointer); /* * Add to the Length field the length of the string diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index e8f1372..02fc37c 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 83b22ca..2801e0d 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -182,7 +182,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.u.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = @@ -192,7 +192,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster), "Mastering", AcpiGbl_BmDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer), "Transfer Type", AcpiGbl_SizDecode}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Dma.ChannelCount), "Channel Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]), "Channel List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.u.Channels[0]), "Channel List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[4] = @@ -327,7 +327,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] = {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.u.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[6] = @@ -374,6 +374,17 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[10] = {ACPI_RSD_SHORTLISTX,ACPI_RSD_OFFSET (PinFunction.VendorData), "VendorData", NULL}, }; +ACPI_RSDUMP_INFO AcpiRsDumpClockInput[7] = +{ + {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpClockInput), "ClockInput", NULL}, + {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ClockInput.RevisionId), "RevisionId", NULL}, + {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyNumerator), "FrequencyNumerator", NULL}, + {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyDivisor), "FrequencyDivisor", NULL}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Scale), "Scale", AcpiGbl_ClockInputScale}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Mode), "Mode", AcpiGbl_ClockInputMode}, + {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ClockInput.ResourceSource), "ResourceSource", NULL}, +}; + ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[11] = { {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig), "PinConfig", NULL}, @@ -544,7 +555,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPrt[5] = {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt), NULL, NULL}, {ACPI_RSD_UINT64, ACPI_PRT_OFFSET (Address), "Address", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (Pin), "Pin", NULL}, - {ACPI_RSD_STRING, ACPI_PRT_OFFSET (Source[0]), "Source", NULL}, + {ACPI_RSD_STRING, ACPI_PRT_OFFSET (u.Source[0]), "Source", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (SourceIndex), "Source Index", NULL} }; diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index b9d4df4..551b647 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -197,6 +197,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[] = AcpiRsConvertPinGroup, /* 0x16, ACPI_RESOURCE_TYPE_PIN_GROUP */ AcpiRsConvertPinGroupFunction, /* 0x17, ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ AcpiRsConvertPinGroupConfig, /* 0x18, ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + AcpiRsConvertClockInput, /* 0x19, ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; /* Dispatch tables for AML-to-resource (Get Resource) conversion functions */ @@ -243,6 +244,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[] = AcpiRsConvertPinGroup, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiRsConvertPinGroupFunction, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiRsConvertPinGroupConfig, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */ + AcpiRsConvertClockInput, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; /* Subtype table for SerialBus -- I2C, SPI, UART, and CSI2 */ @@ -288,6 +290,7 @@ ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[] = AcpiRsDumpPinGroup, /* ACPI_RESOURCE_TYPE_PIN_GROUP */ AcpiRsDumpPinGroupFunction, /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ AcpiRsDumpPinGroupConfig, /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + AcpiRsDumpClockInput, /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; ACPI_RSDUMP_INFO *AcpiGbl_DumpSerialBusDispatch[] = @@ -333,6 +336,7 @@ const UINT8 AcpiGbl_AmlResourceSizes[] = sizeof (AML_RESOURCE_PIN_GROUP), /* ACPI_RESOURCE_TYPE_PIN_GROUP */ sizeof (AML_RESOURCE_PIN_GROUP_FUNCTION), /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ sizeof (AML_RESOURCE_PIN_GROUP_CONFIG), /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + sizeof (AML_RESOURCE_CLOCK_INPUT), /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; @@ -378,6 +382,7 @@ const UINT8 AcpiGbl_ResourceStructSizes[] = ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP), ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_FUNCTION), ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_CONFIG), + ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT), }; const UINT8 AcpiGbl_AmlResourceSerialBusSizes[] = diff --git a/source/components/resources/rsio.c b/source/components/resources/rsio.c index 2993262..1640cdb 100644 --- a/source/components/resources/rsio.c +++ b/source/components/resources/rsio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index 9a8fc18..10256c5 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -171,7 +171,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] = /* Get the IRQ mask (bytes 1:2) */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -227,7 +227,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] = /* Convert interrupt list to 16-bit IRQ bitmask */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -345,14 +345,14 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] = /* Copy every IRQ in the table, each is 32 bits */ - {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), - AML_OFFSET (ExtendedIrq.Interrupts[0]), + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), + AML_OFFSET (ExtendedIrq.u.Interrupts[0]), 0}, /* Optional ResourceSource (Index and String) */ {ACPI_RSC_SOURCEX, ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource), - ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), + ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), sizeof (AML_RESOURCE_EXTENDED_IRQ)} }; @@ -389,7 +389,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertDma[6] = /* DMA channel mask bits */ - {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.Channels[0]), + {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.u.Channels[0]), AML_OFFSET (Dma.DmaChannelMask), ACPI_RS_OFFSET (Data.Dma.ChannelCount)} }; diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index fdd2468..cb40819 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -209,7 +209,12 @@ AcpiRsConvertAmlToResources ( if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_SERIAL_BUS) { - if (AmlResource->CommonSerialBus.Type > + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + + if (CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) { ConversionTable = NULL; @@ -219,7 +224,7 @@ AcpiRsConvertAmlToResources ( /* This is an I2C, SPI, UART, or CSI2 SerialBus descriptor */ ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch [ - AmlResource->CommonSerialBus.Type]; + CommonSerialBus.Type]; } } else diff --git a/source/components/resources/rsmemory.c b/source/components/resources/rsmemory.c index e527bad..170bb67 100644 --- a/source/components/resources/rsmemory.c +++ b/source/components/resources/rsmemory.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index 16c5213..6d11442 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -349,7 +349,8 @@ AcpiRsConvertAmlToResource ( case ACPI_RSC_COUNT_SERIAL_VEN: - ItemCount = ACPI_GET16 (Source) - Info->Value; + ACPI_MOVE_16_TO_16(&Temp16, Source); + ItemCount = Temp16 - Info->Value; Resource->Length = Resource->Length + ItemCount; ACPI_SET16 (Destination, ItemCount); @@ -357,9 +358,10 @@ AcpiRsConvertAmlToResource ( case ACPI_RSC_COUNT_SERIAL_RES: + ACPI_MOVE_16_TO_16(&Temp16, Source); ItemCount = (AmlResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER)) - - ACPI_GET16 (Source) - Info->Value; + Temp16 - Info->Value; Resource->Length = Resource->Length + ItemCount; ACPI_SET16 (Destination, ItemCount); @@ -437,8 +439,9 @@ AcpiRsConvertAmlToResource ( /* Copy the ResourceSource string */ + ACPI_MOVE_16_TO_16 (&Temp16, Source); Source = ACPI_ADD_PTR ( - void, Aml, (ACPI_GET16 (Source) + Info->Value)); + void, Aml, (Temp16 + Info->Value)); AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index 3075b4c..4c19f89 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -256,6 +256,50 @@ ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] = /******************************************************************************* * + * AcpiRsConvertClockInput + * + ******************************************************************************/ + +ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[8] = +{ + {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_CLOCK_INPUT, + ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT), + ACPI_RSC_TABLE_SIZE (AcpiRsConvertClockInput)}, + + {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_CLOCK_INPUT, + sizeof (AML_RESOURCE_CLOCK_INPUT), + 0}, + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.ClockInput.RevisionId), + AML_OFFSET (ClockInput.RevisionId), + 1}, + + {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Mode), + AML_OFFSET (ClockInput.Flags), + 0}, + + {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Scale), + AML_OFFSET (ClockInput.Flags), + 1}, + + {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.ClockInput.FrequencyDivisor), + AML_OFFSET (ClockInput.FrequencyDivisor), + 2}, + + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ClockInput.FrequencyNumerator), + AML_OFFSET (ClockInput.FrequencyNumerator), + 4}, + + /* Resource Source */ + {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.ClockInput.ResourceSource), + 0, + sizeof(AML_RESOURCE_CLOCK_INPUT)}, + +}; + + +/******************************************************************************* + * * AcpiRsConvertPinfunction * ******************************************************************************/ diff --git a/source/components/resources/rsutils.c b/source/components/resources/rsutils.c index 7110406..e6889f8 100644 --- a/source/components/resources/rsutils.c +++ b/source/components/resources/rsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c index d3aaf1d..f46ff34 100644 --- a/source/components/resources/rsxface.c +++ b/source/components/resources/rsxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index d974d95..e003763 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 9787661..d2bd1eb 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 81ed2d9..4adf09e 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index 9253bd1..eda1d0a 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index cdad69a..9fd5c7a 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -294,4 +294,3 @@ AcpiTbPrintTableHeader ( LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision)); } } - diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index 5188d26..680a69d 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -323,6 +323,7 @@ AcpiTbGetRootTableEntry ( UINT8 *TableEntry, UINT32 TableEntrySize) { + UINT32 Address32; UINT64 Address64; @@ -336,8 +337,8 @@ AcpiTbGetRootTableEntry ( * 32-bit platform, RSDT: Return 32-bit table entry * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return */ - return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( - UINT32, TableEntry))); + ACPI_MOVE_32_TO_32(&Address32, TableEntry); + return Address32; } else { diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index 919ad13..b37377e 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index ddd9b79..7ae4234 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index 97cb65c..923d05f 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utaddress.c b/source/components/utilities/utaddress.c index 5aa1283..e3a5028 100644 --- a/source/components/utilities/utaddress.c +++ b/source/components/utilities/utaddress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utalloc.c b/source/components/utilities/utalloc.c index aa06339..d4a7e50 100644 --- a/source/components/utilities/utalloc.c +++ b/source/components/utilities/utalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c index db23890..6f6d922 100644 --- a/source/components/utilities/utascii.c +++ b/source/components/utilities/utascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utbuffer.c b/source/components/utilities/utbuffer.c index 2cf097b..be1082e 100644 --- a/source/components/utilities/utbuffer.c +++ b/source/components/utilities/utbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcache.c b/source/components/utilities/utcache.c index 2ff1540..32c527d 100644 --- a/source/components/utilities/utcache.c +++ b/source/components/utilities/utcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcksum.c b/source/components/utilities/utcksum.c index b8ea869..de97d15 100644 --- a/source/components/utilities/utcksum.c +++ b/source/components/utilities/utcksum.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -172,7 +172,7 @@ * * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns * exception on bad checksum. - * Note: We don't have to check for a CDAT here, since CDAT is + * Note: We don't have to check for a CDAT here, since CDAT is * not in the RSDT/XSDT, and the CDAT table is never installed * via ACPICA. * diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c index 42f8d17..9c49163 100644 --- a/source/components/utilities/utclib.c +++ b/source/components/utilities/utclib.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcopy.c b/source/components/utilities/utcopy.c index e725d55..e9024bd 100644 --- a/source/components/utilities/utcopy.c +++ b/source/components/utilities/utcopy.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index f789e68..b0c3640 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c index 2a49cbd..b100c61 100644 --- a/source/components/utilities/utdecode.c +++ b/source/components/utilities/utdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index b36c4bb..1227b21 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c index 2aee4d5..c88081f 100644 --- a/source/components/utilities/uterror.c +++ b/source/components/utilities/uterror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uteval.c b/source/components/utilities/uteval.c index f4ccea6..bccbdda 100644 --- a/source/components/utilities/uteval.c +++ b/source/components/utilities/uteval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utexcep.c b/source/components/utilities/utexcep.c index 279d33f..094df3a 100644 --- a/source/components/utilities/utexcep.c +++ b/source/components/utilities/utexcep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 43de5c0..28e4c34 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uthex.c b/source/components/utilities/uthex.c index c64d3de..801627e 100644 --- a/source/components/utilities/uthex.c +++ b/source/components/utilities/uthex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utids.c b/source/components/utilities/utids.c index 498338a..3df4d97 100644 --- a/source/components/utilities/utids.c +++ b/source/components/utilities/utids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c index 0f2cf48..37ec63b 100644 --- a/source/components/utilities/utinit.c +++ b/source/components/utilities/utinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utlock.c b/source/components/utilities/utlock.c index 9357279..e56b748 100644 --- a/source/components/utilities/utlock.c +++ b/source/components/utilities/utlock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmath.c b/source/components/utilities/utmath.c index b534bb3..b854368 100644 --- a/source/components/utilities/utmath.c +++ b/source/components/utilities/utmath.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c index 1efe0af..64e3367 100644 --- a/source/components/utilities/utmisc.c +++ b/source/components/utilities/utmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmutex.c b/source/components/utilities/utmutex.c index 1f1c1d8..2ce621f 100644 --- a/source/components/utilities/utmutex.c +++ b/source/components/utilities/utmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utnonansi.c b/source/components/utilities/utnonansi.c index e3c2f46..5db7042 100644 --- a/source/components/utilities/utnonansi.c +++ b/source/components/utilities/utnonansi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utobject.c b/source/components/utilities/utobject.c index 52e02be..f53f316 100644 --- a/source/components/utilities/utobject.c +++ b/source/components/utilities/utobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index 700f30a..b6431c8 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utownerid.c b/source/components/utilities/utownerid.c index 30ba6b7..ad2796b 100644 --- a/source/components/utilities/utownerid.c +++ b/source/components/utilities/utownerid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index 7f97ee7..6afc655 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utprint.c b/source/components/utilities/utprint.c index 4d9252a..7d8611b 100644 --- a/source/components/utilities/utprint.c +++ b/source/components/utilities/utprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index 12ab687..667f12f 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -467,4 +467,17 @@ const char *AcpiGbl_PtypDecode[] = "Input Schmitt Trigger", }; +const char *AcpiGbl_ClockInputMode[] = +{ + "Fixed", + "Variable", +}; + +const char *AcpiGbl_ClockInputScale[] = +{ + "Hz", + "KHz", + "MHz", +}; + #endif diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index 26c382d..f47b292 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -204,6 +204,8 @@ const UINT8 AcpiGbl_ResourceAmlSizes[] = ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP), ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_FUNCTION), ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_CONFIG), + ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT), + }; const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[] = @@ -264,6 +266,7 @@ static const UINT8 AcpiGbl_ResourceTypes[] = ACPI_VARIABLE_LENGTH, /* 10 PinGroup */ ACPI_VARIABLE_LENGTH, /* 11 PinGroupFunction */ ACPI_VARIABLE_LENGTH, /* 12 PinGroupConfig */ + ACPI_VARIABLE_LENGTH, /* 13 ClockInput */ }; @@ -529,16 +532,21 @@ AcpiUtValidateResource ( AmlResource = ACPI_CAST_PTR (AML_RESOURCE, Aml); if (ResourceType == ACPI_RESOURCE_NAME_SERIAL_BUS) { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + /* Validate the BusType field */ - if ((AmlResource->CommonSerialBus.Type == 0) || - (AmlResource->CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE)) + if ((CommonSerialBus.Type == 0) || + (CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE)) { if (WalkState) { ACPI_ERROR ((AE_INFO, "Invalid/unsupported SerialBus resource descriptor: BusType 0x%2.2X", - AmlResource->CommonSerialBus.Type)); + CommonSerialBus.Type)); } return (AE_AML_INVALID_RESOURCE_TYPE); } diff --git a/source/components/utilities/utstate.c b/source/components/utilities/utstate.c index f089ffe..ec13a07 100644 --- a/source/components/utilities/utstate.c +++ b/source/components/utilities/utstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index 770f307..aed0d10 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index 0487a4f..31e720c 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrtoul64.c b/source/components/utilities/utstrtoul64.c index 1ef50ea..1aee5d0 100644 --- a/source/components/utilities/utstrtoul64.c +++ b/source/components/utilities/utstrtoul64.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uttrack.c b/source/components/utilities/uttrack.c index 7791fe9..77e1b65 100644 --- a/source/components/utilities/uttrack.c +++ b/source/components/utilities/uttrack.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index 8fd85d6..055086f 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxface.c b/source/components/utilities/utxface.c index 74a8ff4..d335bb1 100644 --- a/source/components/utilities/utxface.c +++ b/source/components/utilities/utxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxferror.c b/source/components/utilities/utxferror.c index 77701df..6534e1a 100644 --- a/source/components/utilities/utxferror.c +++ b/source/components/utilities/utxferror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c index 865fe9d..0ccaf5c 100644 --- a/source/components/utilities/utxfinit.c +++ b/source/components/utilities/utxfinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfmutex.c b/source/components/utilities/utxfmutex.c index 2e77fc9..cec55df 100644 --- a/source/components/utilities/utxfmutex.c +++ b/source/components/utilities/utxfmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acapps.h b/source/include/acapps.h index 382ab17..9662e51 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -159,7 +159,7 @@ /* Common info for tool signons */ #define ACPICA_NAME "Intel ACPI Component Architecture" -#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation" +#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2023 Intel Corporation" #if ACPI_MACHINE_WIDTH == 64 #define ACPI_WIDTH " (64-bit version)" diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index 0739feb..63225aa 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acclib.h b/source/include/acclib.h index 75c4811..d03652c 100644 --- a/source/include/acclib.h +++ b/source/include/acclib.h @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/accommon.h b/source/include/accommon.h index 210035c..219372d 100644 --- a/source/include/accommon.h +++ b/source/include/accommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconfig.h b/source/include/acconfig.h index 04f7f4f..5ae0032 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconvert.h b/source/include/acconvert.h index 048fd53..3aa36a8 100644 --- a/source/include/acconvert.h +++ b/source/include/acconvert.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdebug.h b/source/include/acdebug.h index 6716a09..c1596ee 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 47ce0b1..afc9034 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -260,6 +260,7 @@ typedef enum ACPI_DMT_AEST_XRUPT, ACPI_DMT_AGDI, ACPI_DMT_ASF, + ACPI_DMT_ASPT, ACPI_DMT_CDAT, ACPI_DMT_CEDT, ACPI_DMT_DMAR, @@ -280,6 +281,7 @@ typedef enum ACPI_DMT_IVRS_UNTERMINATED_STRING, ACPI_DMT_LPIT, ACPI_DMT_MADT, + ACPI_DMT_MPAM_LOCATOR, ACPI_DMT_NFIT, ACPI_DMT_NHLT1, ACPI_DMT_NHLT1a, @@ -294,6 +296,7 @@ typedef enum ACPI_DMT_PMTT_VENDOR, ACPI_DMT_PPTT, ACPI_DMT_RGRT, + ACPI_DMT_RHCT, ACPI_DMT_SDEI, ACPI_DMT_SDEV, ACPI_DMT_SLIC, @@ -399,6 +402,11 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; @@ -550,6 +558,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; @@ -623,6 +642,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; @@ -759,6 +784,10 @@ AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); void +AcpiDmDumpAspt ( + ACPI_TABLE_HEADER *Table); + +void AcpiDmDumpCcel ( ACPI_TABLE_HEADER *Table); @@ -839,6 +868,10 @@ AcpiDmDumpMcfg ( ACPI_TABLE_HEADER *Table); void +AcpiDmDumpMpam ( + ACPI_TABLE_HEADER *Table); + +void AcpiDmDumpMpst ( ACPI_TABLE_HEADER *Table); @@ -882,6 +915,10 @@ void AcpiDmDumpRgrt ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpRhct ( + ACPI_TABLE_HEADER *Table); + UINT32 AcpiDmDumpRsdp ( ACPI_TABLE_HEADER *Table); @@ -1323,6 +1360,12 @@ AcpiDmVendorCommon ( UINT32 Length, UINT32 Level); +void +AcpiDmClockInputDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level); /* * dmresrcs diff --git a/source/include/acdispat.h b/source/include/acdispat.h index 2c44c9f..3e8ad81 100644 --- a/source/include/acdispat.h +++ b/source/include/acdispat.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acevents.h b/source/include/acevents.h index f8c5d77..f9972d8 100644 --- a/source/include/acevents.h +++ b/source/include/acevents.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 92e9497..9271dc4 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 1850d94..28fc651 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/achware.h b/source/include/achware.h index 256008c..6e0631e 100644 --- a/source/include/achware.h +++ b/source/include/achware.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acinterp.h b/source/include/acinterp.h index d9cec34..4c36708 100644 --- a/source/include/acinterp.h +++ b/source/include/acinterp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 74eb6e2..9c090a0 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1452,7 +1452,8 @@ typedef struct acpi_port_info #define ACPI_RESOURCE_NAME_PIN_GROUP 0x90 #define ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION 0x91 #define ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG 0x92 -#define ACPI_RESOURCE_NAME_LARGE_MAX 0x92 +#define ACPI_RESOURCE_NAME_CLOCK_INPUT 0x93 +#define ACPI_RESOURCE_NAME_LARGE_MAX 0x94 /***************************************************************************** diff --git a/source/include/acmacros.h b/source/include/acmacros.h index 11fd47c..66c90b6 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnames.h b/source/include/acnames.h index 846d192..a6cdd2e 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h index 7b8d069..432d9d4 100644 --- a/source/include/acnamesp.h +++ b/source/include/acnamesp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acobject.h b/source/include/acobject.h index b2c9dd9..4454c57 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acopcode.h b/source/include/acopcode.h index 7e54a47..f2ce2cd 100644 --- a/source/include/acopcode.h +++ b/source/include/acopcode.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acoutput.h b/source/include/acoutput.h index cd3d26d..502d9a9 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acparser.h b/source/include/acparser.h index 4437d61..0dd0e34 100644 --- a/source/include/acparser.h +++ b/source/include/acparser.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpi.h b/source/include/acpi.h index 081e3b7..445e441 100644 --- a/source/include/acpi.h +++ b/source/include/acpi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpiosxf.h b/source/include/acpiosxf.h index 67c1101..c4857ca 100644 --- a/source/include/acpiosxf.h +++ b/source/include/acpiosxf.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 7b77937..a7d6103 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20221020 +#define ACPI_CA_VERSION 0x20230331 #include "acconfig.h" #include "actypes.h" @@ -770,7 +770,7 @@ ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS AcpiGetHandle ( ACPI_HANDLE Parent, - ACPI_STRING Pathname, + const char *Pathname, ACPI_HANDLE *RetHandle)) ACPI_EXTERNAL_RETURN_STATUS ( @@ -944,6 +944,21 @@ AcpiInstallAddressSpaceHandler ( ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS +AcpiInstallAddressSpaceHandlerNo_Reg( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context)) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS +AcpiExecuteRegMethods ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId)) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS AcpiRemoveAddressSpaceHandler ( ACPI_HANDLE Device, ACPI_ADR_SPACE_TYPE SpaceId, diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 9ad8c0f..ca47e7c 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acresrc.h b/source/include/acresrc.h index 8214ed8..85be65d 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -506,6 +506,7 @@ extern ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroup[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[]; +extern ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[]; /* These resources require separate get/set tables */ @@ -562,6 +563,7 @@ extern ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroup[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[]; +extern ACPI_RSDUMP_INFO AcpiRsDumpClockInput[]; #endif #endif /* __ACRESRC_H__ */ diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index f045c20..3065bdc 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -290,7 +290,10 @@ typedef struct acpi_resource_irq UINT8 Shareable; UINT8 WakeCapable; UINT8 InterruptCount; - UINT8 Interrupts[1]; + union { + UINT8 Interrupt; + ACPI_FLEX_ARRAY(UINT8, Interrupts); + } u; } ACPI_RESOURCE_IRQ; @@ -300,7 +303,10 @@ typedef struct acpi_resource_dma UINT8 BusMaster; UINT8 Transfer; UINT8 ChannelCount; - UINT8 Channels[1]; + union { + UINT8 Channel; + ACPI_FLEX_ARRAY(UINT8, Channels); + } u; } ACPI_RESOURCE_DMA; @@ -357,7 +363,7 @@ typedef struct acpi_resource_fixed_dma typedef struct acpi_resource_vendor { UINT16 ByteLength; - UINT8 ByteData[1]; + UINT8 ByteData[]; } ACPI_RESOURCE_VENDOR; @@ -368,7 +374,7 @@ typedef struct acpi_resource_vendor_typed UINT16 ByteLength; UINT8 UuidSubtype; UINT8 Uuid[ACPI_UUID_LENGTH]; - UINT8 ByteData[1]; + UINT8 ByteData[]; } ACPI_RESOURCE_VENDOR_TYPED; @@ -538,7 +544,10 @@ typedef struct acpi_resource_extended_irq UINT8 WakeCapable; UINT8 InterruptCount; ACPI_RESOURCE_SOURCE ResourceSource; - UINT32 Interrupts[1]; + union { + UINT32 Interrupt; + ACPI_FLEX_ARRAY(UINT32, Interrupts); + } u; } ACPI_RESOURCE_EXTENDED_IRQ; @@ -770,6 +779,16 @@ typedef struct acpi_resource_pin_config } ACPI_RESOURCE_PIN_CONFIG; +typedef struct acpi_resource_clock_input +{ + UINT8 RevisionId; + UINT8 Mode; + UINT8 Scale; + UINT16 FrequencyDivisor; + UINT32 FrequencyNumerator; + ACPI_RESOURCE_SOURCE ResourceSource; +} ACPI_RESOURCE_CLOCK_INPUT; + /* Values for PinConfigType field above */ #define ACPI_PIN_CONFIG_DEFAULT 0 @@ -853,7 +872,8 @@ typedef struct acpi_resource_pin_group_config #define ACPI_RESOURCE_TYPE_PIN_GROUP 22 /* ACPI 6.2 */ #define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION 23 /* ACPI 6.2 */ #define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG 24 /* ACPI 6.2 */ -#define ACPI_RESOURCE_TYPE_MAX 24 +#define ACPI_RESOURCE_TYPE_CLOCK_INPUT 25 /* ACPI 6.5 */ +#define ACPI_RESOURCE_TYPE_MAX 25 /* Master union for resource descriptors */ @@ -888,6 +908,7 @@ typedef union acpi_resource_data ACPI_RESOURCE_PIN_GROUP PinGroup; ACPI_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction; ACPI_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig; + ACPI_RESOURCE_CLOCK_INPUT ClockInput; /* Common fields */ @@ -927,8 +948,10 @@ typedef struct acpi_pci_routing_table UINT32 Pin; UINT64 Address; /* here for 64-bit alignment */ UINT32 SourceIndex; - char Source[4]; /* pad to 64 bits so sizeof() works in all cases */ - + union { + char Pad[4]; /* pad to 64 bits so sizeof() works in all cases */ + ACPI_FLEX_ARRAY(char, Source); + } u; } ACPI_PCI_ROUTING_TABLE; #endif /* __ACRESTYP_H__ */ diff --git a/source/include/acstruct.h b/source/include/acstruct.h index d50c7a1..fe08717 100644 --- a/source/include/acstruct.h +++ b/source/include/acstruct.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actables.h b/source/include/actables.h index e9b070f..21c3443 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 7ce3c21..5417aff 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -153,6 +153,7 @@ * Macros used to generate offsets to specific table fields */ #define ACPI_AGDI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_AGDI,f) +#define ACPI_ASPT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ASPT,f) #define ACPI_FACS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_FACS,f) #define ACPI_GAS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) #define ACPI_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f) @@ -188,6 +189,7 @@ #define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f) #define ACPI_RASF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RASF,f) #define ACPI_RGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RGRT,f) +#define ACPI_RHCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RHCT,f) #define ACPI_S3PT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f) #define ACPI_SBST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f) #define ACPI_SDEI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SDEI,f) @@ -234,6 +236,10 @@ #define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f) #define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f) #define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f) +#define ACPI_ASPTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_HEADER,f) +#define ACPI_ASPT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_GLOBAL_REGS,f) +#define ACPI_ASPT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_SEV_MBOX_REGS,f) +#define ACPI_ASPT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_ACPI_MBOX_REGS,f) #define ACPI_CDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CDAT,f) #define ACPI_CDATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_HEADER,f) #define ACPI_CDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMAS,f) @@ -331,6 +337,16 @@ #define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) +#define ACPI_MPAM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_MSC_NODE,f) +#define ACPI_MPAM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_NODE,f) +#define ACPI_MPAM1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_CACHE_LOCATOR,f) +#define ACPI_MPAM1B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMORY_LOCATOR,f) +#define ACPI_MPAM1C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_SMMU_INTERFACE,f) +#define ACPI_MPAM1D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE,f) +#define ACPI_MPAM1E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_ACPI_INTERFACE,f) +#define ACPI_MPAM1F_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE,f) +#define ACPI_MPAM1G_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_GENERIC_LOCATOR,f) +#define ACPI_MPAM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_FUNC_DEPS,f) #define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f) #define ACPI_MPST0A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_STATE,f) #define ACPI_MPST0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_COMPONENT,f) @@ -385,6 +401,9 @@ #define ACPI_PRMTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PRMT_HEADER,f) #define ACPI_PRMT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_MODULE_INFO,f) #define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f) +#define ACPI_RHCTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_NODE_HEADER,f) +#define ACPI_RHCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_ISA_STRING,f) +#define ACPI_RHCTFFFF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_HART_INFO,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) #define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f) diff --git a/source/include/actbl.h b/source/include/actbl.h index f23080f..2a14849 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 340b636..1b115ae 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -170,6 +170,7 @@ */ #define ACPI_SIG_AEST "AEST" /* Arm Error Source Table */ #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ +#define ACPI_SIG_ASPT "ASPT" /* AMD Secure Processor Table */ #define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ #define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ @@ -398,6 +399,86 @@ typedef struct acpi_asf_address } ACPI_ASF_ADDRESS; +/******************************************************************************* + * + * ASPT - AMD Secure Processor Table (Signature "ASPT") + * Revision 0x1 + * + * Conforms to AMD Socket SP5/SP6 Platform ASPT Rev1 Specification, + * 12 September 2022 + * + ******************************************************************************/ + +typedef struct acpi_table_aspt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 NumEntries; + +} ACPI_TABLE_ASPT; + + +/* ASPT subtable header */ + +typedef struct acpi_aspt_header +{ + UINT16 Type; + UINT16 Length; + +} ACPI_ASPT_HEADER; + + +/* Values for Type field above */ + +enum AcpiAsptType +{ + ACPI_ASPT_TYPE_GLOBAL_REGS = 0, + ACPI_ASPT_TYPE_SEV_MBOX_REGS = 1, + ACPI_ASPT_TYPE_ACPI_MBOX_REGS = 2, + ACPI_ASPT_TYPE_UNKNOWN = 3, +}; + +/* + * ASPT subtables + */ + +/* 0: ASPT Global Registers */ + +typedef struct acpi_aspt_global_regs +{ + ACPI_ASPT_HEADER Header; + UINT32 Reserved; + UINT64 FeatureRegAddr; + UINT64 IrqEnRegAddr; + UINT64 IrqStRegAddr; + +} ACPI_ASPT_GLOBAL_REGS; + + +/* 1: ASPT SEV Mailbox Registers */ + +typedef struct acpi_aspt_sev_mbox_regs +{ + ACPI_ASPT_HEADER Header; + UINT8 MboxIrqId; + UINT8 Reserved[3]; + UINT64 CmdRespRegAddr; + UINT64 CmdBufLoRegAddr; + UINT64 CmdBufHiRegAddr; + +} ACPI_ASPT_SEV_MBOX_REGS; + + +/* 2: ASPT ACPI Mailbox Registers */ + +typedef struct acpi_aspt_acpi_mbox_regs +{ + ACPI_ASPT_HEADER Header; + UINT32 Reserved1; + UINT64 CmdRespRegAddr; + UINT64 Reserved2[2]; + +} ACPI_ASPT_ACPI_MBOX_REGS; + /******************************************************************************* * @@ -495,7 +576,6 @@ typedef struct acpi_table_boot } ACPI_TABLE_BOOT; - /******************************************************************************* * * CDAT - Coherent Device Attribute Table @@ -543,7 +623,7 @@ enum AcpiCdatType /* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */ -typedef struct acpi_cadt_dsmas +typedef struct acpi_cdat_dsmas { UINT8 DsmadHandle; UINT8 Flags; @@ -1139,7 +1219,10 @@ typedef struct acpi_dmar_andd ACPI_DMAR_HEADER Header; UINT8 Reserved[3]; UINT8 DeviceNumber; - char DeviceName[1]; + union { + char __pad; + ACPI_FLEX_ARRAY(char, DeviceName); + } u; } ACPI_DMAR_ANDD; @@ -1192,7 +1275,7 @@ typedef struct acpi_table_drtm typedef struct acpi_drtm_vtable_list { UINT32 ValidatedTableCount; - UINT64 ValidatedTables[1]; + UINT64 ValidatedTables[]; } ACPI_DRTM_VTABLE_LIST; @@ -1211,7 +1294,7 @@ typedef struct acpi_drtm_resource typedef struct acpi_drtm_resource_list { UINT32 ResourceCount; - ACPI_DRTM_RESOURCE Resources[1]; + ACPI_DRTM_RESOURCE Resources[]; } ACPI_DRTM_RESOURCE_LIST; @@ -1239,7 +1322,7 @@ typedef struct acpi_table_ecdt ACPI_GENERIC_ADDRESS Data; /* Address of EC data register */ UINT32 Uid; /* Unique ID - must be same as the EC _UID method */ UINT8 Gpe; /* The GPE for the EC */ - UINT8 Id[1]; /* Full namepath of the EC in the ACPI namespace */ + UINT8 Id[]; /* Full namepath of the EC in the ACPI namespace */ } ACPI_TABLE_ECDT; diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 4be5f0f..9b2812a 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -179,6 +179,7 @@ #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ #define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ +#define ACPI_SIG_MPAM "MPAM" /* Memory System Resource Partitioning and Monitoring Table */ #define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ @@ -191,6 +192,7 @@ #define ACPI_SIG_PRMT "PRMT" /* Platform Runtime Mechanism Table */ #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ #define ACPI_SIG_RGRT "RGRT" /* Regulatory Graphics Resource Table */ +#define ACPI_SIG_RHCT "RHCT" /* RISC-V Hart Capabilities Table */ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ @@ -229,13 +231,12 @@ typedef struct acpi_table_aest { ACPI_TABLE_HEADER Header; - void *NodeArray[]; } ACPI_TABLE_AEST; /* Common Subtable header - one per Node Structure (Subtable) */ -typedef struct acpi_aest_hdr +typedef struct acpi_aest_hdr { UINT8 Type; UINT16 Length; @@ -266,7 +267,7 @@ typedef struct acpi_aest_hdr /* 0: Processor Error */ -typedef struct acpi_aest_processor +typedef struct acpi_aest_processor { UINT32 ProcessorId; UINT8 ResourceType; @@ -286,7 +287,7 @@ typedef struct acpi_aest_processor /* 0R: Processor Cache Resource Substructure */ -typedef struct acpi_aest_processor_cache +typedef struct acpi_aest_processor_cache { UINT32 CacheReference; UINT32 Reserved; @@ -302,7 +303,7 @@ typedef struct acpi_aest_processor_cache /* 1R: Processor TLB Resource Substructure */ -typedef struct acpi_aest_processor_tlb +typedef struct acpi_aest_processor_tlb { UINT32 TlbLevel; UINT32 Reserved; @@ -311,7 +312,7 @@ typedef struct acpi_aest_processor_tlb /* 2R: Processor Generic Resource Substructure */ -typedef struct acpi_aest_processor_generic +typedef struct acpi_aest_processor_generic { UINT32 Resource; @@ -319,7 +320,7 @@ typedef struct acpi_aest_processor_generic /* 1: Memory Error */ -typedef struct acpi_aest_memory +typedef struct acpi_aest_memory { UINT32 SratProximityDomain; @@ -327,7 +328,7 @@ typedef struct acpi_aest_memory /* 2: Smmu Error */ -typedef struct acpi_aest_smmu +typedef struct acpi_aest_smmu { UINT32 IortNodeReference; UINT32 SubcomponentReference; @@ -336,7 +337,7 @@ typedef struct acpi_aest_smmu /* 3: Vendor Defined */ -typedef struct acpi_aest_vendor +typedef struct acpi_aest_vendor { UINT32 AcpiHid; UINT32 AcpiUid; @@ -346,7 +347,7 @@ typedef struct acpi_aest_vendor /* 4: Gic Error */ -typedef struct acpi_aest_gic +typedef struct acpi_aest_gic { UINT32 InterfaceType; UINT32 InstanceId; @@ -364,7 +365,7 @@ typedef struct acpi_aest_gic /* Node Interface Structure */ -typedef struct acpi_aest_node_interface +typedef struct acpi_aest_node_interface { UINT8 Type; UINT8 Reserved[3]; @@ -386,7 +387,7 @@ typedef struct acpi_aest_node_interface /* Node Interrupt Structure */ -typedef struct acpi_aest_node_interrupt +typedef struct acpi_aest_node_interrupt { UINT8 Type; UINT8 Reserved[2]; @@ -571,7 +572,7 @@ typedef struct acpi_iort_node UINT32 Identifier; UINT32 MappingCount; UINT32 MappingOffset; - char NodeData[1]; + char NodeData[]; } ACPI_IORT_NODE; @@ -637,7 +638,7 @@ typedef struct acpi_iort_memory_access typedef struct acpi_iort_its_group { UINT32 ItsCount; - UINT32 Identifiers[1]; /* GIC ITS identifier array */ + UINT32 Identifiers[]; /* GIC ITS identifier array */ } ACPI_IORT_ITS_GROUP; @@ -647,7 +648,7 @@ typedef struct acpi_iort_named_component UINT32 NodeFlags; UINT64 MemoryProperties; /* Memory access properties */ UINT8 MemoryAddressLimit; /* Memory address size limit */ - char DeviceName[1]; /* Path of namespace object */ + char DeviceName[]; /* Path of namespace object */ } ACPI_IORT_NAMED_COMPONENT; @@ -663,7 +664,7 @@ typedef struct acpi_iort_root_complex UINT32 PciSegmentNumber; UINT8 MemoryAddressLimit; /* Memory address size limit */ UINT16 PasidCapabilities; /* PASID Capabilities */ - UINT8 Reserved[1]; /* Reserved, must be zero */ + UINT8 Reserved[]; /* Reserved, must be zero */ } ACPI_IORT_ROOT_COMPLEX; @@ -687,7 +688,7 @@ typedef struct acpi_iort_smmu UINT32 ContextInterruptOffset; UINT32 PmuInterruptCount; UINT32 PmuInterruptOffset; - UINT64 Interrupts[1]; /* Interrupt array */ + UINT64 Interrupts[]; /* Interrupt array */ } ACPI_IORT_SMMU; @@ -1134,7 +1135,8 @@ enum AcpiMadtType ACPI_MADT_TYPE_MSI_PIC = 21, ACPI_MADT_TYPE_BIO_PIC = 22, ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RESERVED = 24, /* 24 to 0x7F are reserved */ + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_RESERVED = 25, /* 25 to 0x7F are reserved */ ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1239,7 +1241,7 @@ typedef struct acpi_madt_local_sapic UINT8 Reserved[3]; /* Reserved, must be zero */ UINT32 LapicFlags; UINT32 Uid; /* Numeric UID - ACPI 3.0 */ - char UidString[1]; /* String UID - ACPI 3.0 */ + char UidString[]; /* String UID - ACPI 3.0 */ } ACPI_MADT_LOCAL_SAPIC; @@ -1290,7 +1292,7 @@ typedef struct acpi_madt_local_x2apic_nmi } ACPI_MADT_LOCAL_X2APIC_NMI; -/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */ +/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 changes) */ typedef struct acpi_madt_generic_interrupt { @@ -1311,6 +1313,7 @@ typedef struct acpi_madt_generic_interrupt UINT8 EfficiencyClass; UINT8 Reserved2[1]; UINT16 SpeInterrupt; /* ACPI 6.3 */ + UINT16 TrbeInterrupt; /* ACPI 6.5 */ } ACPI_MADT_GENERIC_INTERRUPT; @@ -1546,11 +1549,29 @@ enum AcpiMadtLpcPicVersion { ACPI_MADT_LPC_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ }; +/* 24: RISC-V INTC */ +struct acpi_madt_rintc { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Reserved; + UINT32 Flags; + UINT64 HartId; + UINT32 Uid; /* ACPI processor UID */ +}; + +/* Values for RISC-V INTC Version field above */ + +enum AcpiMadtRintcVersion { + ACPI_MADT_RINTC_VERSION_NONE = 0, + ACPI_MADT_RINTC_VERSION_V1 = 1, + ACPI_MADT_RINTC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + /* 80: OEM data */ typedef struct acpi_madt_oem_data { - UINT8 OemData[0]; + ACPI_FLEX_ARRAY(UINT8, OemData); } ACPI_MADT_OEM_DATA; @@ -1639,6 +1660,132 @@ typedef struct acpi_table_mchi } ACPI_TABLE_MCHI; +/******************************************************************************* + * + * MPAM - Memory System Resource Partitioning and Monitoring + * + * Conforms to "ACPI for Memory System Resource Partitioning and Monitoring 2.0" + * Document number: ARM DEN 0065, December, 2022. + * + ******************************************************************************/ + +/* MPAM RIS locator types. Table 11, Location types */ +enum AcpiMpamLocatorType { + ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE = 0, + ACPI_MPAM_LOCATION_TYPE_MEMORY = 1, + ACPI_MPAM_LOCATION_TYPE_SMMU = 2, + ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE = 3, + ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE = 4, + ACPI_MPAM_LOCATION_TYPE_INTERCONNECT = 5, + ACPI_MPAM_LOCATION_TYPE_UNKNOWN = 0xFF +}; + +/* MPAM Functional dependency descriptor. Table 10 */ +typedef struct acpi_mpam_func_deps +{ + UINT32 Producer; + UINT32 Reserved; +} ACPI_MPAM_FUNC_DEPS; + +/* MPAM Processor cache locator descriptor. Table 13 */ +typedef struct acpi_mpam_resource_cache_locator +{ + UINT64 CacheReference; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_CACHE_LOCATOR; + +/* MPAM Memory locator descriptor. Table 14 */ +typedef struct acpi_mpam_resource_memory_locator +{ + UINT64 ProximityDomain; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_MEMORY_LOCATOR; + +/* MPAM SMMU locator descriptor. Table 15 */ +typedef struct acpi_mpam_resource_smmu_locator +{ + UINT64 SmmuInterface; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_SMMU_INTERFACE; + +/* MPAM Memory-side cache locator descriptor. Table 16 */ +typedef struct acpi_mpam_resource_memcache_locator +{ + UINT8 Reserved[7]; + UINT8 Level; + UINT32 Reference; +} ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE; + +/* MPAM ACPI device locator descriptor. Table 17 */ +typedef struct acpi_mpam_resource_acpi_locator +{ + UINT64 AcpiHwId; + UINT32 AcpiUniqueId; +} ACPI_MPAM_RESOURCE_ACPI_INTERFACE; + +/* MPAM Interconnect locator descriptor. Table 18 */ +typedef struct acpi_mpam_resource_interconnect_locator +{ + UINT64 InterConnectDescTblOff; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE; + +/* MPAM Locator structure. Table 12 */ +typedef struct acpi_mpam_resource_generic_locator +{ + UINT64 Descriptor1; + UINT32 Descriptor2; +} ACPI_MPAM_RESOURCE_GENERIC_LOCATOR; + +typedef union acpi_mpam_resource_locator +{ + ACPI_MPAM_RESOURCE_CACHE_LOCATOR CacheLocator; + ACPI_MPAM_RESOURCE_MEMORY_LOCATOR MemoryLocator; + ACPI_MPAM_RESOURCE_SMMU_INTERFACE SmmuLocator; + ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE MemCacheLocator; + ACPI_MPAM_RESOURCE_ACPI_INTERFACE AcpiLocator; + ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE InterconnectIfcLocator; + ACPI_MPAM_RESOURCE_GENERIC_LOCATOR GenericLocator; +} ACPI_MPAM_RESOURCE_LOCATOR; + +/* Memory System Component Resource Node Structure Table 9 */ +typedef struct acpi_mpam_resource_node +{ + UINT32 Identifier; + UINT8 RISIndex; + UINT16 Reserved1; + UINT8 LocatorType; + ACPI_MPAM_RESOURCE_LOCATOR Locator; + UINT32 NumFunctionalDeps; +} ACPI_MPAM_RESOURCE_NODE; + +/* Memory System Component (MSC) Node Structure. Table 4 */ +typedef struct acpi_mpam_msc_node +{ + UINT16 Length; + UINT8 InterfaceType; + UINT8 Reserved; + UINT32 Identifier; + UINT64 BaseAddress; + UINT32 MMIOSize; + UINT32 OverflowInterrupt; + UINT32 OverflowInterruptFlags; + UINT32 Reserved1; + UINT32 OverflowInterruptAffinity; + UINT32 ErrorInterrupt; + UINT32 ErrorInterruptFlags; + UINT32 Reserved2; + UINT32 ErrorInterruptAffinity; + UINT32 MaxNrdyUsec; + UINT64 HardwareIdLinkedDevice; + UINT32 InstanceIdLinkedDevice; + UINT32 NumResouceNodes; +} ACPI_MPAM_MSC_NODE; + +typedef struct acpi_table_mpam +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ +} ACPI_TABLE_MPAM; /******************************************************************************* * @@ -1917,7 +2064,7 @@ typedef struct acpi_nfit_interleave UINT16 Reserved; /* Reserved, must be zero */ UINT32 LineCount; UINT32 LineSize; - UINT32 LineOffset[1]; /* Variable length */ + UINT32 LineOffset[]; /* Variable length */ } ACPI_NFIT_INTERLEAVE; @@ -1928,7 +2075,7 @@ typedef struct acpi_nfit_smbios { ACPI_NFIT_HEADER Header; UINT32 Reserved; /* Reserved, must be zero */ - UINT8 Data[1]; /* Variable length */ + UINT8 Data[]; /* Variable length */ } ACPI_NFIT_SMBIOS; @@ -1994,7 +2141,7 @@ typedef struct acpi_nfit_flush_address UINT32 DeviceHandle; UINT16 HintCount; UINT8 Reserved[6]; /* Reserved, must be zero */ - UINT64 HintAddress[1]; /* Variable length */ + UINT64 HintAddress[]; /* Variable length */ } ACPI_NFIT_FLUSH_ADDRESS; @@ -3131,6 +3278,53 @@ enum AcpiRgrtImageType /******************************************************************************* * + * RHCT - RISC-V Hart Capabilities Table + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_rhct { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Reserved; + UINT64 TimeBaseFreq; + UINT32 NodeCount; + UINT32 NodeOffset; +} ACPI_TABLE_RHCT; + +/* + * RHCT subtables + */ +typedef struct acpi_rhct_node_header { + UINT16 Type; + UINT16 Length; + UINT16 Revision; +} ACPI_RHCT_NODE_HEADER; + +/* Values for RHCT subtable Type above */ + +enum acpi_rhct_node_type { + ACPI_RHCT_NODE_TYPE_ISA_STRING = 0x0000, + ACPI_RHCT_NODE_TYPE_HART_INFO = 0xFFFF, +}; + +/* + * RHCT node specific subtables + */ + +/* ISA string node structure */ +typedef struct acpi_rhct_isa_string { + UINT16 IsaLength; + char Isa[]; +} ACPI_RHCT_ISA_STRING; + +/* Hart Info node structure */ +typedef struct acpi_rhct_hart_info { + UINT16 NumOffsets; + UINT32 Uid; /* ACPI processor UID */ +} ACPI_RHCT_HART_INFO; + +/******************************************************************************* + * * SBST - Smart Battery Specification Table * Version 1 * diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 7cc633a..15ef019 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actypes.h b/source/include/actypes.h index 92da002..c0f0a87 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1481,7 +1481,7 @@ typedef struct acpi_mem_space_context } ACPI_MEM_SPACE_CONTEXT; -typedef struct acpi_data_table_space_context +typedef struct acpi_data_table_mapping { void *Pointer; @@ -1574,4 +1574,8 @@ typedef enum #define ACPI_FALLTHROUGH do {} while(0) #endif +#ifndef ACPI_FLEX_ARRAY +#define ACPI_FLEX_ARRAY(TYPE, NAME) TYPE NAME[0] +#endif + #endif /* __ACTYPES_H__ */ diff --git a/source/include/acutils.h b/source/include/acutils.h index a0e7953..bdca11c 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -196,6 +196,8 @@ extern const char *AcpiGbl_SbDecode[]; extern const char *AcpiGbl_FcDecode[]; extern const char *AcpiGbl_PtDecode[]; extern const char *AcpiGbl_PtypDecode[]; +extern const char *AcpiGbl_ClockInputMode[]; +extern const char *AcpiGbl_ClockInputScale[]; #endif /* diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 2ab07bb..cf3abc0 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlcode.h b/source/include/amlcode.h index 25d591e..62cbffa 100644 --- a/source/include/amlcode.h +++ b/source/include/amlcode.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index e89cd82..a8e288a 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -213,6 +213,8 @@ #define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */ #define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */ #define ACPI_RESTAG_VENDORDATA "_VEN" +#define ACPI_RESTAG_FQN "_FQN" +#define ACPI_RESTAG_FQD "_FQD" /* Default sizes for "small" resource descriptors */ @@ -501,7 +503,10 @@ typedef struct aml_resource_extended_irq AML_RESOURCE_LARGE_HEADER_COMMON UINT8 Flags; UINT8 InterruptCount; - UINT32 Interrupts[1]; + union { + UINT32 Interrupt; + ACPI_FLEX_ARRAY(UINT32, Interrupts); + } u; /* ResSourceIndex, ResSource optional fields follow */ } AML_RESOURCE_EXTENDED_IRQ; @@ -703,6 +708,23 @@ typedef struct aml_resource_pin_config } AML_RESOURCE_PIN_CONFIG; +#define AML_RESOURCE_CLOCK_INPUT_REVISION 1 /* ACPI 6.5 */ + +typedef struct aml_resource_clock_input +{ + AML_RESOURCE_LARGE_HEADER_COMMON + UINT8 RevisionId; + UINT16 Flags; + UINT16 FrequencyDivisor; + UINT32 FrequencyNumerator; + /* + * Optional fields follow immediately: + * 1) Resource Source index + * 2) Resource Source String + */ +} AML_RESOURCE_CLOCK_INPUT; + + #define AML_RESOURCE_PIN_CONFIG_REVISION 1 /* ACPI 6.2 */ typedef struct aml_resource_pin_group @@ -819,6 +841,7 @@ typedef union aml_resource AML_RESOURCE_PIN_GROUP PinGroup; AML_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction; AML_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig; + AML_RESOURCE_CLOCK_INPUT ClockInput; /* Utility overlays */ diff --git a/source/include/platform/accygwin.h b/source/include/platform/accygwin.h index 217237d..98782ff 100644 --- a/source/include/platform/accygwin.h +++ b/source/include/platform/accygwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonflyex.h b/source/include/platform/acdragonflyex.h index ba3ef01..bfc3273 100644 --- a/source/include/platform/acdragonflyex.h +++ b/source/include/platform/acdragonflyex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h index fefcca8..71cdf2f 100644 --- a/source/include/platform/acefi.h +++ b/source/include/platform/acefi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefiex.h b/source/include/platform/acefiex.h index 83aa907..8df422b 100644 --- a/source/include/platform/acefiex.h +++ b/source/include/platform/acefiex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -508,7 +508,7 @@ typedef struct { ACPI_EFI_TIME LastAccessTime; ACPI_EFI_TIME ModificationTime; UINT64 Attribute; - CHAR16 FileName[1]; + CHAR16 FileName[]; } ACPI_EFI_FILE_INFO; #define SIZE_OF_ACPI_EFI_FILE_INFO ACPI_OFFSET(ACPI_EFI_FILE_INFO, FileName) diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 674c4c7..1fc692d 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -358,6 +358,8 @@ #elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI) #include "acefi.h" +#elif defined(__ZEPHYR__) +#include "aczephyr.h" #else /* Unknown environment */ diff --git a/source/include/platform/acenvex.h b/source/include/platform/acenvex.h index 32db36c..33e19b6 100644 --- a/source/include/platform/acenvex.h +++ b/source/include/platform/acenvex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index 022f716..ffe6a48 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 3ad22a1..55a66c6 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -211,4 +211,15 @@ typedef __builtin_va_list va_list; #define ACPI_FALLTHROUGH __attribute__((__fallthrough__)) #endif +/* + * Flexible array members are not allowed to be part of a union under + * C99, but this is not for any technical reason. Work around the + * limitation. + */ +#define ACPI_FLEX_ARRAY(TYPE, NAME) \ + struct { \ + struct { } __Empty_ ## NAME; \ + TYPE NAME[]; \ + } + #endif /* __ACGCC_H__ */ diff --git a/source/include/platform/acgccex.h b/source/include/platform/acgccex.h index 035b999..156bab4 100644 --- a/source/include/platform/acgccex.h +++ b/source/include/platform/acgccex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index 81c1927..505b413 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -194,8 +194,8 @@ struct mutex; #define ACPI_FLUSH_CPU_CACHE() __asm __volatile("wbinvd"); /* Based on FreeBSD's due to lack of documentation */ -extern int AcpiOsAcquireGlobalLock(uint32 *lock); -extern int AcpiOsReleaseGlobalLock(uint32 *lock); +int AcpiOsAcquireGlobalLock(uint32 *lock); +int AcpiOsReleaseGlobalLock(uint32 *lock); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = AcpiOsAcquireGlobalLock(&((GLptr)->GlobalLock)); \ diff --git a/source/include/platform/acintel.h b/source/include/platform/acintel.h index 889c759..bfdc286 100644 --- a/source/include/platform/acintel.h +++ b/source/include/platform/acintel.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index 1c55c65..da37a2f 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -310,7 +310,10 @@ #define ACPI_USE_STANDARD_HEADERS #ifdef ACPI_USE_STANDARD_HEADERS +#include #include + +#define ACPI_OFFSET(d, f) offsetof(d, f) #endif /* Define/disable kernel-specific declarators */ @@ -329,7 +332,7 @@ #if defined(__ia64__) || (defined(__x86_64__) && !defined(__ILP32__)) ||\ defined(__aarch64__) || defined(__PPC64__) ||\ - defined(__s390x__) ||\ + defined(__s390x__) || defined(__loongarch__) ||\ (defined(__riscv) && (defined(__LP64__) || defined(_LP64))) #define ACPI_MACHINE_WIDTH 64 #define COMPILER_DEPENDENT_INT64 long diff --git a/source/include/platform/aclinuxex.h b/source/include/platform/aclinuxex.h index 4e84cd4..a10412a 100644 --- a/source/include/platform/aclinuxex.h +++ b/source/include/platform/aclinuxex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmacosx.h b/source/include/platform/acmacosx.h index 0335cc0..0166c24 100644 --- a/source/include/platform/acmacosx.h +++ b/source/include/platform/acmacosx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvc.h b/source/include/platform/acmsvc.h index 7367065..d6a265d 100644 --- a/source/include/platform/acmsvc.h +++ b/source/include/platform/acmsvc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvcex.h b/source/include/platform/acmsvcex.h index 2350d85..306ef61 100644 --- a/source/include/platform/acmsvcex.h +++ b/source/include/platform/acmsvcex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acnetbsd.h b/source/include/platform/acnetbsd.h index c0e3619..b948a5d 100644 --- a/source/include/platform/acnetbsd.h +++ b/source/include/platform/acnetbsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acos2.h b/source/include/platform/acos2.h index fe77609..f3b1183 100644 --- a/source/include/platform/acos2.h +++ b/source/include/platform/acos2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acqnx.h b/source/include/platform/acqnx.h index db1c103..40b50ce 100644 --- a/source/include/platform/acqnx.h +++ b/source/include/platform/acqnx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin.h b/source/include/platform/acwin.h index dc2d1eb..90dc0e3 100644 --- a/source/include/platform/acwin.h +++ b/source/include/platform/acwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin64.h b/source/include/platform/acwin64.h index e204545..f151435 100644 --- a/source/include/platform/acwin64.h +++ b/source/include/platform/acwin64.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aczephyr.h b/source/include/platform/aczephyr.h new file mode 100644 index 0000000..20d3c04 --- /dev/null +++ b/source/include/platform/aczephyr.h @@ -0,0 +1,192 @@ +/****************************************************************************** + * + * Module Name: aczephyr.h - OS specific defines, etc. + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + ***************************************************************************** + * + * Alternatively, you may choose to be licensed under the terms of the + * following license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions, and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, you may choose to be licensed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + *****************************************************************************/ + +#ifndef __ACZEPHYR_H__ +#define __ACZEPHYR_H__ + +#define SEEK_SET FS_SEEK_SET +#define SEEK_END FS_SEEK_END + +#define ACPI_MACHINE_WIDTH 64 + +#define ACPI_NO_ERROR_MESSAGES +#undef ACPI_DEBUG_OUTPUT +#define ACPI_USE_SYSTEM_CLIBRARY +#undef ACPI_DBG_TRACK_ALLOCATIONS +#define ACPI_SINGLE_THREADED +#define ACPI_USE_NATIVE_RSDP_POINTER + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/****************************************************************************** + * + * FUNCTION: AcpiEnableDbgPrint + * + * PARAMETERS: Enable, - Enable/Disable debug print + * + * RETURN: None + * + * DESCRIPTION: Enable/disable debug print + * + *****************************************************************************/ + +void AcpiEnableDbgPrint ( + bool Enable); +#endif diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c index 043dec4..7babce6 100644 --- a/source/os_specific/service_layers/osbsdtbl.c +++ b/source/os_specific/service_layers/osbsdtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c index ad5888f..4382c82 100644 --- a/source/os_specific/service_layers/oslinuxtbl.c +++ b/source/os_specific/service_layers/oslinuxtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixdir.c b/source/os_specific/service_layers/osunixdir.c index 54f53ea..ed69c33 100644 --- a/source/os_specific/service_layers/osunixdir.c +++ b/source/os_specific/service_layers/osunixdir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixmap.c b/source/os_specific/service_layers/osunixmap.c index 2f6e0b1..c125285 100644 --- a/source/os_specific/service_layers/osunixmap.c +++ b/source/os_specific/service_layers/osunixmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index ef1651b..addccb7 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswindir.c b/source/os_specific/service_layers/oswindir.c index b523102..30ce06d 100644 --- a/source/os_specific/service_layers/oswindir.c +++ b/source/os_specific/service_layers/oswindir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c index e053f05..2542e0d 100644 --- a/source/os_specific/service_layers/oswintbl.c +++ b/source/os_specific/service_layers/oswintbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index dc85f9b..5322189 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oszephyr.c b/source/os_specific/service_layers/oszephyr.c new file mode 100644 index 0000000..cc5136f --- /dev/null +++ b/source/os_specific/service_layers/oszephyr.c @@ -0,0 +1,1151 @@ +/****************************************************************************** + * + * Module Name: oszephyr - Zephyr OSL + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + ***************************************************************************** + * + * Alternatively, you may choose to be licensed under the terms of the + * following license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions, and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, you may choose to be licensed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + *****************************************************************************/ + +#include "acpi.h" +#include "accommon.h" +#include "acapps.h" +#include "aslcompiler.h" +#include +#include +#include +#include + +#include +LOG_MODULE_DECLARE(acpica, LOG_LEVEL_ERR); + +typedef void (*zephyr_irq_t)(const void *); + +#define ASL_MSG_BUFFER_SIZE (1024 * 128) + +/* Global varibles use from acpica lib. */ +BOOLEAN AslGbl_DoTemplates = FALSE; +BOOLEAN AslGbl_VerboseTemplates = FALSE; + +char AslGbl_MsgBuffer[ASL_MSG_BUFFER_SIZE]; +static BOOLEAN EnDbgPrint; + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadable + * + * PARAMETERS: Pointer - Area to be verified + * Length - Size of area + * + * RETURN: TRUE if readable for entire Length + * + * DESCRIPTION: Verify that a pointer is valid for reading + * + *****************************************************************************/ + +BOOLEAN +AcpiOsReadable ( + void *Pointer, + ACPI_SIZE Length) +{ + return (TRUE); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiEnableDbgPrint + * + * PARAMETERS: en, - Enable/Disable debug print + * + * RETURN: None + * + * DESCRIPTION: Formatted output + * + *****************************************************************************/ + +void +AcpiEnableDbgPrint ( + bool Enable) +{ + if (Enable) + { + EnDbgPrint = TRUE; + } + else + { + EnDbgPrint = FALSE; + } +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPrintf + * + * PARAMETERS: Fmt, ... - Standard printf format + * + * RETURN: None + * + * DESCRIPTION: Formatted output + * + *****************************************************************************/ + +void ACPI_INTERNAL_VAR_XFACE +AcpiOsPrintf ( + const char *Fmt, + ...) +{ + va_list args; + + va_start (args, Fmt); + + if (EnDbgPrint) + { + printk (Fmt, args); + } + + va_end (args); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetLine + * + * PARAMETERS: Buffer - Where to return the command line + * BufferLength - Maximum Length of Buffer + * BytesRead - Where the actual byte count is returned + * + * RETURN: Status and actual bytes read + * + * DESCRIPTION: Formatted input with argument list pointer + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsGetLine ( + char *Buffer, + UINT32 BufferLength, + UINT32 *BytesRead) +{ + return (-1); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsAllocate + * + * PARAMETERS: Size - Amount to allocate, in bytes + * + * RETURN: Pointer to the new allocation. Null on error. + * + * DESCRIPTION: Allocate memory. Algorithm is dependent on the OS. + * + *****************************************************************************/ + +void * +AcpiOsAllocate ( + ACPI_SIZE Size) +{ + return (k_malloc (Size)); +} + + +#ifdef USE_NATIVE_ALLOCATE_ZEROED +/****************************************************************************** + * + * FUNCTION: AcpiOsAllocateZeroed + * + * PARAMETERS: Size - Amount to allocate, in bytes + * + * RETURN: Pointer to the new allocation. Null on error. + * + * DESCRIPTION: Allocate and zero memory. Algorithm is dependent on the OS. + * + *****************************************************************************/ + +void * +AcpiOsAllocateZeroed ( + ACPI_SIZE Size) +{ + void *mem; + + mem = AcpiOsAllocate (Size); + + if (mem) + { + memset (mem, 0, Size); + } + + return (mem); +} +#endif + + +/****************************************************************************** + * + * FUNCTION: AcpiOsFree + * + * PARAMETERS: Mem - Pointer to previously allocated memory + * + * RETURN: None. + * + * DESCRIPTION: Free memory allocated via AcpiOsAllocate + * + *****************************************************************************/ + +void +AcpiOsFree ( + void *Mem) +{ + k_free (Mem); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadMemory + * + * PARAMETERS: Address - Physical Memory Address to read + * Value - Where Value is placed + * Width - Number of bits (8,16,32, or 64) + * + * RETURN: Value read from physical memory Address. Always returned + * as a 64-bit integer, regardless of the read Width. + * + * DESCRIPTION: Read data from a physical memory Address + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadMemory ( + ACPI_PHYSICAL_ADDRESS Address, + UINT64 *Value, + UINT32 Width) +{ + switch (Width) + { + case 8: + + *((UINT8 *) Value) = sys_read8 (Address); + break; + + case 16: + + *((UINT16 *) Value) = sys_read16 (Address); + break; + + case 32: + + *((UINT32 *) Value) = sys_read32 (Address); + break; + + case 64: + + *((UINT64 *) Value) = sys_read64 (Address); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWriteMemory + * + * PARAMETERS: Address - Physical Memory Address to write + * Value - Value to write + * Width - Number of bits (8,16,32, or 64) + * + * RETURN: None + * + * DESCRIPTION: Write data to a physical memory Address + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWriteMemory ( + ACPI_PHYSICAL_ADDRESS Address, + UINT64 Value, + UINT32 Width) +{ + switch (Width) + { + case 8: + + sys_write8 ((UINT8) Value, Address); + break; + + case 16: + + sys_write16 ((UINT16) Value, Address); + break; + + case 32: + + sys_write32 ((UINT32) Value, Address); + break; + + case 64: + + sys_write64 ((UINT64) Value, Address); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadPort + * + * PARAMETERS: Address - Address of I/O port/register to read + * Value - Where Value is placed + * Width - Number of bits + * + * RETURN: Value read from port + * + * DESCRIPTION: Read data from an I/O port or register + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadPort ( + ACPI_IO_ADDRESS Address, + UINT32 *Value, + UINT32 Width) +{ + + switch (Width) + { + case 8: + + *((UINT8 *) Value) = sys_in8 (Address); + break; + + case 16: + + *((UINT16 *) Value) = sys_in16 (Address); + break; + + case 32: + + *((UINT32 *) Value) = sys_in32 (Address); + break; + + case 64: + + *((UINT32 *) Value) = sys_in32 (Address); + *((UINT32 *) Value + 4) = sys_in32 (Address + 4); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWritePort + * + * PARAMETERS: Address - Address of I/O port/register to write + * Value - Value to write + * Width - Number of bits + * + * RETURN: None + * + * DESCRIPTION: Write data to an I/O port or register + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWritePort ( + ACPI_IO_ADDRESS Address, + UINT32 Value, + UINT32 Width) +{ + + switch (Width) + { + case 8: + + sys_out8 ((UINT8) Value, Address); + break; + + case 16: + + sys_out16 ((UINT16) Value, Address); + break; + + case 32: + + sys_out32 ((UINT32) Value, Address); + break; + + case 64: + + sys_out32 ((UINT32) Value, Address); + sys_out32 ((UINT32) (Value + 4), (Address + 4)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWritePciConfiguration + * + * PARAMETERS: PciId - Seg/Bus/Dev + * Register - Device Register + * Value - Value to be written + * Width - Number of bits + * + * RETURN: Status + * + * DESCRIPTION: Write data to PCI configuration space + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWritePciConfiguration ( + ACPI_PCI_ID *PciId, + UINT32 Register, + UINT64 Value, + UINT32 Width) +{ + UINT32 value32; + pcie_bdf_t bdf = PCIE_BDF (PciId->Bus, PciId->Device, PciId->Function); + + + switch (Width) + { + case 8: + + value32 = pcie_conf_read (bdf, Register); + value32 = (value32 & 0xffffff00) | (UINT8) Value; + pcie_conf_write (bdf, Register, value32); + break; + + case 16: + + value32 = pcie_conf_read (bdf, Register); + value32 = (value32 & 0xffff0000) | (UINT16) Value; + pcie_conf_write (bdf, Register, value32); + break; + + case 32: + + pcie_conf_write (bdf, Register, (UINT32) Value); + break; + + case 64: + + pcie_conf_write (bdf, Register, (UINT32) Value); + pcie_conf_write (bdf, (Register + 4), (UINT32) (Value >> 32)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadPciConfiguration + * + * PARAMETERS: PciId - Seg/Bus/Dev + * Register - Device Register + * Value - Buffer Where Value is placed + * Width - Number of bits + * + * RETURN: Status + * + * DESCRIPTION: Read data from PCI configuration space + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadPciConfiguration ( + ACPI_PCI_ID *PciId, + UINT32 Register, + UINT64 *Value, + UINT32 Width) +{ + + pcie_bdf_t bdf = PCIE_BDF (PciId->Bus, PciId->Device, PciId->Function); + + switch (Width) + { + case 8: + + *((UINT8 *) Value) = (UINT8) pcie_conf_read (bdf, Register); + break; + + case 16: + + *((UINT16 *) Value) = (UINT16) pcie_conf_read (bdf, Register); + break; + + case 32: + + *((UINT32 *) Value) = (UINT32) pcie_conf_read (bdf, Register); + break; + + case 64: + + *((UINT32 *) Value) = (UINT32) pcie_conf_read (bdf, Register); + *((UINT32 *) Value + 1) = (UINT32) pcie_conf_read (bdf, (Register + 4)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsRedirectOutput + * + * PARAMETERS: Destination - An open file handle/pointer + * + * RETURN: None + * + * DESCRIPTION: Causes redirect of AcpiOsPrintf and AcpiOsVprintf + * + *****************************************************************************/ + +void +AcpiOsRedirectOutput ( + void *Destination) +{ + +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPredefinedOverride + * + * PARAMETERS: InitVal - Initial Value of the predefined object + * NewVal - The new Value for the object + * + * RETURN: Status, pointer to Value. Null pointer returned if not + * overriding. + * + * DESCRIPTION: Allow the OS to override predefined names + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsPredefinedOverride ( + const ACPI_PREDEFINED_NAMES *InitVal, + ACPI_STRING *NewVal) +{ + + if (!InitVal || !NewVal) + { + return (AE_BAD_PARAMETER); + } + + *NewVal = NULL; + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsTableOverride + * + * PARAMETERS: ExistingTable - Header of current table (probably firmware) + * NewTable - Where an entire new table is returned. + * + * RETURN: Status, pointer to new table. Null pointer returned if no + * table is available to override + * + * DESCRIPTION: Return a different version of a table if one is available + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsTableOverride ( + ACPI_TABLE_HEADER *ExistingTable, + ACPI_TABLE_HEADER **NewTable) +{ + + if (!ExistingTable || !NewTable) + { + return (AE_BAD_PARAMETER); + } + + *NewTable = NULL; + + return (AE_NO_ACPI_TABLES); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetRootPointer + * + * PARAMETERS: None + * + * RETURN: RSDP physical Address + * + * DESCRIPTION: Gets the root pointer (RSDP) + * + *****************************************************************************/ + +ACPI_PHYSICAL_ADDRESS +AcpiOsGetRootPointer ( + void) +{ + + LOG_DBG (""); + return ((ACPI_PHYSICAL_ADDRESS) efi_get_acpi_rsdp ()); +} + + +#ifndef ACPI_USE_NATIVE_MEMORY_MAPPING +/****************************************************************************** + * + * FUNCTION: AcpiOsMapMemory + * + * PARAMETERS: Where - Physical Address of memory to be mapped + * Length - How much memory to map + * + * RETURN: Pointer to mapped memory. Null on error. + * + * DESCRIPTION: Map physical memory into caller's Address space + * + *****************************************************************************/ + +void * +AcpiOsMapMemory ( + ACPI_PHYSICAL_ADDRESS Where, + ACPI_SIZE Length) +{ + uint8_t *VirtlAdd; + + LOG_DBG (""); + z_phys_map (&VirtlAdd, Where, Length, 0); + return ((void *) VirtlAdd); +} +#endif + + +/****************************************************************************** + * + * FUNCTION: AcpiOsUnmapMemory + * + * PARAMETERS: Where - Logical Address of memory to be unmapped + * Length - How much memory to unmap + * + * RETURN: None. + * + * DESCRIPTION: Delete a previously created mapping. Where and Length must + * correspond to a previous mapping exactly. + * + *****************************************************************************/ + +void +AcpiOsUnmapMemory ( + void *Where, + ACPI_SIZE Length) +{ + LOG_DBG (""); + z_phys_unmap (Where, Length); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPhysicalTableOverride + * + * PARAMETERS: ExistingTable - Header of current table (probably firmware) + * NewAddress - Where new table Address is returned + * (Physical Address) + * NewTableLength - Where new table Length is returned + * + * RETURN: Status, Address/Length of new table. Null pointer returned + * if no table is available to override. + * + * DESCRIPTION: Returns AE_SUPPORT, function not used in user space. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsPhysicalTableOverride ( + ACPI_TABLE_HEADER *ExistingTable, + ACPI_PHYSICAL_ADDRESS *NewAddress, + UINT32 *NewTableLength) +{ + + LOG_DBG (""); + return (AE_SUPPORT); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsInitialize + * + * PARAMETERS: None + * + * RETURN: Status + * + * DESCRIPTION: Init this OSL + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsInitialize ( + void) +{ + LOG_DBG (""); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsStall + * + * PARAMETERS: Microseconds - Time to stall + * + * RETURN: None. Blocks until stall is completed. + * + * DESCRIPTION: Sleep at microsecond granularity + * + *****************************************************************************/ + +void +AcpiOsStall ( + UINT32 Microseconds) +{ + k_busy_wait (Microseconds); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsSleep + * + * PARAMETERS: Milliseconds - Time to sleep + * + * RETURN: None. Blocks until sleep is completed. + * + * DESCRIPTION: Sleep at millisecond granularity + * + *****************************************************************************/ + +void +AcpiOsSleep ( + UINT64 Milliseconds) +{ + k_msleep ((UINT32) Milliseconds); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsEnterSleep + * + * PARAMETERS: SleepState - Which sleep state to enter + * RegaValue - Register A Value + * RegbValue - Register B Value + * + * RETURN: Status + * + * DESCRIPTION: A hook before writing sleep registers to enter the sleep + * state. Return AE_CTRL_SKIP to skip further sleep register + * writes. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsEnterSleep ( + UINT8 SleepState, + UINT32 RegaValue, + UINT32 RegbValue) +{ + __ASSERT (FALSE, "function Not implemented"); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetTimer + * + * PARAMETERS: None + * + * RETURN: Current ticks in 100-nanosecond units + * + * DESCRIPTION: Get the Value of a system timer + * + ******************************************************************************/ + +UINT64 +AcpiOsGetTimer ( + void) +{ + return (k_cycle_get_64 ()); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsInstallInterruptHandler + * + * PARAMETERS: InterruptNumber - Level handler should respond to. + * ServiceRoutine - Address of the ACPI interrupt handler + * Context - User context + * + * RETURN: Handle to the newly installed handler. + * + * DESCRIPTION: Install an interrupt handler. Used to install the ACPI + * OS-independent handler. + * + *****************************************************************************/ + +UINT32 +AcpiOsInstallInterruptHandler ( + UINT32 InterruptNumber, + ACPI_OSD_HANDLER ServiceRoutine, + void *Context) +{ + LOG_DBG (""); + irq_connect_dynamic (InterruptNumber, 3, (zephyr_irq_t) ServiceRoutine, Context, + IRQ_TYPE_LOWEST_LEVEL_LOW); + irq_enable (InterruptNumber); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsRemoveInterruptHandler + * + * PARAMETERS: Handle - Returned when handler was installed + * + * RETURN: Status + * + * DESCRIPTION: Uninstalls an interrupt handler. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsRemoveInterruptHandler ( + UINT32 InterruptNumber, + ACPI_OSD_HANDLER ServiceRoutine) +{ + + LOG_DBG (""); + irq_disable (InterruptNumber); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsSignal + * + * PARAMETERS: Function - ACPICA signal function code + * Info - Pointer to function-dependent structure + * + * RETURN: Status + * + * DESCRIPTION: Miscellaneous functions. Example implementation only. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsSignal ( + UINT32 Function, + void *Info) +{ + switch (Function) + { + case ACPI_SIGNAL_FATAL: + LOG_DBG ("ACPI_SIGNAL_FATAL error"); + break; + + case ACPI_SIGNAL_BREAKPOINT: + LOG_DBG ("ACPI_SIGNAL_BREAKPOINT"); + break; + + default: + break; + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: Spinlock/Semaphore interfaces + * + * DESCRIPTION: Map these interfaces to semaphore interfaces + * + *****************************************************************************/ + +#ifdef ACPI_SINGLE_THREADED +ACPI_STATUS +AcpiOsCreateLock ( + ACPI_SPINLOCK *OutHandle) +{ + LOG_DBG (""); + + return (AE_OK); +} + +void +AcpiOsDeleteLock ( + ACPI_SPINLOCK Handle) +{ + LOG_DBG (""); +} + +ACPI_CPU_FLAGS +AcpiOsAcquireLock ( + ACPI_SPINLOCK Handle) +{ + LOG_DBG (""); + return (0); +} + +void +AcpiOsReleaseLock ( + ACPI_SPINLOCK Handle, + ACPI_CPU_FLAGS Flags) +{ + LOG_DBG (""); +} + +ACPI_STATUS +AcpiOsCreateSemaphore ( + UINT32 MaxUnits, + UINT32 InitialUnits, + ACPI_HANDLE *OutHandle) +{ + *OutHandle = (ACPI_HANDLE) 1; + return (AE_OK); +} + +ACPI_STATUS +AcpiOsDeleteSemaphore ( + ACPI_HANDLE Handle) +{ + return (AE_OK); +} + +ACPI_STATUS +AcpiOsWaitSemaphore ( + ACPI_HANDLE Handle, + UINT32 Units, + UINT16 Timeout) +{ + return (AE_OK); +} + +ACPI_STATUS +AcpiOsSignalSemaphore ( + ACPI_HANDLE Handle, + UINT32 Units) +{ + return (AE_OK); +} + +ACPI_THREAD_ID +AcpiOsGetThreadId ( + void) +{ + LOG_DBG (""); + return (1); +} + +ACPI_STATUS +AcpiOsExecute ( + ACPI_EXECUTE_TYPE Type, + ACPI_OSD_EXEC_CALLBACK Function, + void *Context) +{ + Function (Context); + return (AE_OK); +} +#endif diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c index f974f12..c3a42c4 100644 --- a/source/tools/acpibin/abcompare.c +++ b/source/tools/acpibin/abcompare.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index 365b437..6bacb2a 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index 510b3a8..ea90aee 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index 8785887..d8c14a6 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index 0cf8d00..f2e8076 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c index 1637108..902408e 100644 --- a/source/tools/acpidump/apfiles.c +++ b/source/tools/acpidump/apfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index 5fba99b..5bb2c24 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index 7bfdd27..0745aac 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c index f0903c1..326407c 100644 --- a/source/tools/acpiexec/aeexception.c +++ b/source/tools/acpiexec/aeexception.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index 5bf1ebd..af6a18f 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index 9b12aa6..e36a475 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c index 600f2c7..c3d4d8e 100644 --- a/source/tools/acpiexec/aeinitfile.c +++ b/source/tools/acpiexec/aeinitfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 28d08d8..9e1940c 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 9c5a6e0..01fee3b 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index 400fd66..f064672 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index c758084..6cee6da 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.h b/source/tools/acpiexec/aetables.h index 446210a..0f2a049 100644 --- a/source/tools/acpiexec/aetables.h +++ b/source/tools/acpiexec/aetables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c index 94e2668..f35527f 100644 --- a/source/tools/acpiexec/aetests.c +++ b/source/tools/acpiexec/aetests.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index abc9480..87cb664 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index df83269..04cd3fa 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahamlops.c b/source/tools/acpihelp/ahamlops.c index bd2b13f..a27c11d 100644 --- a/source/tools/acpihelp/ahamlops.c +++ b/source/tools/acpihelp/ahamlops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahasl.c b/source/tools/acpihelp/ahasl.c index 0b04699..dea6beb 100644 --- a/source/tools/acpihelp/ahasl.c +++ b/source/tools/acpihelp/ahasl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 40da5b3..0f1fa80 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslops.c b/source/tools/acpihelp/ahaslops.c index 00c05de..44f3a4f 100644 --- a/source/tools/acpihelp/ahaslops.c +++ b/source/tools/acpihelp/ahaslops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index 0de8191..f9a328b 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahgrammar.c b/source/tools/acpihelp/ahgrammar.c index 03838bd..5c50f02 100644 --- a/source/tools/acpihelp/ahgrammar.c +++ b/source/tools/acpihelp/ahgrammar.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 6570cbc..828b752 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h index 0ebfaef..733127f 100644 --- a/source/tools/acpisrc/acpisrc.h +++ b/source/tools/acpisrc/acpisrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/ascase.c b/source/tools/acpisrc/ascase.c index 4f23170..b64fa7f 100644 --- a/source/tools/acpisrc/ascase.c +++ b/source/tools/acpisrc/ascase.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index ab34a6f..0027e45 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -185,7 +185,7 @@ AsCountLines ( #define MODULE_HEADER_BEGIN "/******************************************************************************\n *\n * Module Name:"; #define MODULE_HEADER_END " *****************************************************************************/\n\n" -#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2022, Intel Corp.\n" +#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2023, Intel Corp.\n" /* Opening signature of the Intel legal header */ @@ -1230,7 +1230,6 @@ AsTabify8 ( char *NewSubBuffer; char *CommentEnd = NULL; UINT32 SpaceCount = 0; - UINT32 Column = 0; UINT32 TabCount = 0; UINT32 LastLineTabCount = 0; UINT32 LastLineColumnStart = 0; @@ -1246,7 +1245,6 @@ AsTabify8 ( /* This is a standalone blank line */ FirstNonBlank = NULL; - Column = 0; SpaceCount = 0; TabCount = 0; SubBuffer++; @@ -1285,8 +1283,6 @@ AsTabify8 ( } } - Column++; - /* Check if we are in a comment */ if ((SubBuffer[0] == '*') && @@ -1379,7 +1375,6 @@ AsTabify8 ( FirstNonBlank = NULL; LastLineColumnStart = ThisColumnStart; - Column = 0; SpaceCount = 0; } else @@ -1618,6 +1613,8 @@ AsInsertPrefix ( int TrailingSpaces; char LowerKeyword[128]; int KeywordLength; + char *LineStart; + BOOLEAN FoundPrefix; switch (Type) @@ -1664,7 +1661,66 @@ AsInsertPrefix ( { /* Make sure the keyword isn't already prefixed with the insert */ - if (!strncmp (SubString - InsertLength, InsertString, InsertLength)) + /* We find the beginning of the line and try to find the InsertString + * from LineStart up to SubBuffer (our keyword). If it's not there, + * we assume it doesn't have a prefix; this is a limitation, as having + * a keyword on another line is absolutely valid C. + */ + + LineStart = SubString; + FoundPrefix = FALSE; + + /* Find the start of the line */ + + while (LineStart > Buffer) + { + if (*LineStart == '\n') + { + LineStart++; + break; + } + + LineStart--; + } + + /* Try to find InsertString from the start of the line up to SubBuffer */ + /* Note that this algorithm is a bit naive. */ + + while (SubBuffer > LineStart) + { + if (*LineStart != *InsertString) + { + LineStart++; + continue; + } + + if (strncmp (LineStart++, InsertString, InsertLength)) + { + continue; + } + + FoundPrefix = TRUE; + LineStart += InsertLength - 1; + + /* Now check if there's non-whitespace between InsertString and SubBuffer, as that + * means it's not a valid prefix in this case. */ + + while (LineStart != SubBuffer) + { + if (!strchr (" \t\r\n", *LineStart)) + { + /* We found non-whitespace while traversing up to SubBuffer, + * so this isn't a prefix. + */ + FoundPrefix = FALSE; + break; + } + + LineStart++; + } + } + + if (FoundPrefix) { /* Add spaces if not already at the end-of-line */ diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index 3f8f97c..b79e082 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index aa382f0..7b8be37 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c index 7f230af..4bd6a15 100644 --- a/source/tools/acpisrc/asremove.c +++ b/source/tools/acpisrc/asremove.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index d2da8e3..f12ea3e 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -197,7 +197,7 @@ ACPI_STRING_TABLE StandardDataTypes[] = { char EmptyHeader[] = ""; char DualLicenseHeader[] = "/*\n" -" * Copyright (C) 2000 - 2022, Intel Corp.\n" +" * Copyright (C) 2000 - 2023, Intel Corp.\n" " * All rights reserved.\n" " *\n" " * Redistribution and use in source and binary forms, with or without\n" @@ -306,6 +306,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_CONVERSION_TABLE", SRC_TYPE_STRUCT}, {"ACPI_CPU_FLAGS", SRC_TYPE_SIMPLE}, {"ACPI_CREATE_FIELD_INFO", SRC_TYPE_STRUCT}, + {"ACPI_DATA_TABLE_MAPPING", SRC_TYPE_STRUCT}, {"ACPI_DB_ARGUMENT_INFO", SRC_TYPE_STRUCT}, {"ACPI_DB_COMMAND_HELP", SRC_TYPE_STRUCT}, {"ACPI_DB_COMMAND_INFO", SRC_TYPE_STRUCT}, @@ -339,6 +340,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_FIND_CONTEXT", SRC_TYPE_STRUCT}, {"ACPI_FIXED_EVENT_HANDLER", SRC_TYPE_STRUCT}, {"ACPI_FIXED_EVENT_INFO", SRC_TYPE_STRUCT}, + {"ACPI_FFH_INFO", SRC_TYPE_STRUCT}, {"ACPI_GBL_EVENT_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_GENERIC_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_GENERIC_STATE", SRC_TYPE_UNION}, @@ -373,6 +375,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_LPIT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_LPIT_IO", SRC_TYPE_STRUCT}, {"ACPI_LPIT_NATIVE", SRC_TYPE_STRUCT}, + {"ACPI_MEM_MAPPING", SRC_TYPE_STRUCT}, {"ACPI_MEM_SPACE_CONTEXT", SRC_TYPE_STRUCT}, {"ACPI_MEMORY_ATTRIBUTE", SRC_TYPE_STRUCT}, {"ACPI_MEMORY_LIST", SRC_TYPE_STRUCT}, @@ -649,6 +652,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CCEL", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_CDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT}, @@ -672,6 +676,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_MADT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCFG", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCHI", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_MPAM", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MPST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSDM", SRC_TYPE_STRUCT}, @@ -829,6 +834,9 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_MSC_NODE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_LOCATOR", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_NODE", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_DATA", SRC_TYPE_STRUCT}, @@ -955,6 +963,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"AH_ASL_KEYWORD", SRC_TYPE_STRUCT}, {"AH_DEVICE_ID", SRC_TYPE_STRUCT}, {"AH_PREDEFINED_NAME", SRC_TYPE_STRUCT}, + {"AH_TABLE", SRC_TYPE_STRUCT}, {"AH_UUID", SRC_TYPE_STRUCT}, /* AcpiXtract utility */ @@ -1245,8 +1254,8 @@ ACPI_CONVERSION_TABLE LicenseConversionTable = ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2021", "(c) 1999 - 2022", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ - {"(c) 2006 - 2021", "(c) 2006 - 2022", REPLACE_WHOLE_WORD}, /* Test suites */ + {"(c) 1999 - 2021", "(c) 1999 - 2023", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ + {"(c) 2006 - 2021", "(c) 2006 - 2023", REPLACE_WHOLE_WORD}, /* Test suites */ #if 0 {"SUPPORT, ASSISTANCE", "SUPPORT, ASSISTANCE", REPLACE_WHOLE_WORD}, /* Fix intel header */ diff --git a/source/tools/acpisrc/asutils.c b/source/tools/acpisrc/asutils.c index cc97cca..6d481ea 100644 --- a/source/tools/acpisrc/asutils.c +++ b/source/tools/acpisrc/asutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 30bb06e..fd53818 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.h b/source/tools/acpixtract/acpixtract.h index 2e7646b..bff2ed5 100644 --- a/source/tools/acpixtract/acpixtract.h +++ b/source/tools/acpixtract/acpixtract.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 30f3d68..c504783 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c index 5402177..a51cc69 100644 --- a/source/tools/acpixtract/axutils.c +++ b/source/tools/acpixtract/axutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/efihello/efihello.c b/source/tools/efihello/efihello.c index ed4c8b4..a8aead3 100644 --- a/source/tools/efihello/efihello.c +++ b/source/tools/efihello/efihello.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index 0b44975..2357755 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.h b/source/tools/examples/examples.h index 66c2821..2881926 100644 --- a/source/tools/examples/examples.h +++ b/source/tools/examples/examples.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/exstubs.c b/source/tools/examples/exstubs.c index 2cc8636..a4fc1ad 100644 --- a/source/tools/examples/exstubs.c +++ b/source/tools/examples/exstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 8633788..5c58baf 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License