Skip to content

Commit

Permalink
ACPICA: Add SVKL table headers
Browse files Browse the repository at this point in the history
ACPICA commit b5e6bcf69dbb9877481992d5ce86008cfb94f5b8

SVKL (Storage Volume Key Location Table) is used by BIOS/Firmware
to share storage volume encryption key's with OS. It will be used
by userspace to decrypt and mount encrypted drives.

So add SVKL table signature and add it to known signatures array
support SVKL.

You can find details about the SVKL table in TDX specfication
titled "Guest-Host-Communication Interface (GHCI) for Intel
Trust Domain Extensions (Intel® TDX)", sec 4.4 and in ACPI
specification r6.4, sec 5.2.6.

Link: https://software.intel.com/content/dam/develop/external/us/en/documents/intel-tdx-guest-hypervisor-communication-interface.pdf
Link: https://github.com/acpica/acpica/commit/b5e6bcf6
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Kuppuswamy Sathyanarayanan authored and Rafael J. Wysocki committed Jun 7, 2021
1 parent 42d96e1 commit 8288f69
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions include/acpi/actbl2.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */
#define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */
#define ACPI_SIG_NHLT "NHLT" /* Non-HDAudio Link Table */
#define ACPI_SIG_SVKL "SVKL" /* Storage Volume Key Location Table */

/*
* All tables must be byte-packed to match the ACPI specification, since
Expand Down Expand Up @@ -1913,6 +1914,35 @@ struct acpi_sdev_pcie_path {
u8 function;
};

/*******************************************************************************
*
* SVKL - Storage Volume Key Location Table (ACPI 6.4)
* Version 1
*
******************************************************************************/

struct acpi_table_svkl {
struct acpi_table_header header; /* Common ACPI table header */
u32 count;
};

struct acpi_svkl_header {
u16 type;
u16 format;
u32 size;
u64 address;
};

enum acpi_svkl_type {
ACPI_SVKL_TYPE_MAIN_STORAGE = 0,
ACPI_SVKL_TYPE_RESERVED = 1 /* 1 and greater are reserved */
};

enum acpi_svkl_format {
ACPI_SVKL_FORMAT_RAW_BINARY = 0,
ACPI_SVKL_FORMAT_RESERVED = 1 /* 1 and greater are reserved */
};

/* Reset to default packing */

#pragma pack()
Expand Down

0 comments on commit 8288f69

Please sign in to comment.