• Jacky Li's avatar
    crypto: ccp - Initialize PSP when reading psp data file failed · d8da2da2
    Jacky Li authored
    Currently the OS fails the PSP initialization when the file specified at
    'init_ex_path' does not exist or has invalid content. However the SEV
    spec just requires users to allocate 32KB of 0xFF in the file, which can
    be taken care of by the OS easily.
    
    To improve the robustness during the PSP init, leverage the retry
    mechanism and continue the init process:
    
    Before the first INIT_EX call, if the content is invalid or missing,
    continue the process by feeding those contents into PSP instead of
    aborting. PSP will then override it with 32KB 0xFF and return
    SEV_RET_SECURE_DATA_INVALID status code. In the second INIT_EX call,
    this 32KB 0xFF content will then be fed and PSP will write the valid
    data to the file.
    
    In order to do this, sev_read_init_ex_file should only be called once
    for the first INIT_EX call. Calling it again for the second INIT_EX call
    will cause the invalid file content overwriting the valid 32KB 0xFF data
    provided by PSP in the first INIT_EX call.
    Co-developed-by: default avatarPeter Gonda <pgonda@google.com>
    Signed-off-by: default avatarPeter Gonda <pgonda@google.com>
    Signed-off-by: default avatarJacky Li <jackyli@google.com>
    Reported-by: default avatarAlper Gun <alpergun@google.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Acked-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    d8da2da2
amd-memory-encryption.rst 15 KB