summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>2021-04-14 16:37:14 -0700
committerErik Kaneda <erik.kaneda@intel.com>2021-04-14 16:55:28 -0700
commitb5e6bcf69dbb9877481992d5ce86008cfb94f5b8 (patch)
treec579fa79a862401203847f4259bc3add49ca90bb
parentf1ee04207a212f6c519441e7e25397649ebc4cea (diff)
downloadacpica-b5e6bcf69dbb9877481992d5ce86008cfb94f5b8.tar.gz
Add SVKL table headers
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. https://software.intel.com/content/dam/develop/external/us/en/documents/intel-tdx-guest-hypervisor-communication-interface.pdf Cc: Robert Moore <robert.moore@intel.com> Cc: Erik Kaneda <erik.kaneda@intel.com> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-rw-r--r--source/include/actbl2.h37
-rw-r--r--source/tools/acpisrc/astable.c2
2 files changed, 39 insertions, 0 deletions
diff --git a/source/include/actbl2.h b/source/include/actbl2.h
index 44ca0ee76..b04fb4ba3 100644
--- a/source/include/actbl2.h
+++ b/source/include/actbl2.h
@@ -188,6 +188,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 */
/*
@@ -2387,6 +2388,42 @@ typedef struct acpi_sdev_pcie_path
} ACPI_SDEV_PCIE_PATH;
+/*******************************************************************************
+ *
+ * SVKL - Storage Volume Key Location Table (ACPI 6.4)
+ * Version 1
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_svkl
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 Count;
+
+} ACPI_TABLE_SVKL;
+
+typedef struct acpi_svkl_header
+{
+ UINT16 Type;
+ UINT16 Format;
+ UINT32 Size;
+ UINT64 Address;
+
+} ACPI_SVKL_HEADER;
+
+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()
diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c
index a148f035c..d5b14224c 100644
--- a/source/tools/acpisrc/astable.c
+++ b/source/tools/acpisrc/astable.c
@@ -682,6 +682,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_TABLE_S3PT", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SBST", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SDEV", SRC_TYPE_STRUCT},
+ {"ACPI_TABLE_SVKL", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SLIC", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SLIT", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SPCR", SRC_TYPE_STRUCT},
@@ -854,6 +855,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_SDEV_NAMESPACE", SRC_TYPE_STRUCT},
{"ACPI_SDEV_PCIE", SRC_TYPE_STRUCT},
{"ACPI_SDEV_PCIE_PATH", SRC_TYPE_STRUCT},
+ {"ACPI_SVKL_HEADER", SRC_TYPE_STRUCT},
{"ACPI_SRAT_CPU_AFFINITY", SRC_TYPE_STRUCT},
{"ACPI_SRAT_HEADER", SRC_TYPE_STRUCT},
{"ACPI_SRAT_GIC_ITS_AFFINITY", SRC_TYPE_STRUCT},