Hello,

I'm working on porting xmm7360 device driver from Linux to OpenBSD,
the Linux code:
https://github.com/xmm7360/xmm7360-pci/

Most of device driver communication with the device is already
working, but currently I can't get the interrupt routine to actually
trigger after successful pci_intr_establish(). Tried to use INTx and
MSI interrupt, that doesn't make difference.

It may or may not be due to some missing platform initialization,
since the machine is booted in UEFI mode. Unfortunately the machine is
not able to boot USB disks in legacy mode, so I can't test how it
behaves in that case.

I've already checked how the device is initialised, and there is no
difference between what Linux and OpenBSD PCI code does, as far as I
can tell. Another data point is that some other PCI devices work on
the machine (NVMe disk and em(4) network controller).

I however see INTx IRQ allocated on Linux is 155 while it's 255 (i.e.
not assigned) on OpenBSD. I also see that MSI Address+Data is
different (Linux uses a unique MSI Address, while OpenBSD uses same
Address but different Data).

Can you give some advice on what to check and confirm whether it's
indeed hw setup problem? Are there any known problems with PCI
interrupt routing on UEFI machines under OpenBSD, or possibly some
floating patches to try?

Dmesg:
https://drive.google.com/file/d/1CPDvLdR94Oj2oaKDtIEAAGFEBqubMv3W/view?usp=sharing

OpenBSD lspci -vvx
https://drive.google.com/file/d/1HpsBaeXVAfewN5kjaLiXnTotef_UNHAn/view?usp=sharing

Linux lspci -vvx
https://drive.google.com/file/d/1ybcnyw13o-Tz2_vKzOsfJCN-sPeyYEQ7/view?usp=sharing

Jaromir

Reply via email to