Hi all, here Albert
I’m working on a SuperMicro E300-9D server and trying to passthrough an Intel X557-AT2 NIC to a Linux 6.1 guest. The .camkes configuration seems to be right, here are the configs for the device (the device is correctly detected on the VM):
vm2.vm_ioports = [];
        vm2.pci_devices = [
        {
            "name":"outer_eth",
            "bus":0xb5,
            "dev":0x0,
            "fun":1,
            "irq":"outer_eth",
            "memory":[
                {"paddr":0xf9000000, "size":0x01000000, "page_bits":12},  // BAR0
                {"paddr":0xfb000000, "size":0x00008000, "page_bits":12},  // BAR3
            ]
        }
        ];
        vm2.vm_irqs = [
            {"name":"outer_eth", "ioapic":0, "source":0xb, "level_trig":0, "active_low":1, "dest":12}
        ];
 I’m seeing the following errors during boot and when bringing the interface up:
[    2.040786] i40e 0000:00:01.0: MAC address: 3c:ec:ef:d2:88:85
[    2.090786] i40e 0000:00:01.0: MSI-X vector reservation failed: -38
[    2.109960] i40e 0000:00:01.0: MSI-X not available, trying MSI
[    2.115660] i40e 0000:00:01.0: MSI init failed - -38
[    2.121656] i40e 0000:00:01.0: MSI-X and MSI not available, falling back to Legacy IRQ
[    2.220802] i40e 0000:00:01.0 eth1: NIC Link is Up, 1000 Mbps Full Duplex, Flow Control: None
[    2.290774] i40e 0000:00:01.0: Features: PF-id[1] VSIs: 66 QP: 1 VxLAN Geneve PTP VEPA
...
# ifconfig eth1 up
[  451.042525] i40e 0000:00:01.0 eth1: NETDEV WATCHDOG: CPU: 0: transmit queue 0 timed out 5770 ms
[  451.052764] i40e 0000:00:01.0 eth1: tx_timeout: VSI_seid: 391, Q 0, NTC: 0x0, HWB: 0x1, NTU: 0x1, TAIL: 0x1, INT: 0x0
[  451.065876] i40e 0000:00:01.0 eth1: tx_timeout recovery level 2, txqueue 0
[  456.082601] i40e 0000:00:01.0 eth1: NETDEV WATCHDOG: CPU: 0: transmit queue 0 timed out 10810 ms
My thought is that this NIC does not work reliably with legacy IRQ mode.
My question is: Is there any implementation of MSI-X interrupts for x86 in the seL4 VMM, or plans to support it? If such support exists, I would like to contribute, as I plan to share my project once it’s finished.
Thanks in advance for any guidance or suggestions.
Albert