On Aug 29, 2014, at 1:27 PM, David Young <dyo...@pobox.com> wrote: > bus_msi(9) gives MI code access to doorbells: MI code uses it to > establish a doorbell -> interrupt handler mapping and find out the > doorbell's physical address. > > All the code to map the doorbell's physaddr into a PCI busaddr, to > program the IOMMU if there is one, to establish the MSI address/data in > the PCI device, and to enable MSI is MI code using bus_dma(9), pci(9), > and bus_space(9). Even if it's 100 lines or fewer, why duplicate it > across platforms? > > Also, doorbells look to me like a potentially useful facility to make > generally available, even apart from their use with PCI MSI. Anyway, > I'm curious what uses people would come up with.
Most non-X86 MSI implementations can't use them since their MSIs don't work that way. They need to write a specific h/w address with a particular value to trigger an MSI. That address may be PCI attachment specific.