lkml.org 
[lkml]   [2017]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 05/34] x86/CPU/AMD: Handle SME reduction in physical address size
    Date
    When System Memory Encryption (SME) is enabled, the physical address
    space is reduced. Adjust the x86_phys_bits value to reflect this
    reduction.

    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    ---
    arch/x86/kernel/cpu/amd.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
    index c47ceee..5bdcbd4 100644
    --- a/arch/x86/kernel/cpu/amd.c
    +++ b/arch/x86/kernel/cpu/amd.c
    @@ -613,15 +613,19 @@ static void early_init_amd(struct cpuinfo_x86 *c)
    set_cpu_bug(c, X86_BUG_AMD_E400);

    /*
    - * BIOS support is required for SME. If BIOS has not enabled SME
    - * then don't advertise the feature (set in scattered.c)
    + * BIOS support is required for SME. If BIOS has enabld SME then
    + * adjust x86_phys_bits by the SME physical address space reduction
    + * value. If BIOS has not enabled SME then don't advertise the
    + * feature (set in scattered.c).
    */
    if (cpu_has(c, X86_FEATURE_SME)) {
    u64 msr;

    /* Check if SME is enabled */
    rdmsrl(MSR_K8_SYSCFG, msr);
    - if (!(msr & MSR_K8_SYSCFG_MEM_ENCRYPT))
    + if (msr & MSR_K8_SYSCFG_MEM_ENCRYPT)
    + c->x86_phys_bits -= (cpuid_ebx(0x8000001f) >> 6) & 0x3f;
    + else
    clear_cpu_cap(c, X86_FEATURE_SME);
    }
    }
    \
     
     \ /
      Last update: 2017-06-12 01:11    [W:2.643 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site