From: ross.philipson@oracle.com
To: "Huang, Kai" <kai.huang@intel.com>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
"x86@kernel.org" <x86@kernel.org>,
"linux-integrity@vger.kernel.org"
<linux-integrity@vger.kernel.org>,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>
Cc: "corbet@lwn.net" <corbet@lwn.net>,
"ardb@kernel.org" <ardb@kernel.org>,
"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
"peterhuewe@gmx.de" <peterhuewe@gmx.de>,
"James.Bottomley@hansenpartnership.com"
<James.Bottomley@hansenpartnership.com>,
"trenchboot-devel@googlegroups.com"
<trenchboot-devel@googlegroups.com>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"mingo@redhat.com" <mingo@redhat.com>,
"Ghatraju, Kanth" <kanth.ghatraju@oracle.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"luto@amacapital.net" <luto@amacapital.net>,
"dwmw2@infradead.org" <dwmw2@infradead.org>,
"dpsmith@apertussolutions.com" <dpsmith@apertussolutions.com>,
"jarkko@kernel.org" <jarkko@kernel.org>,
"ebiederm@xmission.com" <ebiederm@xmission.com>,
"hpa@zytor.com" <hpa@zytor.com>, "bp@alien8.de" <bp@alien8.de>,
"mjg59@srcf.ucam.org" <mjg59@srcf.ucam.org>,
"jgg@ziepe.ca" <jgg@ziepe.ca>,
"nivedita@alum.mit.edu" <nivedita@alum.mit.edu>
Subject: Re: [PATCH v14 04/19] x86: Secure Launch main header file
Date: Thu, 24 Apr 2025 11:56:11 -0700 [thread overview]
Message-ID: <e68edaab-e7cf-4a13-acb1-87ddbb73765a@oracle.com> (raw)
In-Reply-To: <e2d00d7cc4cfc33a3b328fe8386f6d164bc46184.camel@intel.com>
On 4/24/25 5:29 AM, Huang, Kai wrote:
> On Mon, 2025-04-21 at 09:26 -0700, Ross Philipson wrote:
>> Introduce the main Secure Launch header file used in the early SL stub
>> and the early setup code.
>>
>> This header file contains the following categories:
>> - Secure Launch implementation specific structures and definitions.
>> - Intel TXT architecture specific DRTM structures, definitions and functions
>> used by Secure Launch.
>> - DRTM TPM event logging definitions and helper functions.
>
> Looking at the actual code in this patch, seems >90% code in the
> <linux/slaunch.h> is Intel specific, e.g., TXT specific macro/structure
> definitions. It doesn't seem to be the right way to organize the code.
>
> E.g., following the current pattern, when we need to add support for another TXT
> similar vendor-specific technology, we will need to add yet-another set of
> macro/structure definitions for that technology to <linux/slaunch.h> as well.
>
> That would be a giant mess IMHO.
>
> Could we make <linux/slaunch.h> only contain the common things, and move Intel
> specific things to some x86 header(s), e.g., <asm/intel-txt.h> or <asm/txt.h>?
Yes this looks to be a good idea. I think it has been something we have
thought of before. We will look into it.
>
>
> [...]
>
>> +/*
>> + * External functions available in mainline kernel.
>> + */
>> +void slaunch_setup_txt(void);
>> +void slaunch_fixup_jump_vector(void);
>> +u32 slaunch_get_flags(void);
>> +struct sl_ap_wake_info *slaunch_get_ap_wake_info(void);
>> +struct acpi_table_header *slaunch_get_dmar_table(struct acpi_table_header *dmar);
>> +void __noreturn slaunch_txt_reset(void __iomem *txt,
>> + const char *msg, u64 error);
>> +void slaunch_finalize(int do_sexit);
>> +
>> +static inline bool slaunch_is_txt_launch(void)
>> +{
>> + u32 mask = SL_FLAG_ACTIVE | SL_FLAG_ARCH_TXT;
>> +
>> + return (slaunch_get_flags() & mask) == mask;
>> +}
>> +
>> +#else
>> +
>> +static inline void slaunch_setup_txt(void)
>> +{
>> +}
>> +
>> +static inline void slaunch_fixup_jump_vector(void)
>> +{
>> +}
>> +
>> +static inline u32 slaunch_get_flags(void)
>> +{
>> + return 0;
>> +}
>> +
>> +static inline struct acpi_table_header *slaunch_get_dmar_table(struct acpi_table_header *dmar)
>> +{
>> + return dmar;
>> +}
>> +
>> +static inline void slaunch_finalize(int do_sexit)
>> +{
>> +}
>> +
>> +static inline bool slaunch_is_txt_launch(void)
>> +{
>> + return false;
>> +}
>>
>
> .. btw it's not clear which part of the code is common code.
>
> Looking at the abvoe code, it seems those functions are common functions called
> from common code. E.g., slaunch_finalize() is called from kernel/kexec_core.c,
> which means it is a concept in the kernel common code and must be available for
> all ARCHs (I haven't read how other functions are called, though).
>
> But the name slaunch_setup_txt(), slaunch_get_dmar_table() and
> slaunch_is_txt_launch() are quite Intel specific. So it seems to me this patch
> _tries_ to support Secure Launch at the arch agnostic level but it doesn't do a
> good job at the abstraction?
If we do what you suggest, I think these ambiguities will go away.
Thank you,
Ross
next prev parent reply other threads:[~2025-04-24 21:37 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-21 16:26 [PATCH v14 00/19] x86: Trenchboot secure dynamic launch Linux kernel support Ross Philipson
2025-04-21 16:26 ` [PATCH v14 01/19] Documentation/x86: Secure Launch kernel documentation Ross Philipson
2025-06-18 8:33 ` Mowka, Mateusz
2025-06-18 15:02 ` Dave Hansen
2025-04-21 16:26 ` [PATCH v14 02/19] x86: Secure Launch Kconfig Ross Philipson
2025-04-21 17:41 ` Randy Dunlap
2025-04-22 19:32 ` ross.philipson
2025-06-18 8:32 ` Mowka, Mateusz
2025-04-21 16:26 ` [PATCH v14 03/19] x86: Secure Launch Resource Table header file Ross Philipson
2025-04-21 19:18 ` ALOK TIWARI
2025-04-22 19:33 ` ross.philipson
2025-04-23 18:23 ` ALOK TIWARI
2025-04-23 20:04 ` ross.philipson
2025-04-24 12:36 ` Huang, Kai
2025-04-24 19:19 ` ross.philipson
2025-04-21 16:26 ` [PATCH v14 04/19] x86: Secure Launch main " Ross Philipson
2025-04-24 12:29 ` Huang, Kai
2025-04-24 18:56 ` ross.philipson [this message]
2025-06-23 11:44 ` Camacho Romero, Michal
2025-06-23 21:29 ` ross.philipson
2025-06-27 9:15 ` Camacho Romero, Michal
2025-04-21 16:26 ` [PATCH v14 05/19] x86: Add early SHA-1 support for Secure Launch early measurements Ross Philipson
2025-04-21 16:26 ` [PATCH v14 06/19] x86: Add early SHA-256 " Ross Philipson
2025-04-21 16:27 ` [PATCH v14 07/19] x86/msr: Add variable MTRR base/mask and x2apic ID registers Ross Philipson
2025-04-21 16:27 ` [PATCH v14 08/19] x86/boot: Place TXT MLE header in the kernel_info section Ross Philipson
2025-04-23 20:54 ` ALOK TIWARI
2025-04-21 16:27 ` [PATCH v14 09/19] x86: Secure Launch kernel early boot stub Ross Philipson
2025-04-22 1:18 ` Dave Hansen
2025-04-22 19:38 ` ross.philipson
2025-04-23 20:38 ` ALOK TIWARI
2025-04-23 21:07 ` ross.philipson
2025-04-21 16:27 ` [PATCH v14 10/19] x86: Secure Launch kernel late " Ross Philipson
2025-04-21 16:27 ` [PATCH v14 11/19] x86: Secure Launch SMP bringup support Ross Philipson
2025-04-21 16:27 ` [PATCH v14 12/19] kexec: Secure Launch kexec SEXIT support Ross Philipson
2025-04-23 19:58 ` ALOK TIWARI
2025-04-23 20:07 ` ross.philipson
2025-04-21 16:27 ` [PATCH v14 13/19] x86/reboot: Secure Launch SEXIT support on reboot paths Ross Philipson
2025-04-21 22:57 ` Dave Hansen
2025-04-22 19:31 ` ross.philipson
2025-04-21 16:27 ` [PATCH v14 14/19] tpm, tpm_tis: Close all localities Ross Philipson
2025-04-21 16:27 ` [PATCH v14 15/19] tpm, tpm_tis: Address positive localities in tpm_tis_request_locality() Ross Philipson
2025-04-21 16:27 ` [PATCH v14 16/19] tpm, tpm_tis: Allow locality to be set to a different value Ross Philipson
2025-04-22 10:20 ` Stefano Garzarella
2025-04-23 19:38 ` Daniel P. Smith
2025-04-21 16:27 ` [PATCH v14 17/19] tpm, sysfs: Show locality used by kernel Ross Philipson
2025-04-21 16:27 ` [PATCH v14 18/19] x86: Secure Launch late initcall platform module Ross Philipson
2025-04-28 17:38 ` Andy Lutomirski
2025-04-30 1:40 ` Daniel P. Smith
2025-04-30 18:51 ` Andy Lutomirski
2025-04-21 16:27 ` [PATCH v14 19/19] x86/efi: EFI stub DRTM launch support for Secure Launch Ross Philipson
2025-04-21 20:52 ` [PATCH v14 00/19] x86: Trenchboot secure dynamic launch Linux kernel support Dave Hansen
2025-04-21 21:00 ` Andrew Cooper
2025-04-22 18:17 ` Andrew Cooper
2025-04-22 19:16 ` Dave Hansen
2025-04-22 21:26 ` Ard Biesheuvel
2025-04-22 23:21 ` Dave Hansen
2025-04-24 18:45 ` Dave Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e68edaab-e7cf-4a13-acb1-87ddbb73765a@oracle.com \
--to=ross.philipson@oracle.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=andrew.cooper3@citrix.com \
--cc=ardb@kernel.org \
--cc=baolu.lu@linux.intel.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dpsmith@apertussolutions.com \
--cc=dwmw2@infradead.org \
--cc=ebiederm@xmission.com \
--cc=herbert@gondor.apana.org.au \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=jarkko@kernel.org \
--cc=jgg@ziepe.ca \
--cc=kai.huang@intel.com \
--cc=kanth.ghatraju@oracle.com \
--cc=kexec@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=mjg59@srcf.ucam.org \
--cc=nivedita@alum.mit.edu \
--cc=peterhuewe@gmx.de \
--cc=tglx@linutronix.de \
--cc=trenchboot-devel@googlegroups.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.