summaryrefslogtreecommitdiff
path: root/sys/dev/microcode
diff options
context:
space:
mode:
authorbouyer <bouyer@NetBSD.org>2022-05-23 15:03:05 +0000
committerbouyer <bouyer@NetBSD.org>2022-05-23 15:03:05 +0000
commit593296e2c139ec429d9d6703910be9ce3551bf77 (patch)
tree3c052410f92a5b225a746705eb5d55f89a9dd27f /sys/dev/microcode
parentca21b0fc0278a90536e6f5e4151abb56c9632f85 (diff)
Work in progress on MSI/MSI-X on Xen (MSI works on my hardware, more work
needed for MSI-X): - Xen silently rejects 32 bits writes to MSI configuration registers (especially when setting PCI_MSI_CTL_MSI_ENABLE/PCI_MSIX_CTL_ENABLE), it expects 16 bits writes. So introduce a pci_conf_write16(), only available on XENPV (and working only for mode 1 without PCI_OVERRIDE_CONF_WRITE) and use it to enable MSI or MSI-X on XENPV. - for multi-MSI vectors, Xen allocates all of them in a single hypercall, so it's not convenient to do it at intr_establish() time. So do it at alloc() time and register the pirqs in the msipic structure. xen_pic_to_gsi() now just returns the values cached in the msipic. As a bonus, if the PHYSDEVOP_map_pirq hypercall fails we can fail the alloc() and we don't need the xen_pci_msi*_probe() hacks. options NO_PCI_MSI_MSIX still on by default for XEN3_DOM0.
Diffstat (limited to 'sys/dev/microcode')
0 files changed, 0 insertions, 0 deletions