Re: [PATCH v2 1/8] include/acpi: add definition of ASPT table

From: Jeremi Piotrowski
Date: Thu Feb 16 2023 - 05:28:09 EST




On 13/02/2023 19:43, Rafael J. Wysocki wrote:
> On Mon, Feb 13, 2023 at 10:25 AM Jeremi Piotrowski
> <jpiotrowski@xxxxxxxxxxxxxxxxxxx> wrote:
>>
>> The AMD Secure Processor ACPI Table provides the memory location of the
>> register window and register offsets necessary to communicate with AMD's
>> PSP (Platform Security Processor). This table is exposed on Hyper-V VMs
>> configured with support for AMD's SNP isolation technology.
>>
>> Signed-off-by: Jeremi Piotrowski <jpiotrowski@xxxxxxxxxxxxxxxxxxx>
>
> Please add a Link tag pointing to the corresponding upstream ACPICA
> pull request (or upstream ACPICA commit if already pulled) to this
> patch and analogously for patch [2/8].
>
> Thanks!
>

Will do when I post v3. I'll poke the ACPICA maintainer again after the specification
gets published this friday.

Jeremi

>> ---
>> include/acpi/actbl1.h | 46 +++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 46 insertions(+)
>>
>> diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h
>> index 15c78678c5d3..00d40373df37 100644
>> --- a/include/acpi/actbl1.h
>> +++ b/include/acpi/actbl1.h
>> @@ -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 */
>> @@ -106,6 +107,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!")
>> --
>> 2.25.1
>>