Hi,

> Does it make sense to have an EHCI bus type that inherits from USBBus?
> 
> That way we could change USBPortOps into methods of the USBBus that the
> subclass overrides.

I don't think this is useful.  USBPortOps should be identical for both
cases.

> That would strongly decouple the EHCI code from the PCI device.  Then
> the ehci-pci device just needs to setup the EHCI bus and forward MMIO
> requests appropriately.

I think what we need to do is:

  (1) Create EHCIPCIState, which holds just PCIDevice and EHCIState.
  (2) Setup dma context in pci init function, then switch over all
      memory access from pci_* to dma_* (simliar to ohci).

Generic ehci code should not have any pci references any more then.  Now:

  (3) create EHCISysbusState, hook up sysbus init function which does
      mmio registration, dma context setup and irq windup the sysbus
      way.

cheers,
  Gerd


Reply via email to