diff options
author | Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> | 2021-04-14 16:37:14 -0700 |
---|---|---|
committer | Erik Kaneda <erik.kaneda@intel.com> | 2021-04-14 16:55:28 -0700 |
commit | b5e6bcf69dbb9877481992d5ce86008cfb94f5b8 (patch) | |
tree | c579fa79a862401203847f4259bc3add49ca90bb | |
parent | f1ee04207a212f6c519441e7e25397649ebc4cea (diff) | |
download | acpica-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.h | 37 | ||||
-rw-r--r-- | source/tools/acpisrc/astable.c | 2 |
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}, |