From nobody Thu Jun 25 23:03:12 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gmZ951223z6jWJk for ; Thu, 25 Jun 2026 23:03:21 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Received: from mail-yx1-xb12f.google.com (mail-yx1-xb12f.google.com [IPv6:2607:f8b0:4864:20::b12f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gmZ936zZdz3qhh for ; Thu, 25 Jun 2026 23:03:19 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=gNF3x3WO; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of oliver.pntr@gmail.com designates 2607:f8b0:4864:20::b12f as permitted sender) smtp.mailfrom=oliver.pntr@gmail.com; arc=pass ("google.com:s=arc-20260327:i=1") Received: by mail-yx1-xb12f.google.com with SMTP id 956f58d0204a3-663167a3ba2so465186d50.3 for ; Thu, 25 Jun 2026 16:03:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782428594; cv=none; d=google.com; s=arc-20260327; b=pLB9s/3/5dsIy9UPCSa7FLEnXKhjYjV4zj6UnngBcealK+HEFqVtxQpyGoeNgmL0+I 5NrO+G9QA4uy+fBEpYFR+aQHe21EE+8qmprbpPhpB2j6uTc/JvLCiDLit0QzsTi9/ewA feF2WiEJLIoZsTalIitT1+DaQQStLYOQkVmOw/3q4YY6PWcn9Qki4gfgqcZ1r89clrDK KyWIlM2U8I67wnX1aWFfjH6B+RpA/vOkCmzcL0MHVXvujYkuM81hMunUj33KEQbaZAVU MX9n7pwEn1kFsrDMYyQzbJvSjq+YgPNyAe/fjxfsEjGimom0eIvdeUzTiyJWiieXxmJm bKoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:dkim-signature; bh=AfqN73b2ig5YkuGUHoqMM6bSrsG3V+NCLZP96ApNzR8=; fh=vbZFWN+boWxijNOeenL5SBkEhiysoUowCjFu/0DRL5E=; b=MFzL72gEstViiU4OvhbjGyoJ0bKvSVCoXKp71uGi7DDymSlDc+fA99c1QgRmlBRiGB SHaY0Ci6DwBh6rdG3PAWL1NoWJzNUpGMzLMpIr08Twha9fvFyVbQcx/gJ1imaXItWGOG VB7QXlieZqJdAs+tgYqbnAZNlBEq0wNLMKZhFxmU978pLI437e8IPnrTNV+0Vd0tAGiR YRRPun6c1KCX0gHmOGhs9lMHnG45Wh6yI+no1oA/Qldhb7E0FidTb7GRq+xkuzWuzhbP +gmlMKSXfEJvatJPimpc6PbAxOZ/jASELUA6HTjgQYI/aQz05YKQYFnx8V80VDWOGLdz ML2g==; darn=freebsd.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782428594; x=1783033394; darn=freebsd.org; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AfqN73b2ig5YkuGUHoqMM6bSrsG3V+NCLZP96ApNzR8=; b=gNF3x3WOjrvf7OOO8etBrTlF1BYpPZeAVqnfrzCNl16FzE2Ow8ELkwDczzuGzBaG1A zZFVs9nUJdYFVCTlg0t7tA/ydbQA7H6+PS6oY32tVTNWKzP725cwNCcn+Dd3AoXQ7M00 n679nN2PKiJQaY8MJuX2dM0OGyJXik6w6w49Y442jolXaGOWKKac7kBewDckDHDslFqK NC8a6hMIE1PT2gC3VJr19FNEAVhZYeE97/P6b5OtJjnAba6RXOPO+bdfMhKZ1IAPycnS CddgGjNMoUMPNyMwYMGvWOgxGZ2JxOoeLjz2MWDt7Det7Nt1zldClkBtKNGCCgaEoA+m tsgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782428594; x=1783033394; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AfqN73b2ig5YkuGUHoqMM6bSrsG3V+NCLZP96ApNzR8=; b=VWnkxZj8H7VdugsvtJHVuw53oC+rdCNdHWRSd4dmaCop8ped4c1f6I7K2ZptUJBm2o IuCHFKcWY6WUOI8xCUakUZB7r3MmAxH1PZhQlpMum/cvi3RmpZZz91mzMnHHKy9PI9fj 3JZ0lMggAyzTG9Hhvj3sJv76zDMfWga7a46glViuh/cSIA88t1bPpt81HPnb33Y4rD/y EOjG1EZfjTvvJdWKcaeJwEScbPplJ4Mve/rYjMREWxZW7j1n9/Ld7QoS/9FdXOsMZelW gZyZ/GNrmQawr2XYHTWrL1xns56I5/OTlw7GKJGkEsB73c6b/GqYohKY/0yqgU2J/Jx9 456A== X-Forwarded-Encrypted: i=1; AHgh+RoLt9cNc3Y9w1Z7rp6mtPWGmEOs3frFTswnD52CcXLezofzhrSwqKsI7cSWu6REidWDMjVXViR2gifpSCOYUts3pDt6zQ==@freebsd.org X-Gm-Message-State: AOJu0Yw1GRVpLhbwJskFXP885A7kvRwRJLbZHPlyMvj4koRTDU8h3tnp jsdRnCQkbaFwU1acg6R0GrAo8SxZnErygNu1p38qTL76GRtODVaLfsV1J4kjlQvv1ICC735Pxfi c8VW8YUd6tN97j1vpeHC6Mj/eSGD14Sw= X-Gm-Gg: AfdE7cnAlsvt4Z79Y7Jv0KDieM+SWuSIvnGuRru/DtxTTESGvizUVXWiytDuzRYT3FG tA//4ctRsx4NQrrEwFN0gUHm6Yy8J1YzdaYU39hFmxnv1yqlqE1QdqDIAjqSPQiRxi5/RMn/52c XcxO3jyAykWvHJLct6j2jb1ZajYrlY9hdktLrI3BdSUDes3fIl6O/PCjHeWZ8HeFU91qL2S0dBE rQ4gafwx3iBWpUrgGUps1Y14nuQhncC+nmIwEc7ZDuc2AfyA3ZcC5w0yW8vy/CJ80O7mv2/2tVg +X4hF9xPD70XATaDamXOGsOlIClYXYjVeud8GQdU X-Received: by 2002:a05:690e:130c:b0:664:9781:5179 with SMTP id 956f58d0204a3-66497815baamr1505147d50.20.1782428593659; Thu, 25 Jun 2026 16:03:13 -0700 (PDT) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Received: by 2002:a05:7010:5114:b0:533:c0fd:86ba with HTTP; Thu, 25 Jun 2026 16:03:12 -0700 (PDT) In-Reply-To: <6a39c063.3059b.7ef016f@gitrepo.freebsd.org> References: <6a39c063.3059b.7ef016f@gitrepo.freebsd.org> From: Oliver Pinter Date: Fri, 26 Jun 2026 01:03:12 +0200 X-Gm-Features: AVVi8CdpPiRqZEwOXkmcMZL1BiT2f5i02f5SrOhCJCc6HJ1M9L1WUhcANpu_UD8 Message-ID: Subject: Re: git: e985c628a0e4 - main - edk2: Bring in some more files from edk2-stable202502 To: Warner Losh Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Type: multipart/alternative; boundary="00000000000029a75f06551bff9c" X-Spamd-Result: default: False [-5.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; ARC_ALLOW(-1.00)[google.com:s=arc-20260327:i=1]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4864::/56:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20251104]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TAGGED_FROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_DN_EQ_ADDR_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MISSING_XM_UA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::b12f:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-main@freebsd.org]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-Spamd-Bar: ---- X-Rspamd-Queue-Id: 4gmZ936zZdz3qhh --00000000000029a75f06551bff9c Content-Type: text/plain; charset="UTF-8" On Tuesday, June 23, 2026, Warner Losh wrote: > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id= > e985c628a0e4082d9b953897d6f56c81d177cea7 > > commit e985c628a0e4082d9b953897d6f56c81d177cea7 > Author: Warner Losh > AuthorDate: 2026-06-22 22:06:24 +0000 > Commit: Warner Losh > CommitDate: 2026-06-22 23:06:14 +0000 > > edk2: Bring in some more files from edk2-stable202502 > > These are needed for memdisk support, so import them separately. > These are from 202502, like all the other files here. > > Sponsored by: Netflix > --- > sys/contrib/edk2/Include/IndustryStandard/Acpi61.h | 2442 > ++++++++++++++++++++ > .../Include/Protocol/AcpiSystemDescriptionTable.h | 263 +++ > sys/contrib/edk2/Include/Protocol/AcpiTable.h | 121 + > sys/contrib/edk2/Include/Protocol/RamDisk.h | 100 + > 4 files changed, 2926 insertions(+) > > diff --git a/sys/contrib/edk2/Include/IndustryStandard/Acpi61.h > b/sys/contrib/edk2/Include/IndustryStandard/Acpi61.h > new file mode 100644 > index 000000000000..ff52bc6a7cba > --- /dev/null > +++ b/sys/contrib/edk2/Include/IndustryStandard/Acpi61.h > @@ -0,0 +1,2442 @@ > +/** @file > + ACPI 6.1 definitions from the ACPI Specification Revision 6.1 January, > 2016. > + > + Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.
These BRs looks weird. > + (C) Copyright 2016 Hewlett Packard Enterprise Development LP
> + Copyright (c) 2020, ARM Ltd. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _ACPI_6_1_H_ > +#define _ACPI_6_1_H_ > + > +#include > + > +/// > +/// _PSD Revision for ACPI 6.1 > +/// > +#define EFI_ACPI_6_1_AML_PSD_REVISION 0 > + > +/// > +/// _CPC Revision for ACPI 6.1 > +/// > +#define EFI_ACPI_6_1_AML_CPC_REVISION 2 > + > +// > +// Ensure proper structure formats > +// > +#pragma pack(1) > + > +/// > +/// ACPI 6.1 Generic Address Space definition > +/// > +typedef struct { > + UINT8 AddressSpaceId; > + UINT8 RegisterBitWidth; > + UINT8 RegisterBitOffset; > + UINT8 AccessSize; > + UINT64 Address; > +} EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE; > + > +// > +// Generic Address Space Address IDs > +// > +#define EFI_ACPI_6_1_SYSTEM_MEMORY 0 > +#define EFI_ACPI_6_1_SYSTEM_IO 1 > +#define EFI_ACPI_6_1_PCI_CONFIGURATION_SPACE 2 > +#define EFI_ACPI_6_1_EMBEDDED_CONTROLLER 3 > +#define EFI_ACPI_6_1_SMBUS 4 > +#define EFI_ACPI_6_1_PLATFORM_COMMUNICATION_CHANNEL 0x0A > +#define EFI_ACPI_6_1_FUNCTIONAL_FIXED_HARDWARE 0x7F > + > +// > +// Generic Address Space Access Sizes > +// > +#define EFI_ACPI_6_1_UNDEFINED 0 > +#define EFI_ACPI_6_1_BYTE 1 > +#define EFI_ACPI_6_1_WORD 2 > +#define EFI_ACPI_6_1_DWORD 3 > +#define EFI_ACPI_6_1_QWORD 4 > + > +// > +// ACPI 6.1 table structures > +// > + > +/// > +/// Root System Description Pointer Structure > +/// > +typedef struct { > + UINT64 Signature; > + UINT8 Checksum; > + UINT8 OemId[6]; > + UINT8 Revision; > + UINT32 RsdtAddress; > + UINT32 Length; > + UINT64 XsdtAddress; > + UINT8 ExtendedChecksum; > + UINT8 Reserved[3]; > +} EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_POINTER; > + > +/// > +/// RSD_PTR Revision (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< > ACPISpec (Revision 6.1) says current value is 2 > + > +/// > +/// Common table header, this prefaces all ACPI tables, including FACS, > but > +/// excluding the RSD PTR structure > +/// > +typedef struct { > + UINT32 Signature; > + UINT32 Length; > +} EFI_ACPI_6_1_COMMON_HEADER; > + > +// > +// Root System Description Table > +// No definition needed as it is a common description table header, the > same with > +// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 > table pointers. > +// > + > +/// > +/// RSDT Revision (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 > + > +// > +// Extended System Description Table > +// No definition needed as it is a common description table header, the > same with > +// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 > table pointers. > +// > + > +/// > +/// XSDT Revision (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 > + > +/// > +/// Fixed ACPI Description Table Structure (FADT) > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 FirmwareCtrl; > + UINT32 Dsdt; > + UINT8 Reserved0; > + UINT8 PreferredPmProfile; > + UINT16 SciInt; > + UINT32 SmiCmd; > + UINT8 AcpiEnable; > + UINT8 AcpiDisable; > + UINT8 S4BiosReq; > + UINT8 PstateCnt; > + UINT32 Pm1aEvtBlk; > + UINT32 Pm1bEvtBlk; > + UINT32 Pm1aCntBlk; > + UINT32 Pm1bCntBlk; > + UINT32 Pm2CntBlk; > + UINT32 PmTmrBlk; > + UINT32 Gpe0Blk; > + UINT32 Gpe1Blk; > + UINT8 Pm1EvtLen; > + UINT8 Pm1CntLen; > + UINT8 Pm2CntLen; > + UINT8 PmTmrLen; > + UINT8 Gpe0BlkLen; > + UINT8 Gpe1BlkLen; > + UINT8 Gpe1Base; > + UINT8 CstCnt; > + UINT16 PLvl2Lat; > + UINT16 PLvl3Lat; > + UINT16 FlushSize; > + UINT16 FlushStride; > + UINT8 DutyOffset; > + UINT8 DutyWidth; > + UINT8 DayAlrm; > + UINT8 MonAlrm; > + UINT8 Century; > + UINT16 IaPcBootArch; > + UINT8 Reserved1; > + UINT32 Flags; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE ResetReg; > + UINT8 ResetValue; > + UINT16 ArmBootArch; > + UINT8 MinorVersion; > + UINT64 XFirmwareCtrl; > + UINT64 XDsdt; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE SleepControlReg; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE SleepStatusReg; > + UINT64 HypervisorVendorIdentity; > +} EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE; > + > +/// > +/// FADT Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06 > +#define EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x01 > + > +// > +// Fixed ACPI Description Table Preferred Power Management Profile > +// > +#define EFI_ACPI_6_1_PM_PROFILE_UNSPECIFIED 0 > +#define EFI_ACPI_6_1_PM_PROFILE_DESKTOP 1 > +#define EFI_ACPI_6_1_PM_PROFILE_MOBILE 2 > +#define EFI_ACPI_6_1_PM_PROFILE_WORKSTATION 3 > +#define EFI_ACPI_6_1_PM_PROFILE_ENTERPRISE_SERVER 4 > +#define EFI_ACPI_6_1_PM_PROFILE_SOHO_SERVER 5 > +#define EFI_ACPI_6_1_PM_PROFILE_APPLIANCE_PC 6 > +#define EFI_ACPI_6_1_PM_PROFILE_PERFORMANCE_SERVER 7 > +#define EFI_ACPI_6_1_PM_PROFILE_TABLET 8 > + > +// > +// Fixed ACPI Description Table Boot Architecture Flags > +// All other bits are reserved and must be set to 0. > +// > +#define EFI_ACPI_6_1_LEGACY_DEVICES BIT0 > +#define EFI_ACPI_6_1_8042 BIT1 > +#define EFI_ACPI_6_1_VGA_NOT_PRESENT BIT2 > +#define EFI_ACPI_6_1_MSI_NOT_SUPPORTED BIT3 > +#define EFI_ACPI_6_1_PCIE_ASPM_CONTROLS BIT4 > +#define EFI_ACPI_6_1_CMOS_RTC_NOT_PRESENT BIT5 > + > +// > +// Fixed ACPI Description Table Arm Boot Architecture Flags > +// All other bits are reserved and must be set to 0. > +// > +#define EFI_ACPI_6_1_ARM_PSCI_COMPLIANT BIT0 > +#define EFI_ACPI_6_1_ARM_PSCI_USE_HVC BIT1 > + > +// > +// Fixed ACPI Description Table Fixed Feature Flags > +// All other bits are reserved and must be set to 0. > +// > +#define EFI_ACPI_6_1_WBINVD BIT0 > +#define EFI_ACPI_6_1_WBINVD_FLUSH BIT1 > +#define EFI_ACPI_6_1_PROC_C1 BIT2 > +#define EFI_ACPI_6_1_P_LVL2_UP BIT3 > +#define EFI_ACPI_6_1_PWR_BUTTON BIT4 > +#define EFI_ACPI_6_1_SLP_BUTTON BIT5 > +#define EFI_ACPI_6_1_FIX_RTC BIT6 > +#define EFI_ACPI_6_1_RTC_S4 BIT7 > +#define EFI_ACPI_6_1_TMR_VAL_EXT BIT8 > +#define EFI_ACPI_6_1_DCK_CAP BIT9 > +#define EFI_ACPI_6_1_RESET_REG_SUP BIT10 > +#define EFI_ACPI_6_1_SEALED_CASE BIT11 > +#define EFI_ACPI_6_1_HEADLESS BIT12 > +#define EFI_ACPI_6_1_CPU_SW_SLP BIT13 > +#define EFI_ACPI_6_1_PCI_EXP_WAK BIT14 > +#define EFI_ACPI_6_1_USE_PLATFORM_CLOCK BIT15 > +#define EFI_ACPI_6_1_S4_RTC_STS_VALID BIT16 > +#define EFI_ACPI_6_1_REMOTE_POWER_ON_CAPABLE BIT17 > +#define EFI_ACPI_6_1_FORCE_APIC_CLUSTER_MODEL BIT18 > +#define EFI_ACPI_6_1_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19 > +#define EFI_ACPI_6_1_HW_REDUCED_ACPI BIT20 > +#define EFI_ACPI_6_1_LOW_POWER_S0_IDLE_CAPABLE BIT21 > + > +/// > +/// Firmware ACPI Control Structure > +/// > +typedef struct { > + UINT32 Signature; > + UINT32 Length; > + UINT32 HardwareSignature; > + UINT32 FirmwareWakingVector; > + UINT32 GlobalLock; > + UINT32 Flags; > + UINT64 XFirmwareWakingVector; > + UINT8 Version; > + UINT8 Reserved0[3]; > + UINT32 OspmFlags; > + UINT8 Reserved1[24]; > +} EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE; > + > +/// > +/// FACS Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02 > + > +/// > +/// Firmware Control Structure Feature Flags > +/// All other bits are reserved and must be set to 0. > +/// > +#define EFI_ACPI_6_1_S4BIOS_F BIT0 > +#define EFI_ACPI_6_1_64BIT_WAKE_SUPPORTED_F BIT1 > + > +/// > +/// OSPM Enabled Firmware Control Structure Flags > +/// All other bits are reserved and must be set to 0. > +/// > +#define EFI_ACPI_6_1_OSPM_64BIT_WAKE_F BIT0 > + > +// > +// Differentiated System Description Table, > +// Secondary System Description Table > +// and Persistent System Description Table, > +// no definition needed as they are common description table header, the > same with > +// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block. > +// > +#define EFI_ACPI_6_1_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION > 0x02 > +#define EFI_ACPI_6_1_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION > 0x02 > + > +/// > +/// Multiple APIC Description Table header definition. The rest of the > table > +/// must be defined in a platform specific manner. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 LocalApicAddress; > + UINT32 Flags; > +} EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; > + > +/// > +/// MADT Revision (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x04 > + > +/// > +/// Multiple APIC Flags > +/// All other bits are reserved and must be set to 0. > +/// > +#define EFI_ACPI_6_1_PCAT_COMPAT BIT0 > + > +// > +// Multiple APIC Description Table APIC structure types > +// All other values between 0x0D and 0x7F are reserved and > +// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM. > +// > +#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC 0x00 > +#define EFI_ACPI_6_1_IO_APIC 0x01 > +#define EFI_ACPI_6_1_INTERRUPT_SOURCE_OVERRIDE 0x02 > +#define EFI_ACPI_6_1_NON_MASKABLE_INTERRUPT_SOURCE 0x03 > +#define EFI_ACPI_6_1_LOCAL_APIC_NMI 0x04 > +#define EFI_ACPI_6_1_LOCAL_APIC_ADDRESS_OVERRIDE 0x05 > +#define EFI_ACPI_6_1_IO_SAPIC 0x06 > +#define EFI_ACPI_6_1_LOCAL_SAPIC 0x07 > +#define EFI_ACPI_6_1_PLATFORM_INTERRUPT_SOURCES 0x08 > +#define EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC 0x09 > +#define EFI_ACPI_6_1_LOCAL_X2APIC_NMI 0x0A > +#define EFI_ACPI_6_1_GIC 0x0B > +#define EFI_ACPI_6_1_GICD 0x0C > +#define EFI_ACPI_6_1_GIC_MSI_FRAME 0x0D > +#define EFI_ACPI_6_1_GICR 0x0E > +#define EFI_ACPI_6_1_GIC_ITS 0x0F > + > +// > +// APIC Structure Definitions > +// > + > +/// > +/// Processor Local APIC Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 AcpiProcessorUid; > + UINT8 ApicId; > + UINT32 Flags; > +} EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_STRUCTURE; > + > +/// > +/// Local APIC Flags. All other bits are reserved and must be 0. > +/// > +#define EFI_ACPI_6_1_LOCAL_APIC_ENABLED BIT0 > + > +/// > +/// IO APIC Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 IoApicId; > + UINT8 Reserved; > + UINT32 IoApicAddress; > + UINT32 GlobalSystemInterruptBase; > +} EFI_ACPI_6_1_IO_APIC_STRUCTURE; > + > +/// > +/// Interrupt Source Override Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 Bus; > + UINT8 Source; > + UINT32 GlobalSystemInterrupt; > + UINT16 Flags; > +} EFI_ACPI_6_1_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; > + > +/// > +/// Platform Interrupt Sources Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Flags; > + UINT8 InterruptType; > + UINT8 ProcessorId; > + UINT8 ProcessorEid; > + UINT8 IoSapicVector; > + UINT32 GlobalSystemInterrupt; > + UINT32 PlatformInterruptSourceFlags; > + UINT8 CpeiProcessorOverride; > + UINT8 Reserved[31]; > +} EFI_ACPI_6_1_PLATFORM_INTERRUPT_APIC_STRUCTURE; > + > +// > +// MPS INTI flags. > +// All other bits are reserved and must be set to 0. > +// > +#define EFI_ACPI_6_1_POLARITY (3 << 0) > +#define EFI_ACPI_6_1_TRIGGER_MODE (3 << 2) > + > +/// > +/// Non-Maskable Interrupt Source Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Flags; > + UINT32 GlobalSystemInterrupt; > +} EFI_ACPI_6_1_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; > + > +/// > +/// Local APIC NMI Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 AcpiProcessorUid; > + UINT16 Flags; > + UINT8 LocalApicLint; > +} EFI_ACPI_6_1_LOCAL_APIC_NMI_STRUCTURE; > + > +/// > +/// Local APIC Address Override Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved; > + UINT64 LocalApicAddress; > +} EFI_ACPI_6_1_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; > + > +/// > +/// IO SAPIC Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 IoApicId; > + UINT8 Reserved; > + UINT32 GlobalSystemInterruptBase; > + UINT64 IoSapicAddress; > +} EFI_ACPI_6_1_IO_SAPIC_STRUCTURE; > + > +/// > +/// Local SAPIC Structure > +/// This struct followed by a null-terminated ASCII string - ACPI > Processor UID String > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 AcpiProcessorId; > + UINT8 LocalSapicId; > + UINT8 LocalSapicEid; > + UINT8 Reserved[3]; > + UINT32 Flags; > + UINT32 ACPIProcessorUIDValue; > +} EFI_ACPI_6_1_PROCESSOR_LOCAL_SAPIC_STRUCTURE; > + > +/// > +/// Platform Interrupt Sources Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Flags; > + UINT8 InterruptType; > + UINT8 ProcessorId; > + UINT8 ProcessorEid; > + UINT8 IoSapicVector; > + UINT32 GlobalSystemInterrupt; > + UINT32 PlatformInterruptSourceFlags; > +} EFI_ACPI_6_1_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; > + > +/// > +/// Platform Interrupt Source Flags. > +/// All other bits are reserved and must be set to 0. > +/// > +#define EFI_ACPI_6_1_CPEI_PROCESSOR_OVERRIDE BIT0 > + > +/// > +/// Processor Local x2APIC Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 Reserved[2]; > + UINT32 X2ApicId; > + UINT32 Flags; > + UINT32 AcpiProcessorUid; > +} EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_STRUCTURE; > + > +/// > +/// Local x2APIC NMI Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Flags; > + UINT32 AcpiProcessorUid; > + UINT8 LocalX2ApicLint; > + UINT8 Reserved[3]; > +} EFI_ACPI_6_1_LOCAL_X2APIC_NMI_STRUCTURE; > + > +/// > +/// GIC Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved; > + UINT32 CPUInterfaceNumber; > + UINT32 AcpiProcessorUid; > + UINT32 Flags; > + UINT32 ParkingProtocolVersion; > + UINT32 PerformanceInterruptGsiv; > + UINT64 ParkedAddress; > + UINT64 PhysicalBaseAddress; > + UINT64 GICV; > + UINT64 GICH; > + UINT32 VGICMaintenanceInterrupt; > + UINT64 GICRBaseAddress; > + UINT64 MPIDR; > + UINT8 ProcessorPowerEfficiencyClass; > + UINT8 Reserved2[3]; > +} EFI_ACPI_6_1_GIC_STRUCTURE; > + > +/// > +/// GIC Flags. All other bits are reserved and must be 0. > +/// > +#define EFI_ACPI_6_1_GIC_ENABLED BIT0 > +#define EFI_ACPI_6_1_PERFORMANCE_INTERRUPT_MODEL BIT1 > +#define EFI_ACPI_6_1_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2 > + > +/// > +/// GIC Distributor Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved1; > + UINT32 GicId; > + UINT64 PhysicalBaseAddress; > + UINT32 SystemVectorBase; > + UINT8 GicVersion; > + UINT8 Reserved2[3]; > +} EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE; > + > +/// > +/// GIC Version > +/// > +#define EFI_ACPI_6_1_GIC_V1 0x01 > +#define EFI_ACPI_6_1_GIC_V2 0x02 > +#define EFI_ACPI_6_1_GIC_V3 0x03 > +#define EFI_ACPI_6_1_GIC_V4 0x04 > + > +/// > +/// GIC MSI Frame Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved1; > + UINT32 GicMsiFrameId; > + UINT64 PhysicalBaseAddress; > + UINT32 Flags; > + UINT16 SPICount; > + UINT16 SPIBase; > +} EFI_ACPI_6_1_GIC_MSI_FRAME_STRUCTURE; > + > +/// > +/// GIC MSI Frame Flags. All other bits are reserved and must be 0. > +/// > +#define EFI_ACPI_6_1_SPI_COUNT_BASE_SELECT BIT0 > + > +/// > +/// GICR Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved; > + UINT64 DiscoveryRangeBaseAddress; > + UINT32 DiscoveryRangeLength; > +} EFI_ACPI_6_1_GICR_STRUCTURE; > + > +/// > +/// GIC Interrupt Translation Service Structure > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT16 Reserved; > + UINT32 GicItsId; > + UINT64 PhysicalBaseAddress; > + UINT32 Reserved2; > +} EFI_ACPI_6_1_GIC_ITS_STRUCTURE; > + > +/// > +/// Smart Battery Description Table (SBST) > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 WarningEnergyLevel; > + UINT32 LowEnergyLevel; > + UINT32 CriticalEnergyLevel; > +} EFI_ACPI_6_1_SMART_BATTERY_DESCRIPTION_TABLE; > + > +/// > +/// SBST Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 > + > +/// > +/// Embedded Controller Boot Resources Table (ECDT) > +/// The table is followed by a null terminated ASCII string that contains > +/// a fully qualified reference to the name space object. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE EcControl; > + EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE EcData; > + UINT32 Uid; > + UINT8 GpeBit; > +} EFI_ACPI_6_1_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; > + > +/// > +/// ECDT Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION > 0x01 > + > +/// > +/// System Resource Affinity Table (SRAT). The rest of the table > +/// must be defined in a platform specific manner. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 Reserved1; ///< Must be set to 1 > + UINT64 Reserved2; > +} EFI_ACPI_6_1_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER; > + > +/// > +/// SRAT Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03 > + > +// > +// SRAT structure types. > +// All other values between 0x04 an 0xFF are reserved and > +// will be ignored by OSPM. > +// > +#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00 > +#define EFI_ACPI_6_1_MEMORY_AFFINITY 0x01 > +#define EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02 > +#define EFI_ACPI_6_1_GICC_AFFINITY 0x03 > + > +/// > +/// Processor Local APIC/SAPIC Affinity Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 ProximityDomain7To0; > + UINT8 ApicId; > + UINT32 Flags; > + UINT8 LocalSapicEid; > + UINT8 ProximityDomain31To8[3]; > + UINT32 ClockDomain; > +} EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE; > + > +/// > +/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0. > +/// > +#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0) > + > +/// > +/// Memory Affinity Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT32 ProximityDomain; > + UINT16 Reserved1; > + UINT32 AddressBaseLow; > + UINT32 AddressBaseHigh; > + UINT32 LengthLow; > + UINT32 LengthHigh; > + UINT32 Reserved2; > + UINT32 Flags; > + UINT64 Reserved3; > +} EFI_ACPI_6_1_MEMORY_AFFINITY_STRUCTURE; > + > +// > +// Memory Flags. All other bits are reserved and must be 0. > +// > +#define EFI_ACPI_6_1_MEMORY_ENABLED (1 << 0) > +#define EFI_ACPI_6_1_MEMORY_HOT_PLUGGABLE (1 << 1) > +#define EFI_ACPI_6_1_MEMORY_NONVOLATILE (1 << 2) > + > +/// > +/// Processor Local x2APIC Affinity Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 Reserved1[2]; > + UINT32 ProximityDomain; > + UINT32 X2ApicId; > + UINT32 Flags; > + UINT32 ClockDomain; > + UINT8 Reserved2[4]; > +} EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE; > + > +/// > +/// GICC Affinity Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT32 ProximityDomain; > + UINT32 AcpiProcessorUid; > + UINT32 Flags; > + UINT32 ClockDomain; > +} EFI_ACPI_6_1_GICC_AFFINITY_STRUCTURE; > + > +/// > +/// GICC Flags. All other bits are reserved and must be 0. > +/// > +#define EFI_ACPI_6_1_GICC_ENABLED (1 << 0) > + > +/// > +/// System Locality Distance Information Table (SLIT). > +/// The rest of the table is a matrix. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT64 NumberOfSystemLocalities; > +} EFI_ACPI_6_1_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER; > + > +/// > +/// SLIT Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION > 0x01 > + > +/// > +/// Corrected Platform Error Polling Table (CPEP) > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT8 Reserved[8]; > +} EFI_ACPI_6_1_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER; > + > +/// > +/// CPEP Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION > 0x01 > + > +// > +// CPEP processor structure types. > +// > +#define EFI_ACPI_6_1_CPEP_PROCESSOR_APIC_SAPIC 0x00 > + > +/// > +/// Corrected Platform Error Polling Processor Structure Definition > +/// > +typedef struct { > + UINT8 Type; > + UINT8 Length; > + UINT8 ProcessorId; > + UINT8 ProcessorEid; > + UINT32 PollingInterval; > +} EFI_ACPI_6_1_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE; > + > +/// > +/// Maximum System Characteristics Table (MSCT) > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 OffsetProxDomInfo; > + UINT32 MaximumNumberOfProximityDomains; > + UINT32 MaximumNumberOfClockDomains; > + UINT64 MaximumPhysicalAddress; > +} EFI_ACPI_6_1_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER; > + > +/// > +/// MSCT Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01 > + > +/// > +/// Maximum Proximity Domain Information Structure Definition > +/// > +typedef struct { > + UINT8 Revision; > + UINT8 Length; > + UINT32 ProximityDomainRangeLow; > + UINT32 ProximityDomainRangeHigh; > + UINT32 MaximumProcessorCapacity; > + UINT64 MaximumMemoryCapacity; > +} EFI_ACPI_6_1_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE; > + > +/// > +/// ACPI RAS Feature Table definition. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT8 PlatformCommunicationChannelId > entifier[12]; > +} EFI_ACPI_6_1_RAS_FEATURE_TABLE; > + > +/// > +/// RASF Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_RAS_FEATURE_TABLE_REVISION 0x01 > + > +/// > +/// ACPI RASF Platform Communication Channel Shared Memory Region > definition. > +/// > +typedef struct { > + UINT32 Signature; > + UINT16 Command; > + UINT16 Status; > + UINT16 Version; > + UINT8 RASCapabilities[16]; > + UINT8 SetRASCapabilities[16]; > + UINT16 NumberOfRASFParameterBlocks; > + UINT32 SetRASCapabilitiesStatus; > +} EFI_ACPI_6_1_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION; > + > +/// > +/// ACPI RASF PCC command code > +/// > +#define EFI_ACPI_6_1_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01 > + > +/// > +/// ACPI RASF Platform RAS Capabilities > +/// > +#define EFI_ACPI_6_1_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED > 0x01 > +#define EFI_ACPI_6_1_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_ > PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE 0x02 > + > +/// > +/// ACPI RASF Parameter Block structure for PATROL_SCRUB > +/// > +typedef struct { > + UINT16 Type; > + UINT16 Version; > + UINT16 Length; > + UINT16 PatrolScrubCommand; > + UINT64 RequestedAddressRange[2]; > + UINT64 ActualAddressRange[2]; > + UINT16 Flags; > + UINT8 RequestedSpeed; > +} EFI_ACPI_6_1_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE; > + > +/// > +/// ACPI RASF Patrol Scrub command > +/// > +#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS > 0x01 > +#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER > 0x02 > +#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER > 0x03 > + > +/// > +/// Memory Power State Table definition. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT8 PlatformCommunicationChannelIdentifier; > + UINT8 Reserved[3]; > + // Memory Power Node Structure > + // Memory Power State Characteristics > +} EFI_ACPI_6_1_MEMORY_POWER_STATUS_TABLE; > + > +/// > +/// MPST Version (as defined in ACPI 6.1 spec.) > +/// > +#define EFI_ACPI_6_1_MEMORY_POWER_STATE_TABLE_REVISION 0x01 > + > +/// > +/// MPST Platform Communication Channel Shared Memory Region definition. > +/// > +typedef struct { > + UINT32 Signature; > + UINT16 Command; > + UINT16 Status; > + UINT32 MemoryPowerCommandRegister; > + UINT32 MemoryPowerStatusRegister; > + UINT32 PowerStateId; > + UINT32 MemoryPowerNodeId; > + UINT64 MemoryEnergyConsumed; > + UINT64 ExpectedAveragePowerComsuned; > +} EFI_ACPI_6_1_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION; > + > +/// > +/// ACPI MPST PCC command code > +/// > +#define EFI_ACPI_6_1_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03 > + > +/// > +/// ACPI MPST Memory Power command > +/// > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE > 0x01 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE > 0x02 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED > 0x03 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED > 0x04 > + > +/// > +/// MPST Memory Power Node Table > +/// > +typedef struct { > + UINT8 PowerStateValue; > + UINT8 PowerStateInformationIndex; > +} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE; > + > +typedef struct { > + UINT8 Flag; > + UINT8 Reserved; > + UINT16 MemoryPowerNodeId; > + UINT32 Length; > + UINT64 AddressBase; > + UINT64 AddressLength; > + UINT32 NumberOfPowerStates; > + UINT32 NumberOfPhysicalComponents; > + // EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE MemoryPowerState[ > NumberOfPowerStates]; > + // UINT16 > PhysicalComponentIdentifier[NumberOfPhysicalComponents]; > +} EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE; > + > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04 > + > +typedef struct { > + UINT16 MemoryPowerNodeCount; > + UINT8 Reserved[2]; > +} EFI_ACPI_6_1_MPST_MEMORY_POWER_NODE_TABLE; > + > +/// > +/// MPST Memory Power State Characteristics Table > +/// > +typedef struct { > + UINT8 PowerStateStructureID; > + UINT8 Flag; > + UINT16 Reserved; > + UINT32 AveragePowerConsumedInMPS0; > + UINT32 RelativePowerSavingToMPS0; > + UINT64 ExitLatencyToMPS0; > +} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE; > + > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_ > STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_ > STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02 > +#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_ > STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04 > + > +typedef struct { > + UINT16 MemoryPowerStateCharacteristicsCount; > + UINT8 Reserved[2]; > +} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE; > + > +/// > +/// Memory Topology Table definition. > +/// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 Reserved; > +} EFI_ACPI_6_1_MEMORY_TOPOLOGY_TABLE; > *** 1986 LINES SKIPPED *** > > --00000000000029a75f06551bff9c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Tuesday, June 23, 2026, Warner Losh <imp@freebsd.org> wrote:
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=3De985c628a0e4082d9b953897d6f56c81d177cea7

commit e985c628a0e4082d9b953897d6f56c81d177cea7
Author:=C2=A0 =C2=A0 =C2=A0Warner Losh <imp@FreeBSD.org>
AuthorDate: 2026-06-22 22:06:24 +0000
Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh <imp@FreeBSD.org>
CommitDate: 2026-06-22 23:06:14 +0000

=C2=A0 =C2=A0 edk2: Bring in some more files from edk2-stable202502

=C2=A0 =C2=A0 These are needed for memdisk support, so import them separate= ly.
=C2=A0 =C2=A0 These are from 202502, like all the other files here.

=C2=A0 =C2=A0 Sponsored by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Netflix=
---
=C2=A0sys/contrib/edk2/Include/IndustryStandard/Acpi61.h | 2442 ++++++= ++++++++++++++
=C2=A0.../Include/Protocol/AcpiSystemDescriptionTable.h=C2=A0 |=C2=A0 = 263 +++
=C2=A0sys/contrib/edk2/Include/Protocol/AcpiTable.h=C2=A0 =C2=A0 =C2= =A0 |=C2=A0 121 +
=C2=A0sys/contrib/edk2/Include/Protocol/RamDisk.h=C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 100 +
=C2=A04 files changed, 2926 insertions(+)

diff --git a/sys/contrib/edk2/Include/IndustryStandard/Acpi61.h b/sys/= contrib/edk2/Include/IndustryStandard/Acpi61.h
new file mode 100644
index 000000000000..ff52bc6a7cba
--- /dev/null
+++ b/sys/contrib/edk2/Include/IndustryStandard/Acpi61.h
@@ -0,0 +1,2442 @@
+/** @file
+=C2=A0 ACPI 6.1 definitions from the ACPI Specification Revision 6.1 Janua= ry, 2016.
+
+=C2=A0 Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.&= lt;BR>

These BRs looks weird.
= =C2=A0
+ (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> +=C2=A0 Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
+=C2=A0 SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef _ACPI_6_1_H_
+#define _ACPI_6_1_H_
+
+#include <IndustryStandard/Acpi60.h>
+
+///
+/// _PSD Revision for ACPI 6.1
+///
+#define EFI_ACPI_6_1_AML_PSD_REVISION=C2=A0 0
+
+///
+/// _CPC Revision for ACPI 6.1
+///
+#define EFI_ACPI_6_1_AML_CPC_REVISION=C2=A0 2
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 6.1 Generic Address Space definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0AddressSpaceId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0RegisterBitWidth;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0RegisterBitOffset;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0AccessSize;
+=C2=A0 UINT64=C2=A0 =C2=A0 Address;
+} EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+#define EFI_ACPI_6_1_SYSTEM_MEMORY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00
+#define EFI_ACPI_6_1_SYSTEM_IO=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01
+#define EFI_ACPI_6_1_PCI_CONFIGURATION_SPACE=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A02
+#define EFI_ACPI_6_1_EMBEDDED_CONTROLLER=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A03
+#define EFI_ACPI_6_1_SMBUS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04
+#define EFI_ACPI_6_1_PLATFORM_COMMUNICATION_CHANNEL=C2=A0 0x0A
+#define EFI_ACPI_6_1_FUNCTIONAL_FIXED_HARDWARE=C2=A0 =C2=A0 =C2=A0 = =C2=A00x7F
+
+//
+// Generic Address Space Access Sizes
+//
+#define EFI_ACPI_6_1_UNDEFINED=C2=A0 0
+#define EFI_ACPI_6_1_BYTE=C2=A0 =C2=A0 =C2=A0 =C2=A01
+#define EFI_ACPI_6_1_WORD=C2=A0 =C2=A0 =C2=A0 =C2=A02
+#define EFI_ACPI_6_1_DWORD=C2=A0 =C2=A0 =C2=A0 3
+#define EFI_ACPI_6_1_QWORD=C2=A0 =C2=A0 =C2=A0 4
+
+//
+// ACPI 6.1 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+=C2=A0 UINT64=C2=A0 =C2=A0 Signature;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Checksum;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0OemId[6];
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Revision;
+=C2=A0 UINT32=C2=A0 =C2=A0 RsdtAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 Length;
+=C2=A0 UINT64=C2=A0 =C2=A0 XsdtAddress;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ExtendedChecksum;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[3];
+} EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION=C2=A0 0= x02 ///< ACPISpec (Revision 6.1) says current value is 2
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, bu= t
+/// excluding the RSD PTR structure
+///
+typedef struct {
+=C2=A0 UINT32=C2=A0 =C2=A0 Signature;
+=C2=A0 UINT32=C2=A0 =C2=A0 Length;
+} EFI_ACPI_6_1_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the sa= me with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 ta= ble pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION=C2=A0 0x0= 1
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the sa= me with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 ta= ble pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION=C2=A0= 0x01
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Firmware= Ctrl;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Dsdt; +=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reser= ved0;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Prefe= rredPmProfile;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 SciInt;<= br> +=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 SmiCmd;<= br> +=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0AcpiE= nable;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0AcpiD= isable;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0S4Bio= sReq;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Pstat= eCnt;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Pm1aEvtB= lk;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Pm1bEvtB= lk;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Pm1aCntB= lk;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Pm1bCntB= lk;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Pm2CntBl= k;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PmTmrBlk= ;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Gpe0Blk;=
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Gpe1Blk;=
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Pm1Ev= tLen;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Pm1Cn= tLen;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Pm2Cn= tLen;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PmTmr= Len;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Gpe0B= lkLen;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Gpe1B= lkLen;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Gpe1B= ase;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CstCn= t;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PLvl2Lat= ;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PLvl3Lat= ;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 FlushSiz= e;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 FlushStr= ide;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DutyO= ffset;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DutyW= idth;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DayAl= rm;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MonAl= rm;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Centu= ry;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 IaPcBoot= Arch;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reser= ved1;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Flags; +=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 ResetReg;<= br> +=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reset= Value;
+=C2=A0 UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ArmBootA= rch;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Minor= Version;
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XFirmwar= eCtrl;
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XDsdt; +=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPm1aEvtBl= k;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPm1bEvtBl= k;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPm1aCntBl= k;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPm1bCntBl= k;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPm2CntBlk= ;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XPmTmrBlk;=
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XGpe0Blk;<= br> +=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 XGpe1Blk;<= br> +=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 SleepContr= olReg;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 SleepStatu= sReg;
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Hypervis= orVendorIdentity;
+} EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION=C2=A0 =C2= =A0 =C2=A0 =C2=A0 0x06
+#define EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION= =C2=A0 0x01
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+#define EFI_ACPI_6_1_PM_PROFILE_UNSPECIFIED=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A00
+#define EFI_ACPI_6_1_PM_PROFILE_DESKTOP=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A01
+#define EFI_ACPI_6_1_PM_PROFILE_MOBILE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 2
+#define EFI_ACPI_6_1_PM_PROFILE_WORKSTATION=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A03
+#define EFI_ACPI_6_1_PM_PROFILE_ENTERPRISE_SERVER=C2=A0 =C2=A04
+#define EFI_ACPI_6_1_PM_PROFILE_SOHO_SERVER=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A05
+#define EFI_ACPI_6_1_PM_PROFILE_APPLIANCE_PC=C2=A0 =C2=A0 =C2=A0 =C2= =A0 6
+#define EFI_ACPI_6_1_PM_PROFILE_PERFORMANCE_SERVER=C2=A0 7
+#define EFI_ACPI_6_1_PM_PROFILE_TABLET=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 8
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+#define EFI_ACPI_6_1_LEGACY_DEVICES=C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT0
+#define EFI_ACPI_6_1_8042=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 BIT1
+#define EFI_ACPI_6_1_VGA_NOT_PRESENT=C2=A0 =C2=A0 =C2=A0 =C2=A0BIT2
+#define EFI_ACPI_6_1_MSI_NOT_SUPPORTED=C2=A0 =C2=A0 =C2=A0BIT3
+#define EFI_ACPI_6_1_PCIE_ASPM_CONTROLS=C2=A0 =C2=A0 BIT4
+#define EFI_ACPI_6_1_CMOS_RTC_NOT_PRESENT=C2=A0 BIT5
+
+//
+// Fixed ACPI Description Table Arm Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+#define EFI_ACPI_6_1_ARM_PSCI_COMPLIANT=C2=A0 BIT0
+#define EFI_ACPI_6_1_ARM_PSCI_USE_HVC=C2=A0 =C2=A0 BIT1
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+#define EFI_ACPI_6_1_WBINVD=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT0
+#define EFI_ACPI_6_1_WBINVD_FLUSH=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT1
+#define EFI_ACPI_6_1_PROC_C1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT2
+#define EFI_ACPI_6_1_P_LVL2_UP=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT3
+#define EFI_ACPI_6_1_PWR_BUTTON=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT4
+#define EFI_ACPI_6_1_SLP_BUTTON=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT5
+#define EFI_ACPI_6_1_FIX_RTC=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT6
+#define EFI_ACPI_6_1_RTC_S4=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT7
+#define EFI_ACPI_6_1_TMR_VAL_EXT=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT8
+#define EFI_ACPI_6_1_DCK_CAP=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT9
+#define EFI_ACPI_6_1_RESET_REG_SUP=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT10
+#define EFI_ACPI_6_1_SEALED_CASE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT11
+#define EFI_ACPI_6_1_HEADLESS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT12
+#define EFI_ACPI_6_1_CPU_SW_SLP=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT13
+#define EFI_ACPI_6_1_PCI_EXP_WAK=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT14
+#define EFI_ACPI_6_1_USE_PLATFORM_CLOCK=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT15
+#define EFI_ACPI_6_1_S4_RTC_STS_VALID=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT16
+#define EFI_ACPI_6_1_REMOTE_POWER_ON_CAPABLE=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT17
+#define EFI_ACPI_6_1_FORCE_APIC_CLUSTER_MODEL=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 BIT18
+#define EFI_ACPI_6_1_FORCE_APIC_PHYSICAL_DESTINATION_MODE=C2=A0 BIT19=
+#define EFI_ACPI_6_1_HW_REDUCED_ACPI=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT20
+#define EFI_ACPI_6_1_LOW_POWER_S0_IDLE_CAPABLE=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0BIT21
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+=C2=A0 UINT32=C2=A0 =C2=A0 Signature;
+=C2=A0 UINT32=C2=A0 =C2=A0 Length;
+=C2=A0 UINT32=C2=A0 =C2=A0 HardwareSignature;
+=C2=A0 UINT32=C2=A0 =C2=A0 FirmwareWakingVector;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalLock;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT64=C2=A0 =C2=A0 XFirmwareWakingVector;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Version;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved0[3];
+=C2=A0 UINT32=C2=A0 =C2=A0 OspmFlags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved1[24];
+} EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION=C2=A0 0x= 02
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+#define EFI_ACPI_6_1_S4BIOS_F=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 BIT0
+#define EFI_ACPI_6_1_64BIT_WAKE_SUPPORTED_F=C2=A0 BIT1
+
+///
+/// OSPM Enabled Firmware Control Structure Flags
+/// All other bits are reserved and must be set to 0.
+///
+#define EFI_ACPI_6_1_OSPM_64BIT_WAKE_F=C2=A0 BIT0
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the s= ame with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+#define EFI_ACPI_6_1_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REV= ISION=C2=A0 0x02
+#define EFI_ACPI_6_1_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION=C2= =A0 =C2=A0 =C2=A0 =C2=A00x02
+
+///
+/// Multiple APIC Description Table header definition.=C2=A0 The rest of t= he table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LocalApicAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags;
+} EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION=C2=A0 0= x04
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+#define EFI_ACPI_6_1_PCAT_COMPAT=C2=A0 BIT0
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x0D and 0x7F are reserved and
+// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
+//
+#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A00x00
+#define EFI_ACPI_6_1_IO_APIC=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x01
+#define EFI_ACPI_6_1_INTERRUPT_SOURCE_OVERRIDE=C2=A0 =C2=A0 =C2=A0 0x= 02
+#define EFI_ACPI_6_1_NON_MASKABLE_INTERRUPT_SOURCE=C2=A0 0x03
+#define EFI_ACPI_6_1_LOCAL_APIC_NMI=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A00x04
+#define EFI_ACPI_6_1_LOCAL_APIC_ADDRESS_OVERRIDE=C2=A0 =C2=A0 0x05 +#define EFI_ACPI_6_1_IO_SAPIC=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x06
+#define EFI_ACPI_6_1_LOCAL_SAPIC=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x07
+#define EFI_ACPI_6_1_PLATFORM_INTERRUPT_SOURCES=C2=A0 =C2=A0 =C2=A00x= 08
+#define EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A00x09
+#define EFI_ACPI_6_1_LOCAL_X2APIC_NMI=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A00x0A
+#define EFI_ACPI_6_1_GIC=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x0B
+#define EFI_ACPI_6_1_GICD=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0C
+#define EFI_ACPI_6_1_GIC_MSI_FRAME=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 0x0D
+#define EFI_ACPI_6_1_GICR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0E
+#define EFI_ACPI_6_1_GIC_ITS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x0F
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0AcpiProcessorUid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ApicId;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+} EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags.=C2=A0 All other bits are reserved and must be 0.
+///
+#define EFI_ACPI_6_1_LOCAL_APIC_ENABLED=C2=A0 BIT0
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0IoApicId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved;
+=C2=A0 UINT32=C2=A0 =C2=A0 IoApicAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterruptBase;
+} EFI_ACPI_6_1_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Bus;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Source;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterrupt;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+} EFI_ACPI_6_1_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0InterruptType;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorEid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0IoSapicVector;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterrupt;
+=C2=A0 UINT32=C2=A0 =C2=A0 PlatformInterruptSourceFlags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0CpeiProcessorOverride;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[31];
+} EFI_ACPI_6_1_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+#define EFI_ACPI_6_1_POLARITY=C2=A0 =C2=A0 =C2=A0 (3 << 0)
+#define EFI_ACPI_6_1_TRIGGER_MODE=C2=A0 (3 << 2)
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterrupt;
+} EFI_ACPI_6_1_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0AcpiProcessorUid;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0LocalApicLint;
+} EFI_ACPI_6_1_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved;
+=C2=A0 UINT64=C2=A0 =C2=A0 LocalApicAddress;
+} EFI_ACPI_6_1_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0IoApicId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterruptBase;
+=C2=A0 UINT64=C2=A0 =C2=A0 IoSapicAddress;
+} EFI_ACPI_6_1_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processo= r UID String
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0AcpiProcessorId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0LocalSapicId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0LocalSapicEid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[3];
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 ACPIProcessorUIDValue;
+} EFI_ACPI_6_1_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0InterruptType;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorEid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0IoSapicVector;
+=C2=A0 UINT32=C2=A0 =C2=A0 GlobalSystemInterrupt;
+=C2=A0 UINT32=C2=A0 =C2=A0 PlatformInterruptSourceFlags;
+} EFI_ACPI_6_1_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+#define EFI_ACPI_6_1_CPEI_PROCESSOR_OVERRIDE=C2=A0 BIT0
+
+///
+/// Processor Local x2APIC Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[2];
+=C2=A0 UINT32=C2=A0 =C2=A0 X2ApicId;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 AcpiProcessorUid;
+} EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_STRUCTURE;
+
+///
+/// Local x2APIC NMI Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 AcpiProcessorUid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0LocalX2ApicLint;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[3];
+} EFI_ACPI_6_1_LOCAL_X2APIC_NMI_STRUCTURE;
+
+///
+/// GIC Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved;
+=C2=A0 UINT32=C2=A0 =C2=A0 CPUInterfaceNumber;
+=C2=A0 UINT32=C2=A0 =C2=A0 AcpiProcessorUid;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 ParkingProtocolVersion;
+=C2=A0 UINT32=C2=A0 =C2=A0 PerformanceInterruptGsiv;
+=C2=A0 UINT64=C2=A0 =C2=A0 ParkedAddress;
+=C2=A0 UINT64=C2=A0 =C2=A0 PhysicalBaseAddress;
+=C2=A0 UINT64=C2=A0 =C2=A0 GICV;
+=C2=A0 UINT64=C2=A0 =C2=A0 GICH;
+=C2=A0 UINT32=C2=A0 =C2=A0 VGICMaintenanceInterrupt;
+=C2=A0 UINT64=C2=A0 =C2=A0 GICRBaseAddress;
+=C2=A0 UINT64=C2=A0 =C2=A0 MPIDR;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorPowerEfficiencyClass;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved2[3];
+} EFI_ACPI_6_1_GIC_STRUCTURE;
+
+///
+/// GIC Flags.=C2=A0 All other bits are reserved and must be 0.
+///
+#define EFI_ACPI_6_1_GIC_ENABLED=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 BIT0
+#define EFI_ACPI_6_1_PERFORMANCE_INTERRUPT_MODEL=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 BIT1
+#define EFI_ACPI_6_1_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS=C2=A0 BIT2=
+
+///
+/// GIC Distributor Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved1;
+=C2=A0 UINT32=C2=A0 =C2=A0 GicId;
+=C2=A0 UINT64=C2=A0 =C2=A0 PhysicalBaseAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 SystemVectorBase;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0GicVersion;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved2[3];
+} EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE;
+
+///
+/// GIC Version
+///
+#define EFI_ACPI_6_1_GIC_V1=C2=A0 0x01
+#define EFI_ACPI_6_1_GIC_V2=C2=A0 0x02
+#define EFI_ACPI_6_1_GIC_V3=C2=A0 0x03
+#define EFI_ACPI_6_1_GIC_V4=C2=A0 0x04
+
+///
+/// GIC MSI Frame Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved1;
+=C2=A0 UINT32=C2=A0 =C2=A0 GicMsiFrameId;
+=C2=A0 UINT64=C2=A0 =C2=A0 PhysicalBaseAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT16=C2=A0 =C2=A0 SPICount;
+=C2=A0 UINT16=C2=A0 =C2=A0 SPIBase;
+} EFI_ACPI_6_1_GIC_MSI_FRAME_STRUCTURE;
+
+///
+/// GIC MSI Frame Flags.=C2=A0 All other bits are reserved and must be 0.<= br> +///
+#define EFI_ACPI_6_1_SPI_COUNT_BASE_SELECT=C2=A0 BIT0
+
+///
+/// GICR Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved;
+=C2=A0 UINT64=C2=A0 =C2=A0 DiscoveryRangeBaseAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 DiscoveryRangeLength;
+} EFI_ACPI_6_1_GICR_STRUCTURE;
+
+///
+/// GIC Interrupt Translation Service Structure
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved;
+=C2=A0 UINT32=C2=A0 =C2=A0 GicItsId;
+=C2=A0 UINT64=C2=A0 =C2=A0 PhysicalBaseAddress;
+=C2=A0 UINT32=C2=A0 =C2=A0 Reserved2;
+} EFI_ACPI_6_1_GIC_ITS_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0WarningEnergyLevel;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LowEnergyLevel;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CriticalEnergyLevel;
+} EFI_ACPI_6_1_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_SMART_BATTERY_DESCRIPTION_TABLE_REVISION=C2=A0 0= x01
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains<= br> +/// a fully qualified reference to the name space object.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0Header;
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 EcControl;=
+=C2=A0 EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE=C2=A0 =C2=A0 EcData; +=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Uid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GpeBi= t;
+} EFI_ACPI_6_1_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_RE= VISION=C2=A0 0x01
+
+///
+/// System Resource Affinity Table (SRAT).=C2=A0 The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reserved1; ///< Must be set to 1
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reserved2;
+} EFI_ACPI_6_1_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION=C2=A0 0x= 03
+
+//
+// SRAT structure types.
+// All other values between 0x04 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY=C2=A0 0x00 +#define EFI_ACPI_6_1_MEMORY_AFFINITY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x01
+#define EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_AFFINITY=C2=A0 =C2=A0 =C2= =A0 0x02
+#define EFI_ACPI_6_1_GICC_AFFINITY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x03
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProximityDomain7To0;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ApicId;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0LocalSapicEid;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProximityDomain31To8[3];
+=C2=A0 UINT32=C2=A0 =C2=A0 ClockDomain;
+} EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags.=C2=A0 All other bits are reserved and must be = 0.
+///
+#define EFI_ACPI_6_1_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED=C2=A0 (1 <= < 0)
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT32=C2=A0 =C2=A0 ProximityDomain;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved1;
+=C2=A0 UINT32=C2=A0 =C2=A0 AddressBaseLow;
+=C2=A0 UINT32=C2=A0 =C2=A0 AddressBaseHigh;
+=C2=A0 UINT32=C2=A0 =C2=A0 LengthLow;
+=C2=A0 UINT32=C2=A0 =C2=A0 LengthHigh;
+=C2=A0 UINT32=C2=A0 =C2=A0 Reserved2;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT64=C2=A0 =C2=A0 Reserved3;
+} EFI_ACPI_6_1_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags.=C2=A0 All other bits are reserved and must be 0.
+//
+#define EFI_ACPI_6_1_MEMORY_ENABLED=C2=A0 =C2=A0 =C2=A0 =C2=A0 (1 <<= 0)
+#define EFI_ACPI_6_1_MEMORY_HOT_PLUGGABLE=C2=A0 (1 << 1)
+#define EFI_ACPI_6_1_MEMORY_NONVOLATILE=C2=A0 =C2=A0 (1 << 2) +
+///
+/// Processor Local x2APIC Affinity Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved1[2];
+=C2=A0 UINT32=C2=A0 =C2=A0 ProximityDomain;
+=C2=A0 UINT32=C2=A0 =C2=A0 X2ApicId;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 ClockDomain;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved2[4];
+} EFI_ACPI_6_1_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Affinity Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT32=C2=A0 =C2=A0 ProximityDomain;
+=C2=A0 UINT32=C2=A0 =C2=A0 AcpiProcessorUid;
+=C2=A0 UINT32=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT32=C2=A0 =C2=A0 ClockDomain;
+} EFI_ACPI_6_1_GICC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Flags.=C2=A0 All other bits are reserved and must be 0.
+///
+#define EFI_ACPI_6_1_GICC_ENABLED=C2=A0 (1 << 0)
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NumberOfSystemLocalities;
+} EFI_ACPI_6_1_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER= ;
+
+///
+/// SLIT Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_= REVISION=C2=A0 0x01
+
+///
+/// Corrected Platform Error Polling Table (CPEP)
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 Reserved[8];
+} EFI_ACPI_6_1_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER; +
+///
+/// CPEP Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVI= SION=C2=A0 0x01
+
+//
+// CPEP processor structure types.
+//
+#define EFI_ACPI_6_1_CPEP_PROCESSOR_APIC_SAPIC=C2=A0 0x00
+
+///
+/// Corrected Platform Error Polling Processor Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Type;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorId;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0ProcessorEid;
+=C2=A0 UINT32=C2=A0 =C2=A0 PollingInterval;
+} EFI_ACPI_6_1_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;
+
+///
+/// Maximum System Characteristics Table (MSCT)
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0OffsetProxDomInfo;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MaximumNumberOfProximityDomains;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MaximumNumberOfClockDomains;
+=C2=A0 UINT64=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MaximumPhysicalAddress;
+} EFI_ACPI_6_1_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;
+
+///
+/// MSCT Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION=C2= =A0 0x01
+
+///
+/// Maximum Proximity Domain Information Structure Definition
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Revision;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Length;
+=C2=A0 UINT32=C2=A0 =C2=A0 ProximityDomainRangeLow;
+=C2=A0 UINT32=C2=A0 =C2=A0 ProximityDomainRangeHigh;
+=C2=A0 UINT32=C2=A0 =C2=A0 MaximumProcessorCapacity;
+=C2=A0 UINT64=C2=A0 =C2=A0 MaximumMemoryCapacity;
+} EFI_ACPI_6_1_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE; +
+///
+/// ACPI RAS Feature Table definition.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 PlatformCommunicationChannelIdentifier[12= ];
+} EFI_ACPI_6_1_RAS_FEATURE_TABLE;
+
+///
+/// RASF Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_RAS_FEATURE_TABLE_REVISION=C2=A0 0x01
+
+///
+/// ACPI RASF Platform Communication Channel Shared Memory Region definiti= on.
+///
+typedef struct {
+=C2=A0 UINT32=C2=A0 =C2=A0 Signature;
+=C2=A0 UINT16=C2=A0 =C2=A0 Command;
+=C2=A0 UINT16=C2=A0 =C2=A0 Status;
+=C2=A0 UINT16=C2=A0 =C2=A0 Version;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0RASCapabilities[16];
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0SetRASCapabilities[16];
+=C2=A0 UINT16=C2=A0 =C2=A0 NumberOfRASFParameterBlocks;
+=C2=A0 UINT32=C2=A0 =C2=A0 SetRASCapabilitiesStatus;
+} EFI_ACPI_6_1_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY= _REGION;
+
+///
+/// ACPI RASF PCC command code
+///
+#define EFI_ACPI_6_1_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND=C2=A0= 0x01
+
+///
+/// ACPI RASF Platform RAS Capabilities
+///
+#define EFI_ACPI_6_1_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x01
+#define EFI_ACPI_6_1_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE=C2=A0 0x02
+
+///
+/// ACPI RASF Parameter Block structure for PATROL_SCRUB
+///
+typedef struct {
+=C2=A0 UINT16=C2=A0 =C2=A0 Type;
+=C2=A0 UINT16=C2=A0 =C2=A0 Version;
+=C2=A0 UINT16=C2=A0 =C2=A0 Length;
+=C2=A0 UINT16=C2=A0 =C2=A0 PatrolScrubCommand;
+=C2=A0 UINT64=C2=A0 =C2=A0 RequestedAddressRange[2];
+=C2=A0 UINT64=C2=A0 =C2=A0 ActualAddressRange[2];
+=C2=A0 UINT16=C2=A0 =C2=A0 Flags;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0RequestedSpeed;
+} EFI_ACPI_6_1_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE;
+
+///
+/// ACPI RASF Patrol Scrub command
+///
+#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAME= TERS=C2=A0 0x01
+#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRU= BBER=C2=A0 0x02
+#define EFI_ACPI_6_1_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUB= BER=C2=A0 =C2=A00x03
+
+///
+/// Memory Power State Table definition.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 PlatformCommunicationChannelIdentifier; +=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 Reserved[3];
+=C2=A0 // Memory Power Node Structure
+=C2=A0 // Memory Power State Characteristics
+} EFI_ACPI_6_1_MEMORY_POWER_STATUS_TABLE;
+
+///
+/// MPST Version (as defined in ACPI 6.1 spec.)
+///
+#define EFI_ACPI_6_1_MEMORY_POWER_STATE_TABLE_REVISION=C2=A0 0x01
+
+///
+/// MPST Platform Communication Channel Shared Memory Region definition. +///
+typedef struct {
+=C2=A0 UINT32=C2=A0 =C2=A0 Signature;
+=C2=A0 UINT16=C2=A0 =C2=A0 Command;
+=C2=A0 UINT16=C2=A0 =C2=A0 Status;
+=C2=A0 UINT32=C2=A0 =C2=A0 MemoryPowerCommandRegister;
+=C2=A0 UINT32=C2=A0 =C2=A0 MemoryPowerStatusRegister;
+=C2=A0 UINT32=C2=A0 =C2=A0 PowerStateId;
+=C2=A0 UINT32=C2=A0 =C2=A0 MemoryPowerNodeId;
+=C2=A0 UINT64=C2=A0 =C2=A0 MemoryEnergyConsumed;
+=C2=A0 UINT64=C2=A0 =C2=A0 ExpectedAveragePowerComsuned;
+} EFI_ACPI_6_1_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY= _REGION;
+
+///
+/// ACPI MPST PCC command code
+///
+#define EFI_ACPI_6_1_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND=C2=A0= 0x03
+
+///
+/// ACPI MPST Memory Power command
+///
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_= STATE=C2=A0 =C2=A0 =C2=A0 0x01
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_= STATE=C2=A0 =C2=A0 =C2=A0 0x02
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER= _CONSUMED=C2=A0 0x03
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY= _CONSUMED=C2=A0 0x04
+
+///
+/// MPST Memory Power Node Table
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 PowerStateValue;
+=C2=A0 UINT8=C2=A0 =C2=A0 PowerStateInformationIndex;
+} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE;
+
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Flag;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved;
+=C2=A0 UINT16=C2=A0 =C2=A0 MemoryPowerNodeId;
+=C2=A0 UINT32=C2=A0 =C2=A0 Length;
+=C2=A0 UINT64=C2=A0 =C2=A0 AddressBase;
+=C2=A0 UINT64=C2=A0 =C2=A0 AddressLength;
+=C2=A0 UINT32=C2=A0 =C2=A0 NumberOfPowerStates;
+=C2=A0 UINT32=C2=A0 =C2=A0 NumberOfPhysicalComponents;
+=C2=A0 // EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 MemoryPowerState[NumberOfPowerStates];
+=C2=A0 // UINT16=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 PhysicalComponentIdentifier[NumberOfPhysicalC= omponents];
+} EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE;
+
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A00x01
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANA= GED=C2=A0 0x02
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGA= BLE=C2=A0 0x04
+
+typedef struct {
+=C2=A0 UINT16=C2=A0 =C2=A0 MemoryPowerNodeCount;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[2];
+} EFI_ACPI_6_1_MPST_MEMORY_POWER_NODE_TABLE;
+
+///
+/// MPST Memory Power State Characteristics Table
+///
+typedef struct {
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0PowerStateStructureID;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Flag;
+=C2=A0 UINT16=C2=A0 =C2=A0 Reserved;
+=C2=A0 UINT32=C2=A0 =C2=A0 AveragePowerConsumedInMPS0;
+=C2=A0 UINT32=C2=A0 =C2=A0 RelativePowerSavingToMPS0;
+=C2=A0 UINT64=C2=A0 =C2=A0 ExitLatencyToMPS0;
+} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE= ;
+
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STR= UCTURE_FLAG_MEMORY_CONTENT_PRESERVED=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A00x01
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STR= UCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY=C2=A0 0x02
+#define EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STR= UCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT=C2=A0 =C2=A00x04
+
+typedef struct {
+=C2=A0 UINT16=C2=A0 =C2=A0 MemoryPowerStateCharacteristicsCount;
+=C2=A0 UINT8=C2=A0 =C2=A0 =C2=A0Reserved[2];
+} EFI_ACPI_6_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE; +
+///
+/// Memory Topology Table definition.
+///
+typedef struct {
+=C2=A0 EFI_ACPI_DESCRIPTION_HEADER=C2=A0 =C2=A0 Header;
+=C2=A0 UINT32=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Reserved;
+} EFI_ACPI_6_1_MEMORY_TOPOLOGY_TABLE;
*** 1986 LINES SKIPPED ***

--00000000000029a75f06551bff9c--