From: Joerg Roedel <[email protected]> Introduce sev_status and initialize it together with sme_me_mask to have an indicator which SEV features are enabled.
Signed-off-by: Joerg Roedel <[email protected]> --- arch/x86/boot/compressed/mem_encrypt.S | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/x86/boot/compressed/mem_encrypt.S b/arch/x86/boot/compressed/mem_encrypt.S index dd07e7b41b11..0effd58f0095 100644 --- a/arch/x86/boot/compressed/mem_encrypt.S +++ b/arch/x86/boot/compressed/mem_encrypt.S @@ -71,6 +71,8 @@ SYM_FUNC_END(get_sev_encryption_bit) SYM_FUNC_START(set_sev_encryption_mask) #ifdef CONFIG_AMD_MEM_ENCRYPT push %rbp + push %rax + push %rcx push %rdx movq %rsp, %rbp /* Save current stack pointer */ @@ -81,10 +83,19 @@ SYM_FUNC_START(set_sev_encryption_mask) bts %rax, sme_me_mask(%rip) /* Create the encryption mask */ + /* Read sev_status */ + movl $MSR_AMD64_SEV, %ecx + rdmsr + shlq $32, %rdx + orq %rdx, %rax + movq %rax, sev_status(%rip) + .Lno_sev_mask: movq %rbp, %rsp /* Restore original stack pointer */ pop %rdx + pop %rcx + pop %rax pop %rbp #endif @@ -96,5 +107,6 @@ SYM_FUNC_END(set_sev_encryption_mask) #ifdef CONFIG_AMD_MEM_ENCRYPT .balign 8 -SYM_DATA(sme_me_mask, .quad 0) +SYM_DATA(sme_me_mask, .quad 0) +SYM_DATA(sev_status, .quad 0) #endif -- 2.28.0

