mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-31 01:24:12 +02:00
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4654 The RMPADJUST instruction is used to change the VMSA attribute of a page, but the VMSA attribute can only be changed when running at VMPL0. To prepare for running at a less priviledged VMPL, use the AmdSvsmLib library API to perform the RMPADJUST. The AmdSvsmLib library will perform the proper operation on behalf of the caller. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Ray Ni <ray.ni@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Acked-by: Ray Ni <ray.ni@intel.com>
70 lines
1.4 KiB
C
70 lines
1.4 KiB
C
/** @file
|
|
|
|
AMD SEV helper function.
|
|
|
|
Copyright (c) 2021 - 2024, AMD Incorporated. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#include "MpLib.h"
|
|
|
|
/**
|
|
Create an SEV-SNP AP save area (VMSA) for use in running the vCPU.
|
|
|
|
@param[in] CpuMpData Pointer to CPU MP Data
|
|
@param[in] CpuData Pointer to CPU AP Data
|
|
@param[in] ApicId APIC ID of the vCPU
|
|
**/
|
|
VOID
|
|
SevSnpCreateSaveArea (
|
|
IN CPU_MP_DATA *CpuMpData,
|
|
IN CPU_AP_DATA *CpuData,
|
|
UINT32 ApicId
|
|
)
|
|
{
|
|
//
|
|
// SEV-SNP is not support on 32-bit build.
|
|
//
|
|
ASSERT (FALSE);
|
|
}
|
|
|
|
/**
|
|
Create SEV-SNP APs.
|
|
|
|
@param[in] CpuMpData Pointer to CPU MP Data
|
|
@param[in] ProcessorNumber The handle number of specified processor
|
|
(-1 for all APs)
|
|
**/
|
|
VOID
|
|
SevSnpCreateAP (
|
|
IN CPU_MP_DATA *CpuMpData,
|
|
IN INTN ProcessorNumber
|
|
)
|
|
{
|
|
//
|
|
// SEV-SNP is not support on 32-bit build.
|
|
//
|
|
ASSERT (FALSE);
|
|
}
|
|
|
|
/**
|
|
Determine if the SEV-SNP AP Create protocol should be used.
|
|
|
|
@param[in] CpuMpData Pointer to CPU MP Data
|
|
|
|
@retval TRUE Use SEV-SNP AP Create protocol
|
|
@retval FALSE Do not use SEV-SNP AP Create protocol
|
|
**/
|
|
BOOLEAN
|
|
CanUseSevSnpCreateAP (
|
|
IN CPU_MP_DATA *CpuMpData
|
|
)
|
|
{
|
|
//
|
|
// SEV-SNP is not supported on 32-bit build.
|
|
//
|
|
return FALSE;
|
|
}
|