On Wed, May 14, 2014 at 12:59:15PM +0200, BALATON Zoltan wrote: > On Wed, 14 May 2014, Michael S. Tsirkin wrote: > >On Wed, May 14, 2014 at 01:39:03AM +0200, BALATON Zoltan wrote: > >>On Thu, 8 May 2014, Michael Tokarev wrote: > >>>27.02.2014 05:05, BALATON Zoltan wrote: > >>> > >>>Shoudl we actually make it machine-specific, to keep even prog-if value > >>>of these things the same as before for older machine types? I dunno. > >>>mst says we should, I think this is not a very important property to keep. > >> > >>So what's the decision? Can it be taken as it is now or do you want > >>any more changes? (If you want it version specific then please tell > >>me how to do that or show me an example because I don't know how to > >>do that.) > >> > > > >If you change it migration to old qemu breaks. > > This is unlikely as this pci serial card is not used by default in > any machine version AFAIK. Is it still desired to keep backward > compatibility for a device that can only be added by users > explicitely? > > Regards, > BALATON Zoltan
Yes. > >See > >commit aa93200b88fb1071eaf21bf766711762ed4630e2 > >Author: Gabriel L. Somlo <gso...@gmail.com> > >Date: Mon May 5 10:52:51 2014 -0400 > > > > apic: use emulated lapic version 0x14 on pc machines >= 2.1 > >as an example on how to do it. > >>> > >>>Thanks, > >>> > >>>/mjt > >>> > >>>>v2: resubmission after pc-2.1 is added with the multiport case > >>>> > >>>>hw/char/serial-pci.c | 2 ++ > >>>>1 file changed, 2 insertions(+) > >>>> > >>>>diff --git a/hw/char/serial-pci.c b/hw/char/serial-pci.c > >>>>index 991c99f..f3f5e07 100644 > >>>>--- a/hw/char/serial-pci.c > >>>>+++ b/hw/char/serial-pci.c > >>>>@@ -60,6 +60,7 @@ static int serial_pci_init(PCIDevice *dev) > >>>> return -1; > >>>> } > >>>> > >>>>+ pci->dev.config[PCI_CLASS_PROG] = 0x02; /* 16550 compatible */ > >>>> pci->dev.config[PCI_INTERRUPT_PIN] = 0x01; > >>>> s->irq = pci_allocate_irq(&pci->dev); > >>>> > >>>>@@ -101,6 +102,7 @@ static int multi_serial_pci_init(PCIDevice *dev) > >>>> assert(pci->ports > 0); > >>>> assert(pci->ports <= PCI_SERIAL_MAX_PORTS); > >>>> > >>>>+ pci->dev.config[PCI_CLASS_PROG] = 0x02; /* 16550 compatible */ > >>>> pci->dev.config[PCI_INTERRUPT_PIN] = 0x01; > >>>> memory_region_init(&pci->iobar, OBJECT(pci), "multiserial", 8 * > >>>> pci->ports); > >>>> pci_register_bar(&pci->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, > >>>> &pci->iobar); > >>>> > >>> > >>> > > > >