summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Jones <christopher.jones@arm.com>2021-07-21 11:28:32 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-08-11 01:53:28 +0000
commit0938f9235cd105f4aae28c501b708d475638aa2a (patch)
tree7497ddd737efc2cd0ed220b849b32086e4ba02a2
parent7b17bcd9a0d113eebca9314b286595f042871e31 (diff)
downloadedk2-0938f9235cd105f4aae28c501b708d475638aa2a.zip
edk2-0938f9235cd105f4aae28c501b708d475638aa2a.tar.gz
edk2-0938f9235cd105f4aae28c501b708d475638aa2a.tar.bz2
MdePkg: Add Multiprocessor Wakeup structure
Bugzilla: 3516 (https://bugzilla.tianocore.org/show_bug.cgi?id=3516) Make changes to ACPI 6.4 header according to the latest specification: - ACPI 6.4 January 2021, Table 5.21, Section 5.2.12.19 - Mantis ID 2087 (https://mantis.uefi.org/mantis/view.php?id=2087) Signed-off-by: Chris Jones <christopher.jones@arm.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
-rw-r--r--MdePkg/Include/IndustryStandard/Acpi64.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h b/MdePkg/Include/IndustryStandard/Acpi64.h
index 995426a..5864870 100644
--- a/MdePkg/Include/IndustryStandard/Acpi64.h
+++ b/MdePkg/Include/IndustryStandard/Acpi64.h
@@ -302,7 +302,7 @@ typedef struct {
//
// Multiple APIC Description Table APIC structure types
-// All other values between 0x0D and 0x7F are reserved and
+// All other values between 0x10 and 0x7F are reserved and
// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
//
#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC 0x00
@@ -321,6 +321,7 @@ typedef struct {
#define EFI_ACPI_6_4_GIC_MSI_FRAME 0x0D
#define EFI_ACPI_6_4_GICR 0x0E
#define EFI_ACPI_6_4_GIC_ITS 0x0F
+#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP 0x10
//
// APIC Structure Definitions
@@ -590,6 +591,32 @@ typedef struct {
} EFI_ACPI_6_4_GIC_ITS_STRUCTURE;
///
+/// Multiprocessor Wakeup Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 MailBoxVersion;
+ UINT32 Reserved;
+ UINT64 MailBoxAddress;
+} EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_STRUCTURE;
+
+///
+/// Multiprocessor Wakeup Mailbox Structure
+///
+typedef struct {
+ UINT16 Command;
+ UINT16 Reserved;
+ UINT32 AcpiId;
+ UINT64 WakeupVector;
+ UINT8 ReservedForOs[2032];
+ UINT8 ReservedForFirmware[2048];
+} EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_STRUCTURE;
+
+#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_NOOP 0x0000
+#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_WAKEUP 0x0001
+
+///
/// Smart Battery Description Table (SBST)
///
typedef struct {