qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Marcel Apfelbaum" <marcel@redhat.com>
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-devel@nongnu.org, "Igor Mammedov" <imammedo@redhat.com>
Subject: [Qemu-devel] [PATCH 06/29] hw/isa: add a generic isa_superio_init()
Date: Sun,  7 Jan 2018 23:45:35 -0300	[thread overview]
Message-ID: <20180108024558.17983-7-f4bug@amsat.org> (raw)
In-Reply-To: <20180108024558.17983-1-f4bug@amsat.org>

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/hw/isa/superio.h | 17 +++++++++++++++++
 hw/isa/isa-superio.c     | 45 +++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS              |  2 ++
 hw/isa/Makefile.objs     |  1 +
 4 files changed, 65 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..e685b96653
--- /dev/null
+++ b/include/hw/isa/superio.h
@@ -0,0 +1,17 @@
+/*
+ * Generic ISA Super I/O
+ *
+ * Copyright (c) 2018 Philippe Mathieu-Daudé
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+#ifndef HW_ISA_SUPERIO_H
+#define HW_ISA_SUPERIO_H
+
+#include "hw/isa/isa.h"
+
+ISADevice *isa_superio_init(ISABus *isa_bus, int serial_count,
+                            int parallel_count, int drive_count);
+
+#endif
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
new file mode 100644
index 0000000000..93d8457c6b
--- /dev/null
+++ b/hw/isa/isa-superio.c
@@ -0,0 +1,45 @@
+/*
+ * Generic ISA Super I/O
+ *
+ * Copyright (c) 2018 Philippe Mathieu-Daudé
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+#include "qemu/osdep.h"
+#include "qemu/error-report.h"
+#include "sysemu/blockdev.h"
+#include "hw/isa/superio.h"
+#include "hw/char/serial.h"
+#include "hw/char/parallel.h"
+#include "hw/block/fdc.h"
+#include "hw/input/i8042.h"
+
+ISADevice *isa_superio_init(ISABus *isa_bus, int serial_count,
+                            int parallel_count, int drive_count)
+{
+    serial_hds_isa_init(isa_bus, 0, serial_count);
+
+    parallel_hds_isa_init(isa_bus, parallel_count);
+
+    if (drive_count) {
+        DriveInfo **fd;
+        int i;
+
+        if (drive_count > MAX_FD) {
+            warn_report("superio: ignoring %d floppy controllers",
+                        drive_count - MAX_FD);
+            drive_count = MAX_FD;
+        }
+        fd = g_new(DriveInfo *, drive_count);
+
+        for (i = 0; i < drive_count; i++) {
+            fd[i] = drive_get(IF_FLOPPY, 0, i);
+        }
+        fdctrl_init_isa(isa_bus, fd);
+
+        g_free(fd); /* FIXME */
+    }
+
+    return isa_create_simple(isa_bus, TYPE_I8042);
+}
diff --git a/MAINTAINERS b/MAINTAINERS
index 7f9e98a046..6f867da743 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -875,6 +875,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*
@@ -885,6 +886,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/isa/superio.h
 F: include/hw/input/i8042.h
 F: include/hw/timer/hpet.h
 F: include/hw/timer/i8254*
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.15.1

  parent reply	other threads:[~2018-01-08  2:46 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08  2:45 [Qemu-devel] [RFC PATCH 00/29] remove i386/pc dependency: generic SuperIO, PIIX cleanup Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 01/29] hw/acpi: add mem/nvdimm.h dependency Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 02/29] pci/pci_host: move generic definitions out of i386/pc.h Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 03/29] hw/isa: extract parallel-isa specific code Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 04/29] hw/dma/i8257: rename DMA_init() to i8257_dma_init() Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 05/29] hw/input/i8042: extract declarations from i386/pc.h into input/i8042.h Philippe Mathieu-Daudé
2018-01-08  2:54   ` David Gibson
2018-01-08  2:45 ` Philippe Mathieu-Daudé [this message]
2018-01-14 18:22   ` [Qemu-devel] [PATCH 06/29] hw/isa: add a generic isa_superio_init() Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 07/29] hw/i386/pc: use isa_superio_init() Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 08/29] hw/mips/fulong2e: " Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 09/29] hw/mips/malta: code movement Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 10/29] hw/mips/malta: add fdc37m81x_init() which uses isa_superio_init() Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 11/29] mc146818rtc: always register rtc to rtc list Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 12/29] piix4: rename some variables in realize function Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 13/29] piix4: convert reset function to QOM Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 14/29] piix4: add Reset Control Register Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 15/29] piix4: add a i8259 interrupt controller as specified in datasheet Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [RFC PATCH 16/29] Revert "irq: introduce qemu_irq_proxy()" Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 17/29] piix: move piix4 declaration into new southbridge/i82371_piix.h Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 18/29] piix4: add a i8257 dma controller as specified in datasheet Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 19/29] piix4: add a i8254 pit " Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 20/29] piix4: add a speaker " Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 21/29] piix: move southbridge related declarations/definitions to i82371_piix.h Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 22/29] piix3: extract piix3_init() from i440fx_init() Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 23/29] hw/i386: extract i440fx related declarations/definitions to i440fx.h Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 24/29] hw/i386: extract i440fx code from piix.c into i440fx.c Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 25/29] hw/i386: move piix from hw/pci-host to hw/southbridge Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 26/29] configs/mips-softmmu: use common CONFIG_PCI_PIIX instead of CONFIG_PIIX4 Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 27/29] piix3: convert reset function to QOM Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [PATCH 28/29] piix: merge common code from isa/piix4.c with southbridge piix3 Philippe Mathieu-Daudé
2018-01-08  2:45 ` [Qemu-devel] [NOTFORMERGE PATCH 29/29] piix4: add isa_superio_init Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180108024558.17983-7-f4bug@amsat.org \
    --to=f4bug@amsat.org \
    --cc=aurelien@aurel32.net \
    --cc=ehabkost@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=imammedo@redhat.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).