x86/sev: Detect/setup SEV/SME features earlier in boot
sme_enable() handles feature detection for both SEV and SME. Future patches will also use it for SEV-SNP feature detection/setup, which will need to be done immediately after the first #VC handler is set up. Move it now in preparation. Signed-off-by: Michael Roth <michael.roth@amd.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Venu Busireddy <venu.busireddy@oracle.com> Link: https://lore.kernel.org/r/20220307213356.2797205-9-brijesh.singh@amd.com
This commit is contained in:
parent
ec1c66af3a
commit
bcce829083
@ -192,9 +192,6 @@ unsigned long __head __startup_64(unsigned long physaddr,
|
||||
if (load_delta & ~PMD_PAGE_MASK)
|
||||
for (;;);
|
||||
|
||||
/* Activate Secure Memory Encryption (SME) if supported and enabled */
|
||||
sme_enable(bp);
|
||||
|
||||
/* Include the SME encryption mask in the fixup value */
|
||||
load_delta += sme_get_me_mask();
|
||||
|
||||
|
@ -69,6 +69,19 @@ SYM_CODE_START_NOALIGN(startup_64)
|
||||
call startup_64_setup_env
|
||||
popq %rsi
|
||||
|
||||
#ifdef CONFIG_AMD_MEM_ENCRYPT
|
||||
/*
|
||||
* Activate SEV/SME memory encryption if supported/enabled. This needs to
|
||||
* be done now, since this also includes setup of the SEV-SNP CPUID table,
|
||||
* which needs to be done before any CPUID instructions are executed in
|
||||
* subsequent code.
|
||||
*/
|
||||
movq %rsi, %rdi
|
||||
pushq %rsi
|
||||
call sme_enable
|
||||
popq %rsi
|
||||
#endif
|
||||
|
||||
/* Now switch to __KERNEL_CS so IRET works reliably */
|
||||
pushq $__KERNEL_CS
|
||||
leaq .Lon_kernel_cs(%rip), %rax
|
||||
|
Loading…
Reference in New Issue
Block a user