On 26 August 2015 at 23:15, Peter Crosthwaite <[email protected]> wrote: > On Wed, Aug 26, 2015 at 2:46 PM, John Snow <[email protected]> wrote: >> For the uninitiated, how does MSI work with Sysbus? > > No such thing :) Interrupts in Sysbus shouldn't really exist and those > that do are just a thin wrapper around raw pins. The short answer is > MSI is a PCI specific concept and sysbus is an alternative to PCI.
My preferred way to think about this is that the 'sysbus' device is the raw "whatever-it-is chip" (uart, usb controller, whatever), and you can wire that chip up directly on a board (sysbus), or wire it up to a pci bus. (Yeah, in practice the PCI functionality is probably on the same bit of silicon, but as a model it works more or less.) You can see something similar going on in our uart models: we have a pci-serial, an isa-serial and some embedded UARTs which all use the same core serial code but present a different interface to the rest of the system. > What I would be interested in, is it possible to push all MSI code up > to the PCI core to completely remove the need for all PCIisms in AHCI? > This seems to be the only thing that is PCI specific. Possibly it might have to live in a pci-ahci wrapper class, but it ought to be possible to keep it out of the common ahci code I hope. -- PMM
