On Thu, Sep 15, 2011 at 09:45:33PM +0100, Peter Maydell wrote: > On 15 September 2011 21:29, Gleb Natapov <g...@redhat.com> wrote: > > 16650A is not a device. ISA card it resides on is a device. > > The 16550A is an encapsulated set of functionality with some > well defined interfaces ("I provide a set of memory mapped > registers", "I have an output gpio line (irq)"), which we > need to be able to compose into other things (lots of models > use a 16550A one way or another, not just the ISA serial card), > connect up (ie connect that irq to an appropriate interrupt > controller, map the registers in system memory or under ISA > or whatever), and configure (eg specify the backend chardev). > > I don't think there's any difference at all between that > and (say) the NE2000 PCI model, which also is encapsulated > functionality with well defined interfaces that we need to > be able to compose and connect and configure. We should be > using the same implementation and abstractions for both > cases. > IDE is another such device (it was ISA later converted to PCI). As far as I understand your view of UART is the same as mine. It is not a whole device, but only a part of it.
> (Note the analogy to hardware: a 16550A chip is a well > specified encapsulated set of functionality with some > electrical, timing, etc restrictions on its use. The > only difference between that and an ISA card is that the > ISA card happens to be physically manufactured so that an > end user can plug it, unplug it and wave it around.) > > -- PMM -- Gleb.