Skip to content

Commit 3472a20

Browse files
committed
boot to the uefi front page
1 parent 4727493 commit 3472a20

File tree

1 file changed

+25
-1
lines changed
  • openhcl/virt_mshv_vtl/src/processor/snp

1 file changed

+25
-1
lines changed

openhcl/virt_mshv_vtl/src/processor/snp/mod.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,31 @@ impl BackingPrivate for SnpBacked {
579579
// Clear any pending interrupt.
580580
this.runner.vmsa_mut(vtl).v_intr_cntrl_mut().set_irq(false);
581581

582-
hardware_cvm::apic::poll_apic_core(this, vtl, scan_irr)
582+
hardware_cvm::apic::poll_apic_core(this, vtl, scan_irr)?;
583+
584+
// TODO: a very basic thing that gets us to the UEFI front page.
585+
if this.backing.cvm.lapics[vtl].lapic.is_offloaded() {
586+
match this.backing.cvm.lapics[vtl]
587+
.lapic
588+
.push_to_offload(|irr, isr, tmr| {
589+
let apic_page = this.runner.secure_avic_page_mut(vtl);
590+
591+
for (((irr, page_irr), isr), page_isr) in irr
592+
.iter()
593+
.zip(&mut apic_page.irr)
594+
.zip(isr)
595+
.zip(&mut apic_page.isr)
596+
{
597+
page_irr.value |= *irr;
598+
page_isr.value |= *isr;
599+
}
600+
}) {
601+
Ok(_) => {}
602+
Err(_) => todo!(),
603+
}
604+
}
605+
606+
Ok(())
583607
}
584608

585609
fn request_extint_readiness(_this: &mut UhProcessor<'_, Self>) {

0 commit comments

Comments
 (0)