qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [PATCH v2] serial-pci: Set prog interface field of pc


From: BALATON Zoltan
Subject: Re: [Qemu-trivial] [PATCH v2] serial-pci: Set prog interface field of pci config to 16550 compatible
Date: Wed, 14 May 2014 12:59:15 +0200 (CEST)
User-agent: Alpine 2.02 (LMD 1266 2009-07-14)

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

See
commit aa93200b88fb1071eaf21bf766711762ed4630e2
Author: Gabriel L. Somlo <address@hidden>
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);








reply via email to

[Prev in Thread] Current Thread [Next in Thread]