* [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
* [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
* 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
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).