
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/554a3fd22b878e8cb... 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