platform/x86: Add Intel Software Defined Silicon driver
authorDavid E. Box <david.e.box@linux.intel.com>
Sat, 12 Feb 2022 01:32:50 +0000 (17:32 -0800)
committerHans de Goede <hdegoede@redhat.com>
Mon, 14 Feb 2022 10:45:20 +0000 (11:45 +0100)
commit2546c60004309ede8e2d1d5341e0decd90e057bf
treee7fb3cd51509c07d555a6625bb5da31c231859cd
parentae707d0eb707b5fc658e870dbd8b21887b0a5240
platform/x86: Add Intel Software Defined Silicon driver

Intel Software Defined Silicon (SDSi) is a post manufacturing mechanism for
activating additional silicon features. Features are enabled through a
license activation process.  The SDSi driver provides a per socket, sysfs
attribute interface for applications to perform 3 main provisioning
functions:

1. Provision an Authentication Key Certificate (AKC), a key written to
   internal NVRAM that is used to authenticate a capability specific
   activation payload.

2. Provision a Capability Activation Payload (CAP), a token authenticated
   using the AKC and applied to the CPU configuration to activate a new
   feature.

3. Read the SDSi State Certificate, containing the CPU configuration
   state.

The operations perform function specific mailbox commands that forward the
requests to SDSi hardware to perform authentication of the payloads and
enable the silicon configuration (to be made available after power
cycling).

The SDSi device itself is enumerated as an auxiliary device from the
intel_vsec driver and as such has a build dependency on CONFIG_INTEL_VSEC.

Link: https://github.com/intel/intel-sdsi
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Mark Gross <markgross@kernel.org>
Link: https://lore.kernel.org/r/20220212013252.1293396-2-david.e.box@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Documentation/ABI/testing/sysfs-driver-intel_sdsi [new file with mode: 0644]
MAINTAINERS
drivers/platform/x86/intel/Kconfig
drivers/platform/x86/intel/Makefile
drivers/platform/x86/intel/sdsi.c [new file with mode: 0644]
drivers/platform/x86/intel/vsec.c