175d090fdSKirill A. Shutemov #ifndef _ASM_X86_UNACCEPTED_MEMORY_H 275d090fdSKirill A. Shutemov #define _ASM_X86_UNACCEPTED_MEMORY_H 375d090fdSKirill A. Shutemov 475d090fdSKirill A. Shutemov #include <linux/efi.h> 575d090fdSKirill A. Shutemov #include <asm/tdx.h> 6*6c321179STom Lendacky #include <asm/sev.h> 775d090fdSKirill A. Shutemov arch_accept_memory(phys_addr_t start,phys_addr_t end)875d090fdSKirill A. Shutemovstatic inline void arch_accept_memory(phys_addr_t start, phys_addr_t end) 975d090fdSKirill A. Shutemov { 1075d090fdSKirill A. Shutemov /* Platform-specific memory-acceptance call goes here */ 1175d090fdSKirill A. Shutemov if (cpu_feature_enabled(X86_FEATURE_TDX_GUEST)) { 1275d090fdSKirill A. Shutemov if (!tdx_accept_memory(start, end)) 1375d090fdSKirill A. Shutemov panic("TDX: Failed to accept memory\n"); 14*6c321179STom Lendacky } else if (cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) { 15*6c321179STom Lendacky snp_accept_memory(start, end); 1675d090fdSKirill A. Shutemov } else { 1775d090fdSKirill A. Shutemov panic("Cannot accept memory: unknown platform\n"); 1875d090fdSKirill A. Shutemov } 1975d090fdSKirill A. Shutemov } 2075d090fdSKirill A. Shutemov efi_get_unaccepted_table(void)2175d090fdSKirill A. Shutemovstatic inline struct efi_unaccepted_memory *efi_get_unaccepted_table(void) 2275d090fdSKirill A. Shutemov { 2375d090fdSKirill A. Shutemov if (efi.unaccepted == EFI_INVALID_TABLE_ADDR) 2475d090fdSKirill A. Shutemov return NULL; 2575d090fdSKirill A. Shutemov return __va(efi.unaccepted); 2675d090fdSKirill A. Shutemov } 2775d090fdSKirill A. Shutemov #endif 28