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. (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