mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vmm: set SEV control register for SEV-Enabled guest
Set the SEV control register so we know where to start running. This register configures the SEV feature control state on a virtual processor. Signed-off-by: Jinank Jain <jinankjain@microsoft.com> Signed-off-by: Muminul Islam <muislam@microsoft.com>
This commit is contained in:
@@ -544,6 +544,8 @@ impl Vm {
|
||||
#[cfg(feature = "tdx")]
|
||||
tdx_enabled,
|
||||
&numa_nodes,
|
||||
#[cfg(feature = "sev_snp")]
|
||||
sev_snp_enabled,
|
||||
)
|
||||
.map_err(Error::CpuManager)?;
|
||||
|
||||
@@ -998,12 +1000,21 @@ impl Vm {
|
||||
memory_manager: Arc<Mutex<MemoryManager>>,
|
||||
cpu_manager: Arc<Mutex<cpu::CpuManager>>,
|
||||
) -> Result<EntryPoint> {
|
||||
let res = igvm_loader::load_igvm(&igvm, memory_manager, cpu_manager, "")
|
||||
let res = igvm_loader::load_igvm(&igvm, memory_manager, cpu_manager.clone(), "")
|
||||
.map_err(Error::IgvmLoad)?;
|
||||
|
||||
Ok(EntryPoint {
|
||||
entry_addr: vm_memory::GuestAddress(res.vmsa.rip),
|
||||
})
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(feature = "sev_snp")] {
|
||||
let entry_point = if cpu_manager.lock().unwrap().sev_snp_enabled() {
|
||||
EntryPoint { entry_addr: vm_memory::GuestAddress(res.vmsa_gpa) }
|
||||
} else {
|
||||
EntryPoint {entry_addr: vm_memory::GuestAddress(res.vmsa.rip) }
|
||||
};
|
||||
} else {
|
||||
let entry_point = EntryPoint { entry_addr: vm_memory::GuestAddress(res.vmsa.rip) };
|
||||
}
|
||||
};
|
||||
Ok(entry_point)
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
|
||||
Reference in New Issue
Block a user