[RFC PATCH 0/9] x86: Trenchboot Secure Launch DRTM for AMD SKINIT (Linux)

Sergii Dmytruk posted 9 patches 1 year ago
There is a newer version of this series
.../secure_launch_details.rst                 |  83 ++++-
.../secure_launch_overview.rst                |  64 ++--
arch/x86/Kconfig                              |   9 +-
arch/x86/boot/compressed/sl_main.c            | 285 ++++++++++++++----
arch/x86/boot/compressed/sl_stub.S            |  41 ++-
arch/x86/include/asm/svm.h                    |   2 +
arch/x86/include/uapi/asm/setup_data.h        |   3 +-
arch/x86/kernel/Makefile                      |   1 +
arch/x86/kernel/setup.c                       |   2 +-
arch/x86/kernel/sl-psp.c                      | 239 +++++++++++++++
arch/x86/kernel/slaunch.c                     | 193 ++++++++++--
arch/x86/kernel/slmodule.c                    | 158 ++++++++--
arch/x86/kernel/smpboot.c                     |  15 +-
arch/x86/kernel/traps.c                       |   4 +
drivers/firmware/efi/libstub/x86-stub.c       |  23 +-
drivers/iommu/amd/init.c                      |  12 +
include/linux/slaunch.h                       |  83 ++++-
include/linux/slr_table.h                     |  15 +
18 files changed, 1064 insertions(+), 168 deletions(-)
create mode 100644 arch/x86/kernel/sl-psp.c
[RFC PATCH 0/9] x86: Trenchboot Secure Launch DRTM for AMD SKINIT (Linux)
Posted by Sergii Dmytruk 1 year ago
NOTE: this patch set follows up on Intel TXT DRTM patches that are
currently under review in their 11th version [0]; therefore, it is not
standalone!

The publication of the patches at this point pursues several goals:
 - Make anyone tracking upstream aware of the maturity of the support
   for AMD SKINIT.
 - Collect early feedback on the SKINIT implementation.
 - Finally, demonstrate the extensibility of Secure Launch for
   incorporating additional platforms.

As the RFC suggest, this series is temporal and will be updated based on
changes made to the initial Secure Launch series. Review comments are
greatly welcomed and will be worked/addressed, but we would caution that
changes to the Secure Launch series will take precedence over review
comments. Once the Secure Launch series is merged, this series will
transition from RFC to a formally submitted series.

-----

The patches extend Secure Launch for legacy and UEFI boots with support
for AMD CPUs and their DRTM in two flavours: SKINIT on its own and SKINIT
with DRTM service running in PSP/ASP.

The code is adjusted to detect CPU type and handle AMD differently.
DRTM-specific differences include:
 - lack of registers to pass data from bootloader to DLME, resulting in passing
   some information via boot parameters
 - a different SLRT entry
 - re-enabling GIF
 - not sending #INIT to APs
 - special handling for TPM event logs to make them "compatible" with TXT logs

-----

[0]: https://lkml.org/lkml/2024/9/13/1396

-----

Jagannathan Raman (1):
  psp: Perform kernel portion of DRTM procedures

Michał Żygowski (1):
  x86: Implement AMD support for Secure Launch

Ross Philipson (6):
  x86: AMD changes for Secure Launch Resource Table header file
  x86: Secure Launch main header file AMD support
  x86: Split up Secure Launch setup and finalize functions
  x86: Prepare CPUs for post SKINIT launch
  x86/slmodule: Support AMD SKINIT
  x86: AMD changes for EFI stub DRTM launch support

Sergii Dmytruk (1):
  Documentation/x86: update Secure Launch for AMD SKINIT

 .../secure_launch_details.rst                 |  83 ++++-
 .../secure_launch_overview.rst                |  64 ++--
 arch/x86/Kconfig                              |   9 +-
 arch/x86/boot/compressed/sl_main.c            | 285 ++++++++++++++----
 arch/x86/boot/compressed/sl_stub.S            |  41 ++-
 arch/x86/include/asm/svm.h                    |   2 +
 arch/x86/include/uapi/asm/setup_data.h        |   3 +-
 arch/x86/kernel/Makefile                      |   1 +
 arch/x86/kernel/setup.c                       |   2 +-
 arch/x86/kernel/sl-psp.c                      | 239 +++++++++++++++
 arch/x86/kernel/slaunch.c                     | 193 ++++++++++--
 arch/x86/kernel/slmodule.c                    | 158 ++++++++--
 arch/x86/kernel/smpboot.c                     |  15 +-
 arch/x86/kernel/traps.c                       |   4 +
 drivers/firmware/efi/libstub/x86-stub.c       |  23 +-
 drivers/iommu/amd/init.c                      |  12 +
 include/linux/slaunch.h                       |  83 ++++-
 include/linux/slr_table.h                     |  15 +
 18 files changed, 1064 insertions(+), 168 deletions(-)
 create mode 100644 arch/x86/kernel/sl-psp.c


base-commit: a74134ba0f244cb8d5d5605699aeca7712631e89
prerequisite-patch-id: d68300fcecfeaf27332858195e334a1802dcf591
-- 
2.47.1