* [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO @ 2020-07-30 16:58 Philippe Mathieu-Daudé 2020-07-30 16:58 ` [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O Philippe Mathieu-Daudé ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-30 16:58 UTC (permalink / raw) To: qemu-devel Cc: Aleksandar Rikalo, Michael S. Tsirkin, Aleksandar Markovic, Marc-André Lureau, Paolo Bonzini, Philippe Mathieu-Daudé, Aurelien Jarno Remove the TYPE_SERIAL_IO which is simply a superset of TYPE_SERIAL_MM, as suggested by Paolo and Peter here: https://www.mail-archive.com/qemu-devel@nongnu.org/msg721806.html Philippe Mathieu-Daudé (2): hw/mips/mipssim: Use MMIO serial device on fake ISA I/O hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) include/hw/char/serial.h | 9 --------- hw/char/serial.c | 41 ---------------------------------------- hw/mips/mipssim.c | 4 +++- 3 files changed, 3 insertions(+), 51 deletions(-) -- 2.21.3 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O 2020-07-30 16:58 [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé @ 2020-07-30 16:58 ` Philippe Mathieu-Daudé 2020-09-01 17:20 ` Marc-André Lureau 2020-07-30 16:59 ` [PATCH-for-5.2 2/2] hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) Philippe Mathieu-Daudé 2020-08-22 19:57 ` [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé 2 siblings, 1 reply; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-30 16:58 UTC (permalink / raw) To: qemu-devel Cc: Peter Maydell, Aleksandar Rikalo, Michael S. Tsirkin, Aleksandar Markovic, Marc-André Lureau, Paolo Bonzini, Philippe Mathieu-Daudé, Aurelien Jarno The 'mipssim' is not a real hardware, it is a simulator. There is an ISA MMIO space mapped at 0x1fd00000, however this is not a real ISA bus (no ISA IRQ). So can not use the TYPE_ISA_SERIAL device... Instead we have been using a plain MMIO device, but named it IO. TYPE_SERIAL_IO is a superset of TYPE_SERIAL_MM, using regshift=0 and endianness=DEVICE_LITTLE_ENDIAN. Directly use the TYPE_SERIAL_MM device, enforcing the regshift/endianness values. 'regshift' default is already '0'. 'endianness' is meaningless for 8-bit accesses. Note, there is no migration problem, because TYPE_SERIAL_IO was not migrated. Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- hw/mips/mipssim.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/mips/mipssim.c b/hw/mips/mipssim.c index 1b3b762203..853bbaca58 100644 --- a/hw/mips/mipssim.c +++ b/hw/mips/mipssim.c @@ -216,9 +216,11 @@ mips_mipssim_init(MachineState *machine) * MIPS CPU INT2, which is interrupt 4. */ if (serial_hd(0)) { - DeviceState *dev = qdev_new(TYPE_SERIAL_IO); + DeviceState *dev = qdev_new(TYPE_SERIAL_MM); qdev_prop_set_chr(dev, "chardev", serial_hd(0)); + qdev_prop_set_uint8(dev, "regshift", 0); + qdev_prop_set_uint8(dev, "endianness", DEVICE_LITTLE_ENDIAN); qdev_set_legacy_instance_id(dev, 0x3f8, 2); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, env->irq[4]); -- 2.21.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O 2020-07-30 16:58 ` [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O Philippe Mathieu-Daudé @ 2020-09-01 17:20 ` Marc-André Lureau 2020-09-02 10:35 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 6+ messages in thread From: Marc-André Lureau @ 2020-09-01 17:20 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Peter Maydell, Aleksandar Rikalo, Michael S. Tsirkin, QEMU, Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno [-- Attachment #1: Type: text/plain, Size: 1976 bytes --] Hi On Thu, Jul 30, 2020 at 9:04 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > The 'mipssim' is not a real hardware, it is a simulator. > > There is an ISA MMIO space mapped at 0x1fd00000, however > this is not a real ISA bus (no ISA IRQ). So can not use > the TYPE_ISA_SERIAL device... > Instead we have been using a plain MMIO device, but named > it IO. > > TYPE_SERIAL_IO is a superset of TYPE_SERIAL_MM, using > regshift=0 and endianness=DEVICE_LITTLE_ENDIAN. > > Directly use the TYPE_SERIAL_MM device, enforcing the > regshift/endianness values. 'regshift' default is already > '0'. 'endianness' is meaningless for 8-bit accesses. > > Note, there is no migration problem, because TYPE_SERIAL_IO > was not migrated. > I am not so sure about that. It has: /* No dc->vmsd: class has no migratable state */ but that doesn't mean it's not migratable I think. > Suggested-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/mips/mipssim.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/mips/mipssim.c b/hw/mips/mipssim.c > index 1b3b762203..853bbaca58 100644 > --- a/hw/mips/mipssim.c > +++ b/hw/mips/mipssim.c > @@ -216,9 +216,11 @@ mips_mipssim_init(MachineState *machine) > * MIPS CPU INT2, which is interrupt 4. > */ > if (serial_hd(0)) { > - DeviceState *dev = qdev_new(TYPE_SERIAL_IO); > + DeviceState *dev = qdev_new(TYPE_SERIAL_MM); > > qdev_prop_set_chr(dev, "chardev", serial_hd(0)); > + qdev_prop_set_uint8(dev, "regshift", 0); > + qdev_prop_set_uint8(dev, "endianness", DEVICE_LITTLE_ENDIAN); > qdev_set_legacy_instance_id(dev, 0x3f8, 2); > sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); > sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, env->irq[4]); > -- > 2.21.3 > > > -- Marc-André Lureau [-- Attachment #2: Type: text/html, Size: 2898 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O 2020-09-01 17:20 ` Marc-André Lureau @ 2020-09-02 10:35 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-09-02 10:35 UTC (permalink / raw) To: Marc-André Lureau Cc: Peter Maydell, Aleksandar Rikalo, Michael S. Tsirkin, QEMU, Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno On 9/1/20 7:20 PM, Marc-André Lureau wrote: > Hi > > On Thu, Jul 30, 2020 at 9:04 PM Philippe Mathieu-Daudé > <philmd@redhat.com <mailto:philmd@redhat.com>> wrote: > > The 'mipssim' is not a real hardware, it is a simulator. > > There is an ISA MMIO space mapped at 0x1fd00000, however > this is not a real ISA bus (no ISA IRQ). So can not use > the TYPE_ISA_SERIAL device... > Instead we have been using a plain MMIO device, but named > it IO. > > TYPE_SERIAL_IO is a superset of TYPE_SERIAL_MM, using > regshift=0 and endianness=DEVICE_LITTLE_ENDIAN. > > Directly use the TYPE_SERIAL_MM device, enforcing the > regshift/endianness values. 'regshift' default is already > '0'. 'endianness' is meaningless for 8-bit accesses. > > Note, there is no migration problem, because TYPE_SERIAL_IO > was not migrated. > > > I am not so sure about that. It has: > /* No dc->vmsd: class has no migratable state */ > > but that doesn't mean it's not migratable I think. Can you be more verbose... I don't understand what I should do. Reword the patch description or modify the patch? Thanks. > > > Suggested-by: Peter Maydell <peter.maydell@linaro.org > <mailto:peter.maydell@linaro.org>> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com > <mailto:philmd@redhat.com>> > --- > hw/mips/mipssim.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/mips/mipssim.c b/hw/mips/mipssim.c > index 1b3b762203..853bbaca58 100644 > --- a/hw/mips/mipssim.c > +++ b/hw/mips/mipssim.c > @@ -216,9 +216,11 @@ mips_mipssim_init(MachineState *machine) > * MIPS CPU INT2, which is interrupt 4. > */ > if (serial_hd(0)) { > - DeviceState *dev = qdev_new(TYPE_SERIAL_IO); > + DeviceState *dev = qdev_new(TYPE_SERIAL_MM); > > qdev_prop_set_chr(dev, "chardev", serial_hd(0)); > + qdev_prop_set_uint8(dev, "regshift", 0); > + qdev_prop_set_uint8(dev, "endianness", DEVICE_LITTLE_ENDIAN); > qdev_set_legacy_instance_id(dev, 0x3f8, 2); > sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); > sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, env->irq[4]); > -- > 2.21.3 > > > > > -- > Marc-André Lureau ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH-for-5.2 2/2] hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) 2020-07-30 16:58 [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé 2020-07-30 16:58 ` [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O Philippe Mathieu-Daudé @ 2020-07-30 16:59 ` Philippe Mathieu-Daudé 2020-08-22 19:57 ` [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé 2 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-30 16:59 UTC (permalink / raw) To: qemu-devel Cc: Peter Maydell, Aleksandar Rikalo, Michael S. Tsirkin, Aleksandar Markovic, Marc-André Lureau, Paolo Bonzini, Philippe Mathieu-Daudé, Aurelien Jarno TYPE_SERIAL_IO is a superset of TYPE_SERIAL_MM, and it is not used anymore. Remove it. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- include/hw/char/serial.h | 9 --------- hw/char/serial.c | 41 ---------------------------------------- 2 files changed, 50 deletions(-) diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h index 535fa23a2b..81d7ba1917 100644 --- a/include/hw/char/serial.h +++ b/include/hw/char/serial.h @@ -88,12 +88,6 @@ typedef struct SerialMM { uint8_t endianness; } SerialMM; -typedef struct SerialIO { - SysBusDevice parent; - - SerialState serial; -} SerialIO; - extern const VMStateDescription vmstate_serial; extern const MemoryRegionOps serial_io_ops; @@ -105,9 +99,6 @@ void serial_set_frequency(SerialState *s, uint32_t frequency); #define TYPE_SERIAL_MM "serial-mm" #define SERIAL_MM(s) OBJECT_CHECK(SerialMM, (s), TYPE_SERIAL_MM) -#define TYPE_SERIAL_IO "serial-io" -#define SERIAL_IO(s) OBJECT_CHECK(SerialIO, (s), TYPE_SERIAL_IO) - SerialMM *serial_mm_init(MemoryRegion *address_space, hwaddr base, int regshift, qemu_irq irq, int baudbase, diff --git a/hw/char/serial.c b/hw/char/serial.c index 2386479492..fd80ae5592 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -985,46 +985,6 @@ const MemoryRegionOps serial_io_ops = { .endianness = DEVICE_LITTLE_ENDIAN, }; -static void serial_io_realize(DeviceState *dev, Error **errp) -{ - SerialIO *sio = SERIAL_IO(dev); - SerialState *s = &sio->serial; - - if (!qdev_realize(DEVICE(s), NULL, errp)) { - return; - } - - memory_region_init_io(&s->io, OBJECT(dev), &serial_io_ops, s, "serial", 8); - sysbus_init_mmio(SYS_BUS_DEVICE(sio), &s->io); - sysbus_init_irq(SYS_BUS_DEVICE(sio), &s->irq); -} - -static void serial_io_class_init(ObjectClass *klass, void* data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - - dc->realize = serial_io_realize; - /* No dc->vmsd: class has no migratable state */ -} - -static void serial_io_instance_init(Object *o) -{ - SerialIO *sio = SERIAL_IO(o); - - object_initialize_child(o, "serial", &sio->serial, TYPE_SERIAL); - - qdev_alias_all_properties(DEVICE(&sio->serial), o); -} - - -static const TypeInfo serial_io_info = { - .name = TYPE_SERIAL_IO, - .parent = TYPE_SYS_BUS_DEVICE, - .instance_size = sizeof(SerialIO), - .instance_init = serial_io_instance_init, - .class_init = serial_io_class_init, -}; - static Property serial_properties[] = { DEFINE_PROP_CHR("chardev", SerialState, chr), DEFINE_PROP_UINT32("baudbase", SerialState, baudbase, 115200), @@ -1178,7 +1138,6 @@ static const TypeInfo serial_mm_info = { static void serial_register_types(void) { type_register_static(&serial_info); - type_register_static(&serial_io_info); type_register_static(&serial_mm_info); } -- 2.21.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO 2020-07-30 16:58 [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé 2020-07-30 16:58 ` [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O Philippe Mathieu-Daudé 2020-07-30 16:59 ` [PATCH-for-5.2 2/2] hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) Philippe Mathieu-Daudé @ 2020-08-22 19:57 ` Philippe Mathieu-Daudé 2 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-08-22 19:57 UTC (permalink / raw) To: qemu-devel Cc: Aleksandar Rikalo, Michael S. Tsirkin, Jiaxun Yang, Aleksandar Markovic, Marc-André Lureau, Paolo Bonzini, Aurelien Jarno On 7/30/20 6:58 PM, Philippe Mathieu-Daudé wrote: > Remove the TYPE_SERIAL_IO which is simply a superset of > TYPE_SERIAL_MM, as suggested by Paolo and Peter here: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg721806.html > > Philippe Mathieu-Daudé (2): > hw/mips/mipssim: Use MMIO serial device on fake ISA I/O > hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) > > include/hw/char/serial.h | 9 --------- > hw/char/serial.c | 41 ---------------------------------------- > hw/mips/mipssim.c | 4 +++- > 3 files changed, 3 insertions(+), 51 deletions(-) > ping? ... ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-09-02 10:36 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-07-30 16:58 [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé 2020-07-30 16:58 ` [PATCH-for-5.2 1/2] hw/mips/mipssim: Use MMIO serial device on fake ISA I/O Philippe Mathieu-Daudé 2020-09-01 17:20 ` Marc-André Lureau 2020-09-02 10:35 ` Philippe Mathieu-Daudé 2020-07-30 16:59 ` [PATCH-for-5.2 2/2] hw/char/serial: Remove TYPE_SERIAL_IO (superset of TYPE_SERIAL_MM) Philippe Mathieu-Daudé 2020-08-22 19:57 ` [PATCH-for-5.2 0/2] hw/char: Remove TYPE_SERIAL_IO Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).