6c32117963
Add SNP-specific hooks to the unaccepted memory support in the boot path (__accept_memory()) and the core kernel (accept_memory()) in order to support booting SNP guests when unaccepted memory is present. Without this support, SNP guests will fail to boot and/or panic() when unaccepted memory is present in the EFI memory map. The process of accepting memory under SNP involves invoking the hypervisor to perform a page state change for the page to private memory and then issuing a PVALIDATE instruction to accept the page. Since the boot path and the core kernel paths perform similar operations, move the pvalidate_pages() and vmgexit_psc() functions into sev-shared.c to avoid code duplication. Create the new header file arch/x86/boot/compressed/sev.h because adding the function declaration to any of the existing SEV related header files pulls in too many other header files, causing the build to fail. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/a52fa69f460fd1876d70074b20ad68210dfc31dd.1686063086.git.thomas.lendacky@amd.com
24 lines
492 B
C
24 lines
492 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* AMD SEV header for early boot related functions.
|
|
*
|
|
* Author: Tom Lendacky <thomas.lendacky@amd.com>
|
|
*/
|
|
|
|
#ifndef BOOT_COMPRESSED_SEV_H
|
|
#define BOOT_COMPRESSED_SEV_H
|
|
|
|
#ifdef CONFIG_AMD_MEM_ENCRYPT
|
|
|
|
bool sev_snp_enabled(void);
|
|
void snp_accept_memory(phys_addr_t start, phys_addr_t end);
|
|
|
|
#else
|
|
|
|
static inline bool sev_snp_enabled(void) { return false; }
|
|
static inline void snp_accept_memory(phys_addr_t start, phys_addr_t end) { }
|
|
|
|
#endif
|
|
|
|
#endif
|