ACPICA: Add support for ASPT table in disassembler
authorJeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Wed, 5 Apr 2023 13:36:51 +0000 (15:36 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 6 Apr 2023 18:29:10 +0000 (20:29 +0200)
ACPICA commit 6771f8b758299bd383bab145d5fd36ec229b2d70

ASPT is the AMD Secure Processor table, found in Hyper-V VMs when SNP
isolation is exposed to the VM and in some high-end AMD servers. This
commit adds support for rev 1 of the ASPT spec in the disassembler.

Link: https://github.com/acpica/acpica/commit/6771f8b7
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
include/acpi/actbl1.h

index 81b9e79..b5e011d 100644 (file)
@@ -26,6 +26,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 */
@@ -109,6 +110,51 @@ struct acpi_whea_header {
        u64 mask;               /* Bitmask required for this register instruction */
 };
 
+/* https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/acpitabl/ns-acpitabl-aspt_table */
+#define ASPT_REVISION_ID 0x01
+struct acpi_table_aspt {
+       struct acpi_table_header header;
+       u32 num_entries;
+};
+
+struct acpi_aspt_header {
+       u16 type;
+       u16 length;
+};
+
+enum acpi_aspt_type {
+       ACPI_ASPT_TYPE_GLOBAL_REGS = 0,
+       ACPI_ASPT_TYPE_SEV_MBOX_REGS = 1,
+       ACPI_ASPT_TYPE_ACPI_MBOX_REGS = 2,
+};
+
+/* 0: ASPT Global Registers */
+struct acpi_aspt_global_regs {
+       struct acpi_aspt_header header;
+       u32 reserved;
+       u64 feature_reg_addr;
+       u64 irq_en_reg_addr;
+       u64 irq_st_reg_addr;
+};
+
+/* 1: ASPT SEV Mailbox Registers */
+struct acpi_aspt_sev_mbox_regs {
+       struct acpi_aspt_header header;
+       u8 mbox_irq_id;
+       u8 reserved[3];
+       u64 cmd_resp_reg_addr;
+       u64 cmd_buf_lo_reg_addr;
+       u64 cmd_buf_hi_reg_addr;
+};
+
+/* 2: ASPT ACPI Mailbox Registers */
+struct acpi_aspt_acpi_mbox_regs {
+       struct acpi_aspt_header header;
+       u32 reserved1;
+       u64 cmd_resp_reg_addr;
+       u64 reserved2[2];
+};
+
 /*******************************************************************************
  *
  * ASF - Alert Standard Format table (Signature "ASF!")