[PATCH v11 02/20] x86: Secure Launch Kconfig

2024-09-13 Thread Ross Philipson
Initial bits to bring in Secure Launch functionality. Add Kconfig options for compiling in/out the Secure Launch code. Signed-off-by: Ross Philipson --- arch/x86/Kconfig | 11 +++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 007bab9f2a0e

[PATCH v11 00/20] x86: Trenchboot secure dynamic launch Linux kernel support

2024-09-13 Thread Ross Philipson
s/TechDocs/24593.pdf The TrenchBoot project provides a quick start guide to help get a system up and running with Secure Launch for Linux: https://github.com/TrenchBoot/documentation/blob/master/QUICKSTART.md Patch set based on commit: torvalds/master/77f587896757708780a7e8792efe62939f25a5ab Thanks Ro

[PATCH v11 20/20] x86/efi: EFI stub DRTM launch support for Secure Launch

2024-09-13 Thread Ross Philipson
This support allows the DRTM launch to be initiated after an EFI stub launch of the Linux kernel is done. This is accomplished by providing a handler to jump to when a Secure Launch is in progress. This has to be called after the EFI stub does Exit Boot Services. Signed-off-by: Ross Philipson

[PATCH v11 19/20] x86: Secure Launch late initcall platform module

2024-09-13 Thread Ross Philipson
e platform module also registers the securityfs nodes to allow access to TXT register fields on Intel along with the fetching of and writing events to the late launch TPM log. Signed-off-by: Daniel P. Smith Signed-off-by: garnetgrimm Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefi

[PATCH v11 18/20] tpm: Add sysfs interface to allow setting and querying the default locality

2024-09-13 Thread Ross Philipson
Expose a sysfs interface to allow user mode to set and query the default locality set for the TPM chip. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-sysfs.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char

[PATCH v11 17/20] tpm: Add ability to set the default locality the TPM chip uses

2024-09-13 Thread Ross Philipson
Curently the locality is hard coded to 0 but for DRTM support, access is needed to localities 1 through 4. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-chip.c | 24 +++- include/linux/tpm.h | 4 2 files changed, 27 insertions(+), 1 deletion(-) diff

[PATCH v11 16/20] tpm: Make locality requests return consistent values

2024-09-13 Thread Ross Philipson
ned-off-by: Ross Philipson --- drivers/char/tpm/tpm_tis_core.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 22ebf679ea69..20a8b341be0d 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/driver

[PATCH v11 15/20] tpm: Ensure tpm is in known state at startup

2024-09-13 Thread Ross Philipson
From: "Daniel P. Smith" When tis_tis_core initializes, it assumes all localities are closed. There are cases when this may not be the case. This commit addresses this by ensuring all localities are closed before initializing begins. Signed-off-by: Daniel P. Smith Signed-off-by: Ross

[PATCH v11 14/20] tpm: Protect against locality counter underflow

2024-09-13 Thread Ross Philipson
ned-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reported-by: Kanth Ghatraju --- drivers/char/tpm/tpm_tis_core.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index fdef214b9f6b..a6967f312837 10

[PATCH v11 13/20] x86/reboot: Secure Launch SEXIT support on reboot paths

2024-09-13 Thread Ross Philipson
callback (into ACPI code) or when an emergency reset is done. In these cases, just the TXT registers are finalized but SEXIT is skipped. Signed-off-by: Ross Philipson --- arch/x86/kernel/reboot.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/reboot.c b/arch/x86

[PATCH v11 12/20] kexec: Secure Launch kexec SEXIT support

2024-09-13 Thread Ross Philipson
Prior to running the next kernel via kexec, the Secure Launch code closes down private SMX resources and does an SEXIT. This allows the next kernel to start normally without any issues starting the APs etc. Signed-off-by: Ross Philipson --- arch/x86/kernel/slaunch.c | 72

[PATCH v11 11/20] x86: Secure Launch SMP bringup support

2024-09-13 Thread Ross Philipson
do then jumps to the standard RM piggy protected mode entry point. Signed-off-by: Ross Philipson --- arch/x86/include/asm/realmode.h | 3 ++ arch/x86/kernel/smpboot.c| 43 ++-- arch/x86/realmode/init.c | 3 ++ arch/x86/realmode/rm/header.S

[PATCH v11 10/20] x86: Secure Launch kernel late boot stub

2024-09-13 Thread Ross Philipson
annot be used. Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/setup.c| 3 + arch/x86/kernel/slaunch.c | 524 + drivers/iommu/intel/dmar.c | 4 + 4 files changed, 532 insertions(+) create mode 100644 arch/x86/k

[PATCH v11 09/20] x86: Secure Launch kernel early boot stub

2024-09-13 Thread Ross Philipson
handling the APs on Intel platforms. The routine sl_main which runs after entering 64b mode is responsible for measuring configuration and module information before it is used like the boot params, the kernel command line, the TXT heap, an external initramfs, etc. Signed-off-by: Ross Philipson

[PATCH v11 08/20] x86/boot: Place TXT MLE header in the kernel_info section

2024-09-13 Thread Ross Philipson
start of the setup kernel. The support in the linker file achieves this. Signed-off-by: Ross Philipson Suggested-by: Ard Biesheuvel Reviewed-by: Ard Biesheuvel --- arch/x86/boot/compressed/kernel_info.S | 50 +++--- arch/x86/boot/compressed/vmlinux.lds.S | 7 2

[PATCH v11 07/20] x86/msr: Add variable MTRR base/mask and x2apic ID registers

2024-09-13 Thread Ross Philipson
These values are needed by Secure Launch to locate particular CPUs during AP startup and to restore the MTRR state after a TXT launch. Signed-off-by: Ross Philipson --- arch/x86/include/asm/msr-index.h | 5 + 1 file changed, 5 insertions(+) diff --git a/arch/x86/include/asm/msr-index.h b

[PATCH v11 06/20] x86: Add early SHA-256 support for Secure Launch early measurements

2024-09-13 Thread Ross Philipson
nel is not uncompressed at this point. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 +- arch/x86/boot/compressed/sha256.c | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 arch/x86/boot/compressed/sha256.c

[PATCH v11 05/20] x86: Add early SHA-1 support for Secure Launch early measurements

2024-09-13 Thread Ross Philipson
niel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 + arch/x86/boot/compressed/sha1.c | 6 +++ include/crypto/sha1.h | 1 + lib/crypto/sha1.c | 81 +++ 4 files changed, 90 insertions(+) create

[PATCH v11 04/20] x86: Secure Launch main header file

2024-09-13 Thread Ross Philipson
Introduce the main Secure Launch header file used in the early SL stub and the early setup code. Signed-off-by: Ross Philipson --- include/linux/slaunch.h | 548 1 file changed, 548 insertions(+) create mode 100644 include/linux/slaunch.h diff --git a

[PATCH v11 01/20] Documentation/x86: Secure Launch kernel documentation

2024-09-13 Thread Ross Philipson
From: "Daniel P. Smith" Introduce background, overview and configuration/ABI information for the Secure Launch kernel feature. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reviewed-by: Bagas Sanjaya --- Documentation/security/index.rst | 1 + ..

[PATCH v11 03/20] x86: Secure Launch Resource Table header file

2024-09-13 Thread Ross Philipson
Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson --- include/linux/slr_table.h | 276 ++ 1 file changed, 276 insertions(+) create mode 100644 include/linux

Re: [PATCH v10 20/20] x86/efi: EFI stub DRTM launch support for Secure Launch

2024-08-29 Thread ross . philipson
N9M2RV99hQ!KhkZK77BXRIR4F24tKkUeIlIrdqXtUW2vcnDV74c_5BmrQBQaQ4FqcDKKv9LB3HQUocTGkrmIxuz-LAC$ ] url: https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Ross-Philipson/Documentation-x86-Secure-Launch-kernel-documentation/20240827-065225__;!!ACWV5

Re: [PATCH v10 20/20] x86/efi: EFI stub DRTM launch support for Secure Launch

2024-08-28 Thread ross . philipson
d in https://urldefense.com/v3/__https://git-scm.com/docs/git-format-patch*_base_tree_information__;Iw!!ACWV5N9M2RV99hQ!KhkZK77BXRIR4F24tKkUeIlIrdqXtUW2vcnDV74c_5BmrQBQaQ4FqcDKKv9LB3HQUocTGkrmIxuz-LAC$ ] url: https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Ross-Philipson/Doc

Re: [PATCH v9 06/19] x86: Add early SHA-1 support for Secure Launch early measurements

2024-08-28 Thread ross . philipson
On 8/27/24 11:14 AM, 'Eric Biggers' via trenchboot-devel wrote: On Thu, May 30, 2024 at 07:16:56PM -0700, Eric Biggers wrote: On Thu, May 30, 2024 at 06:03:18PM -0700, Ross Philipson wrote: From: "Daniel P. Smith" For better or worse, Secure Launch needs SHA-1 and SH

Re: [PATCH v10 20/20] x86/efi: EFI stub DRTM launch support for Secure Launch

2024-08-27 Thread ross . philipson
On 8/27/24 3:28 AM, Ard Biesheuvel wrote: On Tue, 27 Aug 2024 at 00:44, Ross Philipson wrote: This support allows the DRTM launch to be initiated after an EFI stub launch of the Linux kernel is done. This is accomplished by providing a handler to jump to when a Secure Launch is in progress

[PATCH v10 04/20] x86: Secure Launch main header file

2024-08-26 Thread Ross Philipson
Introduce the main Secure Launch header file used in the early SL stub and the early setup code. Signed-off-by: Ross Philipson --- include/linux/slaunch.h | 548 1 file changed, 548 insertions(+) create mode 100644 include/linux/slaunch.h diff --git a

[PATCH v10 00/20] x86: Trenchboot secure dynamic launch Linux kernel support

2024-08-26 Thread Ross Philipson
s/TechDocs/24593.pdf The TrenchBoot project provides a quick start guide to help get a system up and running with Secure Launch for Linux: https://github.com/TrenchBoot/documentation/blob/master/QUICKSTART.md Patch set based on commit: torvalds/master/b311c1b497e51a628aa89e7cb954481e5f9dced2 Thanks Ro

[PATCH v10 20/20] x86/efi: EFI stub DRTM launch support for Secure Launch

2024-08-26 Thread Ross Philipson
This support allows the DRTM launch to be initiated after an EFI stub launch of the Linux kernel is done. This is accomplished by providing a handler to jump to when a Secure Launch is in progress. This has to be called after the EFI stub does Exit Boot Services. Signed-off-by: Ross Philipson

[PATCH v10 19/20] x86: Secure Launch late initcall platform module

2024-08-26 Thread Ross Philipson
e platform module also registers the securityfs nodes to allow access to TXT register fields on Intel along with the fetching of and writing events to the late launch TPM log. Signed-off-by: Daniel P. Smith Signed-off-by: garnetgrimm Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefi

[PATCH v10 18/20] tpm: Add sysfs interface to allow setting and querying the default locality

2024-08-26 Thread Ross Philipson
Expose a sysfs interface to allow user mode to set and query the default locality set for the TPM chip. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-sysfs.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char

[PATCH v10 17/20] tpm: Add ability to set the default locality the TPM chip uses

2024-08-26 Thread Ross Philipson
Curently the locality is hard coded to 0 but for DRTM support, access is needed to localities 1 through 4. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-chip.c | 24 +++- include/linux/tpm.h | 4 2 files changed, 27 insertions(+), 1 deletion(-) diff

[PATCH v10 16/20] tpm: Make locality requests return consistent values

2024-08-26 Thread Ross Philipson
ned-off-by: Ross Philipson --- drivers/char/tpm/tpm_tis_core.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 22ebf679ea69..20a8b341be0d 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/driver

[PATCH v10 15/20] tpm: Ensure tpm is in known state at startup

2024-08-26 Thread Ross Philipson
From: "Daniel P. Smith" When tis_tis_core initializes, it assumes all localities are closed. There are cases when this may not be the case. This commit addresses this by ensuring all localities are closed before initializing begins. Signed-off-by: Daniel P. Smith Signed-off-by: Ross

[PATCH v10 14/20] tpm: Protect against locality counter underflow

2024-08-26 Thread Ross Philipson
ned-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reported-by: Kanth Ghatraju --- drivers/char/tpm/tpm_tis_core.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index fdef214b9f6b..a6967f312837 10

[PATCH v10 13/20] x86/reboot: Secure Launch SEXIT support on reboot paths

2024-08-26 Thread Ross Philipson
callback (into ACPI code) or when an emergency reset is done. In these cases, just the TXT registers are finalized but SEXIT is skipped. Signed-off-by: Ross Philipson --- arch/x86/kernel/reboot.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/reboot.c b/arch/x86

[PATCH v10 12/20] kexec: Secure Launch kexec SEXIT support

2024-08-26 Thread Ross Philipson
Prior to running the next kernel via kexec, the Secure Launch code closes down private SMX resources and does an SEXIT. This allows the next kernel to start normally without any issues starting the APs etc. Signed-off-by: Ross Philipson --- arch/x86/kernel/slaunch.c | 72

[PATCH v10 09/20] x86: Secure Launch kernel early boot stub

2024-08-26 Thread Ross Philipson
handling the APs on Intel platforms. The routine sl_main which runs after entering 64b mode is responsible for measuring configuration and module information before it is used like the boot params, the kernel command line, the TXT heap, an external initramfs, etc. Signed-off-by: Ross Philipson

[PATCH v10 11/20] x86: Secure Launch SMP bringup support

2024-08-26 Thread Ross Philipson
do then jumps to the standard RM piggy protected mode entry point. Signed-off-by: Ross Philipson --- arch/x86/include/asm/realmode.h | 3 ++ arch/x86/kernel/smpboot.c| 43 ++-- arch/x86/realmode/init.c | 3 ++ arch/x86/realmode/rm/header.S

[PATCH v10 10/20] x86: Secure Launch kernel late boot stub

2024-08-26 Thread Ross Philipson
annot be used. Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/setup.c| 3 + arch/x86/kernel/slaunch.c | 524 + drivers/iommu/intel/dmar.c | 4 + 4 files changed, 532 insertions(+) create mode 100644 arch/x86/k

[PATCH v10 08/20] x86/boot: Place TXT MLE header in the kernel_info section

2024-08-26 Thread Ross Philipson
start of the setup kernel. The support in the linker file achieves this. Signed-off-by: Ross Philipson Suggested-by: Ard Biesheuvel --- arch/x86/boot/compressed/kernel_info.S | 50 +++--- arch/x86/boot/compressed/vmlinux.lds.S | 7 2 files changed, 53 insertions(

[PATCH v10 01/20] Documentation/x86: Secure Launch kernel documentation

2024-08-26 Thread Ross Philipson
From: "Daniel P. Smith" Introduce background, overview and configuration/ABI information for the Secure Launch kernel feature. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reviewed-by: Bagas Sanjaya --- Documentation/security/index.rst | 1 + ..

[PATCH v10 07/20] x86/msr: Add variable MTRR base/mask and x2apic ID registers

2024-08-26 Thread Ross Philipson
These values are needed by Secure Launch to locate particular CPUs during AP startup and to restore the MTRR state after a TXT launch. Signed-off-by: Ross Philipson --- arch/x86/include/asm/msr-index.h | 5 + 1 file changed, 5 insertions(+) diff --git a/arch/x86/include/asm/msr-index.h b

[PATCH v10 06/20] x86: Add early SHA-256 support for Secure Launch early measurements

2024-08-26 Thread Ross Philipson
nel is not uncompressed at this point. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 +- arch/x86/boot/compressed/sha256.c | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 arch/x86/boot/compressed/sha256.c

[PATCH v10 05/20] x86: Add early SHA-1 support for Secure Launch early measurements

2024-08-26 Thread Ross Philipson
niel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 + arch/x86/boot/compressed/sha1.c | 6 +++ include/crypto/sha1.h | 1 + lib/crypto/sha1.c | 82 +++ 4 files changed, 91 insertions(+) create

[PATCH v10 03/20] x86: Secure Launch Resource Table header file

2024-08-26 Thread Ross Philipson
Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson --- include/linux/slr_table.h | 276 ++ 1 file changed, 276 insertions(+) create mode 100644 include/linux

[PATCH v10 02/20] x86: Secure Launch Kconfig

2024-08-26 Thread Ross Philipson
Initial bits to bring in Secure Launch functionality. Add Kconfig options for compiling in/out the Secure Launch code. Signed-off-by: Ross Philipson --- arch/x86/Kconfig | 11 +++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 007bab9f2a0e

Re: [PATCH v9 09/19] x86: Secure Launch kernel late boot stub

2024-08-12 Thread ross . philipson
On 6/4/24 3:59 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: The routine slaunch_setup is called out of the x86 specific setup_arch() routine during early kernel boot. After determining what platform is present, various operations specific to that

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-20 Thread ross . philipson
On 6/19/24 5:18 PM, Jarkko Sakkinen wrote: On Thu Jun 6, 2024 at 7:49 PM EEST, wrote: For any architectures dig a similar fact: 1. Is not dead. 2. Will be there also in future. Make any architecture existentially relevant for and not too much coloring in the text that is easy to check. It is

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-06 Thread ross . philipson
On 6/5/24 11:02 PM, Jarkko Sakkinen wrote: On Wed Jun 5, 2024 at 10:03 PM EEST, wrote: So I did not mean to imply that DRTM support on various platforms/architectures has a short expiration date. In fact we are actively working on DRTM support through the TrenchBoot project on several platforms

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-05 Thread ross . philipson
Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson If a uarch specific, I'd appreciate Intel SDM reference here so that I can

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-04 Thread ross . philipson
On 6/4/24 5:22 PM, Jarkko Sakkinen wrote: On Wed Jun 5, 2024 at 2:00 AM EEST, wrote: On 6/4/24 3:36 PM, Jarkko Sakkinen wrote: On Tue Jun 4, 2024 at 11:31 PM EEST, wrote: On 6/4/24 11:21 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Introduce the

Re: [PATCH v9 16/19] tpm: Add ability to set the preferred locality the TPM chip uses

2024-06-04 Thread ross . philipson
On 6/4/24 3:50 PM, Jarkko Sakkinen wrote: On Wed Jun 5, 2024 at 1:14 AM EEST, wrote: On 6/4/24 1:27 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Curently the locality is hard coded to 0 but for DRTM support, access is needed to localities 1 through 4

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-04 Thread ross . philipson
On 6/4/24 3:36 PM, Jarkko Sakkinen wrote: On Tue Jun 4, 2024 at 11:31 PM EEST, wrote: On 6/4/24 11:21 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post

Re: [PATCH v9 16/19] tpm: Add ability to set the preferred locality the TPM chip uses

2024-06-04 Thread ross . philipson
On 6/4/24 1:27 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Curently the locality is hard coded to 0 but for DRTM support, access is needed to localities 1 through 4. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-chip.c | 24

Re: [PATCH v9 10/19] x86: Secure Launch SMP bringup support

2024-06-04 Thread ross . philipson
On 6/4/24 1:05 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: On Intel, the APs are left in a well documented state after TXT performs the late launch. Specifically they cannot have #INIT asserted on them so a standard startup via INIT/SIPI/SIPI cannot be

Re: [PATCH v9 09/19] x86: Secure Launch kernel late boot stub

2024-06-04 Thread ross . philipson
On 6/4/24 12:59 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: The routine slaunch_setup is called out of the x86 specific setup_arch() routine during early kernel boot. After determining what platform is present, various operations specific to that

Re: [PATCH v9 09/19] x86: Secure Launch kernel late boot stub

2024-06-04 Thread ross . philipson
On 6/4/24 12:58 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: The routine slaunch_setup is called out of the x86 specific setup_arch() routine during early kernel boot. After determining what platform is present, various operations specific to that

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
03:32, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry point for Intel TXT (and later AMD SKINIT) to vector to during the late launch. The symbol sl_stub_entry is that entry point and its offset into the kernel is conveyed to the launching code using the MLE (Measured Launch

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
On 6/4/24 12:56 PM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry point for Intel TXT (and later AMD SKINIT) to vector to during the late launch. The symbol sl_stub_entry is that entry point and its offset into

Re: [PATCH v9 06/19] x86: Add early SHA-1 support for Secure Launch early measurements

2024-06-04 Thread ross . philipson
On 6/4/24 11:52 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: From: "Daniel P. Smith" For better or worse, Secure Launch needs SHA-1 and SHA-256. The choice of hashes used lie with the platform firmware, not with software, and is often outs

Re: [PATCH v9 05/19] x86: Secure Launch main header file

2024-06-04 Thread ross . philipson
On 6/4/24 11:24 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Introduce the main Secure Launch header file used in the early SL stub and the early setup code. Signed-off-by: Ross Philipson Right and anything AMD specific should also have legit

Re: [PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-06-04 Thread ross . philipson
On 6/4/24 11:21 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson If a uarch specific, I'd appreciate Inte

Re: [PATCH v9 01/19] x86/boot: Place kernel_info at a fixed offset

2024-06-04 Thread ross . philipson
On 6/4/24 11:18 AM, Jarkko Sakkinen wrote: On Fri May 31, 2024 at 4:03 AM EEST, Ross Philipson wrote: From: Arvind Sankar There are use cases for storing the offset of a symbol in kernel_info. For example, the trenchboot series [0] needs to store the offset of the Measured Launch Environment

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
On 6/4/24 10:27 AM, Ard Biesheuvel wrote: On Tue, 4 Jun 2024 at 19:24, wrote: On 5/31/24 6:33 AM, Ard Biesheuvel wrote: On Fri, 31 May 2024 at 13:00, Ard Biesheuvel wrote: Hello Ross, On Fri, 31 May 2024 at 03:32, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
On 5/31/24 7:04 AM, Ard Biesheuvel wrote: On Fri, 31 May 2024 at 15:33, Ard Biesheuvel wrote: On Fri, 31 May 2024 at 13:00, Ard Biesheuvel wrote: Hello Ross, On Fri, 31 May 2024 at 03:32, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry point for Intel TXT (and

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
On 5/31/24 6:33 AM, Ard Biesheuvel wrote: On Fri, 31 May 2024 at 13:00, Ard Biesheuvel wrote: Hello Ross, On Fri, 31 May 2024 at 03:32, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry point for Intel TXT (and later AMD SKINIT) to vector to during the late launch. The

Re: [PATCH v9 19/19] x86: EFI stub DRTM launch support for Secure Launch

2024-06-04 Thread ross . philipson
On 5/31/24 4:09 AM, Ard Biesheuvel wrote: On Fri, 31 May 2024 at 03:32, Ross Philipson wrote: This support allows the DRTM launch to be initiated after an EFI stub launch of the Linux kernel is done. This is accomplished by providing a handler to jump to when a Secure Launch is in progress

Re: [PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-06-04 Thread ross . philipson
On 5/31/24 4:00 AM, Ard Biesheuvel wrote: Hello Ross, Hi Ard, On Fri, 31 May 2024 at 03:32, Ross Philipson wrote: The Secure Launch (SL) stub provides the entry point for Intel TXT (and later AMD SKINIT) to vector to during the late launch. The symbol sl_stub_entry is that entry point

Re: [PATCH v9 06/19] x86: Add early SHA-1 support for Secure Launch early measurements

2024-05-31 Thread ross . philipson
On 5/30/24 7:16 PM, Eric Biggers wrote: On Thu, May 30, 2024 at 06:03:18PM -0700, Ross Philipson wrote: From: "Daniel P. Smith" For better or worse, Secure Launch needs SHA-1 and SHA-256. The choice of hashes used lie with the platform firmware, not with software, and is often outs

[PATCH v9 18/19] x86: Secure Launch late initcall platform module

2024-05-30 Thread Ross Philipson
e platform module also registers the securityfs nodes to allow access to TXT register fields on Intel along with the fetching of and writing events to the late launch TPM log. Signed-off-by: Daniel P. Smith Signed-off-by: garnetgrimm Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefi

[PATCH v9 16/19] tpm: Add ability to set the preferred locality the TPM chip uses

2024-05-30 Thread Ross Philipson
Curently the locality is hard coded to 0 but for DRTM support, access is needed to localities 1 through 4. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-chip.c | 24 +++- drivers/char/tpm/tpm-interface.c | 15 +++ drivers/char/tpm/tpm.h

[PATCH v9 15/19] tpm: Make locality requests return consistent values

2024-05-30 Thread Ross Philipson
ned-off-by: Ross Philipson --- drivers/char/tpm/tpm_tis_core.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 9fb53bb3e73f..685bdeadec51 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/driver

[PATCH v9 14/19] tpm: Ensure tpm is in known state at startup

2024-05-30 Thread Ross Philipson
From: "Daniel P. Smith" When tis core initializes, it assumes all localities are closed. There are cases when this may not be the case. This commit addresses this by ensuring all localities are closed before initializing begins. Signed-off-by: Daniel P. Smith Signed-off-by: Ross

[PATCH v9 11/19] kexec: Secure Launch kexec SEXIT support

2024-05-30 Thread Ross Philipson
Prior to running the next kernel via kexec, the Secure Launch code closes down private SMX resources and does an SEXIT. This allows the next kernel to start normally without any issues starting the APs etc. Signed-off-by: Ross Philipson --- arch/x86/kernel/slaunch.c | 73

[PATCH v9 13/19] tpm: Protect against locality counter underflow

2024-05-30 Thread Ross Philipson
ned-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reported-by: Kanth Ghatraju Fixes: 933bfc5ad213 ("tpm, tpm: Implement usage counter for locality") --- drivers/char/tpm/tpm_tis_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_

[PATCH v9 09/19] x86: Secure Launch kernel late boot stub

2024-05-30 Thread Ross Philipson
protections are in place. For TXT, this code also reserves the original compressed kernel setup area where the APs were left looping so that this memory cannot be used. Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/setup.c| 3 + arch/x86/kernel/slaunch.c

[PATCH v9 17/19] tpm: Add sysfs interface to allow setting and querying the preferred locality

2024-05-30 Thread Ross Philipson
Expose a sysfs interface to allow user mode to set and query the preferred locality for the TPM chip. Signed-off-by: Ross Philipson --- drivers/char/tpm/tpm-sysfs.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char

[PATCH v9 12/19] reboot: Secure Launch SEXIT support on reboot paths

2024-05-30 Thread Ross Philipson
callback (into ACPI code) or when an emergency reset is done. In these cases, just the TXT registers are finalized but SEXIT is skipped. Signed-off-by: Ross Philipson --- arch/x86/kernel/reboot.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/reboot.c b/arch/x86

[PATCH v9 10/19] x86: Secure Launch SMP bringup support

2024-05-30 Thread Ross Philipson
do then jumps to the standard RM piggy protected mode entry point. Signed-off-by: Ross Philipson --- arch/x86/include/asm/realmode.h | 3 ++ arch/x86/kernel/smpboot.c| 58 +++- arch/x86/realmode/init.c | 3 ++ arch/x86/realmode/rm/header.S

[PATCH v9 07/19] x86: Add early SHA-256 support for Secure Launch early measurements

2024-05-30 Thread Ross Philipson
nel is not uncompressed at this point. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 +- arch/x86/boot/compressed/early_sha256.c | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 arch/x86/boot/

[PATCH v9 02/19] Documentation/x86: Secure Launch kernel documentation

2024-05-30 Thread Ross Philipson
Introduce background, overview and configuration/ABI information for the Secure Launch kernel feature. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reviewed-by: Bagas Sanjaya --- Documentation/security/index.rst | 1 + .../security/launch-integrity/index.rst

[PATCH v9 05/19] x86: Secure Launch main header file

2024-05-30 Thread Ross Philipson
Introduce the main Secure Launch header file used in the early SL stub and the early setup code. Signed-off-by: Ross Philipson --- include/linux/slaunch.h | 542 1 file changed, 542 insertions(+) create mode 100644 include/linux/slaunch.h diff --git a

[PATCH v9 08/19] x86: Secure Launch kernel early boot stub

2024-05-30 Thread Ross Philipson
handling the APs on Intel platforms. The routine sl_main which runs after entering 64b mode is responsible for measuring configuration and module information before it is used like the boot params, the kernel command line, the TXT heap, an external initramfs, etc. Signed-off-by: Ross Philipson

[PATCH v9 06/19] x86: Add early SHA-1 support for Secure Launch early measurements

2024-05-30 Thread Ross Philipson
implement base layer for SHA-1") A modified version of this code was introduced to the lib/crypto/sha1.c to bring it in line with the SHA-256 code and allow it to be pulled into the setup kernel in the same manner as SHA-256 is. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson ---

[PATCH v9 01/19] x86/boot: Place kernel_info at a fixed offset

2024-05-30 Thread Ross Philipson
ure in the ELF symbol table. Signed-off-by: Arvind Sankar Cc: Ross Philipson Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/kernel_info.S | 19 +++ arch/x86/boot/compressed/kernel_info.h | 12 arch/x86/boot/compressed/vmlinux.lds.S | 6 ++ 3 files c

[PATCH v9 00/19] x86: Trenchboot secure dynamic launch Linux kernel support

2024-05-30 Thread Ross Philipson
p and running with Secure Launch for Linux: https://github.com/TrenchBoot/documentation/blob/master/QUICKSTART.md Patch set based on commit: torvalds/master/ea5f6ad9ad9645733b72ab53a98e719b460d36a6 Thanks Ross Philipson and Daniel P. Smith Changes in v2: - Modified 32b entry code to prevent c

[PATCH v9 04/19] x86: Secure Launch Resource Table header file

2024-05-30 Thread Ross Philipson
Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson --- include/linux/slr_table.h | 271 ++ 1 file changed, 271 insertions(+) create mode 100644 include/linux

[PATCH v9 03/19] x86: Secure Launch Kconfig

2024-05-30 Thread Ross Philipson
Initial bits to bring in Secure Launch functionality. Add Kconfig options for compiling in/out the Secure Launch code. Signed-off-by: Ross Philipson --- arch/x86/Kconfig | 11 +++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index bc47bc9841ff

[PATCH v9 19/19] x86: EFI stub DRTM launch support for Secure Launch

2024-05-30 Thread Ross Philipson
This support allows the DRTM launch to be initiated after an EFI stub launch of the Linux kernel is done. This is accomplished by providing a handler to jump to when a Secure Launch is in progress. This has to be called after the EFI stub does Exit Boot Services. Signed-off-by: Ross Philipson

Re: [PATCH v7 02/13] Documentation/x86: Secure Launch kernel documentation

2023-11-16 Thread ross . philipson
On 11/12/23 10:07 AM, Alyssa Ross wrote: +Load-time Integrity +--- + +It is critical to understand what load-time integrity establishes about a +system and what is assumed, i.e. what is being trusted. Load-time integrity is +when a trusted entity, i.e. an entity with an assumed in

Re: [PATCH v7 10/13] kexec: Secure Launch kexec SEXIT support

2023-11-15 Thread ross . philipson
On 11/10/23 3:41 PM, Sean Christopherson wrote: On Fri, Nov 10, 2023, Ross Philipson wrote: Prior to running the next kernel via kexec, the Secure Launch code closes down private SMX resources and does an SEXIT. This allows the next kernel to start normally without any issues starting the APs

[PATCH v7 02/13] Documentation/x86: Secure Launch kernel documentation

2023-11-10 Thread Ross Philipson
Introduce background, overview and configuration/ABI information for the Secure Launch kernel feature. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson Reviewed-by: Bagas Sanjaya --- Documentation/security/index.rst | 1 + .../security/launch-integrity/index.rst

[PATCH v7 07/13] x86: Secure Launch kernel early boot stub

2023-11-10 Thread Ross Philipson
handling the APs on Intel platforms. The routine sl_main which runs after entering 64b mode is responsible for measuring configuration and module information before it is used like the boot params, the kernel command line, the TXT heap, an external initramfs, etc. Signed-off-by: Ross Philipson

[PATCH v7 08/13] x86: Secure Launch kernel late boot stub

2023-11-10 Thread Ross Philipson
protections are in place. For TXT, this code also reserves the original compressed kernel setup area where the APs were left looping so that this memory cannot be used. Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/setup.c| 3 + arch/x86/kernel/slaunch.c

[PATCH v7 12/13] x86: Secure Launch late initcall platform module

2023-11-10 Thread Ross Philipson
e platform module also registers the securityfs nodes to allow access to TXT register fields on Intel along with the fetching of and writing events to the late launch TPM log. Signed-off-by: Daniel P. Smith Signed-off-by: garnetgrimm Signed-off-by: Ross Philipson --- arch/x86/kernel/Makefi

[PATCH v7 05/13] x86: Secure Launch main header file

2023-11-10 Thread Ross Philipson
Introduce the main Secure Launch header file used in the early SL stub and the early setup code. Signed-off-by: Ross Philipson --- include/linux/slaunch.h | 542 1 file changed, 542 insertions(+) create mode 100644 include/linux/slaunch.h diff --git a

[PATCH v7 10/13] kexec: Secure Launch kexec SEXIT support

2023-11-10 Thread Ross Philipson
Prior to running the next kernel via kexec, the Secure Launch code closes down private SMX resources and does an SEXIT. This allows the next kernel to start normally without any issues starting the APs etc. Signed-off-by: Ross Philipson --- arch/x86/kernel/slaunch.c | 73

[PATCH v7 06/13] x86: Add early SHA support for Secure Launch early measurements

2023-11-10 Thread Ross Philipson
e and allow it to be pulled into the setup kernel in the same manner as sha256 is. Signed-off-by: Daniel P. Smith Signed-off-by: Ross Philipson --- arch/x86/boot/compressed/Makefile | 2 + arch/x86/boot/compressed/early_sha1.c | 12 arch/x86/boot/compressed/early_sha256.c | 6 ++ i

[PATCH v7 00/13] x86: Trenchboot secure dynamic launch Linux kernel support

2023-11-10 Thread Ross Philipson
-fc-38-dlstub Patch set based on commit: torvolds/master/6bc986ab839c844e78a2333a02e55f02c9e57935 Thanks Ross Philipson and Daniel P. Smith Changes in v2: - Modified 32b entry code to prevent causing relocations in the compressed kernel. - Dropped patches for compressed kernel TPM PCR e

[PATCH v7 04/13] x86: Secure Launch Resource Table header file

2023-11-10 Thread Ross Philipson
Introduce the Secure Launch Resource Table which forms the formal interface between the pre and post launch code. Signed-off-by: Ross Philipson --- include/linux/slr_table.h | 270 ++ 1 file changed, 270 insertions(+) create mode 100644 include/linux

  1   2   >