I suspect PCI interrupts are not functioning correctly.

Look at this code:
     ;; Attach interrupt handler.
     (sup:debug-print-line "Handler: " (ahci-irq-handler ahci))
     (sup:irq-attach (sup:platform-irq (pci:pci-intr-line location))
                     (ahci-irq-handler-function ahci)
                     ahci)

and this

(defun pci-intr-line (device)
  (pci-config/8 device +pci-config-intr-line+)) ;; comment by me: the constant is #x3c

I found that "PCI 0x3c" means PCI interrupt pin. AFAIK, interrupt pins are not supported by bhyve, is that correct? If it's true, I need either to teach bhyve how to deal with legacy interrupts or to teach Mezzano to understand MSI. What would be easier in your opinion?

Legacy interrupts should work fine in bhyve for emulated devices. I'd suspect this would be much easier to debug/enhance as opposed to adding MSI (and likely MSI-x).

later,

Peter.

Reply via email to