Albert,

DornerWorks has gotten MSIs working in the x86 CAmkES VM. Unfortunately, we 
can't yet release our work, as it needs to be OPSEC'd, and that's a slow 
process.

Configuring the MSIs with the seL4 Kernel is part of the problem, but the other 
issue is that the PCI Bus is virtualized, and MSIs are initialized by the 
hardware resources via PCI reads and writes. The VMM intercepts those reads, 
and since MSI capabilities are masked in the VMM, the guest will never try to 
initialize them.

There is an existing and likely outdated PR in seL4_projects_libs that you can 
reference that shows how to deal with MSIs in the VMM.

https://github.com/seL4/seL4_projects_libs/pull/86/commits/554a3fd22b878e8cbf19e69b0b469c8bfd4a8dca

I didn't write that code, but I am available for help if you need any.

Thanks!
Chris

-----Original Message-----
From: Alberto Lange via Devel <devel@sel4.systems> 
Sent: Tuesday, September 2, 2025 11:04 AM
To: devel@sel4.systems
Subject: [seL4] Re: About MSI-X interrupts on x86

CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.


Hi Jade,
Thanks for the quick response.

I’ve seen some code related to MSI in the kernel, but I’m not sure if it’s 
fully implemented in the CAmkES VMM. I verified that with the Ethernet device 
on Linux baremetal, using legacy IRQs I can still achieve throughput close to 1 
Gbit/s, so performance isn’t a problem.

I haven’t found any documentation on this, so I’m currently using the legacy 
IRQ configuration in CAmkES:
vm2.vm_irqs = [
    {"name":"outer_eth", "ioapic":0, "source":0xb, "level_trig":0, 
"active_low":1, "dest":12} ]; This seems to be correctly injected into the VM, 
but I cannot ping, and I get a NETDEV WATCHDOG message.

Any hints or guidance you could share would be greatly appreciated.
Thanks!
Albert
_______________________________________________
Devel mailing list -- devel@sel4.systems To unsubscribe send an email to 
devel-leave@sel4.systems
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to