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

Jeremi Piotrowski
2023-01-24T16:05:39Z

On Mon, Jan 23, 2023 at 08:56:32PM +0100, Rafael J. Wysocki wrote:
> On Mon, Jan 23, 2023 at 4:23 PM Jeremi Piotrowski
> <jpiotrowski@linux.microsoft.com> 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@linux.microsoft.com>
>
> This modifies the ACPICA code, so it should at least be submitted as a
> pull request to the upstream ACPICA project on GitHub.
>
> Thanks!

Hi Rafael,

Sorry, missed that part of the documentation. Here's the PR:
https://github.com/acpica/acpica/pull/829

Thanks,
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
> >