BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3275 Use the SEV-SNP AP Creation NAE event to create and launch APs under SEV-SNP. This capability will be advertised in the SEV Hypervisor Feature Support PCD (PcdSevEsHypervisorFeatures). Cc: Michael Roth <michael.roth@amd.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Min Xu <min.m.xu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Erdem Aktas <erdemaktas@google.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Ray Ni <ray.ni@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
  AMD SEV helper function.
 | 
						|
 | 
						|
  Copyright (c) 2021, 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);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Issue RMPADJUST to adjust the VMSA attribute of an SEV-SNP page.
 | 
						|
 | 
						|
  @param[in]  PageAddress
 | 
						|
  @param[in]  VmsaPage
 | 
						|
 | 
						|
  @return  RMPADJUST return value
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
SevSnpRmpAdjust (
 | 
						|
  IN  EFI_PHYSICAL_ADDRESS  PageAddress,
 | 
						|
  IN  BOOLEAN               VmsaPage
 | 
						|
  )
 | 
						|
{
 | 
						|
  //
 | 
						|
  // RMPADJUST is not supported in 32-bit mode
 | 
						|
  //
 | 
						|
  return RETURN_UNSUPPORTED;
 | 
						|
}
 |