All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO
@ 2018-03-08 22:39 Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c Philippe Mathieu-Daudé
                   ` (24 more replies)
  0 siblings, 25 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Yongbok Kim, Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth, Laurent Vivier
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Artyom Tarasenko,
	Guan Xuetao

Hi Paolo, Michael, Hervé and Yongbok.

This series could be the 'part 2' of my previous "remove i386/pc dependency
from non-PC world" I started around 2.9.

The goal is to unify the Super I/O device pattern.

In this rewrite I:
- extract the common SuperIO code from pc87312.c
- use it in few MIPS boards
- as example, easily add a new SuperIO chipset (SMC37C669) to the DP264 machine.

The SMC37C669 is very easily modeled and understandable in the "Add the SMC
FDC37C669 Super I/O" patch. Once used by the DP264 machine, the machine direcly
inherits of the parallel port and two floppy drives without any effort in the
machine code (therefore, easier to qtest and maintain).
The emphasis of the differences is show in the link [2].

Since RFC v2:
- fixed missing .class_size of abstract class in "Add a Super I/O template"
- fixed ptrdiff_t Werror=format string (patchew)
- fixed incorrect/missing MAINTAINERS entries
- only use "discarded-" in device name when no backend provided
- added R-b tags (David Gibson)

tested on:
- Q35
- alpha DP264 [1], [2]
- mips Malta
- mips Fuloong (only monitor, no image to test) [3]
- PReP (only monitor, no image to test)

Paolo: I tested the series and think it is ready to go and shouldn't break
upstream, but I'd like more testing for the Fuloong/PReP machines and
eventually an Ack-by from Michael S. Tsirkin since his area is well touched
by this series.

diff between master and this series here replied to previous thread there:
[1] http://lists.nongnu.org/archive/html/qemu-devel/2018-03/msg02510.html
[2] http://lists.nongnu.org/archive/html/qemu-devel/2018-03/msg02516.html
[3] http://lists.nongnu.org/archive/html/qemu-devel/2018-03/msg02515.html

Since RFC v1:
- complete rewrite, split out the PIIX devices for another series

More devices are being converted but I'm running out of time for the soft
freeze (mips_r4k, hppa_dino, and the PC ones).

Regards,

Phil.

$ git backport-diff -u rfc_v2
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/25:[----] [--] 'hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c'
002/25:[----] [--] 'hw/dma/i8257: Rename DMA_init() to i8257_dma_init()'
003/25:[----] [--] 'hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h'
004/25:[down] 'MAINTAINERS: Fix the PC87312 include path'
005/25:[----] [--] 'hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO'
006/25:[----] [--] 'hw/isa/pc87312: Use uint16_t for the ISA I/O base address'
007/25:[----] [--] 'hw/isa/pc87312: Use 'unsigned int' for the irq value'
008/25:[0003] [FC] 'hw/isa/superio: Add a Super I/O template based on the PC87312 device'
009/25:[----] [--] 'hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO'
010/25:[0006] [FC] 'hw/isa/superio: Factor out the parallel code from pc87312.c'
011/25:[0006] [FC] 'hw/isa/superio: Factor out the serial code from pc87312.c'
012/25:[----] [--] 'hw/isa/superio: Factor out the floppy disc controller code from pc87312.c'
013/25:[----] [--] 'hw/isa/superio: Add a keyboard/mouse controller (8042)'
014/25:[----] [--] 'hw/isa/superio: Factor out the IDE code from pc87312.c'
015/25:[----] [--] 'hw/mips/malta: Code movement'
016/25:[0001] [FC] 'hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c'
017/25:[----] [--] 'hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init()'
018/25:[----] [--] 'hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init()'
019/25:[----] [--] 'hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO'
020/25:[down] 'MAINTAINERS: Add entries for the VT82C686B Super I/O'
021/25:[down] 'MAINTAINERS: Split the Alpha TCG/machine section'
022/25:[0001] [FC] 'hw/isa/superio: Add the SMC FDC37C669 Super I/O'
023/25:[----] [--] 'hw/alpha/dp264: Add the ISA DMA controller'
024/25:[----] [--] 'hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO'
025/25:[----] [--] 'hw/i386/pc: Factor out the superio code'

Philippe Mathieu-Daudé (25):
  hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c
  hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h
  MAINTAINERS: Fix the PC87312 include path
  hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO
  hw/isa/pc87312: Use uint16_t for the ISA I/O base address
  hw/isa/pc87312: Use 'unsigned int' for the irq value
  hw/isa/superio: Add a Super I/O template based on the PC87312 device
  hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO
  hw/isa/superio: Factor out the parallel code from pc87312.c
  hw/isa/superio: Factor out the serial code from pc87312.c
  hw/isa/superio: Factor out the floppy disc controller code from pc87312.c
  hw/isa/superio: Add a keyboard/mouse controller (8042)
  hw/isa/superio: Factor out the IDE code from pc87312.c
  hw/mips/malta: Code movement
  hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c
  hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init()
  hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init()
  hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO
  MAINTAINERS: Add entries for the VT82C686B Super I/O
  MAINTAINERS: Split the Alpha TCG/machine section
  hw/isa/superio: Add the SMC FDC37C669 Super I/O
  hw/alpha/dp264: Add the ISA DMA controller
  hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO
  hw/i386/pc: Factor out the superio code

 default-configs/alpha-softmmu.mak |   5 +
 include/hw/char/parallel.h        |  14 +++
 include/hw/{isa => dma}/i8257.h   |   6 ++
 include/hw/i386/pc.h              |  17 ---
 include/hw/input/i8042.h          |  24 +++++
 include/hw/isa/isa.h              |   2 -
 include/hw/isa/pc87312.h          |  24 ++---
 include/hw/isa/superio.h          |  60 +++++++++++
 include/hw/isa/vt82c686.h         |   4 +-
 hw/alpha/dp264.c                  |  13 ++-
 hw/char/parallel-isa.c            |  36 +++++++
 hw/char/parallel.c                |   2 +-
 hw/dma/i82374.c                   |   3 +-
 hw/dma/i8257.c                    |   4 +-
 hw/i386/pc.c                      |  77 ++++++++------
 hw/i386/vmmouse.c                 |   1 +
 hw/i386/vmport.c                  |   1 +
 hw/input/pckbd.c                  |   2 +-
 hw/isa/isa-bus.c                  |  26 -----
 hw/isa/isa-superio.c              | 214 ++++++++++++++++++++++++++++++++++++++
 hw/isa/pc87312.c                  | 178 ++++++++++++++-----------------
 hw/isa/smc37c669-superio.c        | 115 ++++++++++++++++++++
 hw/isa/vt82c686.c                 |  22 +++-
 hw/mips/mips_fulong2e.c           |  85 +++++++--------
 hw/mips/mips_jazz.c               |   5 +-
 hw/mips/mips_malta.c              |  48 ++++-----
 hw/mips/mips_r4k.c                |   3 +-
 hw/ppc/prep.c                     |   6 +-
 hw/sparc/sun4m.c                  |   4 -
 hw/sparc64/sun4u.c                |   6 +-
 hw/unicore32/puv3.c               |   1 +
 MAINTAINERS                       |  20 +++-
 hw/char/Makefile.objs             |   1 +
 hw/isa/Makefile.objs              |   1 +
 hw/isa/trace-events               |  10 +-
 35 files changed, 737 insertions(+), 303 deletions(-)
 create mode 100644 include/hw/char/parallel.h
 rename include/hw/{isa => dma}/i8257.h (86%)
 create mode 100644 include/hw/input/i8042.h
 create mode 100644 include/hw/isa/superio.h
 create mode 100644 hw/char/parallel-isa.c
 create mode 100644 hw/isa/isa-superio.c
 create mode 100644 hw/isa/smc37c669-superio.c

-- 
2.16.2

^ permalink raw reply	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-09 10:28   ` Mark Cave-Ayland
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init() Philippe Mathieu-Daudé
                   ` (23 subsequent siblings)
  24 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao

Again... (after 07dc788054d7 and 9157eee1b1c0).

We now extract the ISA bus specific helpers.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/char/parallel.h | 14 ++++++++++++++
 include/hw/i386/pc.h       |  8 --------
 hw/char/parallel-isa.c     | 36 ++++++++++++++++++++++++++++++++++++
 hw/char/parallel.c         |  2 +-
 hw/i386/pc.c               |  1 +
 hw/isa/isa-bus.c           | 26 --------------------------
 hw/mips/mips_fulong2e.c    |  1 +
 hw/mips/mips_jazz.c        |  1 +
 hw/mips/mips_malta.c       |  1 +
 hw/sparc64/sun4u.c         |  1 +
 MAINTAINERS                |  3 ++-
 hw/char/Makefile.objs      |  1 +
 12 files changed, 59 insertions(+), 36 deletions(-)
 create mode 100644 include/hw/char/parallel.h
 create mode 100644 hw/char/parallel-isa.c

diff --git a/include/hw/char/parallel.h b/include/hw/char/parallel.h
new file mode 100644
index 0000000000..d6dd62fb9f
--- /dev/null
+++ b/include/hw/char/parallel.h
@@ -0,0 +1,14 @@
+#ifndef HW_PARALLEL_H
+#define HW_PARALLEL_H
+
+#include "exec/memory.h"
+#include "hw/isa/isa.h"
+#include "chardev/char.h"
+
+void parallel_hds_isa_init(ISABus *bus, int n);
+
+bool parallel_mm_init(MemoryRegion *address_space,
+                      hwaddr base, int it_shift, qemu_irq irq,
+                      Chardev *chr);
+
+#endif
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index bb49165fe0..f1feb18c3c 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -151,14 +151,6 @@ struct PCMachineClass {
 #define PC_MACHINE_CLASS(klass) \
     OBJECT_CLASS_CHECK(PCMachineClass, (klass), TYPE_PC_MACHINE)
 
-/* parallel.c */
-
-void parallel_hds_isa_init(ISABus *bus, int n);
-
-bool parallel_mm_init(MemoryRegion *address_space,
-                      hwaddr base, int it_shift, qemu_irq irq,
-                      Chardev *chr);
-
 /* i8259.c */
 
 extern DeviceState *isa_pic;
diff --git a/hw/char/parallel-isa.c b/hw/char/parallel-isa.c
new file mode 100644
index 0000000000..639e179585
--- /dev/null
+++ b/hw/char/parallel-isa.c
@@ -0,0 +1,36 @@
+/*
+ * QEMU Parallel PORT (ISA bus helpers)
+ *
+ * Copyright (c) 2003 Fabrice Bellard
+ *
+ * SPDX-License-Identifier: MIT
+ */
+#include "qemu/osdep.h"
+#include "sysemu/sysemu.h"
+#include "hw/isa/isa.h"
+#include "hw/char/parallel.h"
+
+static void parallel_init(ISABus *bus, int index, Chardev *chr)
+{
+    DeviceState *dev;
+    ISADevice *isadev;
+
+    isadev = isa_create(bus, "isa-parallel");
+    dev = DEVICE(isadev);
+    qdev_prop_set_uint32(dev, "index", index);
+    qdev_prop_set_chr(dev, "chardev", chr);
+    qdev_init_nofail(dev);
+}
+
+void parallel_hds_isa_init(ISABus *bus, int n)
+{
+    int i;
+
+    assert(n <= MAX_PARALLEL_PORTS);
+
+    for (i = 0; i < n; i++) {
+        if (parallel_hds[i]) {
+            parallel_init(bus, i, parallel_hds[i]);
+        }
+    }
+}
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index f79dc76543..1542d62201 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -28,7 +28,7 @@
 #include "chardev/char-parallel.h"
 #include "chardev/char-fe.h"
 #include "hw/isa/isa.h"
-#include "hw/i386/pc.h"
+#include "hw/char/parallel.h"
 #include "sysemu/sysemu.h"
 
 //#define DEBUG_PARALLEL
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 35fcb6efdf..81364932d3 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -26,6 +26,7 @@
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
 #include "hw/char/serial.h"
+#include "hw/char/parallel.h"
 #include "hw/i386/apic.h"
 #include "hw/i386/topology.h"
 #include "sysemu/cpus.h"
diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index 0f2e426d02..63fa77effc 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -24,7 +24,6 @@
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "hw/isa/isa.h"
-#include "hw/i386/pc.h"
 
 static ISABus *isabus;
 
@@ -288,28 +287,3 @@ MemoryRegion *isa_address_space_io(ISADevice *dev)
 }
 
 type_init(isabus_register_types)
-
-static void parallel_init(ISABus *bus, int index, Chardev *chr)
-{
-    DeviceState *dev;
-    ISADevice *isadev;
-
-    isadev = isa_create(bus, "isa-parallel");
-    dev = DEVICE(isadev);
-    qdev_prop_set_uint32(dev, "index", index);
-    qdev_prop_set_chr(dev, "chardev", chr);
-    qdev_init_nofail(dev);
-}
-
-void parallel_hds_isa_init(ISABus *bus, int n)
-{
-    int i;
-
-    assert(n <= MAX_PARALLEL_PORTS);
-
-    for (i = 0; i < n; i++) {
-        if (parallel_hds[i]) {
-            parallel_init(bus, i, parallel_hds[i]);
-        }
-    }
-}
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index f68c625666..dc77b55755 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -23,6 +23,7 @@
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
 #include "hw/char/serial.h"
+#include "hw/char/parallel.h"
 #include "hw/block/fdc.h"
 #include "net/net.h"
 #include "hw/boards.h"
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index b09871a814..b24305b7b4 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -28,6 +28,7 @@
 #include "hw/mips/cpudevs.h"
 #include "hw/i386/pc.h"
 #include "hw/char/serial.h"
+#include "hw/char/parallel.h"
 #include "hw/isa/isa.h"
 #include "hw/block/fdc.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 6f0deb99e7..c74882c7e9 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -28,6 +28,7 @@
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
 #include "hw/char/serial.h"
+#include "hw/char/parallel.h"
 #include "hw/block/fdc.h"
 #include "net/net.h"
 #include "hw/boards.h"
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index da28ab9413..ceb1ba7eaf 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -34,6 +34,7 @@
 #include "hw/pci-host/sabre.h"
 #include "hw/i386/pc.h"
 #include "hw/char/serial.h"
+#include "hw/char/parallel.h"
 #include "hw/timer/m48t59.h"
 #include "hw/block/fdc.h"
 #include "net/net.h"
diff --git a/MAINTAINERS b/MAINTAINERS
index b7c4130388..c0f1620f3a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -913,7 +913,7 @@ M: Michael S. Tsirkin <mst@redhat.com>
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Supported
 F: hw/char/debugcon.c
-F: hw/char/parallel.c
+F: hw/char/parallel*
 F: hw/char/serial*
 F: hw/dma/i8257*
 F: hw/i2c/pm_smbus.c
@@ -928,6 +928,7 @@ F: hw/timer/i8254*
 F: hw/timer/mc146818rtc*
 F: hw/watchdog/wdt_ib700.c
 F: include/hw/display/vga.h
+F: include/hw/char/parallel.h
 F: include/hw/i2c/pm_smbus.h
 F: include/hw/isa/i8257.h
 F: include/hw/timer/hpet.h
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index 1bcd37e98d..1b979100b7 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -1,6 +1,7 @@
 common-obj-$(CONFIG_IPACK) += ipoctal232.o
 common-obj-$(CONFIG_ESCC) += escc.o
 common-obj-$(CONFIG_PARALLEL) += parallel.o
+common-obj-$(CONFIG_PARALLEL) += parallel-isa.o
 common-obj-$(CONFIG_PL011) += pl011.o
 common-obj-$(CONFIG_SERIAL) += serial.o
 common-obj-$(CONFIG_SERIAL_ISA) += serial-isa.o
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-09 10:32   ` Mark Cave-Ayland
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h Philippe Mathieu-Daudé
                   ` (22 subsequent siblings)
  24 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

- Move the header from hw/isa/ to hw/dma/
- Remove the old i386/pc dependency
- use a bool type for the high_page_enable argument

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/{isa => dma}/i8257.h | 6 ++++++
 include/hw/isa/isa.h            | 2 --
 hw/dma/i82374.c                 | 3 ++-
 hw/dma/i8257.c                  | 4 ++--
 hw/i386/pc.c                    | 3 ++-
 hw/mips/mips_fulong2e.c         | 3 ++-
 hw/mips/mips_jazz.c             | 3 ++-
 hw/mips/mips_malta.c            | 3 ++-
 hw/sparc/sun4m.c                | 4 ----
 hw/sparc64/sun4u.c              | 4 ----
 MAINTAINERS                     | 2 +-
 11 files changed, 19 insertions(+), 18 deletions(-)
 rename include/hw/{isa => dma}/i8257.h (86%)

diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
similarity index 86%
rename from include/hw/isa/i8257.h
rename to include/hw/dma/i8257.h
index 88a2766a3f..2cab50bb6c 100644
--- a/include/hw/isa/i8257.h
+++ b/include/hw/dma/i8257.h
@@ -1,6 +1,10 @@
 #ifndef HW_I8257_H
 #define HW_I8257_H
 
+#include "hw/hw.h"
+#include "hw/isa/isa.h"
+#include "exec/ioport.h"
+
 #define TYPE_I8257 "i8257"
 
 typedef struct I8257Regs {
@@ -40,4 +44,6 @@ typedef struct I8257State {
     PortioList portio_pageh;
 } I8257State;
 
+void i8257_dma_init(ISABus *bus, bool high_page_enable);
+
 #endif
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index 95593408ef..b9dbab24b4 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -151,6 +151,4 @@ static inline ISABus *isa_bus_from_device(ISADevice *d)
     return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
 }
 
-/* i8257.c */
-void DMA_init(ISABus *bus, int high_page_enable);
 #endif
diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
index 6c0f975df0..83c87d92e0 100644
--- a/hw/dma/i82374.c
+++ b/hw/dma/i82374.c
@@ -24,6 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/isa/isa.h"
+#include "hw/dma/i8257.h"
 
 #define TYPE_I82374 "i82374"
 #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
@@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error **errp)
     portio_list_add(&s->port_list, isa_address_space_io(&s->parent_obj),
                     s->iobase);
 
-    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
+    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
     memset(s->commands, 0, sizeof(s->commands));
 }
 
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index bd23e893bf..52675e97c9 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -24,7 +24,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/isa/isa.h"
-#include "hw/isa/i8257.h"
+#include "hw/dma/i8257.h"
 #include "qemu/main-loop.h"
 #include "trace.h"
 
@@ -622,7 +622,7 @@ static void i8257_register_types(void)
 
 type_init(i8257_register_types)
 
-void DMA_init(ISABus *bus, int high_page_enable)
+void i8257_dma_init(ISABus *bus, bool high_page_enable)
 {
     ISADevice *isa1, *isa2;
     DeviceState *d;
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 81364932d3..ec75b09a8f 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -41,6 +41,7 @@
 #include "elf.h"
 #include "multiboot.h"
 #include "hw/timer/mc146818rtc.h"
+#include "hw/dma/i8257.h"
 #include "hw/timer/i8254.h"
 #include "hw/audio/pcspk.h"
 #include "hw/pci/msi.h"
@@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
     port92_init(port92, a20_line[1]);
     g_free(a20_line);
 
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
 
     for(i = 0; i < MAX_FD; i++) {
         fd[i] = drive_get(IF_FLOPPY, 0, i);
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index dc77b55755..0545fcd899 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -22,6 +22,7 @@
 #include "qapi/error.h"
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
 #include "hw/char/serial.h"
 #include "hw/char/parallel.h"
 #include "hw/block/fdc.h"
@@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState *machine)
 
     /* init other devices */
     pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
 
     /* Super I/O */
     isa_create_simple(isa_bus, "i8042");
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index b24305b7b4..827ffdcd4a 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -27,6 +27,7 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
 #include "hw/char/serial.h"
 #include "hw/char/parallel.h"
 #include "hw/isa/isa.h"
@@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
     /* ISA devices */
     i8259 = i8259_init(isa_bus, env->irq[4]);
     isa_bus_irqs(isa_bus, i8259);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
     pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
     pcspk_init(isa_bus, pit);
 
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index c74882c7e9..9cb86c432e 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -27,6 +27,7 @@
 #include "cpu.h"
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
 #include "hw/char/serial.h"
 #include "hw/char/parallel.h"
 #include "hw/block/fdc.h"
@@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
     smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
     g_free(smbus_eeprom_buf);
     pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
 
     /* Super I/O */
     isa_create_simple(isa_bus, "i8042");
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 0f5804b3b4..fa1bfd6c92 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -99,10 +99,6 @@ struct sun4m_hwdef {
     uint8_t nvram_machine_id;
 };
 
-void DMA_init(ISABus *bus, int high_page_enable)
-{
-}
-
 static void fw_cfg_boot_set(void *opaque, const char *boot_device,
                             Error **errp)
 {
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index ceb1ba7eaf..0ca0243821 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -90,10 +90,6 @@ typedef struct EbusState {
 #define TYPE_EBUS "ebus"
 #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
 
-void DMA_init(ISABus *bus, int high_page_enable)
-{
-}
-
 static void fw_cfg_boot_set(void *opaque, const char *boot_device,
                             Error **errp)
 {
diff --git a/MAINTAINERS b/MAINTAINERS
index c0f1620f3a..335c6c9f65 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
 F: hw/watchdog/wdt_ib700.c
 F: include/hw/display/vga.h
 F: include/hw/char/parallel.h
+F: include/hw/dma/i8257.h
 F: include/hw/i2c/pm_smbus.h
-F: include/hw/isa/i8257.h
 F: include/hw/timer/hpet.h
 F: include/hw/timer/i8254*
 F: include/hw/timer/mc146818rtc*
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init() Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-09 10:33   ` Mark Cave-Ayland
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 04/25] MAINTAINERS: Fix the PC87312 include path Philippe Mathieu-Daudé
                   ` (21 subsequent siblings)
  24 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth, Laurent Vivier
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, David Gibson, Alexander Graf,
	open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au> (hw/ppc)
---
 include/hw/i386/pc.h     |  9 ---------
 include/hw/input/i8042.h | 24 ++++++++++++++++++++++++
 hw/alpha/dp264.c         |  3 ++-
 hw/i386/pc.c             |  1 +
 hw/i386/vmmouse.c        |  1 +
 hw/i386/vmport.c         |  1 +
 hw/input/pckbd.c         |  2 +-
 hw/mips/mips_fulong2e.c  |  3 ++-
 hw/mips/mips_jazz.c      |  1 +
 hw/mips/mips_malta.c     |  3 ++-
 hw/mips/mips_r4k.c       |  3 ++-
 hw/ppc/prep.c            |  5 +++--
 hw/sparc64/sun4u.c       |  1 +
 hw/unicore32/puv3.c      |  1 +
 MAINTAINERS              |  1 +
 15 files changed, 43 insertions(+), 16 deletions(-)
 create mode 100644 include/hw/input/i8042.h

diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index f1feb18c3c..1638618dfc 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -188,15 +188,6 @@ void vmport_register(unsigned char command, VMPortReadFunc *func, void *opaque);
 void vmmouse_get_data(uint32_t *data);
 void vmmouse_set_data(const uint32_t *data);
 
-/* pckbd.c */
-#define I8042_A20_LINE "a20"
-
-void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
-                   MemoryRegion *region, ram_addr_t size,
-                   hwaddr mask);
-void i8042_isa_mouse_fake_event(void *opaque);
-void i8042_setup_a20_line(ISADevice *dev, qemu_irq a20_out);
-
 /* pc.c */
 extern int fd_bootchk;
 
diff --git a/include/hw/input/i8042.h b/include/hw/input/i8042.h
new file mode 100644
index 0000000000..f6ff146364
--- /dev/null
+++ b/include/hw/input/i8042.h
@@ -0,0 +1,24 @@
+/*
+ * QEMU PS/2 Controller
+ *
+ * Copyright (c) 2003 Fabrice Bellard
+ *
+ * SPDX-License-Identifier: MIT
+ */
+#ifndef HW_INPUT_I8042_H
+#define HW_INPUT_I8042_H
+
+#include "hw/hw.h"
+#include "hw/isa/isa.h"
+
+#define TYPE_I8042 "i8042"
+
+#define I8042_A20_LINE "a20"
+
+void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
+                   MemoryRegion *region, ram_addr_t size,
+                   hwaddr mask);
+void i8042_isa_mouse_fake_event(void *opaque);
+void i8042_setup_a20_line(ISADevice *dev, qemu_irq a20_out);
+
+#endif /* HW_INPUT_I8042_H */
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 766373eec7..e13cb576fd 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -19,6 +19,7 @@
 #include "hw/timer/mc146818rtc.h"
 #include "hw/ide.h"
 #include "hw/timer/i8254.h"
+#include "hw/input/i8042.h"
 #include "hw/char/serial.h"
 #include "qemu/cutils.h"
 
@@ -81,7 +82,7 @@ static void clipper_init(MachineState *machine)
     mc146818_rtc_init(isa_bus, 1900, rtc_irq);
 
     i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    isa_create_simple(isa_bus, "i8042");
+    isa_create_simple(isa_bus, TYPE_I8042);
 
     /* VGA setup.  Don't bother loading the bios.  */
     pci_vga_init(pci_bus);
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ec75b09a8f..cdcdfafe8e 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -43,6 +43,7 @@
 #include "hw/timer/mc146818rtc.h"
 #include "hw/dma/i8257.h"
 #include "hw/timer/i8254.h"
+#include "hw/input/i8042.h"
 #include "hw/audio/pcspk.h"
 #include "hw/pci/msi.h"
 #include "hw/sysbus.h"
diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
index 65ef55329e..5d2d278be4 100644
--- a/hw/i386/vmmouse.c
+++ b/hw/i386/vmmouse.c
@@ -25,6 +25,7 @@
 #include "hw/hw.h"
 #include "ui/console.h"
 #include "hw/i386/pc.h"
+#include "hw/input/i8042.h"
 #include "hw/qdev.h"
 
 /* debug only vmmouse */
diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
index 116aa09819..3bf8cfe041 100644
--- a/hw/i386/vmport.c
+++ b/hw/i386/vmport.c
@@ -25,6 +25,7 @@
 #include "hw/hw.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
+#include "hw/input/i8042.h"
 #include "sysemu/hw_accel.h"
 #include "hw/qdev.h"
 #include "qemu/log.h"
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index c479f827b6..f17f18e51b 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -26,6 +26,7 @@
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 #include "hw/input/ps2.h"
+#include "hw/input/i8042.h"
 #include "sysemu/sysemu.h"
 
 /* debug PC keyboard */
@@ -480,7 +481,6 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
     qemu_register_reset(kbd_reset, s);
 }
 
-#define TYPE_I8042 "i8042"
 #define I8042(obj) OBJECT_CHECK(ISAKBDState, (obj), TYPE_I8042)
 
 typedef struct ISAKBDState {
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 0545fcd899..9339e02120 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -44,6 +44,7 @@
 #include "hw/isa/vt82c686.h"
 #include "hw/timer/mc146818rtc.h"
 #include "hw/timer/i8254.h"
+#include "hw/input/i8042.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 #include "sysemu/qtest.h"
@@ -364,7 +365,7 @@ static void mips_fulong2e_init(MachineState *machine)
     i8257_dma_init(isa_bus, 0);
 
     /* Super I/O */
-    isa_create_simple(isa_bus, "i8042");
+    isa_create_simple(isa_bus, TYPE_I8042);
 
     mc146818_rtc_init(isa_bus, 2000, NULL);
 
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index 827ffdcd4a..5abbe30c21 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -43,6 +43,7 @@
 #include "hw/timer/i8254.h"
 #include "hw/display/vga.h"
 #include "hw/audio/pcspk.h"
+#include "hw/input/i8042.h"
 #include "sysemu/block-backend.h"
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 9cb86c432e..cd7bd0eef6 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -47,6 +47,7 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/timer/mc146818rtc.h"
+#include "hw/input/i8042.h"
 #include "hw/timer/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
@@ -1213,7 +1214,7 @@ void mips_malta_init(MachineState *machine)
     i8257_dma_init(isa_bus, 0);
 
     /* Super I/O */
-    isa_create_simple(isa_bus, "i8042");
+    isa_create_simple(isa_bus, TYPE_I8042);
 
     mc146818_rtc_init(isa_bus, 2000, NULL);
     serial_hds_isa_init(isa_bus, 0, 2);
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index 830ee7732c..aeadc4a340 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -28,6 +28,7 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/timer/mc146818rtc.h"
+#include "hw/input/i8042.h"
 #include "hw/timer/i8254.h"
 #include "sysemu/block-backend.h"
 #include "exec/address-spaces.h"
@@ -286,7 +287,7 @@ void mips_r4k_init(MachineState *machine)
                      hd[MAX_IDE_DEVS * i],
 		     hd[MAX_IDE_DEVS * i + 1]);
 
-    isa_create_simple(isa_bus, "i8042");
+    isa_create_simple(isa_bus, TYPE_I8042);
 }
 
 static void mips_machine_init(MachineClass *mc)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 096d4d4cfb..ae724b0613 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -41,6 +41,7 @@
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "hw/timer/mc146818rtc.h"
+#include "hw/input/i8042.h"
 #include "hw/isa/pc87312.h"
 #include "hw/net/ne2000-isa.h"
 #include "sysemu/block-backend.h"
@@ -641,7 +642,7 @@ static void ppc_prep_init(MachineState *machine)
                      hd[2 * i],
 		     hd[2 * i + 1]);
     }
-    isa_create_simple(isa_bus, "i8042");
+    isa_create_simple(isa_bus, TYPE_I8042);
 
     cpu = POWERPC_CPU(first_cpu);
     sysctrl->reset_irq = cpu->env.irq_inputs[PPC6xx_INPUT_HRESET];
@@ -771,7 +772,7 @@ static void ibm_40p_init(MachineState *machine)
 
     /* add some more devices */
     if (defaults_enabled()) {
-        isa_create_simple(isa_bus, "i8042");
+        isa_create_simple(isa_bus, TYPE_I8042);
         m48t59 = NVRAM(isa_create_simple(isa_bus, "isa-m48t59"));
 
         dev = DEVICE(isa_create(isa_bus, "cs4231a"));
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 0ca0243821..2044a52ded 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -36,6 +36,7 @@
 #include "hw/char/serial.h"
 #include "hw/char/parallel.h"
 #include "hw/timer/m48t59.h"
+#include "hw/input/i8042.h"
 #include "hw/block/fdc.h"
 #include "net/net.h"
 #include "qemu/timer.h"
diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
index db26959a1d..830fe3face 100644
--- a/hw/unicore32/puv3.c
+++ b/hw/unicore32/puv3.c
@@ -20,6 +20,7 @@
 
 #undef DEBUG_PUV3
 #include "hw/unicore32/puv3.h"
+#include "hw/input/i8042.h"
 
 #define KERNEL_LOAD_ADDR        0x03000000
 #define KERNEL_MAX_SIZE         0x00800000 /* Just a guess */
diff --git a/MAINTAINERS b/MAINTAINERS
index 335c6c9f65..6622efc1da 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -931,6 +931,7 @@ F: include/hw/display/vga.h
 F: include/hw/char/parallel.h
 F: include/hw/dma/i8257.h
 F: include/hw/i2c/pm_smbus.h
+F: include/hw/input/i8042.h
 F: include/hw/timer/hpet.h
 F: include/hw/timer/i8254*
 F: include/hw/timer/mc146818rtc*
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 04/25] MAINTAINERS: Fix the PC87312 include path
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (2 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO Philippe Mathieu-Daudé
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao

Missed while moving it in 0d09e41a51aa.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 MAINTAINERS | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 6622efc1da..212eaa836a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -765,9 +765,10 @@ F: hw/ppc/prep_systemio.c
 F: hw/ppc/rs6000_mc.c
 F: hw/pci-host/prep.[hc]
 F: hw/isa/i82378.c
-F: hw/isa/pc87312.[hc]
+F: hw/isa/pc87312.c
 F: hw/dma/i82374.c
 F: hw/timer/m48t59-isa.c
+F: include/hw/isa/pc87312.h
 F: include/hw/timer/m48t59.h
 F: pc-bios/ppc_rom.bin
 
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (3 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 04/25] MAINTAINERS: Fix the PC87312 include path Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-09 10:33   ` Mark Cave-Ayland
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 06/25] hw/isa/pc87312: Use uint16_t for the ISA I/O base address Philippe Mathieu-Daudé
                   ` (19 subsequent siblings)
  24 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth, Laurent Vivier
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, David Gibson, Alexander Graf,
	open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au> (hw/ppc)
---
 include/hw/isa/pc87312.h | 4 ++--
 hw/isa/pc87312.c         | 2 +-
 hw/ppc/prep.c            | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index bf74470d40..710eb1c807 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -28,8 +28,8 @@
 #include "hw/isa/isa.h"
 
 
-#define TYPE_PC87312 "pc87312"
-#define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312)
+#define TYPE_PC87312_SUPERIO "pc87312"
+#define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312_SUPERIO)
 
 typedef struct PC87312State {
     ISADevice dev;
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 48b29e3c3c..e9edbc6c50 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -391,7 +391,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo pc87312_type_info = {
-    .name          = TYPE_PC87312,
+    .name          = TYPE_PC87312_SUPERIO,
     .parent        = TYPE_ISA_DEVICE,
     .instance_size = sizeof(PC87312State),
     .instance_init = pc87312_initfn,
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index ae724b0613..610ec7ec32 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -613,7 +613,7 @@ static void ppc_prep_init(MachineState *machine)
     isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(pci), "isa.0"));
 
     /* Super I/O (parallel + serial ports) */
-    isa = isa_create(isa_bus, TYPE_PC87312);
+    isa = isa_create(isa_bus, TYPE_PC87312_SUPERIO);
     dev = DEVICE(isa);
     qdev_prop_set_uint8(dev, "config", 13); /* fdc, ser0, ser1, par0 */
     qdev_init_nofail(dev);
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 06/25] hw/isa/pc87312: Use uint16_t for the ISA I/O base address
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (4 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value Philippe Mathieu-Daudé
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao, open list:PReP

This matches the isa_register_ioport() prototype.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/pc87312.h |  2 +-
 hw/isa/pc87312.c         | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index 710eb1c807..b65b219a8a 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -34,7 +34,7 @@
 typedef struct PC87312State {
     ISADevice dev;
 
-    uint32_t iobase;
+    uint16_t iobase;
     uint8_t config; /* initial configuration */
 
     struct {
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index e9edbc6c50..105c23e680 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -69,9 +69,9 @@ static inline bool is_parallel_enabled(PC87312State *s)
     return s->regs[REG_FER] & FER_PARALLEL_EN;
 }
 
-static const uint32_t parallel_base[] = { 0x378, 0x3bc, 0x278, 0x00 };
+static const uint16_t parallel_base[] = { 0x378, 0x3bc, 0x278, 0x00 };
 
-static inline uint32_t get_parallel_iobase(PC87312State *s)
+static inline uint16_t get_parallel_iobase(PC87312State *s)
 {
     return parallel_base[s->regs[REG_FAR] & FAR_PARALLEL_ADDR];
 }
@@ -92,12 +92,12 @@ static inline uint32_t get_parallel_irq(PC87312State *s)
 
 /* UARTs */
 
-static const uint32_t uart_base[2][4] = {
+static const uint16_t uart_base[2][4] = {
     { 0x3e8, 0x338, 0x2e8, 0x220 },
     { 0x2e8, 0x238, 0x2e0, 0x228 }
 };
 
-static inline uint32_t get_uart_iobase(PC87312State *s, int i)
+static inline uint16_t get_uart_iobase(PC87312State *s, int i)
 {
     int idx;
     idx = (s->regs[REG_FAR] >> (2 * i + 2)) & 0x3;
@@ -130,7 +130,7 @@ static inline bool is_fdc_enabled(PC87312State *s)
     return s->regs[REG_FER] & FER_FDC_EN;
 }
 
-static inline uint32_t get_fdc_iobase(PC87312State *s)
+static inline uint16_t get_fdc_iobase(PC87312State *s)
 {
     return (s->regs[REG_FER] & FER_FDC_ADDR) ? 0x370 : 0x3f0;
 }
@@ -143,7 +143,7 @@ static inline bool is_ide_enabled(PC87312State *s)
     return s->regs[REG_FER] & FER_IDE_EN;
 }
 
-static inline uint32_t get_ide_iobase(PC87312State *s)
+static inline uint16_t get_ide_iobase(PC87312State *s)
 {
     return (s->regs[REG_FER] & FER_IDE_ADDR) ? 0x170 : 0x1f0;
 }
@@ -373,7 +373,7 @@ static const VMStateDescription vmstate_pc87312 = {
 };
 
 static Property pc87312_properties[] = {
-    DEFINE_PROP_UINT32("iobase", PC87312State, iobase, 0x398),
+    DEFINE_PROP_UINT16("iobase", PC87312State, iobase, 0x398),
     DEFINE_PROP_UINT8("config", PC87312State, config, 1),
     DEFINE_PROP_END_OF_LIST()
 };
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (5 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 06/25] hw/isa/pc87312: Use uint16_t for the ISA I/O base address Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-09 10:35   ` Mark Cave-Ayland
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 08/25] hw/isa/superio: Add a Super I/O template based on the PC87312 device Philippe Mathieu-Daudé
                   ` (17 subsequent siblings)
  24 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/isa/pc87312.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 105c23e680..fda91fed21 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -76,9 +76,9 @@ static inline uint16_t get_parallel_iobase(PC87312State *s)
     return parallel_base[s->regs[REG_FAR] & FAR_PARALLEL_ADDR];
 }
 
-static const uint32_t parallel_irq[] = { 5, 7, 5, 0 };
+static const unsigned int parallel_irq[] = { 5, 7, 5, 0 };
 
-static inline uint32_t get_parallel_irq(PC87312State *s)
+static inline unsigned int get_parallel_irq(PC87312State *s)
 {
     int idx;
     idx = (s->regs[REG_FAR] & FAR_PARALLEL_ADDR);
@@ -110,7 +110,7 @@ static inline uint16_t get_uart_iobase(PC87312State *s, int i)
     }
 }
 
-static inline uint32_t get_uart_irq(PC87312State *s, int i)
+static inline unsigned int get_uart_irq(PC87312State *s, int i)
 {
     int idx;
     idx = (s->regs[REG_FAR] >> (2 * i + 2)) & 0x3;
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 08/25] hw/isa/superio: Add a Super I/O template based on the PC87312 device
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (6 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 09/25] hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO Philippe Mathieu-Daudé
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/superio.h | 44 ++++++++++++++++++++++++++++++++++++++++++++
 hw/isa/isa-superio.c     | 28 ++++++++++++++++++++++++++++
 MAINTAINERS              |  2 ++
 hw/isa/Makefile.objs     |  1 +
 4 files changed, 75 insertions(+)
 create mode 100644 include/hw/isa/superio.h
 create mode 100644 hw/isa/isa-superio.c

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
new file mode 100644
index 0000000000..cff6ad6c08
--- /dev/null
+++ b/include/hw/isa/superio.h
@@ -0,0 +1,44 @@
+/*
+ * Generic ISA Super I/O
+ *
+ * Copyright (c) 2018 Philippe Mathieu-Daudé
+ *
+ * This code is licensed under the GNU GPLv2 and later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#ifndef HW_ISA_SUPERIO_H
+#define HW_ISA_SUPERIO_H
+
+#include "qemu-common.h"
+#include "sysemu/sysemu.h"
+#include "hw/isa/isa.h"
+
+#define TYPE_ISA_SUPERIO "isa-superio"
+#define ISA_SUPERIO(obj) \
+    OBJECT_CHECK(ISASuperIODevice, (obj), TYPE_ISA_SUPERIO)
+#define ISA_SUPERIO_GET_CLASS(obj) \
+    OBJECT_GET_CLASS(ISASuperIOClass, (obj), TYPE_ISA_SUPERIO)
+#define ISA_SUPERIO_CLASS(klass) \
+    OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO)
+
+typedef struct ISASuperIODevice {
+    ISADevice parent_obj;
+} ISASuperIODevice;
+
+typedef struct ISASuperIOFuncs {
+    size_t count;
+    bool (*is_enabled)(ISASuperIODevice *sio, uint8_t index);
+    uint16_t (*get_iobase)(ISASuperIODevice *sio, uint8_t index);
+    unsigned int (*get_irq)(ISASuperIODevice *sio, uint8_t index);
+    unsigned int (*get_dma)(ISASuperIODevice *sio, uint8_t index);
+} ISASuperIOFuncs;
+
+typedef struct ISASuperIOClass {
+    /*< private >*/
+    ISADeviceClass parent_class;
+    /*< public >*/
+    DeviceRealize parent_realize;
+} ISASuperIOClass;
+
+#endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
new file mode 100644
index 0000000000..14ec16f831
--- /dev/null
+++ b/hw/isa/isa-superio.c
@@ -0,0 +1,28 @@
+/*
+ * Generic ISA Super I/O
+ *
+ * Copyright (c) 2010-2012 Herve Poussineau
+ * Copyright (c) 2011-2012 Andreas Färber
+ * Copyright (c) 2018 Philippe Mathieu-Daudé
+ *
+ * This code is licensed under the GNU GPLv2 and later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#include "qemu/osdep.h"
+#include "hw/isa/superio.h"
+#include "trace.h"
+
+static const TypeInfo isa_superio_type_info = {
+    .name = TYPE_ISA_SUPERIO,
+    .parent = TYPE_ISA_DEVICE,
+    .abstract = true,
+    .class_size = sizeof(ISASuperIOClass),
+};
+
+static void isa_superio_register_types(void)
+{
+    type_register_static(&isa_superio_type_info);
+}
+
+type_init(isa_superio_register_types)
diff --git a/MAINTAINERS b/MAINTAINERS
index 212eaa836a..98a8918c20 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -922,6 +922,7 @@ F: hw/input/pckbd.c
 F: hw/intc/apic*
 F: hw/intc/ioapic*
 F: hw/intc/i8259*
+F: hw/isa/isa-superio.c
 F: hw/misc/debugexit.c
 F: hw/misc/pc-testdev.c
 F: hw/timer/hpet*
@@ -933,6 +934,7 @@ F: include/hw/char/parallel.h
 F: include/hw/dma/i8257.h
 F: include/hw/i2c/pm_smbus.h
 F: include/hw/input/i8042.h
+F: include/hw/isa/superio.h
 F: include/hw/timer/hpet.h
 F: include/hw/timer/i8254*
 F: include/hw/timer/mc146818rtc*
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index fb37c55cf2..cac655ba58 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -1,4 +1,5 @@
 common-obj-$(CONFIG_ISA_BUS) += isa-bus.o
+common-obj-$(CONFIG_ISA_BUS) += isa-superio.o
 common-obj-$(CONFIG_APM) += apm.o
 common-obj-$(CONFIG_I82378) += i82378.o
 common-obj-$(CONFIG_PC87312) += pc87312.o
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 09/25] hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (7 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 08/25] hw/isa/superio: Add a Super I/O template based on the PC87312 device Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 10/25] hw/isa/superio: Factor out the parallel code from pc87312.c Philippe Mathieu-Daudé
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/pc87312.h |  6 ++++--
 hw/isa/pc87312.c         | 11 ++++++++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index b65b219a8a..f3761d6fe1 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -25,14 +25,16 @@
 #ifndef QEMU_PC87312_H
 #define QEMU_PC87312_H
 
-#include "hw/isa/isa.h"
+#include "hw/isa/superio.h"
 
 
 #define TYPE_PC87312_SUPERIO "pc87312"
 #define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312_SUPERIO)
 
 typedef struct PC87312State {
-    ISADevice dev;
+    /*< private >*/
+    ISASuperIODevice parent_dev;
+    /*< public >*/
 
     uint16_t iobase;
     uint8_t config; /* initial configuration */
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index fda91fed21..6b8100ff56 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -270,6 +270,7 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
     ISABus *bus;
     Chardev *chr;
     DriveInfo *drive;
+    Error *local_err = NULL;
     char name[5];
     int i;
 
@@ -279,6 +280,12 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
     isa_register_ioport(isa, &s->io, s->iobase);
     pc87312_hard_reset(s);
 
+    ISA_SUPERIO_GET_CLASS(dev)->parent_realize(dev, &local_err);
+    if (local_err) {
+        error_propagate(errp, local_err);
+        return;
+    }
+
     if (is_parallel_enabled(s)) {
         /* FIXME use a qdev chardev prop instead of parallel_hds[] */
         chr = parallel_hds[0];
@@ -381,7 +388,9 @@ static Property pc87312_properties[] = {
 static void pc87312_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
+    ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass);
 
+    sc->parent_realize = dc->realize;
     dc->realize = pc87312_realize;
     dc->reset = pc87312_reset;
     dc->vmsd = &vmstate_pc87312;
@@ -392,7 +401,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
 
 static const TypeInfo pc87312_type_info = {
     .name          = TYPE_PC87312_SUPERIO,
-    .parent        = TYPE_ISA_DEVICE,
+    .parent        = TYPE_ISA_SUPERIO,
     .instance_size = sizeof(PC87312State),
     .instance_init = pc87312_initfn,
     .class_init    = pc87312_class_init,
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 10/25] hw/isa/superio: Factor out the parallel code from pc87312.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (8 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 09/25] hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 11/25] hw/isa/superio: Factor out the serial " Philippe Mathieu-Daudé
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/pc87312.h |  4 ---
 include/hw/isa/superio.h |  6 +++++
 hw/isa/isa-superio.c     | 65 ++++++++++++++++++++++++++++++++++++++++++++++++
 hw/isa/pc87312.c         | 38 +++++++++++-----------------
 hw/isa/trace-events      |  4 ++-
 5 files changed, 89 insertions(+), 28 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index f3761d6fe1..bcc4578479 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -39,10 +39,6 @@ typedef struct PC87312State {
     uint16_t iobase;
     uint8_t config; /* initial configuration */
 
-    struct {
-        ISADevice *dev;
-    } parallel;
-
     struct {
         ISADevice *dev;
     } uart[2];
diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index cff6ad6c08..e9879cfde1 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -23,7 +23,11 @@
     OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO)
 
 typedef struct ISASuperIODevice {
+    /*< private >*/
     ISADevice parent_obj;
+    /*< public >*/
+
+    ISADevice *parallel[MAX_PARALLEL_PORTS];
 } ISASuperIODevice;
 
 typedef struct ISASuperIOFuncs {
@@ -39,6 +43,8 @@ typedef struct ISASuperIOClass {
     ISADeviceClass parent_class;
     /*< public >*/
     DeviceRealize parent_realize;
+
+    ISASuperIOFuncs parallel;
 } ISASuperIOClass;
 
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 14ec16f831..eb263fcc3a 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -10,14 +10,79 @@
  * SPDX-License-Identifier: GPL-2.0-or-later
  */
 #include "qemu/osdep.h"
+#include "qemu/error-report.h"
+#include "sysemu/sysemu.h"
+#include "chardev/char.h"
 #include "hw/isa/superio.h"
 #include "trace.h"
 
+static void isa_superio_realize(DeviceState *dev, Error **errp)
+{
+    ISASuperIODevice *sio = ISA_SUPERIO(dev);
+    ISASuperIOClass *k = ISA_SUPERIO_GET_CLASS(sio);
+    ISABus *bus = isa_bus_from_device(ISA_DEVICE(dev));
+    ISADevice *isa;
+    DeviceState *d;
+    Chardev *chr;
+    char *name;
+    int i;
+
+    /* Parallel port */
+    for (i = 0; i < k->parallel.count; i++) {
+        if (i >= ARRAY_SIZE(sio->parallel)) {
+            warn_report("superio: ignoring %td parallel controllers",
+                        k->parallel.count - ARRAY_SIZE(sio->parallel));
+            break;
+        }
+        if (!k->parallel.is_enabled || k->parallel.is_enabled(sio, i)) {
+            /* FIXME use a qdev chardev prop instead of parallel_hds[] */
+            chr = parallel_hds[i];
+            if (chr == NULL || chr->be) {
+                name = g_strdup_printf("discarding-parallel%d", i);
+                chr = qemu_chr_new(name, "null");
+            } else {
+                name = g_strdup_printf("parallel%d", i);
+            }
+            isa = isa_create(bus, "isa-parallel");
+            d = DEVICE(isa);
+            qdev_prop_set_uint32(d, "index", i);
+            if (k->parallel.get_iobase) {
+                qdev_prop_set_uint32(d, "iobase",
+                                     k->parallel.get_iobase(sio, i));
+            }
+            if (k->parallel.get_irq) {
+                qdev_prop_set_uint32(d, "irq", k->parallel.get_irq(sio, i));
+            }
+            qdev_prop_set_chr(d, "chardev", chr);
+            qdev_init_nofail(d);
+            sio->parallel[i] = isa;
+            trace_superio_create_parallel(i,
+                                          k->parallel.get_iobase ?
+                                          k->parallel.get_iobase(sio, i) : -1,
+                                          k->parallel.get_irq ?
+                                          k->parallel.get_irq(sio, i) : -1);
+            object_property_add_child(OBJECT(dev), name,
+                                      OBJECT(sio->parallel[i]), NULL);
+            g_free(name);
+        }
+    }
+}
+
+static void isa_superio_class_init(ObjectClass *oc, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(oc);
+
+    dc->realize = isa_superio_realize;
+    /* Reason: Uses parallel_hds[0] in realize(), so it can't be used twice */
+    dc->user_creatable = false;
+}
+
 static const TypeInfo isa_superio_type_info = {
     .name = TYPE_ISA_SUPERIO,
     .parent = TYPE_ISA_DEVICE,
     .abstract = true,
     .class_size = sizeof(ISASuperIOClass),
+    .class_init = isa_superio_class_init,
 };
 
 static void isa_superio_register_types(void)
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 6b8100ff56..1c15715c69 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -64,22 +64,25 @@
 
 /* Parallel port */
 
-static inline bool is_parallel_enabled(PC87312State *s)
+static bool is_parallel_enabled(ISASuperIODevice *sio, uint8_t index)
 {
-    return s->regs[REG_FER] & FER_PARALLEL_EN;
+    PC87312State *s = PC87312(sio);
+    return index ? false : s->regs[REG_FER] & FER_PARALLEL_EN;
 }
 
 static const uint16_t parallel_base[] = { 0x378, 0x3bc, 0x278, 0x00 };
 
-static inline uint16_t get_parallel_iobase(PC87312State *s)
+static uint16_t get_parallel_iobase(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
     return parallel_base[s->regs[REG_FAR] & FAR_PARALLEL_ADDR];
 }
 
 static const unsigned int parallel_irq[] = { 5, 7, 5, 0 };
 
-static inline unsigned int get_parallel_irq(PC87312State *s)
+static unsigned int get_parallel_irq(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
     int idx;
     idx = (s->regs[REG_FAR] & FAR_PARALLEL_ADDR);
     if (idx == 0) {
@@ -286,24 +289,6 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
         return;
     }
 
-    if (is_parallel_enabled(s)) {
-        /* FIXME use a qdev chardev prop instead of parallel_hds[] */
-        chr = parallel_hds[0];
-        if (chr == NULL) {
-            chr = qemu_chr_new("par0", "null");
-        }
-        isa = isa_create(bus, "isa-parallel");
-        d = DEVICE(isa);
-        qdev_prop_set_uint32(d, "index", 0);
-        qdev_prop_set_uint32(d, "iobase", get_parallel_iobase(s));
-        qdev_prop_set_uint32(d, "irq", get_parallel_irq(s));
-        qdev_prop_set_chr(d, "chardev", chr);
-        qdev_init_nofail(d);
-        s->parallel.dev = isa;
-        trace_pc87312_info_parallel(get_parallel_iobase(s),
-                                    get_parallel_irq(s));
-    }
-
     for (i = 0; i < 2; i++) {
         if (is_uart_enabled(s, i)) {
             /* FIXME use a qdev chardev prop instead of serial_hds[] */
@@ -395,8 +380,15 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
     dc->reset = pc87312_reset;
     dc->vmsd = &vmstate_pc87312;
     dc->props = pc87312_properties;
-    /* Reason: Uses parallel_hds[0] in realize(), so it can't be used twice */
+    /* Reason: Uses serial_hds[0] in realize(), so it can't be used twice */
     dc->user_creatable = false;
+
+    sc->parallel = (ISASuperIOFuncs){
+        .count = 1,
+        .is_enabled = is_parallel_enabled,
+        .get_iobase = get_parallel_iobase,
+        .get_irq    = get_parallel_irq,
+    };
 }
 
 static const TypeInfo pc87312_type_info = {
diff --git a/hw/isa/trace-events b/hw/isa/trace-events
index a4ab4e3634..97b1949981 100644
--- a/hw/isa/trace-events
+++ b/hw/isa/trace-events
@@ -1,9 +1,11 @@
 # See docs/devel/tracing.txt for syntax documentation.
 
+# hw/isa/isa-superio.c
+superio_create_parallel(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
+
 # hw/isa/pc87312.c
 pc87312_io_read(uint32_t addr, uint32_t val) "read addr=0x%x val=0x%x"
 pc87312_io_write(uint32_t addr, uint32_t val) "write addr=0x%x val=0x%x"
 pc87312_info_floppy(uint32_t base) "base 0x%x"
 pc87312_info_ide(uint32_t base) "base 0x%x"
-pc87312_info_parallel(uint32_t base, uint32_t irq) "base 0x%x, irq %u"
 pc87312_info_serial(int n, uint32_t base, uint32_t irq) "id=%d, base 0x%x, irq %u"
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 11/25] hw/isa/superio: Factor out the serial code from pc87312.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (9 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 10/25] hw/isa/superio: Factor out the parallel code from pc87312.c Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 12/25] hw/isa/superio: Factor out the floppy disc controller " Philippe Mathieu-Daudé
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/pc87312.h |  4 ----
 include/hw/isa/superio.h |  2 ++
 hw/isa/isa-superio.c     | 41 +++++++++++++++++++++++++++++++++++++++++
 hw/isa/pc87312.c         | 43 ++++++++++++-------------------------------
 hw/isa/trace-events      |  2 +-
 5 files changed, 56 insertions(+), 36 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index bcc4578479..1480615a2c 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -39,10 +39,6 @@ typedef struct PC87312State {
     uint16_t iobase;
     uint8_t config; /* initial configuration */
 
-    struct {
-        ISADevice *dev;
-    } uart[2];
-
     struct {
         ISADevice *dev;
     } fdc;
diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index e9879cfde1..0b516721c3 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -28,6 +28,7 @@ typedef struct ISASuperIODevice {
     /*< public >*/
 
     ISADevice *parallel[MAX_PARALLEL_PORTS];
+    ISADevice *serial[MAX_SERIAL_PORTS];
 } ISASuperIODevice;
 
 typedef struct ISASuperIOFuncs {
@@ -45,6 +46,7 @@ typedef struct ISASuperIOClass {
     DeviceRealize parent_realize;
 
     ISASuperIOFuncs parallel;
+    ISASuperIOFuncs serial;
 } ISASuperIOClass;
 
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index eb263fcc3a..6962421aad 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -14,6 +14,7 @@
 #include "sysemu/sysemu.h"
 #include "chardev/char.h"
 #include "hw/isa/superio.h"
+#include "hw/char/serial.h"
 #include "trace.h"
 
 static void isa_superio_realize(DeviceState *dev, Error **errp)
@@ -66,6 +67,46 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
             g_free(name);
         }
     }
+
+    /* Serial */
+    for (i = 0; i < k->serial.count; i++) {
+        if (i >= ARRAY_SIZE(sio->serial)) {
+            warn_report("superio: ignoring %td serial controllers",
+                        k->serial.count - ARRAY_SIZE(sio->serial));
+            break;
+        }
+        if (!k->serial.is_enabled || k->serial.is_enabled(sio, i)) {
+            /* FIXME use a qdev chardev prop instead of serial_hds[] */
+            chr = serial_hds[i];
+            if (chr == NULL || chr->be) {
+                name = g_strdup_printf("discarding-serial%d", i);
+                chr = qemu_chr_new(name, "null");
+            } else {
+                name = g_strdup_printf("serial%d", i);
+            }
+            isa = isa_create(bus, TYPE_ISA_SERIAL);
+            d = DEVICE(isa);
+            qdev_prop_set_uint32(d, "index", i);
+            if (k->serial.get_iobase) {
+                qdev_prop_set_uint32(d, "iobase",
+                                     k->serial.get_iobase(sio, i));
+            }
+            if (k->serial.get_irq) {
+                qdev_prop_set_uint32(d, "irq", k->serial.get_irq(sio, i));
+            }
+            qdev_prop_set_chr(d, "chardev", chr);
+            qdev_init_nofail(d);
+            sio->serial[i] = isa;
+            trace_superio_create_serial(i,
+                                        k->serial.get_iobase ?
+                                        k->serial.get_iobase(sio, i) : -1,
+                                        k->serial.get_irq ?
+                                        k->serial.get_irq(sio, i) : -1);
+            object_property_add_child(OBJECT(dev), name,
+                                      OBJECT(sio->serial[0]), NULL);
+            g_free(name);
+        }
+    }
 }
 
 static void isa_superio_class_init(ObjectClass *oc, void *data)
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 1c15715c69..c2837bca43 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -29,8 +29,6 @@
 #include "qemu/error-report.h"
 #include "sysemu/block-backend.h"
 #include "sysemu/blockdev.h"
-#include "sysemu/sysemu.h"
-#include "chardev/char.h"
 #include "trace.h"
 
 
@@ -100,8 +98,9 @@ static const uint16_t uart_base[2][4] = {
     { 0x2e8, 0x238, 0x2e0, 0x228 }
 };
 
-static inline uint16_t get_uart_iobase(PC87312State *s, int i)
+static uint16_t get_uart_iobase(ISASuperIODevice *sio, uint8_t i)
 {
+    PC87312State *s = PC87312(sio);
     int idx;
     idx = (s->regs[REG_FAR] >> (2 * i + 2)) & 0x3;
     if (idx == 0) {
@@ -113,15 +112,17 @@ static inline uint16_t get_uart_iobase(PC87312State *s, int i)
     }
 }
 
-static inline unsigned int get_uart_irq(PC87312State *s, int i)
+static unsigned int get_uart_irq(ISASuperIODevice *sio, uint8_t i)
 {
+    PC87312State *s = PC87312(sio);
     int idx;
     idx = (s->regs[REG_FAR] >> (2 * i + 2)) & 0x3;
     return (idx & 1) ? 3 : 4;
 }
 
-static inline bool is_uart_enabled(PC87312State *s, int i)
+static bool is_uart_enabled(ISASuperIODevice *sio, uint8_t i)
 {
+    PC87312State *s = PC87312(sio);
     return s->regs[REG_FER] & (FER_UART1_EN << i);
 }
 
@@ -271,11 +272,8 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
     DeviceState *d;
     ISADevice *isa;
     ISABus *bus;
-    Chardev *chr;
     DriveInfo *drive;
     Error *local_err = NULL;
-    char name[5];
-    int i;
 
     s = PC87312(dev);
     isa = ISA_DEVICE(dev);
@@ -289,27 +287,6 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
         return;
     }
 
-    for (i = 0; i < 2; i++) {
-        if (is_uart_enabled(s, i)) {
-            /* FIXME use a qdev chardev prop instead of serial_hds[] */
-            chr = serial_hds[i];
-            if (chr == NULL) {
-                snprintf(name, sizeof(name), "ser%d", i);
-                chr = qemu_chr_new(name, "null");
-            }
-            isa = isa_create(bus, "isa-serial");
-            d = DEVICE(isa);
-            qdev_prop_set_uint32(d, "index", i);
-            qdev_prop_set_uint32(d, "iobase", get_uart_iobase(s, i));
-            qdev_prop_set_uint32(d, "irq", get_uart_irq(s, i));
-            qdev_prop_set_chr(d, "chardev", chr);
-            qdev_init_nofail(d);
-            s->uart[i].dev = isa;
-            trace_pc87312_info_serial(i, get_uart_iobase(s, i),
-                                      get_uart_irq(s, i));
-        }
-    }
-
     if (is_fdc_enabled(s)) {
         isa = isa_create(bus, "isa-fdc");
         d = DEVICE(isa);
@@ -380,8 +357,6 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
     dc->reset = pc87312_reset;
     dc->vmsd = &vmstate_pc87312;
     dc->props = pc87312_properties;
-    /* Reason: Uses serial_hds[0] in realize(), so it can't be used twice */
-    dc->user_creatable = false;
 
     sc->parallel = (ISASuperIOFuncs){
         .count = 1,
@@ -389,6 +364,12 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
         .get_iobase = get_parallel_iobase,
         .get_irq    = get_parallel_irq,
     };
+    sc->serial = (ISASuperIOFuncs){
+        .count = 2,
+        .is_enabled = is_uart_enabled,
+        .get_iobase = get_uart_iobase,
+        .get_irq    = get_uart_irq,
+    };
 }
 
 static const TypeInfo pc87312_type_info = {
diff --git a/hw/isa/trace-events b/hw/isa/trace-events
index 97b1949981..c78dd6c353 100644
--- a/hw/isa/trace-events
+++ b/hw/isa/trace-events
@@ -2,10 +2,10 @@
 
 # hw/isa/isa-superio.c
 superio_create_parallel(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
+superio_create_serial(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 
 # hw/isa/pc87312.c
 pc87312_io_read(uint32_t addr, uint32_t val) "read addr=0x%x val=0x%x"
 pc87312_io_write(uint32_t addr, uint32_t val) "write addr=0x%x val=0x%x"
 pc87312_info_floppy(uint32_t base) "base 0x%x"
 pc87312_info_ide(uint32_t base) "base 0x%x"
-pc87312_info_serial(int n, uint32_t base, uint32_t irq) "id=%d, base 0x%x, irq %u"
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 12/25] hw/isa/superio: Factor out the floppy disc controller code from pc87312.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (10 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 11/25] hw/isa/superio: Factor out the serial " Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 13/25] hw/isa/superio: Add a keyboard/mouse controller (8042) Philippe Mathieu-Daudé
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/pc87312.h |  4 ----
 include/hw/isa/superio.h |  2 ++
 hw/isa/isa-superio.c     | 36 ++++++++++++++++++++++++++++++++++++
 hw/isa/pc87312.c         | 46 +++++++++++++++++++---------------------------
 hw/isa/trace-events      |  2 +-
 5 files changed, 58 insertions(+), 32 deletions(-)

diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
index 1480615a2c..e16263d4b1 100644
--- a/include/hw/isa/pc87312.h
+++ b/include/hw/isa/pc87312.h
@@ -39,10 +39,6 @@ typedef struct PC87312State {
     uint16_t iobase;
     uint8_t config; /* initial configuration */
 
-    struct {
-        ISADevice *dev;
-    } fdc;
-
     struct {
         ISADevice *dev;
     } ide;
diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index 0b516721c3..e8007b9eee 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -29,6 +29,7 @@ typedef struct ISASuperIODevice {
 
     ISADevice *parallel[MAX_PARALLEL_PORTS];
     ISADevice *serial[MAX_SERIAL_PORTS];
+    ISADevice *floppy;
 } ISASuperIODevice;
 
 typedef struct ISASuperIOFuncs {
@@ -47,6 +48,7 @@ typedef struct ISASuperIOClass {
 
     ISASuperIOFuncs parallel;
     ISASuperIOFuncs serial;
+    ISASuperIOFuncs floppy;
 } ISASuperIOClass;
 
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 6962421aad..4b5e280b38 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -11,7 +11,10 @@
  */
 #include "qemu/osdep.h"
 #include "qemu/error-report.h"
+#include "qapi/error.h"
 #include "sysemu/sysemu.h"
+#include "sysemu/block-backend.h"
+#include "sysemu/blockdev.h"
 #include "chardev/char.h"
 #include "hw/isa/superio.h"
 #include "hw/char/serial.h"
@@ -25,6 +28,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
     ISADevice *isa;
     DeviceState *d;
     Chardev *chr;
+    DriveInfo *drive;
     char *name;
     int i;
 
@@ -107,6 +111,38 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
             g_free(name);
         }
     }
+
+    /* Floppy disc */
+    if (!k->floppy.is_enabled || k->floppy.is_enabled(sio, 0)) {
+        isa = isa_create(bus, "isa-fdc");
+        d = DEVICE(isa);
+        if (k->floppy.get_iobase) {
+            qdev_prop_set_uint32(d, "iobase", k->floppy.get_iobase(sio, 0));
+        }
+        if (k->floppy.get_irq) {
+            qdev_prop_set_uint32(d, "irq", k->floppy.get_irq(sio, 0));
+        }
+        /* FIXME use a qdev drive property instead of drive_get() */
+        drive = drive_get(IF_FLOPPY, 0, 0);
+        if (drive != NULL) {
+            qdev_prop_set_drive(d, "driveA", blk_by_legacy_dinfo(drive),
+                                &error_fatal);
+        }
+        /* FIXME use a qdev drive property instead of drive_get() */
+        drive = drive_get(IF_FLOPPY, 0, 1);
+        if (drive != NULL) {
+            qdev_prop_set_drive(d, "driveB", blk_by_legacy_dinfo(drive),
+                                &error_fatal);
+        }
+        qdev_init_nofail(d);
+        sio->floppy = isa;
+        trace_superio_create_floppy(0,
+                                    k->floppy.get_iobase ?
+                                    k->floppy.get_iobase(sio, 0) : -1,
+                                    k->floppy.get_irq ?
+                                    k->floppy.get_irq(sio, 0) : -1);
+    }
+
 }
 
 static void isa_superio_class_init(ObjectClass *oc, void *data)
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index c2837bca43..a1845a91c3 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -27,8 +27,6 @@
 #include "hw/isa/pc87312.h"
 #include "qapi/error.h"
 #include "qemu/error-report.h"
-#include "sysemu/block-backend.h"
-#include "sysemu/blockdev.h"
 #include "trace.h"
 
 
@@ -129,16 +127,26 @@ static bool is_uart_enabled(ISASuperIODevice *sio, uint8_t i)
 
 /* Floppy controller */
 
-static inline bool is_fdc_enabled(PC87312State *s)
+static bool is_fdc_enabled(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
+    assert(!index);
     return s->regs[REG_FER] & FER_FDC_EN;
 }
 
-static inline uint16_t get_fdc_iobase(PC87312State *s)
+static uint16_t get_fdc_iobase(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
+    assert(!index);
     return (s->regs[REG_FER] & FER_FDC_ADDR) ? 0x370 : 0x3f0;
 }
 
+static unsigned int get_fdc_irq(ISASuperIODevice *sio, uint8_t index)
+{
+    assert(!index);
+    return 6;
+}
+
 
 /* IDE controller */
 
@@ -272,7 +280,6 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
     DeviceState *d;
     ISADevice *isa;
     ISABus *bus;
-    DriveInfo *drive;
     Error *local_err = NULL;
 
     s = PC87312(dev);
@@ -287,28 +294,6 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
         return;
     }
 
-    if (is_fdc_enabled(s)) {
-        isa = isa_create(bus, "isa-fdc");
-        d = DEVICE(isa);
-        qdev_prop_set_uint32(d, "iobase", get_fdc_iobase(s));
-        qdev_prop_set_uint32(d, "irq", 6);
-        /* FIXME use a qdev drive property instead of drive_get() */
-        drive = drive_get(IF_FLOPPY, 0, 0);
-        if (drive != NULL) {
-            qdev_prop_set_drive(d, "driveA", blk_by_legacy_dinfo(drive),
-                                &error_fatal);
-        }
-        /* FIXME use a qdev drive property instead of drive_get() */
-        drive = drive_get(IF_FLOPPY, 0, 1);
-        if (drive != NULL) {
-            qdev_prop_set_drive(d, "driveB", blk_by_legacy_dinfo(drive),
-                                &error_fatal);
-        }
-        qdev_init_nofail(d);
-        s->fdc.dev = isa;
-        trace_pc87312_info_floppy(get_fdc_iobase(s));
-    }
-
     if (is_ide_enabled(s)) {
         isa = isa_create(bus, "isa-ide");
         d = DEVICE(isa);
@@ -370,6 +355,12 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
         .get_iobase = get_uart_iobase,
         .get_irq    = get_uart_irq,
     };
+    sc->floppy = (ISASuperIOFuncs){
+        .count = 1,
+        .is_enabled = is_fdc_enabled,
+        .get_iobase = get_fdc_iobase,
+        .get_irq    = get_fdc_irq,
+    };
 }
 
 static const TypeInfo pc87312_type_info = {
@@ -378,6 +369,7 @@ static const TypeInfo pc87312_type_info = {
     .instance_size = sizeof(PC87312State),
     .instance_init = pc87312_initfn,
     .class_init    = pc87312_class_init,
+    /* FIXME use a qdev drive property instead of drive_get() */
 };
 
 static void pc87312_register_types(void)
diff --git a/hw/isa/trace-events b/hw/isa/trace-events
index c78dd6c353..8d9900882f 100644
--- a/hw/isa/trace-events
+++ b/hw/isa/trace-events
@@ -3,9 +3,9 @@
 # hw/isa/isa-superio.c
 superio_create_parallel(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 superio_create_serial(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
+superio_create_floppy(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 
 # hw/isa/pc87312.c
 pc87312_io_read(uint32_t addr, uint32_t val) "read addr=0x%x val=0x%x"
 pc87312_io_write(uint32_t addr, uint32_t val) "write addr=0x%x val=0x%x"
-pc87312_info_floppy(uint32_t base) "base 0x%x"
 pc87312_info_ide(uint32_t base) "base 0x%x"
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 13/25] hw/isa/superio: Add a keyboard/mouse controller (8042)
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (11 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 12/25] hw/isa/superio: Factor out the floppy disc controller " Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 14/25] hw/isa/superio: Factor out the IDE code from pc87312.c Philippe Mathieu-Daudé
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth, Laurent Vivier
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, David Gibson, Alexander Graf,
	open list:PReP

Since the PC87312 inherits this abstract model, we remove the I8042
instance in the PREP machine.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
---
 include/hw/isa/superio.h | 1 +
 hw/isa/isa-superio.c     | 3 +++
 hw/ppc/prep.c            | 1 -
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index e8007b9eee..2fc33bf3d3 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -30,6 +30,7 @@ typedef struct ISASuperIODevice {
     ISADevice *parallel[MAX_PARALLEL_PORTS];
     ISADevice *serial[MAX_SERIAL_PORTS];
     ISADevice *floppy;
+    ISADevice *kbc;
 } ISASuperIODevice;
 
 typedef struct ISASuperIOFuncs {
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 4b5e280b38..041b47bdbf 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -17,6 +17,7 @@
 #include "sysemu/blockdev.h"
 #include "chardev/char.h"
 #include "hw/isa/superio.h"
+#include "hw/input/i8042.h"
 #include "hw/char/serial.h"
 #include "trace.h"
 
@@ -143,6 +144,8 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
                                     k->floppy.get_irq(sio, 0) : -1);
     }
 
+    /* Keyboard, mouse */
+    sio->kbc = isa_create_simple(bus, TYPE_I8042);
 }
 
 static void isa_superio_class_init(ObjectClass *oc, void *data)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 610ec7ec32..96d319b87c 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -642,7 +642,6 @@ static void ppc_prep_init(MachineState *machine)
                      hd[2 * i],
 		     hd[2 * i + 1]);
     }
-    isa_create_simple(isa_bus, TYPE_I8042);
 
     cpu = POWERPC_CPU(first_cpu);
     sysctrl->reset_irq = cpu->env.irq_inputs[PPC6xx_INPUT_HRESET];
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 14/25] hw/isa/superio: Factor out the IDE code from pc87312.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (12 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 13/25] hw/isa/superio: Add a keyboard/mouse controller (8042) Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 15/25] hw/mips/malta: Code movement Philippe Mathieu-Daudé
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao, open list:PReP

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/superio.h |  2 ++
 hw/isa/isa-superio.c     | 22 ++++++++++++++++++++++
 hw/isa/pc87312.c         | 36 ++++++++++++++++++++----------------
 hw/isa/trace-events      |  2 +-
 4 files changed, 45 insertions(+), 17 deletions(-)

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index 2fc33bf3d3..3dd5448f8c 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -31,6 +31,7 @@ typedef struct ISASuperIODevice {
     ISADevice *serial[MAX_SERIAL_PORTS];
     ISADevice *floppy;
     ISADevice *kbc;
+    ISADevice *ide;
 } ISASuperIODevice;
 
 typedef struct ISASuperIOFuncs {
@@ -50,6 +51,7 @@ typedef struct ISASuperIOClass {
     ISASuperIOFuncs parallel;
     ISASuperIOFuncs serial;
     ISASuperIOFuncs floppy;
+    ISASuperIOFuncs ide;
 } ISASuperIOClass;
 
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 041b47bdbf..f98711beff 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -146,6 +146,28 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
 
     /* Keyboard, mouse */
     sio->kbc = isa_create_simple(bus, TYPE_I8042);
+
+    /* IDE */
+    if (k->ide.count && (!k->ide.is_enabled || k->ide.is_enabled(sio, 0))) {
+        isa = isa_create(bus, "isa-ide");
+        d = DEVICE(isa);
+        if (k->ide.get_iobase) {
+            qdev_prop_set_uint32(d, "iobase", k->ide.get_iobase(sio, 0));
+        }
+        if (k->ide.get_iobase) {
+            qdev_prop_set_uint32(d, "iobase2", k->ide.get_iobase(sio, 1));
+        }
+        if (k->ide.get_irq) {
+            qdev_prop_set_uint32(d, "irq", k->ide.get_irq(sio, 0));
+        }
+        qdev_init_nofail(d);
+        sio->ide = isa;
+        trace_superio_create_ide(0,
+                                 k->ide.get_iobase ?
+                                 k->ide.get_iobase(sio, 0) : -1,
+                                 k->ide.get_irq ?
+                                 k->ide.get_irq(sio, 0) : -1);
+    }
 }
 
 static void isa_superio_class_init(ObjectClass *oc, void *data)
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index a1845a91c3..5cf64505fe 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -150,16 +150,28 @@ static unsigned int get_fdc_irq(ISASuperIODevice *sio, uint8_t index)
 
 /* IDE controller */
 
-static inline bool is_ide_enabled(PC87312State *s)
+static bool is_ide_enabled(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
+
     return s->regs[REG_FER] & FER_IDE_EN;
 }
 
-static inline uint16_t get_ide_iobase(PC87312State *s)
+static uint16_t get_ide_iobase(ISASuperIODevice *sio, uint8_t index)
 {
+    PC87312State *s = PC87312(sio);
+
+    if (index == 1) {
+        return get_ide_iobase(sio, 0) + 0x206;
+    }
     return (s->regs[REG_FER] & FER_IDE_ADDR) ? 0x170 : 0x1f0;
 }
 
+static unsigned int get_ide_irq(ISASuperIODevice *sio, uint8_t index)
+{
+    assert(index == 0);
+    return 14;
+}
 
 static void reconfigure_devices(PC87312State *s)
 {
@@ -277,14 +289,11 @@ static void pc87312_reset(DeviceState *d)
 static void pc87312_realize(DeviceState *dev, Error **errp)
 {
     PC87312State *s;
-    DeviceState *d;
     ISADevice *isa;
-    ISABus *bus;
     Error *local_err = NULL;
 
     s = PC87312(dev);
     isa = ISA_DEVICE(dev);
-    bus = isa_bus_from_device(isa);
     isa_register_ioport(isa, &s->io, s->iobase);
     pc87312_hard_reset(s);
 
@@ -293,17 +302,6 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
         error_propagate(errp, local_err);
         return;
     }
-
-    if (is_ide_enabled(s)) {
-        isa = isa_create(bus, "isa-ide");
-        d = DEVICE(isa);
-        qdev_prop_set_uint32(d, "iobase", get_ide_iobase(s));
-        qdev_prop_set_uint32(d, "iobase2", get_ide_iobase(s) + 0x206);
-        qdev_prop_set_uint32(d, "irq", 14);
-        qdev_init_nofail(d);
-        s->ide.dev = isa;
-        trace_pc87312_info_ide(get_ide_iobase(s));
-    }
 }
 
 static void pc87312_initfn(Object *obj)
@@ -361,6 +359,12 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
         .get_iobase = get_fdc_iobase,
         .get_irq    = get_fdc_irq,
     };
+    sc->ide = (ISASuperIOFuncs){
+        .count = 1,
+        .is_enabled = is_ide_enabled,
+        .get_iobase = get_ide_iobase,
+        .get_irq    = get_ide_irq,
+    };
 }
 
 static const TypeInfo pc87312_type_info = {
diff --git a/hw/isa/trace-events b/hw/isa/trace-events
index 8d9900882f..80ac6175d6 100644
--- a/hw/isa/trace-events
+++ b/hw/isa/trace-events
@@ -4,8 +4,8 @@
 superio_create_parallel(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 superio_create_serial(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 superio_create_floppy(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
+superio_create_ide(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
 
 # hw/isa/pc87312.c
 pc87312_io_read(uint32_t addr, uint32_t val) "read addr=0x%x val=0x%x"
 pc87312_io_write(uint32_t addr, uint32_t val) "write addr=0x%x val=0x%x"
-pc87312_info_ide(uint32_t base) "base 0x%x"
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 15/25] hw/mips/malta: Code movement
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (13 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 14/25] hw/isa/superio: Factor out the IDE code from pc87312.c Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 16/25] hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c Philippe Mathieu-Daudé
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Yongbok Kim, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Artyom Tarasenko,
	Guan Xuetao

Move the SouthBridge peripherals first, and keep the Super I/O
peripherals last.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/mips/mips_malta.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index cd7bd0eef6..9e0724ca5a 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -1062,10 +1062,6 @@ void mips_malta_init(MachineState *machine)
         memory_region_add_subregion(system_memory, 512 << 20, ram_low_postio);
     }
 
-    /* generate SPD EEPROM data */
-    generate_eeprom_spd(&smbus_eeprom_buf[0 * 256], ram_size);
-    generate_eeprom_serial(&smbus_eeprom_buf[6 * 256]);
-
 #ifdef TARGET_WORDS_BIGENDIAN
     be = 1;
 #else
@@ -1208,15 +1204,19 @@ void mips_malta_init(MachineState *machine)
     pci_create_simple(pci_bus, piix4_devfn + 2, "piix4-usb-uhci");
     smbus = piix4_pm_init(pci_bus, piix4_devfn + 3, 0x1100,
                           isa_get_irq(NULL, 9), NULL, 0, NULL);
-    smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
-    g_free(smbus_eeprom_buf);
     pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
     i8257_dma_init(isa_bus, 0);
+    mc146818_rtc_init(isa_bus, 2000, NULL);
+
+    /* generate SPD EEPROM data */
+    generate_eeprom_spd(&smbus_eeprom_buf[0 * 256], ram_size);
+    generate_eeprom_serial(&smbus_eeprom_buf[6 * 256]);
+    smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
+    g_free(smbus_eeprom_buf);
 
     /* Super I/O */
     isa_create_simple(isa_bus, TYPE_I8042);
 
-    mc146818_rtc_init(isa_bus, 2000, NULL);
     serial_hds_isa_init(isa_bus, 0, 2);
     parallel_hds_isa_init(isa_bus, 1);
 
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 16/25] hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (14 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 15/25] hw/mips/malta: Code movement Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 17/25] hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init() Philippe Mathieu-Daudé
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland, Yongbok Kim,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Eduardo Habkost, Artyom Tarasenko,
	Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/superio.h |  2 ++
 hw/isa/isa-superio.c     | 19 +++++++++++++++++++
 hw/mips/mips_malta.c     | 35 ++++++++++-------------------------
 3 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index 3dd5448f8c..b47aac3cf8 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -54,4 +54,6 @@ typedef struct ISASuperIOClass {
     ISASuperIOFuncs ide;
 } ISASuperIOClass;
 
+#define TYPE_FDC37M81X_SUPERIO  "fdc37m81x-superio"
+
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index f98711beff..b95608a003 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -187,9 +187,28 @@ static const TypeInfo isa_superio_type_info = {
     .class_init = isa_superio_class_init,
 };
 
+/* SMS FDC37M817 Super I/O */
+static void fdc37m81x_class_init(ObjectClass *klass, void *data)
+{
+    ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass);
+
+    sc->serial.count = 2; /* NS16C550A */
+    sc->parallel.count = 1;
+    sc->floppy.count = 1; /* SMSC 82077AA Compatible */
+    sc->ide.count = 0;
+}
+
+static const TypeInfo fdc37m81x_type_info = {
+    .name          = TYPE_FDC37M81X_SUPERIO,
+    .parent        = TYPE_ISA_SUPERIO,
+    .instance_size = sizeof(ISASuperIODevice),
+    .class_init    = fdc37m81x_class_init,
+};
+
 static void isa_superio_register_types(void)
 {
     type_register_static(&isa_superio_type_info);
+    type_register_static(&fdc37m81x_type_info);
 }
 
 type_init(isa_superio_register_types)
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 9e0724ca5a..f6513a4fd5 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -27,14 +27,12 @@
 #include "cpu.h"
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
+#include "hw/isa/superio.h"
 #include "hw/dma/i8257.h"
 #include "hw/char/serial.h"
-#include "hw/char/parallel.h"
-#include "hw/block/fdc.h"
 #include "net/net.h"
 #include "hw/boards.h"
 #include "hw/i2c/smbus.h"
-#include "sysemu/block-backend.h"
 #include "hw/block/flash.h"
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
@@ -47,7 +45,6 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/timer/mc146818rtc.h"
-#include "hw/input/i8042.h"
 #include "hw/timer/i8254.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
@@ -1005,10 +1002,8 @@ void mips_malta_init(MachineState *machine)
     qemu_irq cbus_irq, i8259_irq;
     int piix4_devfn;
     I2CBus *smbus;
-    int i;
     DriveInfo *dinfo;
     DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
-    DriveInfo *fd[MAX_FD];
     int fl_idx = 0;
     int fl_sectors = bios_size >> 16;
     int be;
@@ -1023,15 +1018,6 @@ void mips_malta_init(MachineState *machine)
 
     qdev_init_nofail(dev);
 
-    /* Make sure the first 3 serial ports are associated with a device. */
-    for(i = 0; i < 3; i++) {
-        if (!serial_hds[i]) {
-            char label[32];
-            snprintf(label, sizeof(label), "serial%d", i);
-            serial_hds[i] = qemu_chr_new(label, "null");
-        }
-    }
-
     /* create CPU */
     mips_create_cpu(s, machine->cpu_type, &cbus_irq, &i8259_irq);
 
@@ -1067,7 +1053,14 @@ void mips_malta_init(MachineState *machine)
 #else
     be = 0;
 #endif
+
     /* FPGA */
+
+    /* Make sure the second serial port is associated with a device. */
+    if (!serial_hds[2]) {
+        serial_hds[2] = qemu_chr_new("fpga-uart", "null");
+    }
+
     /* The CBUS UART is attached to the MIPS CPU INT2 pin, ie interrupt 4 */
     malta_fpga_init(system_memory, FPGA_ADDRESS, cbus_irq, serial_hds[2]);
 
@@ -1214,16 +1207,8 @@ void mips_malta_init(MachineState *machine)
     smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
     g_free(smbus_eeprom_buf);
 
-    /* Super I/O */
-    isa_create_simple(isa_bus, TYPE_I8042);
-
-    serial_hds_isa_init(isa_bus, 0, 2);
-    parallel_hds_isa_init(isa_bus, 1);
-
-    for(i = 0; i < MAX_FD; i++) {
-        fd[i] = drive_get(IF_FLOPPY, 0, i);
-    }
-    fdctrl_init_isa(isa_bus, fd);
+    /* Super I/O: SMS FDC37M817 */
+    isa_create_simple(isa_bus, TYPE_FDC37M81X_SUPERIO);
 
     /* Network card */
     network_init(pci_bus);
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 17/25] hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init()
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (15 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 16/25] hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 18/25] hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init() Philippe Mathieu-Daudé
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Yongbok Kim,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/mips/mips_fulong2e.c | 83 ++++++++++++++++++++++++-------------------------
 1 file changed, 41 insertions(+), 42 deletions(-)

diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 9339e02120..ca1f76a724 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -78,8 +78,6 @@
 #define FULONG2E_ATI_SLOT        6
 #define FULONG2E_RTL8139_SLOT    7
 
-static ISADevice *pit;
-
 static struct _loaderparams {
     int ram_size;
     const char *kernel_filename;
@@ -232,11 +230,44 @@ static const uint8_t eeprom_spd[0x80] = {
     0x20,0x30,0x20
 };
 
-/* Audio support */
-static void audio_init (PCIBus *pci_bus)
+static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
+                                       I2CBus **i2c_bus, ISABus **p_isa_bus)
 {
-    vt82c686b_ac97_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 5));
-    vt82c686b_mc97_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 6));
+    qemu_irq *i8259;
+    ISABus *isa_bus;
+    DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
+
+    isa_bus = vt82c686b_init(pci_bus, PCI_DEVFN(slot, 0));
+    if (!isa_bus) {
+        fprintf(stderr, "vt82c686b_init error\n");
+        exit(1);
+    }
+    *p_isa_bus = isa_bus;
+    /* Interrupt controller */
+    /* The 8259 -> IP5  */
+    i8259 = i8259_init(isa_bus, intc);
+    isa_bus_irqs(isa_bus, i8259);
+    /* init other devices */
+    i8254_pit_init(isa_bus, 0x40, 0, NULL);
+    i8257_dma_init(isa_bus, 0);
+
+    ide_drive_get(hd, ARRAY_SIZE(hd));
+    vt82c686b_ide_init(pci_bus, hd, PCI_DEVFN(slot, 1));
+
+    pci_create_simple(pci_bus, PCI_DEVFN(slot, 2), "vt82c686b-usb-uhci");
+    pci_create_simple(pci_bus, PCI_DEVFN(slot, 3), "vt82c686b-usb-uhci");
+
+    *i2c_bus = vt82c686b_pm_init(pci_bus, PCI_DEVFN(slot, 4), 0xeee1, NULL);
+
+    /* Audio support */
+    vt82c686b_ac97_init(pci_bus, PCI_DEVFN(slot, 5));
+    vt82c686b_mc97_init(pci_bus, PCI_DEVFN(slot, 6));
+
+    /* Super I/O */
+    isa_create_simple(isa_bus, TYPE_I8042);
+
+    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
+    parallel_hds_isa_init(isa_bus, 1);
 }
 
 /* Network support */
@@ -269,11 +300,9 @@ static void mips_fulong2e_init(MachineState *machine)
     MemoryRegion *bios = g_new(MemoryRegion, 1);
     long bios_size;
     int64_t kernel_entry;
-    qemu_irq *i8259;
     PCIBus *pci_bus;
     ISABus *isa_bus;
     I2CBus *smbus;
-    DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
     MIPSCPU *cpu;
     CPUMIPSState *env;
 
@@ -335,46 +364,16 @@ static void mips_fulong2e_init(MachineState *machine)
     /* North bridge, Bonito --> IP2 */
     pci_bus = bonito_init((qemu_irq *)&(env->irq[2]));
 
-    /* South bridge */
-    ide_drive_get(hd, ARRAY_SIZE(hd));
-
-    isa_bus = vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 0));
-    if (!isa_bus) {
-        error_report("vt82c686b_init error");
-        exit(1);
-    }
-
-    /* Interrupt controller */
-    /* The 8259 -> IP5  */
-    i8259 = i8259_init(isa_bus, env->irq[5]);
-    isa_bus_irqs(isa_bus, i8259);
-
-    vt82c686b_ide_init(pci_bus, hd, PCI_DEVFN(FULONG2E_VIA_SLOT, 1));
-    pci_create_simple(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 2),
-                      "vt82c686b-usb-uhci");
-    pci_create_simple(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 3),
-                      "vt82c686b-usb-uhci");
+    /* South bridge -> IP5 */
+    vt82c686b_southbridge_init(pci_bus, FULONG2E_VIA_SLOT, env->irq[5],
+                               &smbus, &isa_bus);
 
-    smbus = vt82c686b_pm_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 4),
-                              0xeee1, NULL);
     /* TODO: Populate SPD eeprom data.  */
     smbus_eeprom_init(smbus, 1, eeprom_spd, sizeof(eeprom_spd));
 
-    /* init other devices */
-    pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    i8257_dma_init(isa_bus, 0);
-
-    /* Super I/O */
-    isa_create_simple(isa_bus, TYPE_I8042);
-
     mc146818_rtc_init(isa_bus, 2000, NULL);
 
-    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
-    parallel_hds_isa_init(isa_bus, 1);
-
-    /* Sound card */
-    audio_init(pci_bus);
-    /* Network card */
+    /* Network card: RTL8139D */
     network_init(pci_bus);
 }
 
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 18/25] hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init()
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (16 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 17/25] hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init() Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 19/25] hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO Philippe Mathieu-Daudé
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Yongbok Kim, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Artyom Tarasenko, Guan Xuetao

This function only initialize the ISA bus.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/vt82c686.h | 2 +-
 hw/isa/vt82c686.c         | 2 +-
 hw/mips/mips_fulong2e.c   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/hw/isa/vt82c686.h b/include/hw/isa/vt82c686.h
index 471b5e9e53..db97c8ed7a 100644
--- a/include/hw/isa/vt82c686.h
+++ b/include/hw/isa/vt82c686.h
@@ -2,7 +2,7 @@
 #define HW_VT82C686_H
 
 /* vt82c686.c */
-ISABus *vt82c686b_init(PCIBus * bus, int devfn);
+ISABus *vt82c686b_isa_init(PCIBus * bus, int devfn);
 void vt82c686b_ac97_init(PCIBus *bus, int devfn);
 void vt82c686b_mc97_init(PCIBus *bus, int devfn);
 I2CBus *vt82c686b_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index 070cc1889f..7eaf3c7e8f 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -478,7 +478,7 @@ static void vt82c686b_realize(PCIDevice *d, Error **errp)
     qemu_register_reset(vt82c686b_reset, d);
 }
 
-ISABus *vt82c686b_init(PCIBus *bus, int devfn)
+ISABus *vt82c686b_isa_init(PCIBus *bus, int devfn)
 {
     PCIDevice *d;
 
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index ca1f76a724..9ebc225d3b 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -237,7 +237,7 @@ static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
     ISABus *isa_bus;
     DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
 
-    isa_bus = vt82c686b_init(pci_bus, PCI_DEVFN(slot, 0));
+    isa_bus = vt82c686b_isa_init(pci_bus, PCI_DEVFN(slot, 0));
     if (!isa_bus) {
         fprintf(stderr, "vt82c686b_init error\n");
         exit(1);
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 19/25] hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (17 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 18/25] hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init() Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 20/25] MAINTAINERS: Add entries for the VT82C686B Super I/O Philippe Mathieu-Daudé
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Yongbok Kim, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/vt82c686.h |  2 ++
 hw/isa/vt82c686.c         | 20 ++++++++++++++++++++
 hw/mips/mips_fulong2e.c   | 15 +++------------
 3 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/include/hw/isa/vt82c686.h b/include/hw/isa/vt82c686.h
index db97c8ed7a..c3c2b6e786 100644
--- a/include/hw/isa/vt82c686.h
+++ b/include/hw/isa/vt82c686.h
@@ -1,6 +1,8 @@
 #ifndef HW_VT82C686_H
 #define HW_VT82C686_H
 
+#define TYPE_VT82C686B_SUPERIO "vt82c686b-superio"
+
 /* vt82c686.c */
 ISABus *vt82c686b_isa_init(PCIBus * bus, int devfn);
 void vt82c686b_ac97_init(PCIBus *bus, int devfn);
diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index 7eaf3c7e8f..cff1946232 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -17,6 +17,7 @@
 #include "hw/i2c/smbus.h"
 #include "hw/pci/pci.h"
 #include "hw/isa/isa.h"
+#include "hw/isa/superio.h"
 #include "hw/sysbus.h"
 #include "hw/mips/mips.h"
 #include "hw/isa/apm.h"
@@ -519,11 +520,30 @@ static const TypeInfo via_info = {
     },
 };
 
+static void vt82c686b_superio_class_init(ObjectClass *klass, void *data)
+{
+    ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass);
+
+    sc->serial.count = 2;
+    sc->parallel.count = 1;
+    sc->ide.count = 0;
+    sc->floppy.count = 1;
+}
+
+static const TypeInfo via_superio_info = {
+    .name          = TYPE_VT82C686B_SUPERIO,
+    .parent        = TYPE_ISA_SUPERIO,
+    .instance_size = sizeof(ISASuperIODevice),
+    .class_size    = sizeof(ISASuperIOClass),
+    .class_init    = vt82c686b_superio_class_init,
+};
+
 static void vt82c686b_register_types(void)
 {
     type_register_static(&via_ac97_info);
     type_register_static(&via_mc97_info);
     type_register_static(&via_pm_info);
+    type_register_static(&via_superio_info);
     type_register_static(&via_info);
 }
 
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 9ebc225d3b..d608f17e1e 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -23,9 +23,7 @@
 #include "hw/hw.h"
 #include "hw/i386/pc.h"
 #include "hw/dma/i8257.h"
-#include "hw/char/serial.h"
-#include "hw/char/parallel.h"
-#include "hw/block/fdc.h"
+#include "hw/isa/superio.h"
 #include "net/net.h"
 #include "hw/boards.h"
 #include "hw/i2c/smbus.h"
@@ -34,7 +32,6 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
-#include "sysemu/sysemu.h"
 #include "audio/audio.h"
 #include "qemu/log.h"
 #include "hw/loader.h"
@@ -44,8 +41,6 @@
 #include "hw/isa/vt82c686.h"
 #include "hw/timer/mc146818rtc.h"
 #include "hw/timer/i8254.h"
-#include "hw/input/i8042.h"
-#include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 #include "sysemu/qtest.h"
 #include "qemu/error-report.h"
@@ -250,6 +245,8 @@ static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
     /* init other devices */
     i8254_pit_init(isa_bus, 0x40, 0, NULL);
     i8257_dma_init(isa_bus, 0);
+    /* Super I/O */
+    isa_create_simple(isa_bus, TYPE_VT82C686B_SUPERIO);
 
     ide_drive_get(hd, ARRAY_SIZE(hd));
     vt82c686b_ide_init(pci_bus, hd, PCI_DEVFN(slot, 1));
@@ -262,12 +259,6 @@ static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
     /* Audio support */
     vt82c686b_ac97_init(pci_bus, PCI_DEVFN(slot, 5));
     vt82c686b_mc97_init(pci_bus, PCI_DEVFN(slot, 6));
-
-    /* Super I/O */
-    isa_create_simple(isa_bus, TYPE_I8042);
-
-    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
-    parallel_hds_isa_init(isa_bus, 1);
 }
 
 /* Network support */
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 20/25] MAINTAINERS: Add entries for the VT82C686B Super I/O
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (18 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 19/25] hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 21/25] MAINTAINERS: Split the Alpha TCG/machine section Philippe Mathieu-Daudé
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao

So far, it is only used by the MIPS Fulong 2E mini PC.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 98a8918c20..facdab44e1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -689,6 +689,8 @@ Fulong 2E
 M: Yongbok Kim <yongbok.kim@mips.com>
 S: Odd Fixes
 F: hw/mips/mips_fulong2e.c
+F: hw/isa/vt82c686.c
+F: include/hw/isa/vt82c686.h
 
 Boston
 M: Paul Burton <paul.burton@mips.com>
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 21/25] MAINTAINERS: Split the Alpha TCG/machine section
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (19 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 20/25] MAINTAINERS: Add entries for the VT82C686B Super I/O Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 22/25] hw/isa/superio: Add the SMC FDC37C669 Super I/O Philippe Mathieu-Daudé
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Richard Henderson,
	Aurelien Jarno, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Eduardo Habkost, Hervé Poussineau,
	Marcel Apfelbaum, Mark Cave-Ayland, Alexey Kardashevskiy,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 MAINTAINERS | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index facdab44e1..e806491d6c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -127,7 +127,6 @@ Alpha
 M: Richard Henderson <rth@twiddle.net>
 S: Maintained
 F: target/alpha/
-F: hw/alpha/
 F: tests/tcg/alpha/
 F: disas/alpha.c
 
@@ -402,6 +401,11 @@ F: include/*/*win32*
 X: qga/*win32*
 F: qemu.nsi
 
+Alpha Machines
+M: Richard Henderson <rth@twiddle.net>
+S: Maintained
+F: hw/alpha/
+
 ARM Machines
 ------------
 Allwinner-a10
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 22/25] hw/isa/superio: Add the SMC FDC37C669 Super I/O
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (20 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 21/25] MAINTAINERS: Split the Alpha TCG/machine section Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 23/25] hw/alpha/dp264: Add the ISA DMA controller Philippe Mathieu-Daudé
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Mark Cave-Ayland,
	Alexey Kardashevskiy, Richard Henderson, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Eduardo Habkost, Yongbok Kim, Artyom Tarasenko,
	Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Richard: I added the smc37c669 device in the Alpha machine, since it is the
only user, as Michael previously suggested the non-PC devices should not be
in the "PC chipset" entry which is already big (that's why some devices got
moved from there to MIPS and PPC).

 include/hw/isa/superio.h   |   1 +
 hw/isa/smc37c669-superio.c | 115 +++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS                |   1 +
 hw/isa/Makefile.objs       |   2 +-
 4 files changed, 118 insertions(+), 1 deletion(-)
 create mode 100644 hw/isa/smc37c669-superio.c

diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index b47aac3cf8..f9ba29aa30 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -55,5 +55,6 @@ typedef struct ISASuperIOClass {
 } ISASuperIOClass;
 
 #define TYPE_FDC37M81X_SUPERIO  "fdc37m81x-superio"
+#define TYPE_SMC37C669_SUPERIO  "smc37c669-superio"
 
 #endif /* HW_ISA_SUPERIO_H */
diff --git a/hw/isa/smc37c669-superio.c b/hw/isa/smc37c669-superio.c
new file mode 100644
index 0000000000..aa233c6967
--- /dev/null
+++ b/hw/isa/smc37c669-superio.c
@@ -0,0 +1,115 @@
+/*
+ * SMC FDC37C669 Super I/O controller
+ *
+ * Copyright (c) 2018 Philippe Mathieu-Daudé
+ *
+ * This code is licensed under the GNU GPLv2 and later.
+ * See the COPYING file in the top-level directory.
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "qemu/osdep.h"
+#include "hw/isa/superio.h"
+
+/* UARTs (compatible with NS16450 or PC16550) */
+
+static bool is_serial_enabled(ISASuperIODevice *sio, uint8_t index)
+{
+    return index < 2;
+}
+
+static uint16_t get_serial_iobase(ISASuperIODevice *sio, uint8_t index)
+{
+    return index ? 0x2f8 : 0x3f8;
+}
+
+static unsigned int get_serial_irq(ISASuperIODevice *sio, uint8_t index)
+{
+    return index ? 3 : 4;
+}
+
+/* Parallel port */
+
+static bool is_parallel_enabled(ISASuperIODevice *sio, uint8_t index)
+{
+    return index < 1;
+}
+
+static uint16_t get_parallel_iobase(ISASuperIODevice *sio, uint8_t index)
+{
+    return 0x3bc;
+}
+
+static unsigned int get_parallel_irq(ISASuperIODevice *sio, uint8_t index)
+{
+    return 7;
+}
+
+static unsigned int get_parallel_dma(ISASuperIODevice *sio, uint8_t index)
+{
+    return 3;
+}
+
+/* Diskette controller (Software compatible with the Intel PC8477) */
+
+static bool is_fdc_enabled(ISASuperIODevice *sio, uint8_t index)
+{
+    return index < 1;
+}
+
+static uint16_t get_fdc_iobase(ISASuperIODevice *sio, uint8_t index)
+{
+    return 0x3f0;
+}
+
+static unsigned int get_fdc_irq(ISASuperIODevice *sio, uint8_t index)
+{
+    return 6;
+}
+
+static unsigned int get_fdc_dma(ISASuperIODevice *sio, uint8_t index)
+{
+    return 2;
+}
+
+static void smc37c669_class_init(ObjectClass *klass, void *data)
+{
+    ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass);
+
+    sc->parallel = (ISASuperIOFuncs){
+        .count = 1,
+        .is_enabled = is_parallel_enabled,
+        .get_iobase = get_parallel_iobase,
+        .get_irq    = get_parallel_irq,
+        .get_dma    = get_parallel_dma,
+    };
+    sc->serial = (ISASuperIOFuncs){
+        .count = 2,
+        .is_enabled = is_serial_enabled,
+        .get_iobase = get_serial_iobase,
+        .get_irq    = get_serial_irq,
+    };
+    sc->floppy = (ISASuperIOFuncs){
+        .count = 1,
+        .is_enabled = is_fdc_enabled,
+        .get_iobase = get_fdc_iobase,
+        .get_irq    = get_fdc_irq,
+        .get_dma    = get_fdc_dma,
+    };
+    sc->ide.count = 0;
+}
+
+static const TypeInfo smc37c669_type_info = {
+    .name          = TYPE_SMC37C669_SUPERIO,
+    .parent        = TYPE_ISA_SUPERIO,
+    .instance_size = sizeof(ISASuperIODevice),
+    .class_size    = sizeof(ISASuperIOClass),
+    .class_init    = smc37c669_class_init,
+};
+
+static void smc37c669_register_types(void)
+{
+    type_register_static(&smc37c669_type_info);
+}
+
+type_init(smc37c669_register_types)
diff --git a/MAINTAINERS b/MAINTAINERS
index e806491d6c..db20e52f5d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -405,6 +405,7 @@ Alpha Machines
 M: Richard Henderson <rth@twiddle.net>
 S: Maintained
 F: hw/alpha/
+F: hw/isa/smc37c669-superio.c
 
 ARM Machines
 ------------
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index cac655ba58..83e06f6c04 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -1,5 +1,5 @@
 common-obj-$(CONFIG_ISA_BUS) += isa-bus.o
-common-obj-$(CONFIG_ISA_BUS) += isa-superio.o
+common-obj-$(CONFIG_ISA_BUS) += isa-superio.o smc37c669-superio.o
 common-obj-$(CONFIG_APM) += apm.o
 common-obj-$(CONFIG_I82378) += i82378.o
 common-obj-$(CONFIG_PC87312) += pc87312.o
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 23/25] hw/alpha/dp264: Add the ISA DMA controller
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (21 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 22/25] hw/isa/superio: Add the SMC FDC37C669 Super I/O Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 24/25] hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 25/25] hw/i386/pc: Factor out the superio code Philippe Mathieu-Daudé
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Richard Henderson, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Eduardo Habkost, Mark Cave-Ayland, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 default-configs/alpha-softmmu.mak | 2 ++
 hw/alpha/dp264.c                  | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index e0d75e3058..3740adc5e9 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -4,7 +4,9 @@ include pci.mak
 include usb.mak
 CONFIG_SERIAL=y
 CONFIG_SERIAL_ISA=y
+CONFIG_I82374=y
 CONFIG_I8254=y
+CONFIG_I8257=y
 CONFIG_PCKBD=y
 CONFIG_VGA_CIRRUS=y
 CONFIG_IDE_CORE=y
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index e13cb576fd..ffad678ea7 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -21,6 +21,7 @@
 #include "hw/timer/i8254.h"
 #include "hw/input/i8042.h"
 #include "hw/char/serial.h"
+#include "hw/dma/i8257.h"
 #include "qemu/cutils.h"
 
 #define MAX_IDE_BUS 2
@@ -95,6 +96,9 @@ static void clipper_init(MachineState *machine)
         pci_nic_init_nofail(&nd_table[i], pci_bus, "e1000", NULL);
     }
 
+    /* 2 82C37 (dma) */
+    isa_create_simple(isa_bus, "i82374");
+
     /* IDE disk setup.  */
     {
         DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 24/25] hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (22 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 23/25] hw/alpha/dp264: Add the ISA DMA controller Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 25/25] hw/i386/pc: Factor out the superio code Philippe Mathieu-Daudé
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Richard Henderson, Aurelien Jarno,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Eduardo Habkost, Mark Cave-Ayland, Yongbok Kim,
	Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 default-configs/alpha-softmmu.mak |  3 +++
 hw/alpha/dp264.c                  | 10 ++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
index 3740adc5e9..bbe361f01a 100644
--- a/default-configs/alpha-softmmu.mak
+++ b/default-configs/alpha-softmmu.mak
@@ -7,6 +7,9 @@ CONFIG_SERIAL_ISA=y
 CONFIG_I82374=y
 CONFIG_I8254=y
 CONFIG_I8257=y
+CONFIG_PARALLEL=y
+CONFIG_PARALLEL_ISA=y
+CONFIG_FDC=y
 CONFIG_PCKBD=y
 CONFIG_VGA_CIRRUS=y
 CONFIG_IDE_CORE=y
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index ffad678ea7..80b987f7fb 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -19,8 +19,7 @@
 #include "hw/timer/mc146818rtc.h"
 #include "hw/ide.h"
 #include "hw/timer/i8254.h"
-#include "hw/input/i8042.h"
-#include "hw/char/serial.h"
+#include "hw/isa/superio.h"
 #include "hw/dma/i8257.h"
 #include "qemu/cutils.h"
 
@@ -83,14 +82,10 @@ static void clipper_init(MachineState *machine)
     mc146818_rtc_init(isa_bus, 1900, rtc_irq);
 
     i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    isa_create_simple(isa_bus, TYPE_I8042);
 
     /* VGA setup.  Don't bother loading the bios.  */
     pci_vga_init(pci_bus);
 
-    /* Serial code setup.  */
-    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
-
     /* Network setup.  e1000 is good enough, failing Tulip support.  */
     for (i = 0; i < nb_nics; i++) {
         pci_nic_init_nofail(&nd_table[i], pci_bus, "e1000", NULL);
@@ -99,6 +94,9 @@ static void clipper_init(MachineState *machine)
     /* 2 82C37 (dma) */
     isa_create_simple(isa_bus, "i82374");
 
+    /* Super I/O */
+    isa_create_simple(isa_bus, TYPE_SMC37C669_SUPERIO);
+
     /* IDE disk setup.  */
     {
         DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [Qemu-devel] [PATCH 25/25] hw/i386/pc: Factor out the superio code
  2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
                   ` (23 preceding siblings ...)
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 24/25] hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO Philippe Mathieu-Daudé
@ 2018-03-08 22:39 ` Philippe Mathieu-Daudé
  24 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-08 22:39 UTC (permalink / raw)
  To: Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, Richard Henderson, Mark Cave-Ayland, Eduardo Habkost,
	Yongbok Kim, Artyom Tarasenko, Guan Xuetao

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/i386/pc.c | 72 ++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 41 insertions(+), 31 deletions(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index cdcdfafe8e..20fa62f5d6 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1519,6 +1519,44 @@ static const MemoryRegionOps ioportF0_io_ops = {
     },
 };
 
+static void pc_superio_init(ISABus *isa_bus, bool create_fdctrl, bool no_vmport)
+{
+    int i;
+    DriveInfo *fd[MAX_FD];
+    qemu_irq *a20_line;
+    ISADevice *i8042, *port92, *vmmouse;
+
+    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
+    parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);
+
+    for (i = 0; i < MAX_FD; i++) {
+        fd[i] = drive_get(IF_FLOPPY, 0, i);
+        create_fdctrl |= !!fd[i];
+    }
+    if (create_fdctrl) {
+        fdctrl_init_isa(isa_bus, fd);
+    }
+
+    i8042 = isa_create_simple(isa_bus, "i8042");
+    if (!no_vmport) {
+        vmport_init(isa_bus);
+        vmmouse = isa_try_create(isa_bus, "vmmouse");
+    } else {
+        vmmouse = NULL;
+    }
+    if (vmmouse) {
+        DeviceState *dev = DEVICE(vmmouse);
+        qdev_prop_set_ptr(dev, "ps2_mouse", i8042);
+        qdev_init_nofail(dev);
+    }
+    port92 = isa_create_simple(isa_bus, "port92");
+
+    a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2);
+    i8042_setup_a20_line(i8042, a20_line[0]);
+    port92_init(port92, a20_line[1]);
+    g_free(a20_line);
+}
+
 void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
                           ISADevice **rtc_state,
                           bool create_fdctrl,
@@ -1527,13 +1565,11 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
                           uint32_t hpet_irqs)
 {
     int i;
-    DriveInfo *fd[MAX_FD];
     DeviceState *hpet = NULL;
     int pit_isa_irq = 0;
     qemu_irq pit_alt_irq = NULL;
     qemu_irq rtc_irq = NULL;
-    qemu_irq *a20_line;
-    ISADevice *i8042, *port92, *vmmouse, *pit = NULL;
+    ISADevice *pit = NULL;
     MemoryRegion *ioport80_io = g_new(MemoryRegion, 1);
     MemoryRegion *ioportF0_io = g_new(MemoryRegion, 1);
 
@@ -1590,36 +1626,10 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
         pcspk_init(isa_bus, pit);
     }
 
-    serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
-    parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);
-
-    a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2);
-    i8042 = isa_create_simple(isa_bus, "i8042");
-    i8042_setup_a20_line(i8042, a20_line[0]);
-    if (!no_vmport) {
-        vmport_init(isa_bus);
-        vmmouse = isa_try_create(isa_bus, "vmmouse");
-    } else {
-        vmmouse = NULL;
-    }
-    if (vmmouse) {
-        DeviceState *dev = DEVICE(vmmouse);
-        qdev_prop_set_ptr(dev, "ps2_mouse", i8042);
-        qdev_init_nofail(dev);
-    }
-    port92 = isa_create_simple(isa_bus, "port92");
-    port92_init(port92, a20_line[1]);
-    g_free(a20_line);
-
     i8257_dma_init(isa_bus, 0);
 
-    for(i = 0; i < MAX_FD; i++) {
-        fd[i] = drive_get(IF_FLOPPY, 0, i);
-        create_fdctrl |= !!fd[i];
-    }
-    if (create_fdctrl) {
-        fdctrl_init_isa(isa_bus, fd);
-    }
+    /* Super I/O */
+    pc_superio_init(isa_bus, create_fdctrl, no_vmport);
 }
 
 void pc_nic_init(ISABus *isa_bus, PCIBus *pci_bus)
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c Philippe Mathieu-Daudé
@ 2018-03-09 10:28   ` Mark Cave-Ayland
  0 siblings, 0 replies; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 10:28 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Eduardo Habkost, qemu-devel, Guan Xuetao, Yongbok Kim,
	Artyom Tarasenko, Richard Henderson

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:

> Again... (after 07dc788054d7 and 9157eee1b1c0).
> 
> We now extract the ISA bus specific helpers.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   include/hw/char/parallel.h | 14 ++++++++++++++
>   include/hw/i386/pc.h       |  8 --------
>   hw/char/parallel-isa.c     | 36 ++++++++++++++++++++++++++++++++++++
>   hw/char/parallel.c         |  2 +-
>   hw/i386/pc.c               |  1 +
>   hw/isa/isa-bus.c           | 26 --------------------------
>   hw/mips/mips_fulong2e.c    |  1 +
>   hw/mips/mips_jazz.c        |  1 +
>   hw/mips/mips_malta.c       |  1 +
>   hw/sparc64/sun4u.c         |  1 +
>   MAINTAINERS                |  3 ++-
>   hw/char/Makefile.objs      |  1 +
>   12 files changed, 59 insertions(+), 36 deletions(-)
>   create mode 100644 include/hw/char/parallel.h
>   create mode 100644 hw/char/parallel-isa.c
> 
> diff --git a/include/hw/char/parallel.h b/include/hw/char/parallel.h
> new file mode 100644
> index 0000000000..d6dd62fb9f
> --- /dev/null
> +++ b/include/hw/char/parallel.h
> @@ -0,0 +1,14 @@
> +#ifndef HW_PARALLEL_H
> +#define HW_PARALLEL_H
> +
> +#include "exec/memory.h"
> +#include "hw/isa/isa.h"
> +#include "chardev/char.h"
> +
> +void parallel_hds_isa_init(ISABus *bus, int n);
> +
> +bool parallel_mm_init(MemoryRegion *address_space,
> +                      hwaddr base, int it_shift, qemu_irq irq,
> +                      Chardev *chr);
> +
> +#endif
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index bb49165fe0..f1feb18c3c 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -151,14 +151,6 @@ struct PCMachineClass {
>   #define PC_MACHINE_CLASS(klass) \
>       OBJECT_CLASS_CHECK(PCMachineClass, (klass), TYPE_PC_MACHINE)
>   
> -/* parallel.c */
> -
> -void parallel_hds_isa_init(ISABus *bus, int n);
> -
> -bool parallel_mm_init(MemoryRegion *address_space,
> -                      hwaddr base, int it_shift, qemu_irq irq,
> -                      Chardev *chr);
> -
>   /* i8259.c */
>   
>   extern DeviceState *isa_pic;
> diff --git a/hw/char/parallel-isa.c b/hw/char/parallel-isa.c
> new file mode 100644
> index 0000000000..639e179585
> --- /dev/null
> +++ b/hw/char/parallel-isa.c
> @@ -0,0 +1,36 @@
> +/*
> + * QEMU Parallel PORT (ISA bus helpers)
> + *
> + * Copyright (c) 2003 Fabrice Bellard
> + *
> + * SPDX-License-Identifier: MIT
> + */
> +#include "qemu/osdep.h"
> +#include "sysemu/sysemu.h"
> +#include "hw/isa/isa.h"
> +#include "hw/char/parallel.h"
> +
> +static void parallel_init(ISABus *bus, int index, Chardev *chr)
> +{
> +    DeviceState *dev;
> +    ISADevice *isadev;
> +
> +    isadev = isa_create(bus, "isa-parallel");
> +    dev = DEVICE(isadev);
> +    qdev_prop_set_uint32(dev, "index", index);
> +    qdev_prop_set_chr(dev, "chardev", chr);
> +    qdev_init_nofail(dev);
> +}
> +
> +void parallel_hds_isa_init(ISABus *bus, int n)
> +{
> +    int i;
> +
> +    assert(n <= MAX_PARALLEL_PORTS);
> +
> +    for (i = 0; i < n; i++) {
> +        if (parallel_hds[i]) {
> +            parallel_init(bus, i, parallel_hds[i]);
> +        }
> +    }
> +}
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index f79dc76543..1542d62201 100644
> --- a/hw/char/parallel.c
> +++ b/hw/char/parallel.c
> @@ -28,7 +28,7 @@
>   #include "chardev/char-parallel.h"
>   #include "chardev/char-fe.h"
>   #include "hw/isa/isa.h"
> -#include "hw/i386/pc.h"
> +#include "hw/char/parallel.h"
>   #include "sysemu/sysemu.h"
>   
>   //#define DEBUG_PARALLEL
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 35fcb6efdf..81364932d3 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -26,6 +26,7 @@
>   #include "hw/hw.h"
>   #include "hw/i386/pc.h"
>   #include "hw/char/serial.h"
> +#include "hw/char/parallel.h"
>   #include "hw/i386/apic.h"
>   #include "hw/i386/topology.h"
>   #include "sysemu/cpus.h"
> diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
> index 0f2e426d02..63fa77effc 100644
> --- a/hw/isa/isa-bus.c
> +++ b/hw/isa/isa-bus.c
> @@ -24,7 +24,6 @@
>   #include "hw/sysbus.h"
>   #include "sysemu/sysemu.h"
>   #include "hw/isa/isa.h"
> -#include "hw/i386/pc.h"
>   
>   static ISABus *isabus;
>   
> @@ -288,28 +287,3 @@ MemoryRegion *isa_address_space_io(ISADevice *dev)
>   }
>   
>   type_init(isabus_register_types)
> -
> -static void parallel_init(ISABus *bus, int index, Chardev *chr)
> -{
> -    DeviceState *dev;
> -    ISADevice *isadev;
> -
> -    isadev = isa_create(bus, "isa-parallel");
> -    dev = DEVICE(isadev);
> -    qdev_prop_set_uint32(dev, "index", index);
> -    qdev_prop_set_chr(dev, "chardev", chr);
> -    qdev_init_nofail(dev);
> -}
> -
> -void parallel_hds_isa_init(ISABus *bus, int n)
> -{
> -    int i;
> -
> -    assert(n <= MAX_PARALLEL_PORTS);
> -
> -    for (i = 0; i < n; i++) {
> -        if (parallel_hds[i]) {
> -            parallel_init(bus, i, parallel_hds[i]);
> -        }
> -    }
> -}
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index f68c625666..dc77b55755 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -23,6 +23,7 @@
>   #include "hw/hw.h"
>   #include "hw/i386/pc.h"
>   #include "hw/char/serial.h"
> +#include "hw/char/parallel.h"
>   #include "hw/block/fdc.h"
>   #include "net/net.h"
>   #include "hw/boards.h"
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index b09871a814..b24305b7b4 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -28,6 +28,7 @@
>   #include "hw/mips/cpudevs.h"
>   #include "hw/i386/pc.h"
>   #include "hw/char/serial.h"
> +#include "hw/char/parallel.h"
>   #include "hw/isa/isa.h"
>   #include "hw/block/fdc.h"
>   #include "sysemu/sysemu.h"
> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> index 6f0deb99e7..c74882c7e9 100644
> --- a/hw/mips/mips_malta.c
> +++ b/hw/mips/mips_malta.c
> @@ -28,6 +28,7 @@
>   #include "hw/hw.h"
>   #include "hw/i386/pc.h"
>   #include "hw/char/serial.h"
> +#include "hw/char/parallel.h"
>   #include "hw/block/fdc.h"
>   #include "net/net.h"
>   #include "hw/boards.h"
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index da28ab9413..ceb1ba7eaf 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -34,6 +34,7 @@
>   #include "hw/pci-host/sabre.h"
>   #include "hw/i386/pc.h"
>   #include "hw/char/serial.h"
> +#include "hw/char/parallel.h"
>   #include "hw/timer/m48t59.h"
>   #include "hw/block/fdc.h"
>   #include "net/net.h"
> diff --git a/MAINTAINERS b/MAINTAINERS
> index b7c4130388..c0f1620f3a 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -913,7 +913,7 @@ M: Michael S. Tsirkin <mst@redhat.com>
>   M: Paolo Bonzini <pbonzini@redhat.com>
>   S: Supported
>   F: hw/char/debugcon.c
> -F: hw/char/parallel.c
> +F: hw/char/parallel*
>   F: hw/char/serial*
>   F: hw/dma/i8257*
>   F: hw/i2c/pm_smbus.c
> @@ -928,6 +928,7 @@ F: hw/timer/i8254*
>   F: hw/timer/mc146818rtc*
>   F: hw/watchdog/wdt_ib700.c
>   F: include/hw/display/vga.h
> +F: include/hw/char/parallel.h
>   F: include/hw/i2c/pm_smbus.h
>   F: include/hw/isa/i8257.h
>   F: include/hw/timer/hpet.h
> diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
> index 1bcd37e98d..1b979100b7 100644
> --- a/hw/char/Makefile.objs
> +++ b/hw/char/Makefile.objs
> @@ -1,6 +1,7 @@
>   common-obj-$(CONFIG_IPACK) += ipoctal232.o
>   common-obj-$(CONFIG_ESCC) += escc.o
>   common-obj-$(CONFIG_PARALLEL) += parallel.o
> +common-obj-$(CONFIG_PARALLEL) += parallel-isa.o
>   common-obj-$(CONFIG_PL011) += pl011.o
>   common-obj-$(CONFIG_SERIAL) += serial.o
>   common-obj-$(CONFIG_SERIAL_ISA) += serial-isa.o
> 

For sun4u:

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init() Philippe Mathieu-Daudé
@ 2018-03-09 10:32   ` Mark Cave-Ayland
  2018-03-09 10:43     ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 10:32 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Eduardo Habkost, qemu-devel, open list:PReP, Guan Xuetao,
	Yongbok Kim, Artyom Tarasenko, Richard Henderson

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:

> - Move the header from hw/isa/ to hw/dma/
> - Remove the old i386/pc dependency
> - use a bool type for the high_page_enable argument
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   include/hw/{isa => dma}/i8257.h | 6 ++++++
>   include/hw/isa/isa.h            | 2 --
>   hw/dma/i82374.c                 | 3 ++-
>   hw/dma/i8257.c                  | 4 ++--
>   hw/i386/pc.c                    | 3 ++-
>   hw/mips/mips_fulong2e.c         | 3 ++-
>   hw/mips/mips_jazz.c             | 3 ++-
>   hw/mips/mips_malta.c            | 3 ++-
>   hw/sparc/sun4m.c                | 4 ----
>   hw/sparc64/sun4u.c              | 4 ----
>   MAINTAINERS                     | 2 +-
>   11 files changed, 19 insertions(+), 18 deletions(-)
>   rename include/hw/{isa => dma}/i8257.h (86%)
> 
> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
> similarity index 86%
> rename from include/hw/isa/i8257.h
> rename to include/hw/dma/i8257.h
> index 88a2766a3f..2cab50bb6c 100644
> --- a/include/hw/isa/i8257.h
> +++ b/include/hw/dma/i8257.h
> @@ -1,6 +1,10 @@
>   #ifndef HW_I8257_H
>   #define HW_I8257_H
>   
> +#include "hw/hw.h"
> +#include "hw/isa/isa.h"
> +#include "exec/ioport.h"
> +
>   #define TYPE_I8257 "i8257"
>   
>   typedef struct I8257Regs {
> @@ -40,4 +44,6 @@ typedef struct I8257State {
>       PortioList portio_pageh;
>   } I8257State;
>   
> +void i8257_dma_init(ISABus *bus, bool high_page_enable);
> +
>   #endif
> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
> index 95593408ef..b9dbab24b4 100644
> --- a/include/hw/isa/isa.h
> +++ b/include/hw/isa/isa.h
> @@ -151,6 +151,4 @@ static inline ISABus *isa_bus_from_device(ISADevice *d)
>       return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
>   }
>   
> -/* i8257.c */
> -void DMA_init(ISABus *bus, int high_page_enable);
>   #endif
> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
> index 6c0f975df0..83c87d92e0 100644
> --- a/hw/dma/i82374.c
> +++ b/hw/dma/i82374.c
> @@ -24,6 +24,7 @@
>   
>   #include "qemu/osdep.h"
>   #include "hw/isa/isa.h"
> +#include "hw/dma/i8257.h"
>   
>   #define TYPE_I82374 "i82374"
>   #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error **errp)
>       portio_list_add(&s->port_list, isa_address_space_io(&s->parent_obj),
>                       s->iobase);
>   
> -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
> +    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
>       memset(s->commands, 0, sizeof(s->commands));
>   }
>   
> diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
> index bd23e893bf..52675e97c9 100644
> --- a/hw/dma/i8257.c
> +++ b/hw/dma/i8257.c
> @@ -24,7 +24,7 @@
>   #include "qemu/osdep.h"
>   #include "hw/hw.h"
>   #include "hw/isa/isa.h"
> -#include "hw/isa/i8257.h"
> +#include "hw/dma/i8257.h"
>   #include "qemu/main-loop.h"
>   #include "trace.h"
>   
> @@ -622,7 +622,7 @@ static void i8257_register_types(void)
>   
>   type_init(i8257_register_types)
>   
> -void DMA_init(ISABus *bus, int high_page_enable)
> +void i8257_dma_init(ISABus *bus, bool high_page_enable)
>   {
>       ISADevice *isa1, *isa2;
>       DeviceState *d;
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 81364932d3..ec75b09a8f 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -41,6 +41,7 @@
>   #include "elf.h"
>   #include "multiboot.h"
>   #include "hw/timer/mc146818rtc.h"
> +#include "hw/dma/i8257.h"
>   #include "hw/timer/i8254.h"
>   #include "hw/audio/pcspk.h"
>   #include "hw/pci/msi.h"
> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
>       port92_init(port92, a20_line[1]);
>       g_free(a20_line);
>   
> -    DMA_init(isa_bus, 0);
> +    i8257_dma_init(isa_bus, 0);
>   
>       for(i = 0; i < MAX_FD; i++) {
>           fd[i] = drive_get(IF_FLOPPY, 0, i);
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index dc77b55755..0545fcd899 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -22,6 +22,7 @@
>   #include "qapi/error.h"
>   #include "hw/hw.h"
>   #include "hw/i386/pc.h"
> +#include "hw/dma/i8257.h"
>   #include "hw/char/serial.h"
>   #include "hw/char/parallel.h"
>   #include "hw/block/fdc.h"
> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState *machine)
>   
>       /* init other devices */
>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
> -    DMA_init(isa_bus, 0);
> +    i8257_dma_init(isa_bus, 0);
>   
>       /* Super I/O */
>       isa_create_simple(isa_bus, "i8042");
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index b24305b7b4..827ffdcd4a 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -27,6 +27,7 @@
>   #include "hw/mips/mips.h"
>   #include "hw/mips/cpudevs.h"
>   #include "hw/i386/pc.h"
> +#include "hw/dma/i8257.h"
>   #include "hw/char/serial.h"
>   #include "hw/char/parallel.h"
>   #include "hw/isa/isa.h"
> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
>       /* ISA devices */
>       i8259 = i8259_init(isa_bus, env->irq[4]);
>       isa_bus_irqs(isa_bus, i8259);
> -    DMA_init(isa_bus, 0);
> +    i8257_dma_init(isa_bus, 0);
>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>       pcspk_init(isa_bus, pit);
>   
> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> index c74882c7e9..9cb86c432e 100644
> --- a/hw/mips/mips_malta.c
> +++ b/hw/mips/mips_malta.c
> @@ -27,6 +27,7 @@
>   #include "cpu.h"
>   #include "hw/hw.h"
>   #include "hw/i386/pc.h"
> +#include "hw/dma/i8257.h"
>   #include "hw/char/serial.h"
>   #include "hw/char/parallel.h"
>   #include "hw/block/fdc.h"
> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
>       smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
>       g_free(smbus_eeprom_buf);
>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
> -    DMA_init(isa_bus, 0);
> +    i8257_dma_init(isa_bus, 0);
>   
>       /* Super I/O */
>       isa_create_simple(isa_bus, "i8042");
> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
> index 0f5804b3b4..fa1bfd6c92 100644
> --- a/hw/sparc/sun4m.c
> +++ b/hw/sparc/sun4m.c
> @@ -99,10 +99,6 @@ struct sun4m_hwdef {
>       uint8_t nvram_machine_id;
>   };
>   
> -void DMA_init(ISABus *bus, int high_page_enable)
> -{
> -}
> -
>   static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>                               Error **errp)
>   {
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index ceb1ba7eaf..0ca0243821 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -90,10 +90,6 @@ typedef struct EbusState {
>   #define TYPE_EBUS "ebus"
>   #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
>   
> -void DMA_init(ISABus *bus, int high_page_enable)
> -{
> -}
> -
>   static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>                               Error **errp)
>   {
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c0f1620f3a..335c6c9f65 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
>   F: hw/watchdog/wdt_ib700.c
>   F: include/hw/display/vga.h
>   F: include/hw/char/parallel.h
> +F: include/hw/dma/i8257.h
>   F: include/hw/i2c/pm_smbus.h
> -F: include/hw/isa/i8257.h
>   F: include/hw/timer/hpet.h
>   F: include/hw/timer/i8254*
>   F: include/hw/timer/mc146818rtc*
> 

Presumably these DMA_init() functions have been unused on sun4u/sun4m 
for a while which is why they are being removed? Might be worth a 
mention of this in the commit message.


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h Philippe Mathieu-Daudé
@ 2018-03-09 10:33   ` Mark Cave-Ayland
  0 siblings, 0 replies; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 10:33 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth, Laurent Vivier
  Cc: Alexander Graf, Eduardo Habkost, qemu-devel, open list:PReP,
	David Gibson, Guan Xuetao, Yongbok Kim, Artyom Tarasenko,
	Richard Henderson

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:

> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Acked-by: David Gibson <david@gibson.dropbear.id.au> (hw/ppc)
> ---
>   include/hw/i386/pc.h     |  9 ---------
>   include/hw/input/i8042.h | 24 ++++++++++++++++++++++++
>   hw/alpha/dp264.c         |  3 ++-
>   hw/i386/pc.c             |  1 +
>   hw/i386/vmmouse.c        |  1 +
>   hw/i386/vmport.c         |  1 +
>   hw/input/pckbd.c         |  2 +-
>   hw/mips/mips_fulong2e.c  |  3 ++-
>   hw/mips/mips_jazz.c      |  1 +
>   hw/mips/mips_malta.c     |  3 ++-
>   hw/mips/mips_r4k.c       |  3 ++-
>   hw/ppc/prep.c            |  5 +++--
>   hw/sparc64/sun4u.c       |  1 +
>   hw/unicore32/puv3.c      |  1 +
>   MAINTAINERS              |  1 +
>   15 files changed, 43 insertions(+), 16 deletions(-)
>   create mode 100644 include/hw/input/i8042.h
> 
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index f1feb18c3c..1638618dfc 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -188,15 +188,6 @@ void vmport_register(unsigned char command, VMPortReadFunc *func, void *opaque);
>   void vmmouse_get_data(uint32_t *data);
>   void vmmouse_set_data(const uint32_t *data);
>   
> -/* pckbd.c */
> -#define I8042_A20_LINE "a20"
> -
> -void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
> -                   MemoryRegion *region, ram_addr_t size,
> -                   hwaddr mask);
> -void i8042_isa_mouse_fake_event(void *opaque);
> -void i8042_setup_a20_line(ISADevice *dev, qemu_irq a20_out);
> -
>   /* pc.c */
>   extern int fd_bootchk;
>   
> diff --git a/include/hw/input/i8042.h b/include/hw/input/i8042.h
> new file mode 100644
> index 0000000000..f6ff146364
> --- /dev/null
> +++ b/include/hw/input/i8042.h
> @@ -0,0 +1,24 @@
> +/*
> + * QEMU PS/2 Controller
> + *
> + * Copyright (c) 2003 Fabrice Bellard
> + *
> + * SPDX-License-Identifier: MIT
> + */
> +#ifndef HW_INPUT_I8042_H
> +#define HW_INPUT_I8042_H
> +
> +#include "hw/hw.h"
> +#include "hw/isa/isa.h"
> +
> +#define TYPE_I8042 "i8042"
> +
> +#define I8042_A20_LINE "a20"
> +
> +void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
> +                   MemoryRegion *region, ram_addr_t size,
> +                   hwaddr mask);
> +void i8042_isa_mouse_fake_event(void *opaque);
> +void i8042_setup_a20_line(ISADevice *dev, qemu_irq a20_out);
> +
> +#endif /* HW_INPUT_I8042_H */
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index 766373eec7..e13cb576fd 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -19,6 +19,7 @@
>   #include "hw/timer/mc146818rtc.h"
>   #include "hw/ide.h"
>   #include "hw/timer/i8254.h"
> +#include "hw/input/i8042.h"
>   #include "hw/char/serial.h"
>   #include "qemu/cutils.h"
>   
> @@ -81,7 +82,7 @@ static void clipper_init(MachineState *machine)
>       mc146818_rtc_init(isa_bus, 1900, rtc_irq);
>   
>       i8254_pit_init(isa_bus, 0x40, 0, NULL);
> -    isa_create_simple(isa_bus, "i8042");
> +    isa_create_simple(isa_bus, TYPE_I8042);
>   
>       /* VGA setup.  Don't bother loading the bios.  */
>       pci_vga_init(pci_bus);
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index ec75b09a8f..cdcdfafe8e 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -43,6 +43,7 @@
>   #include "hw/timer/mc146818rtc.h"
>   #include "hw/dma/i8257.h"
>   #include "hw/timer/i8254.h"
> +#include "hw/input/i8042.h"
>   #include "hw/audio/pcspk.h"
>   #include "hw/pci/msi.h"
>   #include "hw/sysbus.h"
> diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
> index 65ef55329e..5d2d278be4 100644
> --- a/hw/i386/vmmouse.c
> +++ b/hw/i386/vmmouse.c
> @@ -25,6 +25,7 @@
>   #include "hw/hw.h"
>   #include "ui/console.h"
>   #include "hw/i386/pc.h"
> +#include "hw/input/i8042.h"
>   #include "hw/qdev.h"
>   
>   /* debug only vmmouse */
> diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
> index 116aa09819..3bf8cfe041 100644
> --- a/hw/i386/vmport.c
> +++ b/hw/i386/vmport.c
> @@ -25,6 +25,7 @@
>   #include "hw/hw.h"
>   #include "hw/isa/isa.h"
>   #include "hw/i386/pc.h"
> +#include "hw/input/i8042.h"
>   #include "sysemu/hw_accel.h"
>   #include "hw/qdev.h"
>   #include "qemu/log.h"
> diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
> index c479f827b6..f17f18e51b 100644
> --- a/hw/input/pckbd.c
> +++ b/hw/input/pckbd.c
> @@ -26,6 +26,7 @@
>   #include "hw/isa/isa.h"
>   #include "hw/i386/pc.h"
>   #include "hw/input/ps2.h"
> +#include "hw/input/i8042.h"
>   #include "sysemu/sysemu.h"
>   
>   /* debug PC keyboard */
> @@ -480,7 +481,6 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
>       qemu_register_reset(kbd_reset, s);
>   }
>   
> -#define TYPE_I8042 "i8042"
>   #define I8042(obj) OBJECT_CHECK(ISAKBDState, (obj), TYPE_I8042)
>   
>   typedef struct ISAKBDState {
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index 0545fcd899..9339e02120 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -44,6 +44,7 @@
>   #include "hw/isa/vt82c686.h"
>   #include "hw/timer/mc146818rtc.h"
>   #include "hw/timer/i8254.h"
> +#include "hw/input/i8042.h"
>   #include "sysemu/blockdev.h"
>   #include "exec/address-spaces.h"
>   #include "sysemu/qtest.h"
> @@ -364,7 +365,7 @@ static void mips_fulong2e_init(MachineState *machine)
>       i8257_dma_init(isa_bus, 0);
>   
>       /* Super I/O */
> -    isa_create_simple(isa_bus, "i8042");
> +    isa_create_simple(isa_bus, TYPE_I8042);
>   
>       mc146818_rtc_init(isa_bus, 2000, NULL);
>   
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index 827ffdcd4a..5abbe30c21 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -43,6 +43,7 @@
>   #include "hw/timer/i8254.h"
>   #include "hw/display/vga.h"
>   #include "hw/audio/pcspk.h"
> +#include "hw/input/i8042.h"
>   #include "sysemu/block-backend.h"
>   #include "hw/sysbus.h"
>   #include "exec/address-spaces.h"
> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> index 9cb86c432e..cd7bd0eef6 100644
> --- a/hw/mips/mips_malta.c
> +++ b/hw/mips/mips_malta.c
> @@ -47,6 +47,7 @@
>   #include "hw/loader.h"
>   #include "elf.h"
>   #include "hw/timer/mc146818rtc.h"
> +#include "hw/input/i8042.h"
>   #include "hw/timer/i8254.h"
>   #include "sysemu/blockdev.h"
>   #include "exec/address-spaces.h"
> @@ -1213,7 +1214,7 @@ void mips_malta_init(MachineState *machine)
>       i8257_dma_init(isa_bus, 0);
>   
>       /* Super I/O */
> -    isa_create_simple(isa_bus, "i8042");
> +    isa_create_simple(isa_bus, TYPE_I8042);
>   
>       mc146818_rtc_init(isa_bus, 2000, NULL);
>       serial_hds_isa_init(isa_bus, 0, 2);
> diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
> index 830ee7732c..aeadc4a340 100644
> --- a/hw/mips/mips_r4k.c
> +++ b/hw/mips/mips_r4k.c
> @@ -28,6 +28,7 @@
>   #include "hw/loader.h"
>   #include "elf.h"
>   #include "hw/timer/mc146818rtc.h"
> +#include "hw/input/i8042.h"
>   #include "hw/timer/i8254.h"
>   #include "sysemu/block-backend.h"
>   #include "exec/address-spaces.h"
> @@ -286,7 +287,7 @@ void mips_r4k_init(MachineState *machine)
>                        hd[MAX_IDE_DEVS * i],
>   		     hd[MAX_IDE_DEVS * i + 1]);
>   
> -    isa_create_simple(isa_bus, "i8042");
> +    isa_create_simple(isa_bus, TYPE_I8042);
>   }
>   
>   static void mips_machine_init(MachineClass *mc)
> diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
> index 096d4d4cfb..ae724b0613 100644
> --- a/hw/ppc/prep.c
> +++ b/hw/ppc/prep.c
> @@ -41,6 +41,7 @@
>   #include "hw/ide.h"
>   #include "hw/loader.h"
>   #include "hw/timer/mc146818rtc.h"
> +#include "hw/input/i8042.h"
>   #include "hw/isa/pc87312.h"
>   #include "hw/net/ne2000-isa.h"
>   #include "sysemu/block-backend.h"
> @@ -641,7 +642,7 @@ static void ppc_prep_init(MachineState *machine)
>                        hd[2 * i],
>   		     hd[2 * i + 1]);
>       }
> -    isa_create_simple(isa_bus, "i8042");
> +    isa_create_simple(isa_bus, TYPE_I8042);
>   
>       cpu = POWERPC_CPU(first_cpu);
>       sysctrl->reset_irq = cpu->env.irq_inputs[PPC6xx_INPUT_HRESET];
> @@ -771,7 +772,7 @@ static void ibm_40p_init(MachineState *machine)
>   
>       /* add some more devices */
>       if (defaults_enabled()) {
> -        isa_create_simple(isa_bus, "i8042");
> +        isa_create_simple(isa_bus, TYPE_I8042);
>           m48t59 = NVRAM(isa_create_simple(isa_bus, "isa-m48t59"));
>   
>           dev = DEVICE(isa_create(isa_bus, "cs4231a"));
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index 0ca0243821..2044a52ded 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -36,6 +36,7 @@
>   #include "hw/char/serial.h"
>   #include "hw/char/parallel.h"
>   #include "hw/timer/m48t59.h"
> +#include "hw/input/i8042.h"
>   #include "hw/block/fdc.h"
>   #include "net/net.h"
>   #include "qemu/timer.h"
> diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
> index db26959a1d..830fe3face 100644
> --- a/hw/unicore32/puv3.c
> +++ b/hw/unicore32/puv3.c
> @@ -20,6 +20,7 @@
>   
>   #undef DEBUG_PUV3
>   #include "hw/unicore32/puv3.h"
> +#include "hw/input/i8042.h"
>   
>   #define KERNEL_LOAD_ADDR        0x03000000
>   #define KERNEL_MAX_SIZE         0x00800000 /* Just a guess */
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 335c6c9f65..6622efc1da 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -931,6 +931,7 @@ F: include/hw/display/vga.h
>   F: include/hw/char/parallel.h
>   F: include/hw/dma/i8257.h
>   F: include/hw/i2c/pm_smbus.h
> +F: include/hw/input/i8042.h
>   F: include/hw/timer/hpet.h
>   F: include/hw/timer/i8254*
>   F: include/hw/timer/mc146818rtc*
> 

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO Philippe Mathieu-Daudé
@ 2018-03-09 10:33   ` Mark Cave-Ayland
  0 siblings, 0 replies; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 10:33 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth, Laurent Vivier
  Cc: Alexander Graf, Eduardo Habkost, qemu-devel, open list:PReP,
	David Gibson, Guan Xuetao, Yongbok Kim, Artyom Tarasenko,
	Richard Henderson

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Acked-by: David Gibson <david@gibson.dropbear.id.au> (hw/ppc)
> ---
>   include/hw/isa/pc87312.h | 4 ++--
>   hw/isa/pc87312.c         | 2 +-
>   hw/ppc/prep.c            | 2 +-
>   3 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/include/hw/isa/pc87312.h b/include/hw/isa/pc87312.h
> index bf74470d40..710eb1c807 100644
> --- a/include/hw/isa/pc87312.h
> +++ b/include/hw/isa/pc87312.h
> @@ -28,8 +28,8 @@
>   #include "hw/isa/isa.h"
>   
>   
> -#define TYPE_PC87312 "pc87312"
> -#define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312)
> +#define TYPE_PC87312_SUPERIO "pc87312"
> +#define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312_SUPERIO)
>   
>   typedef struct PC87312State {
>       ISADevice dev;
> diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
> index 48b29e3c3c..e9edbc6c50 100644
> --- a/hw/isa/pc87312.c
> +++ b/hw/isa/pc87312.c
> @@ -391,7 +391,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
>   }
>   
>   static const TypeInfo pc87312_type_info = {
> -    .name          = TYPE_PC87312,
> +    .name          = TYPE_PC87312_SUPERIO,
>       .parent        = TYPE_ISA_DEVICE,
>       .instance_size = sizeof(PC87312State),
>       .instance_init = pc87312_initfn,
> diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
> index ae724b0613..610ec7ec32 100644
> --- a/hw/ppc/prep.c
> +++ b/hw/ppc/prep.c
> @@ -613,7 +613,7 @@ static void ppc_prep_init(MachineState *machine)
>       isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(pci), "isa.0"));
>   
>       /* Super I/O (parallel + serial ports) */
> -    isa = isa_create(isa_bus, TYPE_PC87312);
> +    isa = isa_create(isa_bus, TYPE_PC87312_SUPERIO);
>       dev = DEVICE(isa);
>       qdev_prop_set_uint8(dev, "config", 13); /* fdc, ser0, ser1, par0 */
>       qdev_init_nofail(dev);
> 

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value
  2018-03-08 22:39 ` [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value Philippe Mathieu-Daudé
@ 2018-03-09 10:35   ` Mark Cave-Ayland
  0 siblings, 0 replies; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 10:35 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Eduardo Habkost, qemu-devel, open list:PReP, Guan Xuetao,
	Yongbok Kim, Artyom Tarasenko, Richard Henderson

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:

> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   hw/isa/pc87312.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
> index 105c23e680..fda91fed21 100644
> --- a/hw/isa/pc87312.c
> +++ b/hw/isa/pc87312.c
> @@ -76,9 +76,9 @@ static inline uint16_t get_parallel_iobase(PC87312State *s)
>       return parallel_base[s->regs[REG_FAR] & FAR_PARALLEL_ADDR];
>   }
>   
> -static const uint32_t parallel_irq[] = { 5, 7, 5, 0 };
> +static const unsigned int parallel_irq[] = { 5, 7, 5, 0 };
>   
> -static inline uint32_t get_parallel_irq(PC87312State *s)
> +static inline unsigned int get_parallel_irq(PC87312State *s)
>   {
>       int idx;
>       idx = (s->regs[REG_FAR] & FAR_PARALLEL_ADDR);
> @@ -110,7 +110,7 @@ static inline uint16_t get_uart_iobase(PC87312State *s, int i)
>       }
>   }
>   
> -static inline uint32_t get_uart_irq(PC87312State *s, int i)
> +static inline unsigned int get_uart_irq(PC87312State *s, int i)
>   {
>       int idx;
>       idx = (s->regs[REG_FAR] >> (2 * i + 2)) & 0x3;
> 

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-09 10:32   ` Mark Cave-Ayland
@ 2018-03-09 10:43     ` Philippe Mathieu-Daudé
  2018-03-09 12:19       ` Mark Cave-Ayland
  0 siblings, 1 reply; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-09 10:43 UTC (permalink / raw)
  To: Mark Cave-Ayland, Michael S . Tsirkin, Paolo Bonzini,
	Hervé Poussineau, Marcel Apfelbaum, Aurelien Jarno,
	Alexey Kardashevskiy, Thomas Huth
  Cc: Eduardo Habkost, qemu-devel, open list:PReP, Guan Xuetao,
	Yongbok Kim, Artyom Tarasenko, Richard Henderson

Hi Mark,

On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote:
> On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:
> 
>> - Move the header from hw/isa/ to hw/dma/
>> - Remove the old i386/pc dependency
>> - use a bool type for the high_page_enable argument
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>   include/hw/{isa => dma}/i8257.h | 6 ++++++
>>   include/hw/isa/isa.h            | 2 --
>>   hw/dma/i82374.c                 | 3 ++-
>>   hw/dma/i8257.c                  | 4 ++--
>>   hw/i386/pc.c                    | 3 ++-
>>   hw/mips/mips_fulong2e.c         | 3 ++-
>>   hw/mips/mips_jazz.c             | 3 ++-
>>   hw/mips/mips_malta.c            | 3 ++-
>>   hw/sparc/sun4m.c                | 4 ----
>>   hw/sparc64/sun4u.c              | 4 ----
>>   MAINTAINERS                     | 2 +-
>>   11 files changed, 19 insertions(+), 18 deletions(-)
>>   rename include/hw/{isa => dma}/i8257.h (86%)
>>
>> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
>> similarity index 86%
>> rename from include/hw/isa/i8257.h
>> rename to include/hw/dma/i8257.h
>> index 88a2766a3f..2cab50bb6c 100644
>> --- a/include/hw/isa/i8257.h
>> +++ b/include/hw/dma/i8257.h
>> @@ -1,6 +1,10 @@
>>   #ifndef HW_I8257_H
>>   #define HW_I8257_H
>>   +#include "hw/hw.h"
>> +#include "hw/isa/isa.h"
>> +#include "exec/ioport.h"
>> +
>>   #define TYPE_I8257 "i8257"
>>     typedef struct I8257Regs {
>> @@ -40,4 +44,6 @@ typedef struct I8257State {
>>       PortioList portio_pageh;
>>   } I8257State;
>>   +void i8257_dma_init(ISABus *bus, bool high_page_enable);
>> +
>>   #endif
>> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
>> index 95593408ef..b9dbab24b4 100644
>> --- a/include/hw/isa/isa.h
>> +++ b/include/hw/isa/isa.h
>> @@ -151,6 +151,4 @@ static inline ISABus
>> *isa_bus_from_device(ISADevice *d)
>>       return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
>>   }
>>   -/* i8257.c */
>> -void DMA_init(ISABus *bus, int high_page_enable);
>>   #endif
>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
>> index 6c0f975df0..83c87d92e0 100644
>> --- a/hw/dma/i82374.c
>> +++ b/hw/dma/i82374.c
>> @@ -24,6 +24,7 @@
>>     #include "qemu/osdep.h"
>>   #include "hw/isa/isa.h"
>> +#include "hw/dma/i8257.h"
>>     #define TYPE_I82374 "i82374"
>>   #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
>> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error
>> **errp)
>>       portio_list_add(&s->port_list,
>> isa_address_space_io(&s->parent_obj),
>>                       s->iobase);
>>   -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
>> +    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
>>       memset(s->commands, 0, sizeof(s->commands));
>>   }
>>   diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
>> index bd23e893bf..52675e97c9 100644
>> --- a/hw/dma/i8257.c
>> +++ b/hw/dma/i8257.c
>> @@ -24,7 +24,7 @@
>>   #include "qemu/osdep.h"
>>   #include "hw/hw.h"
>>   #include "hw/isa/isa.h"
>> -#include "hw/isa/i8257.h"
>> +#include "hw/dma/i8257.h"
>>   #include "qemu/main-loop.h"
>>   #include "trace.h"
>>   @@ -622,7 +622,7 @@ static void i8257_register_types(void)
>>     type_init(i8257_register_types)
>>   -void DMA_init(ISABus *bus, int high_page_enable)
>> +void i8257_dma_init(ISABus *bus, bool high_page_enable)
>>   {
>>       ISADevice *isa1, *isa2;
>>       DeviceState *d;
>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>> index 81364932d3..ec75b09a8f 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -41,6 +41,7 @@
>>   #include "elf.h"
>>   #include "multiboot.h"
>>   #include "hw/timer/mc146818rtc.h"
>> +#include "hw/dma/i8257.h"
>>   #include "hw/timer/i8254.h"
>>   #include "hw/audio/pcspk.h"
>>   #include "hw/pci/msi.h"
>> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus,
>> qemu_irq *gsi,
>>       port92_init(port92, a20_line[1]);
>>       g_free(a20_line);
>>   -    DMA_init(isa_bus, 0);
>> +    i8257_dma_init(isa_bus, 0);
>>         for(i = 0; i < MAX_FD; i++) {
>>           fd[i] = drive_get(IF_FLOPPY, 0, i);
>> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
>> index dc77b55755..0545fcd899 100644
>> --- a/hw/mips/mips_fulong2e.c
>> +++ b/hw/mips/mips_fulong2e.c
>> @@ -22,6 +22,7 @@
>>   #include "qapi/error.h"
>>   #include "hw/hw.h"
>>   #include "hw/i386/pc.h"
>> +#include "hw/dma/i8257.h"
>>   #include "hw/char/serial.h"
>>   #include "hw/char/parallel.h"
>>   #include "hw/block/fdc.h"
>> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState *machine)
>>         /* init other devices */
>>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>> -    DMA_init(isa_bus, 0);
>> +    i8257_dma_init(isa_bus, 0);
>>         /* Super I/O */
>>       isa_create_simple(isa_bus, "i8042");
>> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
>> index b24305b7b4..827ffdcd4a 100644
>> --- a/hw/mips/mips_jazz.c
>> +++ b/hw/mips/mips_jazz.c
>> @@ -27,6 +27,7 @@
>>   #include "hw/mips/mips.h"
>>   #include "hw/mips/cpudevs.h"
>>   #include "hw/i386/pc.h"
>> +#include "hw/dma/i8257.h"
>>   #include "hw/char/serial.h"
>>   #include "hw/char/parallel.h"
>>   #include "hw/isa/isa.h"
>> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
>>       /* ISA devices */
>>       i8259 = i8259_init(isa_bus, env->irq[4]);
>>       isa_bus_irqs(isa_bus, i8259);
>> -    DMA_init(isa_bus, 0);
>> +    i8257_dma_init(isa_bus, 0);
>>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>       pcspk_init(isa_bus, pit);
>>   diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
>> index c74882c7e9..9cb86c432e 100644
>> --- a/hw/mips/mips_malta.c
>> +++ b/hw/mips/mips_malta.c
>> @@ -27,6 +27,7 @@
>>   #include "cpu.h"
>>   #include "hw/hw.h"
>>   #include "hw/i386/pc.h"
>> +#include "hw/dma/i8257.h"
>>   #include "hw/char/serial.h"
>>   #include "hw/char/parallel.h"
>>   #include "hw/block/fdc.h"
>> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
>>       smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
>>       g_free(smbus_eeprom_buf);
>>       pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>> -    DMA_init(isa_bus, 0);
>> +    i8257_dma_init(isa_bus, 0);
>>         /* Super I/O */
>>       isa_create_simple(isa_bus, "i8042");
>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
>> index 0f5804b3b4..fa1bfd6c92 100644
>> --- a/hw/sparc/sun4m.c
>> +++ b/hw/sparc/sun4m.c
>> @@ -99,10 +99,6 @@ struct sun4m_hwdef {
>>       uint8_t nvram_machine_id;
>>   };
>>   -void DMA_init(ISABus *bus, int high_page_enable)
>> -{
>> -}
>> -
>>   static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>                               Error **errp)
>>   {
>> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
>> index ceb1ba7eaf..0ca0243821 100644
>> --- a/hw/sparc64/sun4u.c
>> +++ b/hw/sparc64/sun4u.c
>> @@ -90,10 +90,6 @@ typedef struct EbusState {
>>   #define TYPE_EBUS "ebus"
>>   #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
>>   -void DMA_init(ISABus *bus, int high_page_enable)
>> -{
>> -}
>> -
>>   static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>                               Error **errp)
>>   {
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index c0f1620f3a..335c6c9f65 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
>>   F: hw/watchdog/wdt_ib700.c
>>   F: include/hw/display/vga.h
>>   F: include/hw/char/parallel.h
>> +F: include/hw/dma/i8257.h
>>   F: include/hw/i2c/pm_smbus.h
>> -F: include/hw/isa/i8257.h
>>   F: include/hw/timer/hpet.h
>>   F: include/hw/timer/i8254*
>>   F: include/hw/timer/mc146818rtc*
>>
> 
> Presumably these DMA_init() functions have been unused on sun4u/sun4m
> for a while which is why they are being removed? Might be worth a
> mention of this in the commit message.

Apparently (from git log) once the Sparc machine was copied from the PC
machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in
ba0a71022 but this function was missed. So this function has never been
implemented.

I'll add a comment if I need to respin, or gently add the maintainer to
update the commit message if this series is accepted :)

Thanks!

Phil.

> 
> 
> ATB,
> 
> Mark.
> 

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-09 10:43     ` Philippe Mathieu-Daudé
@ 2018-03-09 12:19       ` Mark Cave-Ayland
  2018-03-09 20:51         ` Artyom Tarasenko
  0 siblings, 1 reply; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-09 12:19 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth
  Cc: Eduardo Habkost, qemu-devel, open list:PReP, Guan Xuetao,
	Yongbok Kim, Artyom Tarasenko, Richard Henderson

On 09/03/18 10:43, Philippe Mathieu-Daudé wrote:
> Hi Mark,
> 
> On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote:
>> On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:
>>
>>> - Move the header from hw/isa/ to hw/dma/
>>> - Remove the old i386/pc dependency
>>> - use a bool type for the high_page_enable argument
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> ---
>>>    include/hw/{isa => dma}/i8257.h | 6 ++++++
>>>    include/hw/isa/isa.h            | 2 --
>>>    hw/dma/i82374.c                 | 3 ++-
>>>    hw/dma/i8257.c                  | 4 ++--
>>>    hw/i386/pc.c                    | 3 ++-
>>>    hw/mips/mips_fulong2e.c         | 3 ++-
>>>    hw/mips/mips_jazz.c             | 3 ++-
>>>    hw/mips/mips_malta.c            | 3 ++-
>>>    hw/sparc/sun4m.c                | 4 ----
>>>    hw/sparc64/sun4u.c              | 4 ----
>>>    MAINTAINERS                     | 2 +-
>>>    11 files changed, 19 insertions(+), 18 deletions(-)
>>>    rename include/hw/{isa => dma}/i8257.h (86%)
>>>
>>> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
>>> similarity index 86%
>>> rename from include/hw/isa/i8257.h
>>> rename to include/hw/dma/i8257.h
>>> index 88a2766a3f..2cab50bb6c 100644
>>> --- a/include/hw/isa/i8257.h
>>> +++ b/include/hw/dma/i8257.h
>>> @@ -1,6 +1,10 @@
>>>    #ifndef HW_I8257_H
>>>    #define HW_I8257_H
>>>    +#include "hw/hw.h"
>>> +#include "hw/isa/isa.h"
>>> +#include "exec/ioport.h"
>>> +
>>>    #define TYPE_I8257 "i8257"
>>>      typedef struct I8257Regs {
>>> @@ -40,4 +44,6 @@ typedef struct I8257State {
>>>        PortioList portio_pageh;
>>>    } I8257State;
>>>    +void i8257_dma_init(ISABus *bus, bool high_page_enable);
>>> +
>>>    #endif
>>> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
>>> index 95593408ef..b9dbab24b4 100644
>>> --- a/include/hw/isa/isa.h
>>> +++ b/include/hw/isa/isa.h
>>> @@ -151,6 +151,4 @@ static inline ISABus
>>> *isa_bus_from_device(ISADevice *d)
>>>        return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
>>>    }
>>>    -/* i8257.c */
>>> -void DMA_init(ISABus *bus, int high_page_enable);
>>>    #endif
>>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
>>> index 6c0f975df0..83c87d92e0 100644
>>> --- a/hw/dma/i82374.c
>>> +++ b/hw/dma/i82374.c
>>> @@ -24,6 +24,7 @@
>>>      #include "qemu/osdep.h"
>>>    #include "hw/isa/isa.h"
>>> +#include "hw/dma/i8257.h"
>>>      #define TYPE_I82374 "i82374"
>>>    #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
>>> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error
>>> **errp)
>>>        portio_list_add(&s->port_list,
>>> isa_address_space_io(&s->parent_obj),
>>>                        s->iobase);
>>>    -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
>>> +    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
>>>        memset(s->commands, 0, sizeof(s->commands));
>>>    }
>>>    diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
>>> index bd23e893bf..52675e97c9 100644
>>> --- a/hw/dma/i8257.c
>>> +++ b/hw/dma/i8257.c
>>> @@ -24,7 +24,7 @@
>>>    #include "qemu/osdep.h"
>>>    #include "hw/hw.h"
>>>    #include "hw/isa/isa.h"
>>> -#include "hw/isa/i8257.h"
>>> +#include "hw/dma/i8257.h"
>>>    #include "qemu/main-loop.h"
>>>    #include "trace.h"
>>>    @@ -622,7 +622,7 @@ static void i8257_register_types(void)
>>>      type_init(i8257_register_types)
>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>> +void i8257_dma_init(ISABus *bus, bool high_page_enable)
>>>    {
>>>        ISADevice *isa1, *isa2;
>>>        DeviceState *d;
>>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>>> index 81364932d3..ec75b09a8f 100644
>>> --- a/hw/i386/pc.c
>>> +++ b/hw/i386/pc.c
>>> @@ -41,6 +41,7 @@
>>>    #include "elf.h"
>>>    #include "multiboot.h"
>>>    #include "hw/timer/mc146818rtc.h"
>>> +#include "hw/dma/i8257.h"
>>>    #include "hw/timer/i8254.h"
>>>    #include "hw/audio/pcspk.h"
>>>    #include "hw/pci/msi.h"
>>> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus,
>>> qemu_irq *gsi,
>>>        port92_init(port92, a20_line[1]);
>>>        g_free(a20_line);
>>>    -    DMA_init(isa_bus, 0);
>>> +    i8257_dma_init(isa_bus, 0);
>>>          for(i = 0; i < MAX_FD; i++) {
>>>            fd[i] = drive_get(IF_FLOPPY, 0, i);
>>> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
>>> index dc77b55755..0545fcd899 100644
>>> --- a/hw/mips/mips_fulong2e.c
>>> +++ b/hw/mips/mips_fulong2e.c
>>> @@ -22,6 +22,7 @@
>>>    #include "qapi/error.h"
>>>    #include "hw/hw.h"
>>>    #include "hw/i386/pc.h"
>>> +#include "hw/dma/i8257.h"
>>>    #include "hw/char/serial.h"
>>>    #include "hw/char/parallel.h"
>>>    #include "hw/block/fdc.h"
>>> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState *machine)
>>>          /* init other devices */
>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>> -    DMA_init(isa_bus, 0);
>>> +    i8257_dma_init(isa_bus, 0);
>>>          /* Super I/O */
>>>        isa_create_simple(isa_bus, "i8042");
>>> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
>>> index b24305b7b4..827ffdcd4a 100644
>>> --- a/hw/mips/mips_jazz.c
>>> +++ b/hw/mips/mips_jazz.c
>>> @@ -27,6 +27,7 @@
>>>    #include "hw/mips/mips.h"
>>>    #include "hw/mips/cpudevs.h"
>>>    #include "hw/i386/pc.h"
>>> +#include "hw/dma/i8257.h"
>>>    #include "hw/char/serial.h"
>>>    #include "hw/char/parallel.h"
>>>    #include "hw/isa/isa.h"
>>> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
>>>        /* ISA devices */
>>>        i8259 = i8259_init(isa_bus, env->irq[4]);
>>>        isa_bus_irqs(isa_bus, i8259);
>>> -    DMA_init(isa_bus, 0);
>>> +    i8257_dma_init(isa_bus, 0);
>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>        pcspk_init(isa_bus, pit);
>>>    diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
>>> index c74882c7e9..9cb86c432e 100644
>>> --- a/hw/mips/mips_malta.c
>>> +++ b/hw/mips/mips_malta.c
>>> @@ -27,6 +27,7 @@
>>>    #include "cpu.h"
>>>    #include "hw/hw.h"
>>>    #include "hw/i386/pc.h"
>>> +#include "hw/dma/i8257.h"
>>>    #include "hw/char/serial.h"
>>>    #include "hw/char/parallel.h"
>>>    #include "hw/block/fdc.h"
>>> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
>>>        smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
>>>        g_free(smbus_eeprom_buf);
>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>> -    DMA_init(isa_bus, 0);
>>> +    i8257_dma_init(isa_bus, 0);
>>>          /* Super I/O */
>>>        isa_create_simple(isa_bus, "i8042");
>>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
>>> index 0f5804b3b4..fa1bfd6c92 100644
>>> --- a/hw/sparc/sun4m.c
>>> +++ b/hw/sparc/sun4m.c
>>> @@ -99,10 +99,6 @@ struct sun4m_hwdef {
>>>        uint8_t nvram_machine_id;
>>>    };
>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>> -{
>>> -}
>>> -
>>>    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>                                Error **errp)
>>>    {
>>> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
>>> index ceb1ba7eaf..0ca0243821 100644
>>> --- a/hw/sparc64/sun4u.c
>>> +++ b/hw/sparc64/sun4u.c
>>> @@ -90,10 +90,6 @@ typedef struct EbusState {
>>>    #define TYPE_EBUS "ebus"
>>>    #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>> -{
>>> -}
>>> -
>>>    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>                                Error **errp)
>>>    {
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index c0f1620f3a..335c6c9f65 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
>>>    F: hw/watchdog/wdt_ib700.c
>>>    F: include/hw/display/vga.h
>>>    F: include/hw/char/parallel.h
>>> +F: include/hw/dma/i8257.h
>>>    F: include/hw/i2c/pm_smbus.h
>>> -F: include/hw/isa/i8257.h
>>>    F: include/hw/timer/hpet.h
>>>    F: include/hw/timer/i8254*
>>>    F: include/hw/timer/mc146818rtc*
>>>
>>
>> Presumably these DMA_init() functions have been unused on sun4u/sun4m
>> for a while which is why they are being removed? Might be worth a
>> mention of this in the commit message.
> 
> Apparently (from git log) once the Sparc machine was copied from the PC
> machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in
> ba0a71022 but this function was missed. So this function has never been
> implemented.
> 
> I'll add a comment if I need to respin, or gently add the maintainer to
> update the commit message if this series is accepted :)
> 
> Thanks!
> 
> Phil.

Got it. In that case for sun4/sun4u:

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-09 12:19       ` Mark Cave-Ayland
@ 2018-03-09 20:51         ` Artyom Tarasenko
  2018-03-10  9:33           ` Mark Cave-Ayland
  0 siblings, 1 reply; 35+ messages in thread
From: Artyom Tarasenko @ 2018-03-09 20:51 UTC (permalink / raw)
  To: Mark Cave-Ayland
  Cc: Philippe Mathieu-Daudé,
	Michael S . Tsirkin, Paolo Bonzini, Hervé Poussineau,
	Marcel Apfelbaum, Aurelien Jarno, Alexey Kardashevskiy,
	Thomas Huth, Eduardo Habkost, qemu-devel, open list:PReP,
	Guan Xuetao, Yongbok Kim, Richard Henderson

On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
> On 09/03/18 10:43, Philippe Mathieu-Daudé wrote:
>>
>> Hi Mark,
>>
>> On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote:
>>>
>>> On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:
>>>
>>>> - Move the header from hw/isa/ to hw/dma/
>>>> - Remove the old i386/pc dependency
>>>> - use a bool type for the high_page_enable argument
>>>>
>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>> ---
>>>>    include/hw/{isa => dma}/i8257.h | 6 ++++++
>>>>    include/hw/isa/isa.h            | 2 --
>>>>    hw/dma/i82374.c                 | 3 ++-
>>>>    hw/dma/i8257.c                  | 4 ++--
>>>>    hw/i386/pc.c                    | 3 ++-
>>>>    hw/mips/mips_fulong2e.c         | 3 ++-
>>>>    hw/mips/mips_jazz.c             | 3 ++-
>>>>    hw/mips/mips_malta.c            | 3 ++-
>>>>    hw/sparc/sun4m.c                | 4 ----
>>>>    hw/sparc64/sun4u.c              | 4 ----
>>>>    MAINTAINERS                     | 2 +-
>>>>    11 files changed, 19 insertions(+), 18 deletions(-)
>>>>    rename include/hw/{isa => dma}/i8257.h (86%)
>>>>
>>>> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
>>>> similarity index 86%
>>>> rename from include/hw/isa/i8257.h
>>>> rename to include/hw/dma/i8257.h
>>>> index 88a2766a3f..2cab50bb6c 100644
>>>> --- a/include/hw/isa/i8257.h
>>>> +++ b/include/hw/dma/i8257.h
>>>> @@ -1,6 +1,10 @@
>>>>    #ifndef HW_I8257_H
>>>>    #define HW_I8257_H
>>>>    +#include "hw/hw.h"
>>>> +#include "hw/isa/isa.h"
>>>> +#include "exec/ioport.h"
>>>> +
>>>>    #define TYPE_I8257 "i8257"
>>>>      typedef struct I8257Regs {
>>>> @@ -40,4 +44,6 @@ typedef struct I8257State {
>>>>        PortioList portio_pageh;
>>>>    } I8257State;
>>>>    +void i8257_dma_init(ISABus *bus, bool high_page_enable);
>>>> +
>>>>    #endif
>>>> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
>>>> index 95593408ef..b9dbab24b4 100644
>>>> --- a/include/hw/isa/isa.h
>>>> +++ b/include/hw/isa/isa.h
>>>> @@ -151,6 +151,4 @@ static inline ISABus
>>>> *isa_bus_from_device(ISADevice *d)
>>>>        return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
>>>>    }
>>>>    -/* i8257.c */
>>>> -void DMA_init(ISABus *bus, int high_page_enable);
>>>>    #endif
>>>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
>>>> index 6c0f975df0..83c87d92e0 100644
>>>> --- a/hw/dma/i82374.c
>>>> +++ b/hw/dma/i82374.c
>>>> @@ -24,6 +24,7 @@
>>>>      #include "qemu/osdep.h"
>>>>    #include "hw/isa/isa.h"
>>>> +#include "hw/dma/i8257.h"
>>>>      #define TYPE_I82374 "i82374"
>>>>    #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
>>>> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error
>>>> **errp)
>>>>        portio_list_add(&s->port_list,
>>>> isa_address_space_io(&s->parent_obj),
>>>>                        s->iobase);
>>>>    -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
>>>> +    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
>>>>        memset(s->commands, 0, sizeof(s->commands));
>>>>    }
>>>>    diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
>>>> index bd23e893bf..52675e97c9 100644
>>>> --- a/hw/dma/i8257.c
>>>> +++ b/hw/dma/i8257.c
>>>> @@ -24,7 +24,7 @@
>>>>    #include "qemu/osdep.h"
>>>>    #include "hw/hw.h"
>>>>    #include "hw/isa/isa.h"
>>>> -#include "hw/isa/i8257.h"
>>>> +#include "hw/dma/i8257.h"
>>>>    #include "qemu/main-loop.h"
>>>>    #include "trace.h"
>>>>    @@ -622,7 +622,7 @@ static void i8257_register_types(void)
>>>>      type_init(i8257_register_types)
>>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>>> +void i8257_dma_init(ISABus *bus, bool high_page_enable)
>>>>    {
>>>>        ISADevice *isa1, *isa2;
>>>>        DeviceState *d;
>>>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>>>> index 81364932d3..ec75b09a8f 100644
>>>> --- a/hw/i386/pc.c
>>>> +++ b/hw/i386/pc.c
>>>> @@ -41,6 +41,7 @@
>>>>    #include "elf.h"
>>>>    #include "multiboot.h"
>>>>    #include "hw/timer/mc146818rtc.h"
>>>> +#include "hw/dma/i8257.h"
>>>>    #include "hw/timer/i8254.h"
>>>>    #include "hw/audio/pcspk.h"
>>>>    #include "hw/pci/msi.h"
>>>> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus,
>>>> qemu_irq *gsi,
>>>>        port92_init(port92, a20_line[1]);
>>>>        g_free(a20_line);
>>>>    -    DMA_init(isa_bus, 0);
>>>> +    i8257_dma_init(isa_bus, 0);
>>>>          for(i = 0; i < MAX_FD; i++) {
>>>>            fd[i] = drive_get(IF_FLOPPY, 0, i);
>>>> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
>>>> index dc77b55755..0545fcd899 100644
>>>> --- a/hw/mips/mips_fulong2e.c
>>>> +++ b/hw/mips/mips_fulong2e.c
>>>> @@ -22,6 +22,7 @@
>>>>    #include "qapi/error.h"
>>>>    #include "hw/hw.h"
>>>>    #include "hw/i386/pc.h"
>>>> +#include "hw/dma/i8257.h"
>>>>    #include "hw/char/serial.h"
>>>>    #include "hw/char/parallel.h"
>>>>    #include "hw/block/fdc.h"
>>>> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState
>>>> *machine)
>>>>          /* init other devices */
>>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>> -    DMA_init(isa_bus, 0);
>>>> +    i8257_dma_init(isa_bus, 0);
>>>>          /* Super I/O */
>>>>        isa_create_simple(isa_bus, "i8042");
>>>> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
>>>> index b24305b7b4..827ffdcd4a 100644
>>>> --- a/hw/mips/mips_jazz.c
>>>> +++ b/hw/mips/mips_jazz.c
>>>> @@ -27,6 +27,7 @@
>>>>    #include "hw/mips/mips.h"
>>>>    #include "hw/mips/cpudevs.h"
>>>>    #include "hw/i386/pc.h"
>>>> +#include "hw/dma/i8257.h"
>>>>    #include "hw/char/serial.h"
>>>>    #include "hw/char/parallel.h"
>>>>    #include "hw/isa/isa.h"
>>>> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
>>>>        /* ISA devices */
>>>>        i8259 = i8259_init(isa_bus, env->irq[4]);
>>>>        isa_bus_irqs(isa_bus, i8259);
>>>> -    DMA_init(isa_bus, 0);
>>>> +    i8257_dma_init(isa_bus, 0);
>>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>>        pcspk_init(isa_bus, pit);
>>>>    diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
>>>> index c74882c7e9..9cb86c432e 100644
>>>> --- a/hw/mips/mips_malta.c
>>>> +++ b/hw/mips/mips_malta.c
>>>> @@ -27,6 +27,7 @@
>>>>    #include "cpu.h"
>>>>    #include "hw/hw.h"
>>>>    #include "hw/i386/pc.h"
>>>> +#include "hw/dma/i8257.h"
>>>>    #include "hw/char/serial.h"
>>>>    #include "hw/char/parallel.h"
>>>>    #include "hw/block/fdc.h"
>>>> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
>>>>        smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
>>>>        g_free(smbus_eeprom_buf);
>>>>        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>> -    DMA_init(isa_bus, 0);
>>>> +    i8257_dma_init(isa_bus, 0);
>>>>          /* Super I/O */
>>>>        isa_create_simple(isa_bus, "i8042");
>>>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
>>>> index 0f5804b3b4..fa1bfd6c92 100644
>>>> --- a/hw/sparc/sun4m.c
>>>> +++ b/hw/sparc/sun4m.c
>>>> @@ -99,10 +99,6 @@ struct sun4m_hwdef {
>>>>        uint8_t nvram_machine_id;
>>>>    };
>>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>>> -{
>>>> -}
>>>> -
>>>>    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>>                                Error **errp)
>>>>    {
>>>> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
>>>> index ceb1ba7eaf..0ca0243821 100644
>>>> --- a/hw/sparc64/sun4u.c
>>>> +++ b/hw/sparc64/sun4u.c
>>>> @@ -90,10 +90,6 @@ typedef struct EbusState {
>>>>    #define TYPE_EBUS "ebus"
>>>>    #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
>>>>    -void DMA_init(ISABus *bus, int high_page_enable)
>>>> -{
>>>> -}
>>>> -
>>>>    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>>                                Error **errp)
>>>>    {
>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>> index c0f1620f3a..335c6c9f65 100644
>>>> --- a/MAINTAINERS
>>>> +++ b/MAINTAINERS
>>>> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
>>>>    F: hw/watchdog/wdt_ib700.c
>>>>    F: include/hw/display/vga.h
>>>>    F: include/hw/char/parallel.h
>>>> +F: include/hw/dma/i8257.h
>>>>    F: include/hw/i2c/pm_smbus.h
>>>> -F: include/hw/isa/i8257.h
>>>>    F: include/hw/timer/hpet.h
>>>>    F: include/hw/timer/i8254*
>>>>    F: include/hw/timer/mc146818rtc*
>>>>
>>>
>>> Presumably these DMA_init() functions have been unused on sun4u/sun4m
>>> for a while which is why they are being removed? Might be worth a
>>> mention of this in the commit message.
>>
>>
>> Apparently (from git log) once the Sparc machine was copied from the PC
>> machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in
>> ba0a71022 but this function was missed. So this function has never been
>> implemented.
>>
>> I'll add a comment if I need to respin, or gently add the maintainer to
>> update the commit message if this series is accepted :)
>>
>> Thanks!
>>
>> Phil.
>
>
> Got it. In that case for sun4/sun4u:
>
> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


Out of curiosity, isn't ISA-DMA used by FDthree on Ultra-5/Ultra-10 machines?



-- 
Regards,
Artyom Tarasenko

SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init()
  2018-03-09 20:51         ` Artyom Tarasenko
@ 2018-03-10  9:33           ` Mark Cave-Ayland
  0 siblings, 0 replies; 35+ messages in thread
From: Mark Cave-Ayland @ 2018-03-10  9:33 UTC (permalink / raw)
  To: Artyom Tarasenko
  Cc: open list:PReP, Thomas Huth, Eduardo Habkost,
	Michael S . Tsirkin, Alexey Kardashevskiy,
	Philippe Mathieu-Daudé,
	qemu-devel, Hervé Poussineau, Marcel Apfelbaum,
	Paolo Bonzini, Guan Xuetao, Yongbok Kim, Aurelien Jarno,
	Richard Henderson

On 09/03/18 20:51, Artyom Tarasenko wrote:

> On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland
> <mark.cave-ayland@ilande.co.uk> wrote:
>> On 09/03/18 10:43, Philippe Mathieu-Daudé wrote:
>>>
>>> Hi Mark,
>>>
>>> On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote:
>>>>
>>>> On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:
>>>>
>>>>> - Move the header from hw/isa/ to hw/dma/
>>>>> - Remove the old i386/pc dependency
>>>>> - use a bool type for the high_page_enable argument
>>>>>
>>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>>> ---
>>>>>     include/hw/{isa => dma}/i8257.h | 6 ++++++
>>>>>     include/hw/isa/isa.h            | 2 --
>>>>>     hw/dma/i82374.c                 | 3 ++-
>>>>>     hw/dma/i8257.c                  | 4 ++--
>>>>>     hw/i386/pc.c                    | 3 ++-
>>>>>     hw/mips/mips_fulong2e.c         | 3 ++-
>>>>>     hw/mips/mips_jazz.c             | 3 ++-
>>>>>     hw/mips/mips_malta.c            | 3 ++-
>>>>>     hw/sparc/sun4m.c                | 4 ----
>>>>>     hw/sparc64/sun4u.c              | 4 ----
>>>>>     MAINTAINERS                     | 2 +-
>>>>>     11 files changed, 19 insertions(+), 18 deletions(-)
>>>>>     rename include/hw/{isa => dma}/i8257.h (86%)
>>>>>
>>>>> diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
>>>>> similarity index 86%
>>>>> rename from include/hw/isa/i8257.h
>>>>> rename to include/hw/dma/i8257.h
>>>>> index 88a2766a3f..2cab50bb6c 100644
>>>>> --- a/include/hw/isa/i8257.h
>>>>> +++ b/include/hw/dma/i8257.h
>>>>> @@ -1,6 +1,10 @@
>>>>>     #ifndef HW_I8257_H
>>>>>     #define HW_I8257_H
>>>>>     +#include "hw/hw.h"
>>>>> +#include "hw/isa/isa.h"
>>>>> +#include "exec/ioport.h"
>>>>> +
>>>>>     #define TYPE_I8257 "i8257"
>>>>>       typedef struct I8257Regs {
>>>>> @@ -40,4 +44,6 @@ typedef struct I8257State {
>>>>>         PortioList portio_pageh;
>>>>>     } I8257State;
>>>>>     +void i8257_dma_init(ISABus *bus, bool high_page_enable);
>>>>> +
>>>>>     #endif
>>>>> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
>>>>> index 95593408ef..b9dbab24b4 100644
>>>>> --- a/include/hw/isa/isa.h
>>>>> +++ b/include/hw/isa/isa.h
>>>>> @@ -151,6 +151,4 @@ static inline ISABus
>>>>> *isa_bus_from_device(ISADevice *d)
>>>>>         return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
>>>>>     }
>>>>>     -/* i8257.c */
>>>>> -void DMA_init(ISABus *bus, int high_page_enable);
>>>>>     #endif
>>>>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
>>>>> index 6c0f975df0..83c87d92e0 100644
>>>>> --- a/hw/dma/i82374.c
>>>>> +++ b/hw/dma/i82374.c
>>>>> @@ -24,6 +24,7 @@
>>>>>       #include "qemu/osdep.h"
>>>>>     #include "hw/isa/isa.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>       #define TYPE_I82374 "i82374"
>>>>>     #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
>>>>> @@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error
>>>>> **errp)
>>>>>         portio_list_add(&s->port_list,
>>>>> isa_address_space_io(&s->parent_obj),
>>>>>                         s->iobase);
>>>>>     -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
>>>>> +    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
>>>>>         memset(s->commands, 0, sizeof(s->commands));
>>>>>     }
>>>>>     diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
>>>>> index bd23e893bf..52675e97c9 100644
>>>>> --- a/hw/dma/i8257.c
>>>>> +++ b/hw/dma/i8257.c
>>>>> @@ -24,7 +24,7 @@
>>>>>     #include "qemu/osdep.h"
>>>>>     #include "hw/hw.h"
>>>>>     #include "hw/isa/isa.h"
>>>>> -#include "hw/isa/i8257.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>     #include "qemu/main-loop.h"
>>>>>     #include "trace.h"
>>>>>     @@ -622,7 +622,7 @@ static void i8257_register_types(void)
>>>>>       type_init(i8257_register_types)
>>>>>     -void DMA_init(ISABus *bus, int high_page_enable)
>>>>> +void i8257_dma_init(ISABus *bus, bool high_page_enable)
>>>>>     {
>>>>>         ISADevice *isa1, *isa2;
>>>>>         DeviceState *d;
>>>>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>>>>> index 81364932d3..ec75b09a8f 100644
>>>>> --- a/hw/i386/pc.c
>>>>> +++ b/hw/i386/pc.c
>>>>> @@ -41,6 +41,7 @@
>>>>>     #include "elf.h"
>>>>>     #include "multiboot.h"
>>>>>     #include "hw/timer/mc146818rtc.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>     #include "hw/timer/i8254.h"
>>>>>     #include "hw/audio/pcspk.h"
>>>>>     #include "hw/pci/msi.h"
>>>>> @@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus,
>>>>> qemu_irq *gsi,
>>>>>         port92_init(port92, a20_line[1]);
>>>>>         g_free(a20_line);
>>>>>     -    DMA_init(isa_bus, 0);
>>>>> +    i8257_dma_init(isa_bus, 0);
>>>>>           for(i = 0; i < MAX_FD; i++) {
>>>>>             fd[i] = drive_get(IF_FLOPPY, 0, i);
>>>>> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
>>>>> index dc77b55755..0545fcd899 100644
>>>>> --- a/hw/mips/mips_fulong2e.c
>>>>> +++ b/hw/mips/mips_fulong2e.c
>>>>> @@ -22,6 +22,7 @@
>>>>>     #include "qapi/error.h"
>>>>>     #include "hw/hw.h"
>>>>>     #include "hw/i386/pc.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>     #include "hw/char/serial.h"
>>>>>     #include "hw/char/parallel.h"
>>>>>     #include "hw/block/fdc.h"
>>>>> @@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState
>>>>> *machine)
>>>>>           /* init other devices */
>>>>>         pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>>> -    DMA_init(isa_bus, 0);
>>>>> +    i8257_dma_init(isa_bus, 0);
>>>>>           /* Super I/O */
>>>>>         isa_create_simple(isa_bus, "i8042");
>>>>> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
>>>>> index b24305b7b4..827ffdcd4a 100644
>>>>> --- a/hw/mips/mips_jazz.c
>>>>> +++ b/hw/mips/mips_jazz.c
>>>>> @@ -27,6 +27,7 @@
>>>>>     #include "hw/mips/mips.h"
>>>>>     #include "hw/mips/cpudevs.h"
>>>>>     #include "hw/i386/pc.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>     #include "hw/char/serial.h"
>>>>>     #include "hw/char/parallel.h"
>>>>>     #include "hw/isa/isa.h"
>>>>> @@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
>>>>>         /* ISA devices */
>>>>>         i8259 = i8259_init(isa_bus, env->irq[4]);
>>>>>         isa_bus_irqs(isa_bus, i8259);
>>>>> -    DMA_init(isa_bus, 0);
>>>>> +    i8257_dma_init(isa_bus, 0);
>>>>>         pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>>>         pcspk_init(isa_bus, pit);
>>>>>     diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
>>>>> index c74882c7e9..9cb86c432e 100644
>>>>> --- a/hw/mips/mips_malta.c
>>>>> +++ b/hw/mips/mips_malta.c
>>>>> @@ -27,6 +27,7 @@
>>>>>     #include "cpu.h"
>>>>>     #include "hw/hw.h"
>>>>>     #include "hw/i386/pc.h"
>>>>> +#include "hw/dma/i8257.h"
>>>>>     #include "hw/char/serial.h"
>>>>>     #include "hw/char/parallel.h"
>>>>>     #include "hw/block/fdc.h"
>>>>> @@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
>>>>>         smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
>>>>>         g_free(smbus_eeprom_buf);
>>>>>         pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>>>>> -    DMA_init(isa_bus, 0);
>>>>> +    i8257_dma_init(isa_bus, 0);
>>>>>           /* Super I/O */
>>>>>         isa_create_simple(isa_bus, "i8042");
>>>>> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
>>>>> index 0f5804b3b4..fa1bfd6c92 100644
>>>>> --- a/hw/sparc/sun4m.c
>>>>> +++ b/hw/sparc/sun4m.c
>>>>> @@ -99,10 +99,6 @@ struct sun4m_hwdef {
>>>>>         uint8_t nvram_machine_id;
>>>>>     };
>>>>>     -void DMA_init(ISABus *bus, int high_page_enable)
>>>>> -{
>>>>> -}
>>>>> -
>>>>>     static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>>>                                 Error **errp)
>>>>>     {
>>>>> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
>>>>> index ceb1ba7eaf..0ca0243821 100644
>>>>> --- a/hw/sparc64/sun4u.c
>>>>> +++ b/hw/sparc64/sun4u.c
>>>>> @@ -90,10 +90,6 @@ typedef struct EbusState {
>>>>>     #define TYPE_EBUS "ebus"
>>>>>     #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
>>>>>     -void DMA_init(ISABus *bus, int high_page_enable)
>>>>> -{
>>>>> -}
>>>>> -
>>>>>     static void fw_cfg_boot_set(void *opaque, const char *boot_device,
>>>>>                                 Error **errp)
>>>>>     {
>>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>>> index c0f1620f3a..335c6c9f65 100644
>>>>> --- a/MAINTAINERS
>>>>> +++ b/MAINTAINERS
>>>>> @@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
>>>>>     F: hw/watchdog/wdt_ib700.c
>>>>>     F: include/hw/display/vga.h
>>>>>     F: include/hw/char/parallel.h
>>>>> +F: include/hw/dma/i8257.h
>>>>>     F: include/hw/i2c/pm_smbus.h
>>>>> -F: include/hw/isa/i8257.h
>>>>>     F: include/hw/timer/hpet.h
>>>>>     F: include/hw/timer/i8254*
>>>>>     F: include/hw/timer/mc146818rtc*
>>>>>
>>>>
>>>> Presumably these DMA_init() functions have been unused on sun4u/sun4m
>>>> for a while which is why they are being removed? Might be worth a
>>>> mention of this in the commit message.
>>>
>>>
>>> Apparently (from git log) once the Sparc machine was copied from the PC
>>> machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in
>>> ba0a71022 but this function was missed. So this function has never been
>>> implemented.
>>>
>>> I'll add a comment if I need to respin, or gently add the maintainer to
>>> update the commit message if this series is accepted :)
>>>
>>> Thanks!
>>>
>>> Phil.
>>
>>
>> Got it. In that case for sun4/sun4u:
>>
>> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> 
> 
> Out of curiosity, isn't ISA-DMA used by FDthree on Ultra-5/Ultra-10 machines?

Possibly - it's something I really test on a regular basis though. I 
believe Hervé switched the DMA interface over to use the new API on a 
previous patchset, so the function itself is obsolete regardless.


ATB,

Mark.

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2018-03-10  9:34 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-08 22:39 [Qemu-devel] [PATCH 00/25] remove i386/pc dependency: generic SuperIO Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 01/25] hw/isa: Move parallel_hds_isa_init() to hw/char/parallel-isa.c Philippe Mathieu-Daudé
2018-03-09 10:28   ` Mark Cave-Ayland
2018-03-08 22:39 ` [Qemu-devel] [PATCH 02/25] hw/dma/i8257: Rename DMA_init() to i8257_dma_init() Philippe Mathieu-Daudé
2018-03-09 10:32   ` Mark Cave-Ayland
2018-03-09 10:43     ` Philippe Mathieu-Daudé
2018-03-09 12:19       ` Mark Cave-Ayland
2018-03-09 20:51         ` Artyom Tarasenko
2018-03-10  9:33           ` Mark Cave-Ayland
2018-03-08 22:39 ` [Qemu-devel] [PATCH 03/25] hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h Philippe Mathieu-Daudé
2018-03-09 10:33   ` Mark Cave-Ayland
2018-03-08 22:39 ` [Qemu-devel] [PATCH 04/25] MAINTAINERS: Fix the PC87312 include path Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 05/25] hw/isa/pc87312: Rename the device type as TYPE_PC87312_SUPERIO Philippe Mathieu-Daudé
2018-03-09 10:33   ` Mark Cave-Ayland
2018-03-08 22:39 ` [Qemu-devel] [PATCH 06/25] hw/isa/pc87312: Use uint16_t for the ISA I/O base address Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 07/25] hw/isa/pc87312: Use 'unsigned int' for the irq value Philippe Mathieu-Daudé
2018-03-09 10:35   ` Mark Cave-Ayland
2018-03-08 22:39 ` [Qemu-devel] [PATCH 08/25] hw/isa/superio: Add a Super I/O template based on the PC87312 device Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 09/25] hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 10/25] hw/isa/superio: Factor out the parallel code from pc87312.c Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 11/25] hw/isa/superio: Factor out the serial " Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 12/25] hw/isa/superio: Factor out the floppy disc controller " Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 13/25] hw/isa/superio: Add a keyboard/mouse controller (8042) Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 14/25] hw/isa/superio: Factor out the IDE code from pc87312.c Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 15/25] hw/mips/malta: Code movement Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 16/25] hw/isa/superio: Factor out the FDC37M817 Super I/O from mips_malta.c Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 17/25] hw/mips/mips_fulong2e: Factor out vt82c686b_southbridge_init() Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 18/25] hw/isa/vt82c686: Rename vt82c686b_init() -> vt82c686b_isa_init() Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 19/25] hw/isa/vt82c686: Add the TYPE_VT82C686B_SUPERIO Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 20/25] MAINTAINERS: Add entries for the VT82C686B Super I/O Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 21/25] MAINTAINERS: Split the Alpha TCG/machine section Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 22/25] hw/isa/superio: Add the SMC FDC37C669 Super I/O Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 23/25] hw/alpha/dp264: Add the ISA DMA controller Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 24/25] hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO Philippe Mathieu-Daudé
2018-03-08 22:39 ` [Qemu-devel] [PATCH 25/25] hw/i386/pc: Factor out the superio code Philippe Mathieu-Daudé

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.