From nobody Sat Oct 25 08:57:40 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520285446845285.0790361604852; Mon, 5 Mar 2018 13:30:46 -0800 (PST) Received: from localhost ([::1]:51655 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esxgu-0005cO-WA for importer@patchew.org; Mon, 05 Mar 2018 16:30:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esxWq-0004rN-GS for qemu-devel@nongnu.org; Mon, 05 Mar 2018 16:20:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esxWp-0001v5-AG for qemu-devel@nongnu.org; Mon, 05 Mar 2018 16:20:16 -0500 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:54410) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1esxWp-0001un-1w for qemu-devel@nongnu.org; Mon, 05 Mar 2018 16:20:15 -0500 Received: by mail-wm0-x243.google.com with SMTP id z81so18731461wmb.4 for ; Mon, 05 Mar 2018 13:20:14 -0800 (PST) Received: from x1.local (ABayonne-654-1-79-224.w86-222.abo.wanadoo.fr. [86.222.222.224]) by smtp.gmail.com with ESMTPSA id g96sm12904808wrd.73.2018.03.05.13.20.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Mar 2018 13:20:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DT5xaKXr7YMu+I42iHS7qfp8idcuVAusebYLd1JRHSY=; b=QrRqWH9RAwnCNMSq6/z1m3gb0P/po7UGK5FCY1VEgVXE1Yk3/IVHArGpL2BQA4lG1/ Ut+G98/bguv02xQ91TeU89Qi9movAcpqAQ0G/eGqx/cKLAphsmFmKKF7Eh0wIA6hu7u6 Z7xUEEDAmEp/lPLizimVNDqhoMxp6hsYQJn1StqHEbYfu+UI5HrZiQQY+A++6Jcvha7i uMb/FziB3A/TeqJbS7CnCjgp819+a3nyNyhLEf0SRhOjhKIDWBkOf/KrjGhfjxSnY7Ed aqcPMTsIyhzVFprI7yAOAWRrxgQpjJGgfnQnhXwm5OrS/skXq5JOgrxqFlUzUhpMivdA rP0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DT5xaKXr7YMu+I42iHS7qfp8idcuVAusebYLd1JRHSY=; b=B+eFJMXzBkh5yOOZtoIlJWmm9vaAl4kM09s/JxroBcinH5mxraphOZqmjLXqRgMBoT sSc/05Ji1f4qZZFPa2vL9UfnRwgh0eF2r+gJCjVcOrSJh2Nbr7Er2dXym1459GDmnObA mBqFgVkRnnL0TOJ77GnRtwl5OMpJwSJ2FNhvo056UHpF7cRW9NrHem/rLwH9ryNl9mUP SDgzj9OcNlJkq41aMOnqYCAtNY5apRXrV2yMW1WUabex1co7m2LtgNV9sHfy8BWuZomO Kq0mbXBlSoDC/qukQBjpJ9xDWDMYxt680fC/+5pX6ewBvVb0qgywRLgAc1LWWFmQ8gHz zaOg== X-Gm-Message-State: AElRT7FIXYWuc/ylMNft10M1SF13mRT/0+FkeSQqSYmk5oNAIKztM0sy FU1eIQWRaPd90dPlFKkYDeQ= X-Google-Smtp-Source: AG47ELshk5XvbyYWIdQca9K9CWYzE002C6HI+Y6ds7rgEczAebafuW/2IMlbGKnCSbWCTimFZ0cOBw== X-Received: by 10.28.8.201 with SMTP id 192mr9296679wmi.47.1520284814152; Mon, 05 Mar 2018 13:20:14 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: "Michael S . Tsirkin" , Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Marcel Apfelbaum , Aurelien Jarno , Mark Cave-Ayland , Alexey Kardashevskiy , Thomas Huth Date: Mon, 5 Mar 2018 18:19:28 -0300 Message-Id: <20180305211928.466-23-f4bug@amsat.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180305211928.466-1-f4bug@amsat.org> References: <20180305211928.466-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [RFC PATCH v2 22/22] hw/i386/pc: Factor out the superio code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Guan Xuetao , Yongbok Kim , Artyom Tarasenko , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- 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 efb1b3bccf..cb3b480e65 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1519,6 +1519,44 @@ static const MemoryRegionOps ioportF0_io_ops =3D { }, }; =20 +static void pc_superio_init(ISABus *isa_bus, bool create_fdctrl, bool no_v= mport) +{ + 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 =3D 0; i < MAX_FD; i++) { + fd[i] =3D drive_get(IF_FLOPPY, 0, i); + create_fdctrl |=3D !!fd[i]; + } + if (create_fdctrl) { + fdctrl_init_isa(isa_bus, fd); + } + + i8042 =3D isa_create_simple(isa_bus, "i8042"); + if (!no_vmport) { + vmport_init(isa_bus); + vmmouse =3D isa_try_create(isa_bus, "vmmouse"); + } else { + vmmouse =3D NULL; + } + if (vmmouse) { + DeviceState *dev =3D DEVICE(vmmouse); + qdev_prop_set_ptr(dev, "ps2_mouse", i8042); + qdev_init_nofail(dev); + } + port92 =3D isa_create_simple(isa_bus, "port92"); + + a20_line =3D 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 =3D NULL; int pit_isa_irq =3D 0; qemu_irq pit_alt_irq =3D NULL; qemu_irq rtc_irq =3D NULL; - qemu_irq *a20_line; - ISADevice *i8042, *port92, *vmmouse, *pit =3D NULL; + ISADevice *pit =3D NULL; MemoryRegion *ioport80_io =3D g_new(MemoryRegion, 1); MemoryRegion *ioportF0_io =3D g_new(MemoryRegion, 1); =20 @@ -1590,36 +1626,10 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq= *gsi, pcspk_init(isa_bus, pit); } =20 - serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); - parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); - - a20_line =3D qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2); - i8042 =3D isa_create_simple(isa_bus, "i8042"); - i8042_setup_a20_line(i8042, a20_line[0]); - if (!no_vmport) { - vmport_init(isa_bus); - vmmouse =3D isa_try_create(isa_bus, "vmmouse"); - } else { - vmmouse =3D NULL; - } - if (vmmouse) { - DeviceState *dev =3D DEVICE(vmmouse); - qdev_prop_set_ptr(dev, "ps2_mouse", i8042); - qdev_init_nofail(dev); - } - port92 =3D isa_create_simple(isa_bus, "port92"); - port92_init(port92, a20_line[1]); - g_free(a20_line); - i8257_dma_init(isa_bus, 0); =20 - for(i =3D 0; i < MAX_FD; i++) { - fd[i] =3D drive_get(IF_FLOPPY, 0, i); - create_fdctrl |=3D !!fd[i]; - } - if (create_fdctrl) { - fdctrl_init_isa(isa_bus, fd); - } + /* Super I/O */ + pc_superio_init(isa_bus, create_fdctrl, no_vmport); } =20 void pc_nic_init(ISABus *isa_bus, PCIBus *pci_bus) --=20 2.16.2