Commit f5325cb1 authored by Jeremi Piotrowski's avatar Jeremi Piotrowski Committed by Rafael J. Wysocki
Browse files

ACPICA: Add support for ASPT table in disassembler

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: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent a47a0c2a
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -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!")