From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670582759812.3247584608969; Fri, 15 Dec 2023 12:03:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMh-0005uI-KC; Fri, 15 Dec 2023 15:00:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMI-0005q8-7T for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:33 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMC-0002Rp-FG for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:29 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELk-000AEs-9l; Fri, 15 Dec 2023 20:00:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=KwkcX2p2CggrT+XEVqJqQeqBm3YT5rrIsNgp/IIx1Qw=; b=MqLwy2JLXQyRbEJVxaimv4u96g ljZIT9V8SkWSmI46q/qg963GXJW4i8wafpxo0OhY4NT9HM6TpktZK9zRLrgbhcuyZY2bfzX0ENTVR sAMR+RaBJxRlHI1CBsfto2i6zmYvVFBI+tXU5prvl35x4QWrRV8InjE+s8E3No3FRsZuyhIb0F3x3 UJoUg7vRbbMM3o8HKNAvg7CF+4BU0N+GG4UEOeyBPRCgnmkCH8nvF5lzR7/GVU0P9DMYPbWdvhO+V zR1iltWKzEO8aFFyW+nwPDwHmwl5VvRaCkCePyqjxMQ7WbaLyA2zIxrwrkkYak89mb+hFXvnrdaL4 blEiR6KtpfiCOCqnp1vUK+tjtI3bxhTh8SvTAHvURY/C6dLV+0L+5At+hSyfJHASgx5RGlTDYWFjI V3D7XY/JEJG/ALSoQg8wgZXQ5XC8PjnFvoqqZoa0X5sfDIsT1CBXRM+71J/Kb2OiXMhUgX/24JcIo nvsU1uQKGfT1pRqAQr5LSmEShMenTTHqH39EtNXwP+bpa6n5Bsrj8Ww8L7ga+aCgA8iUXMEUQuS3m qyzdnHmBq+NgcIKx00q+z0PbXsFQDcxO8/tjrpaKG3M1qvxIZyDQuROcVNkyPP1DvkjFYQrAoD5Js msKkcIxCUtBk3+I2hVKfyYM3FBkOjrRTBANuOmO4A=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 19:59:58 +0000 Message-Id: <20231215200009.346212-2-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 01/12] next-cube.c: add dummy Ethernet register to allow diagnostic to timeout X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670584380100001 Content-Type: text/plain; charset="utf-8" Add a dummy register at address 0x6000 in the MMIO memory region to allow t= he initial diagnostic test to timeout rather than getting stuck in a loop continuously writing "en_write: tx not ready" to the console. Signed-off-by: Mark Cave-Ayland Tested-by: Thomas Huth --- hw/m68k/next-cube.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index fabd861941..feeda23475 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -429,6 +429,10 @@ static uint32_t scr_readb(NeXTPC *s, hwaddr addr) /* Hack: We need to have this change consistently to make it work = */ return 0xFF & clock(); =20 + /* For now return dummy byte to allow the Ethernet test to timeout */ + case 0x6000: + return 0xff; + default: DPRINTF("BMAP Read B @ %x\n", (unsigned int)addr); return 0; --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670557515726.5568237342825; Fri, 15 Dec 2023 12:02:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMh-0005ri-7V; Fri, 15 Dec 2023 15:00:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMH-0005q7-Mr for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:31 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMD-0002SW-8v for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:28 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELo-000AEs-GC; Fri, 15 Dec 2023 20:00:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=dWdQOrKqi7TIDtPC9PXd7iw5QvDlsvXkFi8XseBFMVw=; b=guG1ZOUMHy+5+736SlVEZmsDbD UoDkQwsQ0TW1En3YXd6gkDHYlCAPnT7u1EpbUfYaI8wJaMc1Ic+cs5WR41AtyRum+3jnXYWeYObyH HouTUdF6ua8tiGJ3Fs69AOnSKRdzQVvxL2D19nIvSIzaB9EqXklrHnzTez0dZA6Q3oGp5WFaXOCqL /QRF4ciFZmz4jGI4bHm61MG/2mVdUAznozBkKoDaWfcHtVhzm4X1gWEubIbJHDrXkbnUfQqvm+A86 xGuSjlFSMlEG0Y93p7y3k/pEu21mtF0XOOMZgPuT4fwU6l+0KmbQYF9KA8T2s/A5GomTLugXhZlCu HiIkJ1aWZW0j24/zBsjtjplk2MpA/F2k4CpG9p+IIBB8ypcB4GgM9rKxt4Iu/aNlsRhv9UN6LG11v 474TiNxGSusYKV3RqgJ0SlqkVFup1i/BJE0mBPn/sU66jecY6l1DgsiKxNlns2o/wC39OMdGu9W31 CyEhi4SmO8r/YR360QA3jTbWS+nhPvJP640TZMEDf/3bzVvVa7V+vQo80ZYI5uL/FQJoquOvykxPv K2/3Mx9pifoXc83u7xKbAxIBbNfLs5/5dY8FNCc6fZ+7den2Atj9aaLUXBsjlYXucDhdXhXjll9NR NiGqFvCX+bxUEjOwZK+rKo/EQe50iwVB8ML5j86qk=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 19:59:59 +0000 Message-Id: <20231215200009.346212-3-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 02/12] next-cube.c: don't pulse SCSI DMA IRQ upon reception of FLUSH command X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670558293100001 Content-Type: text/plain; charset="utf-8" Normally a DMA FLUSH command is used to ensure that data is completely writ= ten to the device and/or memory, so remove the pulse of the SCSI DMA IRQ if a D= MA FLUSH command is received. This enables the NeXT ROM monitor to start to lo= ad from a SCSI disk. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index feeda23475..87ddaf4329 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -473,7 +473,6 @@ static void scr_writeb(NeXTPC *s, hwaddr addr, uint32_t= value) DPRINTF("SCSICSR FIFO Flush\n"); /* will have to add another irq to the esp if this is needed */ /* esp_puflush_fifo(esp_g); */ - qemu_irq_pulse(s->scsi_dma); } =20 if (value & SCSICSR_ENABLE) { --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670515148144.80565636745462; Fri, 15 Dec 2023 12:01:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMX-0005rV-Pn; Fri, 15 Dec 2023 15:00:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMI-0005q9-7Z for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:33 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEME-0002T1-0a for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:29 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELq-000AEs-EQ; Fri, 15 Dec 2023 20:00:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=v2qqudKwbwWl/5oI0cwS9BbqS1C4X2UFYRktiuJwoCU=; b=JWa8azEYvi21ZBa9b3B/cubRoo ezyUauvXhwCehkOtdm1k+5nV8HnM9m+qm9jqOXFD1XJoUQeF9LOoI5gjzwXA6+RieTAzqTQUBR+Mz fyDWSftA2dqSFoM1LwGqHHJbICpDx4wivdBD9MiYK+RiXlo/fAfYFztV/mBh4/etVOrOawR/aEuxa OiSenNuUlR3YgqVSNu5ZCPAdHvVRULUBUjO4IucutoYeeOO9u80GPXFV6DskVBPJ+bPlikDPaxzm0 VOTlvTj8jHhDYUt5vPryiv9bznE4rZLyvcNCYhLALQJEIUYzOHmv5Yxrm32oFm4jC4jVDmpZ3Ef9k bK2v0yiEo99jSiq42nSjpQjSiP9Fj0lfdX9kH2zfNXD21LJij6he9cvLYpPbvIWtamdoCEhAJwflj 3ujiForg0TbyfqJzLyBtKBcr7tSWqASTb2xQv5KB1ytrOP5SakL7R4z+cMkK/Z/B16j4ZHLYSwX0O FznGfkbUlHbyDs5AT9RyR1b309WsxZ7u7T18yIzr4E3G5Vntn7sB227snuFGFUOHYh4KEpNlkZiHa ilLi/Yx54YVXG9UD/NV1H4VanFOsVj6XZ3S4GQW4IJtcamHHC5bF7F/uC5c9jQXfXbjXxbzrUaYrG rMSn9OpU9SCGEaxJiidq8QEqZVNM2/HLTFVTvfB5o=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:00 +0000 Message-Id: <20231215200009.346212-4-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 03/12] next-cube.c: update mmio_ops to properly use modern memory API X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670516264100004 Content-Type: text/plain; charset="utf-8" The old QEMU memory accessors used in the original NextCube patch series had separate functions for 1, 2 and 4 byte accessors. When the series was final= ly merged a simple wrapper function was written to dispatch the memory accesses using the original functions. Convert mmio_ops to use the memory API directly renaming it to next_mmio_op= s, marking it as DEVICE_BIG_ENDIAN, and handling any unaligned accesses. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 156 +++++++++++++------------------------------- 1 file changed, 45 insertions(+), 111 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index 87ddaf4329..f73f563ac1 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -255,150 +255,84 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, = int size) old_scr2 =3D scr2_2; } =20 -static uint32_t mmio_readb(NeXTPC *s, hwaddr addr) +static uint64_t next_mmio_read(void *opaque, hwaddr addr, unsigned size) { - switch (addr) { - case 0xc000: - return (s->scr1 >> 24) & 0xFF; - case 0xc001: - return (s->scr1 >> 16) & 0xFF; - case 0xc002: - return (s->scr1 >> 8) & 0xFF; - case 0xc003: - return (s->scr1 >> 0) & 0xFF; - - case 0xd000: - return (s->scr2 >> 24) & 0xFF; - case 0xd001: - return (s->scr2 >> 16) & 0xFF; - case 0xd002: - return (s->scr2 >> 8) & 0xFF; - case 0xd003: - return (s->scr2 >> 0) & 0xFF; - case 0x14020: - DPRINTF("MMIO Read 0x4020\n"); - return 0x7f; - - default: - DPRINTF("MMIO Read B @ %"HWADDR_PRIx"\n", addr); - return 0x0; - } -} - -static uint32_t mmio_readw(NeXTPC *s, hwaddr addr) -{ - switch (addr) { - default: - DPRINTF("MMIO Read W @ %"HWADDR_PRIx"\n", addr); - return 0x0; - } -} + NeXTPC *s =3D NEXT_PC(opaque); + uint64_t val; =20 -static uint32_t mmio_readl(NeXTPC *s, hwaddr addr) -{ switch (addr) { case 0x7000: /* DPRINTF("Read INT status: %x\n", s->int_status); */ - return s->int_status; + val =3D s->int_status; + break; =20 case 0x7800: DPRINTF("MMIO Read INT mask: %x\n", s->int_mask); - return s->int_mask; - - case 0xc000: - return s->scr1; + val =3D s->int_mask; + break; =20 - case 0xd000: - return s->scr2; + case 0xc000 ... 0xc003: + val =3D extract32(s->scr1, (4 - (addr - 0xc000) - size) << 3, + size << 3); + break; =20 - default: - DPRINTF("MMIO Read L @ %"HWADDR_PRIx"\n", addr); - return 0x0; - } -} + case 0xd000 ... 0xd003: + val =3D extract32(s->scr2, (4 - (addr - 0xd000) - size) << 3, + size << 3); + break; =20 -static void mmio_writeb(NeXTPC *s, hwaddr addr, uint32_t val) -{ - switch (addr) { - case 0xd003: - nextscr2_write(s, val, 1); + case 0x14020: + val =3D 0x7f; break; + default: - DPRINTF("MMIO Write B @ %x with %x\n", (unsigned int)addr, val); + val =3D 0; + DPRINTF("MMIO Read @ 0x%"HWADDR_PRIx" size %d\n", addr, size); + break; } =20 + return val; } =20 -static void mmio_writew(NeXTPC *s, hwaddr addr, uint32_t val) +static void next_mmio_write(void *opaque, hwaddr addr, uint64_t val, + unsigned size) { - DPRINTF("MMIO Write W\n"); -} + NeXTPC *s =3D NEXT_PC(opaque); =20 -static void mmio_writel(NeXTPC *s, hwaddr addr, uint32_t val) -{ switch (addr) { case 0x7000: - DPRINTF("INT Status old: %x new: %x\n", s->int_status, val); + DPRINTF("INT Status old: %x new: %x\n", s->int_status, + (unsigned int)val); s->int_status =3D val; break; + case 0x7800: - DPRINTF("INT Mask old: %x new: %x\n", s->int_mask, val); + DPRINTF("INT Mask old: %x new: %x\n", s->int_mask, (unsigned int)v= al); s->int_mask =3D val; break; - case 0xc000: - DPRINTF("SCR1 Write: %x\n", val); - break; - case 0xd000: - nextscr2_write(s, val, 4); - break; - - default: - DPRINTF("MMIO Write l @ %x with %x\n", (unsigned int)addr, val); - } -} - -static uint64_t mmio_readfn(void *opaque, hwaddr addr, unsigned size) -{ - NeXTPC *s =3D NEXT_PC(opaque); - - switch (size) { - case 1: - return mmio_readb(s, addr); - case 2: - return mmio_readw(s, addr); - case 4: - return mmio_readl(s, addr); - default: - g_assert_not_reached(); - } -} - -static void mmio_writefn(void *opaque, hwaddr addr, uint64_t value, - unsigned size) -{ - NeXTPC *s =3D NEXT_PC(opaque); =20 - switch (size) { - case 1: - mmio_writeb(s, addr, value); + case 0xc000 ... 0xc003: + DPRINTF("SCR1 Write: %x\n", (unsigned int)val); + s->scr1 =3D deposit32(s->scr1, (4 - (addr - 0xc000) - size) << 3, + size << 3, val); break; - case 2: - mmio_writew(s, addr, value); - break; - case 4: - mmio_writel(s, addr, value); + + case 0xd000 ... 0xd003: + nextscr2_write(s, val, size); break; + default: - g_assert_not_reached(); + DPRINTF("MMIO Write @ 0x%"HWADDR_PRIx " with 0x%x size %u\n", addr, + (unsigned int)val, size); } } =20 -static const MemoryRegionOps mmio_ops =3D { - .read =3D mmio_readfn, - .write =3D mmio_writefn, +static const MemoryRegionOps next_mmio_ops =3D { + .read =3D next_mmio_read, + .write =3D next_mmio_write, .valid.min_access_size =3D 1, .valid.max_access_size =3D 4, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_BIG_ENDIAN, }; =20 static uint32_t scr_readb(NeXTPC *s, hwaddr addr) @@ -976,8 +910,8 @@ static void next_pc_realize(DeviceState *dev, Error **e= rrp) =20 qdev_init_gpio_in(dev, next_irq, NEXT_NUM_IRQS); =20 - memory_region_init_io(&s->mmiomem, OBJECT(s), &mmio_ops, s, - "next.mmio", 0xD0000); + memory_region_init_io(&s->mmiomem, OBJECT(s), &next_mmio_ops, s, + "next.mmio", 0xd0000); memory_region_init_io(&s->scrmem, OBJECT(s), &scr_ops, s, "next.scr", 0x20000); sysbus_init_mmio(sbd, &s->mmiomem); --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670588757126.6603631412122; Fri, 15 Dec 2023 12:03:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMi-0005uM-An; Fri, 15 Dec 2023 15:00:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEML-0005qG-5s for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:33 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMI-0002TX-FG for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:32 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELr-000AEs-67; Fri, 15 Dec 2023 20:00:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=N8HL3D18HUgRpNdH+45E57OfZiHfALIu/meYh9QUz8E=; b=paCI2sGWKMCwVIAuRDHS6J63By YgHwAaCcdMFyBU5wB4oNKR5o/kmzmL7nR5ehRIuxBYmc+5aaQ7N5QAX6cd+A3OfT403SCJRdLTrnF 2HJHeD/Zuv1vLZ6O0pxn3NXZgA9P3eMlL3DCTgJ8w5kZZfAViA0CJ2TXsmgkCSdY8fR8yY5qrh5wf HSQVwua5e7e1KQhNC3kieFHY4m/kCXFYuoN3A7aq0yGIq8PoJ19QCkd+qQ/KpdsJ8v89afPQA00jd KmbCGvHmmPZkveroud3OVhe0ZCi7mqURLOadkZUkDAHkzyfjilW8/9BwvxaO10QiC9g1ARA1q/lCd axqmjQh25FHskpU7TUkIdx991RR3UhtRF+uhiQuaby2QHyuoHXuImq2meI4Jf/lfaQpM3ovL26NiB dsLifJxX0EA5n9oArjgZdX/AT9YVyBOxBwu0XkCmtwWHEknAkt9zxXSPA7jOTF4xhe6lk9PA2Hm7t rHKQSfDE9e6xn5TR2i3X+o/9WY7cSwaDZxkNnH3Ae1yms/qW98ptltsJT5nirWYtDVT7QNmGSOH6P xcwPSK5mwsCPZG4kSGv694oFaxMa4ledvGdQ+Jn+lRe70iii4i5Ztzg+HERdlP2hPZ2Art8BmrmAX Fk2BVQ/IZ0R87Wv0YllseE1Wb/ORdIK1R4+If1t58=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:01 +0000 Message-Id: <20231215200009.346212-5-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 04/12] next-cube.c: update scr_ops to properly use modern memory API X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670590338100007 Content-Type: text/plain; charset="utf-8" The old QEMU memory accessors used in the original NextCube patch series had separate functions for 1, 2 and 4 byte accessors. When the series was final= ly merged a simple wrapper function was written to dispatch the memory accesses using the original functions. Convert scr_ops to use the memory API directly renaming it to next_scr_ops, marking it as DEVICE_BIG_ENDIAN, and handling any unaligned accesses. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 155 ++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 100 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index f73f563ac1..8ed9bac26d 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -335,81 +335,80 @@ static const MemoryRegionOps next_mmio_ops =3D { .endianness =3D DEVICE_BIG_ENDIAN, }; =20 -static uint32_t scr_readb(NeXTPC *s, hwaddr addr) +#define SCSICSR_ENABLE 0x01 +#define SCSICSR_RESET 0x02 /* reset scsi dma */ +#define SCSICSR_FIFOFL 0x04 +#define SCSICSR_DMADIR 0x08 /* if set, scsi to mem */ +#define SCSICSR_CPUDMA 0x10 /* if set, dma enabled */ +#define SCSICSR_INTMASK 0x20 /* if set, interrupt enabled */ + +static uint64_t next_scr_readfn(void *opaque, hwaddr addr, unsigned size) { + NeXTPC *s =3D NEXT_PC(opaque); + uint64_t val; + switch (addr) { case 0x14108: DPRINTF("FD read @ %x\n", (unsigned int)addr); - return 0x40 | 0x04 | 0x2 | 0x1; + val =3D 0x40 | 0x04 | 0x2 | 0x1; + break; + case 0x14020: DPRINTF("SCSI 4020 STATUS READ %X\n", s->scsi_csr_1); - return s->scsi_csr_1; + val =3D s->scsi_csr_1; + break; =20 case 0x14021: DPRINTF("SCSI 4021 STATUS READ %X\n", s->scsi_csr_2); - return 0x40; + val =3D 0x40; + break; =20 /* * These 4 registers are the hardware timer, not sure which register - * is the latch instead of data, but no problems so far + * is the latch instead of data, but no problems so far. + * + * Hack: We need to have the LSB change consistently to make it work */ - case 0x1a000: - return 0xff & (clock() >> 24); - case 0x1a001: - return 0xff & (clock() >> 16); - case 0x1a002: - return 0xff & (clock() >> 8); - case 0x1a003: - /* Hack: We need to have this change consistently to make it work = */ - return 0xFF & clock(); + case 0x1a000 ... 0x1a003: + val =3D extract32(clock(), (4 - (addr - 0x1a000) - size) << 3, + size << 3); + break; =20 /* For now return dummy byte to allow the Ethernet test to timeout */ case 0x6000: - return 0xff; + val =3D 0xff; + break; =20 default: - DPRINTF("BMAP Read B @ %x\n", (unsigned int)addr); - return 0; + DPRINTF("BMAP Read @ 0x%x size %u\n", (unsigned int)addr, size); + val =3D 0; + break; } -} =20 -static uint32_t scr_readw(NeXTPC *s, hwaddr addr) -{ - DPRINTF("BMAP Read W @ %x\n", (unsigned int)addr); - return 0; + return val; } =20 -static uint32_t scr_readl(NeXTPC *s, hwaddr addr) +static void next_scr_writefn(void *opaque, hwaddr addr, uint64_t val, + unsigned size) { - DPRINTF("BMAP Read L @ %x\n", (unsigned int)addr); - return 0; -} - -#define SCSICSR_ENABLE 0x01 -#define SCSICSR_RESET 0x02 /* reset scsi dma */ -#define SCSICSR_FIFOFL 0x04 -#define SCSICSR_DMADIR 0x08 /* if set, scsi to mem */ -#define SCSICSR_CPUDMA 0x10 /* if set, dma enabled */ -#define SCSICSR_INTMASK 0x20 /* if set, interrupt enabled */ + NeXTPC *s =3D NEXT_PC(opaque); =20 -static void scr_writeb(NeXTPC *s, hwaddr addr, uint32_t value) -{ switch (addr) { case 0x14108: DPRINTF("FDCSR Write: %x\n", value); - - if (value =3D=3D 0x0) { + if (val =3D=3D 0x0) { /* qemu_irq_raise(s->fd_irq[0]); */ } break; + case 0x14020: /* SCSI Control Register */ - if (value & SCSICSR_FIFOFL) { + if (val & SCSICSR_FIFOFL) { DPRINTF("SCSICSR FIFO Flush\n"); /* will have to add another irq to the esp if this is needed */ /* esp_puflush_fifo(esp_g); */ } =20 - if (value & SCSICSR_ENABLE) { + if (val & SCSICSR_ENABLE) { DPRINTF("SCSICSR Enable\n"); /* * qemu_irq_raise(s->scsi_dma); @@ -423,17 +422,17 @@ static void scr_writeb(NeXTPC *s, hwaddr addr, uint32= _t value) * s->scsi_csr_1 &=3D ~SCSICSR_ENABLE; */ =20 - if (value & SCSICSR_RESET) { + if (val & SCSICSR_RESET) { DPRINTF("SCSICSR Reset\n"); /* I think this should set DMADIR. CPUDMA and INTMASK to 0 */ qemu_irq_raise(s->scsi_reset); s->scsi_csr_1 &=3D ~(SCSICSR_INTMASK | 0x80 | 0x1); qemu_irq_lower(s->scsi_reset); } - if (value & SCSICSR_DMADIR) { + if (val & SCSICSR_DMADIR) { DPRINTF("SCSICSR DMAdir\n"); } - if (value & SCSICSR_CPUDMA) { + if (val & SCSICSR_CPUDMA) { DPRINTF("SCSICSR CPUDMA\n"); /* qemu_irq_raise(s->scsi_dma); */ s->int_status |=3D 0x4000000; @@ -442,11 +441,11 @@ static void scr_writeb(NeXTPC *s, hwaddr addr, uint32= _t value) s->int_status &=3D ~(0x4000000); /* qemu_irq_lower(s->scsi_dma); */ } - if (value & SCSICSR_INTMASK) { + if (val & SCSICSR_INTMASK) { DPRINTF("SCSICSR INTMASK\n"); /* * int_mask &=3D ~0x1000; - * s->scsi_csr_1 |=3D value; + * s->scsi_csr_1 |=3D val; * s->scsi_csr_1 &=3D ~SCSICSR_INTMASK; * if (s->scsi_queued) { * s->scsi_queued =3D 0; @@ -456,72 +455,28 @@ static void scr_writeb(NeXTPC *s, hwaddr addr, uint32= _t value) } else { /* int_mask |=3D 0x1000; */ } - if (value & 0x80) { + if (val & 0x80) { /* int_mask |=3D 0x1000; */ /* s->scsi_csr_1 |=3D 0x80; */ } - DPRINTF("SCSICSR Write: %x\n", value); - /* s->scsi_csr_1 =3D value; */ - return; + DPRINTF("SCSICSR Write: %x\n", val); + /* s->scsi_csr_1 =3D val; */ + break; + /* Hardware timer latch - not implemented yet */ case 0x1a000: default: - DPRINTF("BMAP Write B @ %x with %x\n", (unsigned int)addr, value); + DPRINTF("BMAP Write @ 0x%x with 0x%x size %u\n", (unsigned int)add= r, + val, size); } } =20 -static void scr_writew(NeXTPC *s, hwaddr addr, uint32_t value) -{ - DPRINTF("BMAP Write W @ %x with %x\n", (unsigned int)addr, value); -} - -static void scr_writel(NeXTPC *s, hwaddr addr, uint32_t value) -{ - DPRINTF("BMAP Write L @ %x with %x\n", (unsigned int)addr, value); -} - -static uint64_t scr_readfn(void *opaque, hwaddr addr, unsigned size) -{ - NeXTPC *s =3D NEXT_PC(opaque); - - switch (size) { - case 1: - return scr_readb(s, addr); - case 2: - return scr_readw(s, addr); - case 4: - return scr_readl(s, addr); - default: - g_assert_not_reached(); - } -} - -static void scr_writefn(void *opaque, hwaddr addr, uint64_t value, - unsigned size) -{ - NeXTPC *s =3D NEXT_PC(opaque); - - switch (size) { - case 1: - scr_writeb(s, addr, value); - break; - case 2: - scr_writew(s, addr, value); - break; - case 4: - scr_writel(s, addr, value); - break; - default: - g_assert_not_reached(); - } -} - -static const MemoryRegionOps scr_ops =3D { - .read =3D scr_readfn, - .write =3D scr_writefn, +static const MemoryRegionOps next_scr_ops =3D { + .read =3D next_scr_readfn, + .write =3D next_scr_writefn, .valid.min_access_size =3D 1, .valid.max_access_size =3D 4, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_BIG_ENDIAN, }; =20 #define NEXTDMA_SCSI(x) (0x10 + x) @@ -912,7 +867,7 @@ static void next_pc_realize(DeviceState *dev, Error **e= rrp) =20 memory_region_init_io(&s->mmiomem, OBJECT(s), &next_mmio_ops, s, "next.mmio", 0xd0000); - memory_region_init_io(&s->scrmem, OBJECT(s), &scr_ops, s, + memory_region_init_io(&s->scrmem, OBJECT(s), &next_scr_ops, s, "next.scr", 0x20000); sysbus_init_mmio(sbd, &s->mmiomem); sysbus_init_mmio(sbd, &s->scrmem); --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670570680650.4027185290062; Fri, 15 Dec 2023 12:02:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMh-0005uJ-TZ; Fri, 15 Dec 2023 15:00:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMV-0005rB-MW for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:45 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMN-0002VJ-Ga for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:41 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELv-000AEs-F2; Fri, 15 Dec 2023 20:00:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=QHGne3eLxYtNGhIsE5iVoLbEfe4ZI/kn4xwYuJHsZ1U=; b=UCTsF7wQSQHBqo0Sso/l44Gd2N Z7evznhmUNRdDBaTbfmngvWHYzxbhqR/YgtynKukNmcKdT58d4mn3Wqo6sAADuy+AXneJbUQYMXR3 TAnuonyp7njX3Xn2hKrhTHBKhc4aaZIsDT/Mh7IJveKuKUeEvJunbPxWtHkPclSvoSDQ1SzE7BLvu r3tgiJftOaeqLgMHhKY858luy7UZR+IPHPc4OmHaBADCJI8kmiLINgSQNE2SnqN32dCK7EFXPD/UO D5jMWn2124tEujsH2Uozwh9cK9O+Ae6mIssDp9VbA/1fLxcR6TuWsSqdsbWbIW7fMDrKUcxAq28RU mgUjFMpQPR+Lq9PH0h1EtxwFrBmpn5ww2KYIhZIP1Fs0H7EtYGRQxcgSh03Ci8vhQBhQXlYZeCmIi hyc7DaZk8oCuPWf8nCn6CTorGcb4/y4M+9jN/mgZKlLifqvRttLb03RL0bK+oaCFzRpzmkTneWmrn N2Bc+ZwTp1JqNGappl0Kk2XEke53kgImpf3oA/HDyfGdANuODNvQcwXRA3FSuwQHBgZb5J0PbHHcK yn9pvYZbaMcwLM3zOT4YF4QBg+fliNlji8XD0g4w5SHNo7SV4PWZkMmcvMXR6R7QP+VCOfFomB9fb Ce41G+8ayadlardh8skryt18cbPmG2iJVGpZHWnhU=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:02 +0000 Message-Id: <20231215200009.346212-6-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 05/12] next-cube.c: update and improve dma_ops X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670572286100001 Content-Type: text/plain; charset="utf-8" Rename dma_ops to next_dma_ops and the read/write functions to next_dma_rea= d() and next_dma_write() respectively, mark next_dma_ops as DEVICE_BIG_ENDIAN a= nd also improve the consistency of the val variable in next_dma_read() and next_dma_write(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 100 ++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 37 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index 8ed9bac26d..be4091ffd7 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -491,59 +491,63 @@ static const MemoryRegionOps next_scr_ops =3D { #define NEXTDMA_NEXT_INIT 0x4200 #define NEXTDMA_SIZE 0x4204 =20 -static void dma_writel(void *opaque, hwaddr addr, uint64_t value, - unsigned int size) +static void next_dma_write(void *opaque, hwaddr addr, uint64_t val, + unsigned int size) { NeXTState *next_state =3D NEXT_MACHINE(opaque); =20 switch (addr) { case NEXTDMA_ENRX(NEXTDMA_CSR): - if (value & DMA_DEV2M) { + if (val & DMA_DEV2M) { next_state->dma[NEXTDMA_ENRX].csr |=3D DMA_DEV2M; } =20 - if (value & DMA_SETENABLE) { + if (val & DMA_SETENABLE) { /* DPRINTF("SCSI DMA ENABLE\n"); */ next_state->dma[NEXTDMA_ENRX].csr |=3D DMA_ENABLE; } - if (value & DMA_SETSUPDATE) { + if (val & DMA_SETSUPDATE) { next_state->dma[NEXTDMA_ENRX].csr |=3D DMA_SUPDATE; } - if (value & DMA_CLRCOMPLETE) { + if (val & DMA_CLRCOMPLETE) { next_state->dma[NEXTDMA_ENRX].csr &=3D ~DMA_COMPLETE; } =20 - if (value & DMA_RESET) { + if (val & DMA_RESET) { next_state->dma[NEXTDMA_ENRX].csr &=3D ~(DMA_COMPLETE | DMA_SU= PDATE | DMA_ENABLE | DMA_DEV2M); } /* DPRINTF("RXCSR \tWrite: %x\n",value); */ break; + case NEXTDMA_ENRX(NEXTDMA_NEXT_INIT): - next_state->dma[NEXTDMA_ENRX].next_initbuf =3D value; + next_state->dma[NEXTDMA_ENRX].next_initbuf =3D val; break; + case NEXTDMA_ENRX(NEXTDMA_NEXT): - next_state->dma[NEXTDMA_ENRX].next =3D value; + next_state->dma[NEXTDMA_ENRX].next =3D val; break; + case NEXTDMA_ENRX(NEXTDMA_LIMIT): - next_state->dma[NEXTDMA_ENRX].limit =3D value; + next_state->dma[NEXTDMA_ENRX].limit =3D val; break; + case NEXTDMA_SCSI(NEXTDMA_CSR): - if (value & DMA_DEV2M) { + if (val & DMA_DEV2M) { next_state->dma[NEXTDMA_SCSI].csr |=3D DMA_DEV2M; } - if (value & DMA_SETENABLE) { + if (val & DMA_SETENABLE) { /* DPRINTF("SCSI DMA ENABLE\n"); */ next_state->dma[NEXTDMA_SCSI].csr |=3D DMA_ENABLE; } - if (value & DMA_SETSUPDATE) { + if (val & DMA_SETSUPDATE) { next_state->dma[NEXTDMA_SCSI].csr |=3D DMA_SUPDATE; } - if (value & DMA_CLRCOMPLETE) { + if (val & DMA_CLRCOMPLETE) { next_state->dma[NEXTDMA_SCSI].csr &=3D ~DMA_COMPLETE; } =20 - if (value & DMA_RESET) { + if (val & DMA_RESET) { next_state->dma[NEXTDMA_SCSI].csr &=3D ~(DMA_COMPLETE | DMA_SU= PDATE | DMA_ENABLE | DMA_DEV2M); /* DPRINTF("SCSI DMA RESET\n"); */ @@ -552,23 +556,23 @@ static void dma_writel(void *opaque, hwaddr addr, uin= t64_t value, break; =20 case NEXTDMA_SCSI(NEXTDMA_NEXT): - next_state->dma[NEXTDMA_SCSI].next =3D value; + next_state->dma[NEXTDMA_SCSI].next =3D val; break; =20 case NEXTDMA_SCSI(NEXTDMA_LIMIT): - next_state->dma[NEXTDMA_SCSI].limit =3D value; + next_state->dma[NEXTDMA_SCSI].limit =3D val; break; =20 case NEXTDMA_SCSI(NEXTDMA_START): - next_state->dma[NEXTDMA_SCSI].start =3D value; + next_state->dma[NEXTDMA_SCSI].start =3D val; break; =20 case NEXTDMA_SCSI(NEXTDMA_STOP): - next_state->dma[NEXTDMA_SCSI].stop =3D value; + next_state->dma[NEXTDMA_SCSI].stop =3D val; break; =20 case NEXTDMA_SCSI(NEXTDMA_NEXT_INIT): - next_state->dma[NEXTDMA_SCSI].next_initbuf =3D value; + next_state->dma[NEXTDMA_SCSI].next_initbuf =3D val; break; =20 default: @@ -576,52 +580,73 @@ static void dma_writel(void *opaque, hwaddr addr, uin= t64_t value, } } =20 -static uint64_t dma_readl(void *opaque, hwaddr addr, unsigned int size) +static uint64_t next_dma_read(void *opaque, hwaddr addr, unsigned int size) { NeXTState *next_state =3D NEXT_MACHINE(opaque); + uint64_t val; =20 switch (addr) { case NEXTDMA_SCSI(NEXTDMA_CSR): DPRINTF("SCSI DMA CSR READ\n"); - return next_state->dma[NEXTDMA_SCSI].csr; + val =3D next_state->dma[NEXTDMA_SCSI].csr; + break; + case NEXTDMA_ENRX(NEXTDMA_CSR): - return next_state->dma[NEXTDMA_ENRX].csr; + val =3D next_state->dma[NEXTDMA_ENRX].csr; + break; + case NEXTDMA_ENRX(NEXTDMA_NEXT_INIT): - return next_state->dma[NEXTDMA_ENRX].next_initbuf; + val =3D next_state->dma[NEXTDMA_ENRX].next_initbuf; + break; + case NEXTDMA_ENRX(NEXTDMA_NEXT): - return next_state->dma[NEXTDMA_ENRX].next; + val =3D next_state->dma[NEXTDMA_ENRX].next; + break; + case NEXTDMA_ENRX(NEXTDMA_LIMIT): - return next_state->dma[NEXTDMA_ENRX].limit; + val =3D next_state->dma[NEXTDMA_ENRX].limit; + break; =20 case NEXTDMA_SCSI(NEXTDMA_NEXT): - return next_state->dma[NEXTDMA_SCSI].next; + val =3D next_state->dma[NEXTDMA_SCSI].next; + break; + case NEXTDMA_SCSI(NEXTDMA_NEXT_INIT): - return next_state->dma[NEXTDMA_SCSI].next_initbuf; + val =3D next_state->dma[NEXTDMA_SCSI].next_initbuf; + break; + case NEXTDMA_SCSI(NEXTDMA_LIMIT): - return next_state->dma[NEXTDMA_SCSI].limit; + val =3D next_state->dma[NEXTDMA_SCSI].limit; + break; + case NEXTDMA_SCSI(NEXTDMA_START): - return next_state->dma[NEXTDMA_SCSI].start; + val =3D next_state->dma[NEXTDMA_SCSI].start; + break; + case NEXTDMA_SCSI(NEXTDMA_STOP): - return next_state->dma[NEXTDMA_SCSI].stop; + val =3D next_state->dma[NEXTDMA_SCSI].stop; + break; =20 default: DPRINTF("DMA read @ %x\n", (unsigned int)addr); - return 0; + val =3D 0; } =20 /* * once the csr's are done, subtract 0x3FEC from the addr, and that wi= ll * normalize the upper registers */ + + return val; } =20 -static const MemoryRegionOps dma_ops =3D { - .read =3D dma_readl, - .write =3D dma_writel, +static const MemoryRegionOps next_dma_ops =3D { + .read =3D next_dma_read, + .write =3D next_dma_write, .impl.min_access_size =3D 4, .valid.min_access_size =3D 4, .valid.max_access_size =3D 4, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_BIG_ENDIAN, }; =20 static void next_irq(void *opaque, int number, int level) @@ -1017,7 +1042,8 @@ static void next_cube_init(MachineState *machine) next_scsi_init(pcdev, cpu); =20 /* DMA */ - memory_region_init_io(dmamem, NULL, &dma_ops, machine, "next.dma", 0x5= 000); + memory_region_init_io(dmamem, NULL, &next_dma_ops, machine, "next.dma", + 0x5000); memory_region_add_subregion(sysmem, 0x02000000, dmamem); } =20 --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670562317158.41730560694123; Fri, 15 Dec 2023 12:02:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMj-0005uP-0c; Fri, 15 Dec 2023 15:00:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMV-0005rA-MA for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:45 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMP-0002VL-AV for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:42 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEELz-000AEs-Oi; Fri, 15 Dec 2023 20:00:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=4KCaL7IEuP9C4M/fHRAGHkzRci9LD/1ciJtTr/M8EvQ=; b=zaNB9jxdj8hug+JoheOC0CMHjy efE5O4NGVWz7zNtvrfF/vxXGsetjdp0VR+LBRpPimMRr/CPTUA1hTTcQkh9aOb1GQTqW9dPkdRdeR p/idyQpIJGEHEse/HH8hNrfXexR0T5mOVGXp0y4HNwQacV6MbXFCh4Z9GfNfbzVcNsU8rj4oFgS5Y HuDtOZdSya8IowvVPyeCDZPghrw+cRpxvnDU/FFWZcQ6B5rMC6eupQaks0cuRD5jmJfhM6511TDcV g26Xtmu+v2mpd2vyH6NNsFQECl5r7DWwoubRieVF+bHWnbwDpcYEz5ZF0YB97cMUoxXzm9TDhrWo0 xfpBLcg7X9GJyXYT5GLR1dQXrFaoJdyMSHfti25yNXiB/HiGnt5L57NHxt+FIjOsxiQrYgv1jvbJO tN6Q5qHaVckqXnDqVh7RaFWaBZ5RnWF5uAGursCF2up+A3+qWg7jtcswoa3imq8gyTKMOMBsRddOy S1r6jI654Zhw0ufljLUiJbAW3/TDoYPnnb8XGz9DP+5aSnU8K9VSElIGPzC8QKb9c57nUo0Sfcxjx PPuuTWaaTdiiqcgr1X5p6oNiyWxZMWW0y/8NqFSXtFeT6Bi4KwHQO/2ZzXK12mPJOwVngrYfI8lNO 6ycVpGbaBwO9m+rqzdic2lrqh/x1jVjJMl5aff4aI=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:03 +0000 Message-Id: <20231215200009.346212-7-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 06/12] next-cube.c: move static led variable to NeXTPC X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670564231100001 Content-Type: text/plain; charset="utf-8" The state of the led is stored in the SCR2 register which is part of the Ne= XTPC device. Note that this is a migration break for the NeXTPC device, but as nothing w= ill currently boot then we simply bump the migration version for now. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index be4091ffd7..bcc7650cd9 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -92,6 +92,7 @@ struct NeXTPC { uint32_t scr2; uint32_t int_mask; uint32_t int_status; + uint32_t led; uint8_t scsi_csr_1; uint8_t scsi_csr_2; =20 @@ -123,7 +124,6 @@ static const uint8_t rtc_ram2[32] =3D { =20 static void nextscr2_write(NeXTPC *s, uint32_t val, int size) { - static int led; static int phase; static uint8_t old_scr2; uint8_t scr2_2; @@ -137,10 +137,10 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, i= nt size) =20 if (val & 0x1) { DPRINTF("fault!\n"); - led++; - if (led =3D=3D 10) { + s->led++; + if (s->led =3D=3D 10) { DPRINTF("LED flashing, possible fault!\n"); - led =3D 0; + s->led =3D 0; } } =20 @@ -926,13 +926,14 @@ static const VMStateDescription next_rtc_vmstate =3D { =20 static const VMStateDescription next_pc_vmstate =3D { .name =3D "next-pc", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, .fields =3D (VMStateField[]) { VMSTATE_UINT32(scr1, NeXTPC), VMSTATE_UINT32(scr2, NeXTPC), VMSTATE_UINT32(int_mask, NeXTPC), VMSTATE_UINT32(int_status, NeXTPC), + VMSTATE_UINT32(led, NeXTPC), VMSTATE_UINT8(scsi_csr_1, NeXTPC), VMSTATE_UINT8(scsi_csr_2, NeXTPC), VMSTATE_STRUCT(rtc, NeXTPC, 0, next_rtc_vmstate, NextRtc), --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670499807167.38702697732901; Fri, 15 Dec 2023 12:01:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMk-0005v3-8a; Fri, 15 Dec 2023 15:00:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMY-0005rX-NA for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:54 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMT-0002Vr-5r for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:43 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEM0-000AEs-2N; Fri, 15 Dec 2023 20:00:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=A6zds8D80y24qI9OvDDHoMzVYeu3f74yQ3ZR2B9qF5g=; b=P6h3gpZVNqmyYjnEPNMoC8Jdsz EALzxFmcQF3twH+nmF1QalAXSA+6GQH2dEW0NolRtp7KFzZyLnZ97XlwNzTfDPoAGYBPRiG28MW2E 39tSqtQMiUtFUZsAgVQuE+MTHcabegNCLhWwrvPDP2vCCYe89gMaeounPHe6yv//5oJ39IHn7DiZ8 VcQoT4OHBpdGjYTWXbphzRnJbgZU7eEfELyzxi1dnWvgdo3KBIwqZl99lU00fVDmdrbGcGPsAk9Vl Xg/k3UX3/CjnX7gjYKG4R3AmR06hwh3FwdPG1b+q08XrbD2uAp8JGj99tkntvH4PtScZMlZPYxZ35 4JBpIQuL17nVZVRdaStZwUXEqnXT/cCyBRgSXIUVsOPbOSrwwXRB+EqmvvDweGG8dRpBon7c0ap61 bIJR4Pc7T5Al1+C2JB/KWYU6PZMtqi+08t+X1OwCeiaudWOGQWKCbtQCRSsSaewkW839nQMn8xW7r /fV6oGANXYRjSpQFjFeqwv5+p+0iVvF6C/t1Pce1DHZdD5X2DX0FJmv4qpWebC+y5Cev7C7YIEmVW TyPskYceuJziEO3UyFnzrsMDblNi4rQXLJ/jqNATtgguP3XVHNNUFMvOn6xNPW7sZuSTFZZdLrJ5s BfzDhca42wd4m4h+jK061wWSXN1JT50wb1ngcEEC0=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:04 +0000 Message-Id: <20231215200009.346212-8-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 07/12] next-cube.c: move static phase variable to NextRtc X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670500064100005 Content-Type: text/plain; charset="utf-8" The phase variable represents part of the state machine used to clock data = out of the NextRtc device. Note that this is a migration break for the NeXTRtc struct, but as nothing = will currently boot then we simply bump the migration version for now. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index bcc7650cd9..f2222554fa 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -62,6 +62,7 @@ typedef struct next_dma { } next_dma; =20 typedef struct NextRtc { + int8_t phase; uint8_t ram[32]; uint8_t command; uint8_t value; @@ -124,7 +125,6 @@ static const uint8_t rtc_ram2[32] =3D { =20 static void nextscr2_write(NeXTPC *s, uint32_t val, int size) { - static int phase; static uint8_t old_scr2; uint8_t scr2_2; NextRtc *rtc =3D &s->rtc; @@ -145,25 +145,25 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, i= nt size) } =20 if (scr2_2 & 0x1) { - /* DPRINTF("RTC %x phase %i\n", scr2_2, phase); */ - if (phase =3D=3D -1) { - phase =3D 0; + /* DPRINTF("RTC %x phase %i\n", scr2_2, rtc->phase); */ + if (rtc->phase =3D=3D -1) { + rtc->phase =3D 0; } /* If we are in going down clock... do something */ if (((old_scr2 & SCR2_RTCLK) !=3D (scr2_2 & SCR2_RTCLK)) && ((scr2_2 & SCR2_RTCLK) =3D=3D 0)) { - if (phase < 8) { + if (rtc->phase < 8) { rtc->command =3D (rtc->command << 1) | ((scr2_2 & SCR2_RTDATA) ? 1 : 0); } - if (phase >=3D 8 && phase < 16) { + if (rtc->phase >=3D 8 && rtc->phase < 16) { rtc->value =3D (rtc->value << 1) | ((scr2_2 & SCR2_RTDATA) ? 1 : 0); =20 /* if we read RAM register, output RT_DATA bit */ if (rtc->command <=3D 0x1F) { scr2_2 =3D scr2_2 & (~SCR2_RTDATA); - if (rtc->ram[rtc->command] & (0x80 >> (phase - 8))) { + if (rtc->ram[rtc->command] & (0x80 >> (rtc->phase - 8)= )) { scr2_2 |=3D SCR2_RTDATA; } =20 @@ -174,7 +174,7 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) if (rtc->command =3D=3D 0x30) { scr2_2 =3D scr2_2 & (~SCR2_RTDATA); /* for now status =3D 0x98 (new rtc + FTU) */ - if (rtc->status & (0x80 >> (phase - 8))) { + if (rtc->status & (0x80 >> (rtc->phase - 8))) { scr2_2 |=3D SCR2_RTDATA; } =20 @@ -184,7 +184,7 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) /* read the status 0x31 */ if (rtc->command =3D=3D 0x31) { scr2_2 =3D scr2_2 & (~SCR2_RTDATA); - if (rtc->control & (0x80 >> (phase - 8))) { + if (rtc->control & (0x80 >> (rtc->phase - 8))) { scr2_2 |=3D SCR2_RTDATA; } rtc->retval =3D (rtc->retval << 1) | @@ -220,7 +220,7 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) =20 } =20 - if (ret & (0x80 >> (phase - 8))) { + if (ret & (0x80 >> (rtc->phase - 8))) { scr2_2 |=3D SCR2_RTDATA; } rtc->retval =3D (rtc->retval << 1) | @@ -229,8 +229,8 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) =20 } =20 - phase++; - if (phase =3D=3D 16) { + rtc->phase++; + if (rtc->phase =3D=3D 16) { if (rtc->command >=3D 0x80 && rtc->command <=3D 0x9F) { rtc->ram[rtc->command - 0x80] =3D rtc->value; } @@ -246,7 +246,7 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) } } else { /* else end or abort */ - phase =3D -1; + rtc->phase =3D -1; rtc->command =3D 0; rtc->value =3D 0; } @@ -911,9 +911,10 @@ static Property next_pc_properties[] =3D { =20 static const VMStateDescription next_rtc_vmstate =3D { .name =3D "next-rtc", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, .fields =3D (VMStateField[]) { + VMSTATE_INT8(phase, NextRtc), VMSTATE_UINT8_ARRAY(ram, NextRtc, 32), VMSTATE_UINT8(command, NextRtc), VMSTATE_UINT8(value, NextRtc), --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 170267053083314.676168977409702; Fri, 15 Dec 2023 12:02:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMj-0005uW-ME; Fri, 15 Dec 2023 15:00:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMZ-0005ry-Ef for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:55 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMV-0002W6-BE for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:45 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEM4-000AEs-8j; Fri, 15 Dec 2023 20:00:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=t7NYmuuKOglnRq+iVZqx0e5y2gO1A/159zsXHO+M4qk=; b=QZW73i0iyBHymChJK3XtVk0hC1 UgYywS/x5Lbb8ZdnGsEuQB0FeemgSFSV3fREppfbUhjQH9rfU30z4MKa0B12F9pYN5ytHzmARGX12 rfYYoPRdGknXL4IdWTOd3dc5IUuQxYzDk9XWknjk2OqDwP9DPFvUMnrxy8kXMpf7C0JMxwAITnnLC C8raXJ4qJ/WgjGg2r6KeZTvzkKhYXh9LfwwVH4HiQAdxLO+eIVhkzVKvvFH4MoMhP1azdjkA1JNUT +5NTp/lGHB6pXvvjPtRb990SwOsT0AhykI+X7nzPc39T2zxJf4AT2TEQgZCpLaVy/czpiX7PwloNQ z26K6BOM7V/TKg7xX+ygStOyC4H3T3qdvS6n0f0aucxiGSWPjrOuL+jdgp3STSx6HP1x/5+gLo757 AJdmfH2dVJJZQzdeAv3yaaT09CWaqZ9mIChWS9NRZFdPWotHEuFk8OlUwVHE33Xpm1pDuW4nqf4cV 5UCuJCCEvjaO+po0bpOZTiDsZTUP+VH0h8Aw/K3PdJRf0L1jpBA9Ro+A+cZLw++0I/5Xq1J4D5ptn XMl0/XMUF+wPJjc/fUNKNcsnqgNCrW3iR3mzxavehFpDJAIDwLk9YS14lEXOFqzZO6/591vdZxgI3 ZBegl578A7Ge6wyp2cq8DXZz4jwYcI/RfBMD8qi1s=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:05 +0000 Message-Id: <20231215200009.346212-9-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 08/12] next-cube.c: move LED logic to new next_scr2_led_update() function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670532182100003 Content-Type: text/plain; charset="utf-8" Ensure that the LED status is updated by calling next_scr2_led_update() whe= never the SC2 register is written. Signed-off-by: Mark Cave-Ayland --- hw/m68k/next-cube.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index f2222554fa..7ffd1c412e 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -123,6 +123,18 @@ static const uint8_t rtc_ram2[32] =3D { #define SCR2_RTDATA 0x4 #define SCR2_TOBCD(x) (((x / 10) << 4) + (x % 10)) =20 +static void next_scr2_led_update(NeXTPC *s) +{ + if (s->scr2 & 0x1) { + DPRINTF("fault!\n"); + s->led++; + if (s->led =3D=3D 10) { + DPRINTF("LED flashing, possible fault!\n"); + s->led =3D 0; + } + } +} + static void nextscr2_write(NeXTPC *s, uint32_t val, int size) { static uint8_t old_scr2; @@ -135,15 +147,6 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, in= t size) scr2_2 =3D val & 0xFF; } =20 - if (val & 0x1) { - DPRINTF("fault!\n"); - s->led++; - if (s->led =3D=3D 10) { - DPRINTF("LED flashing, possible fault!\n"); - s->led =3D 0; - } - } - if (scr2_2 & 0x1) { /* DPRINTF("RTC %x phase %i\n", scr2_2, rtc->phase); */ if (rtc->phase =3D=3D -1) { @@ -318,6 +321,7 @@ static void next_mmio_write(void *opaque, hwaddr addr, = uint64_t val, break; =20 case 0xd000 ... 0xd003: + next_scr2_led_update(s); nextscr2_write(s, val, size); break; =20 --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670586485478.75518510344205; Fri, 15 Dec 2023 12:03:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMi-0005uK-3F; Fri, 15 Dec 2023 15:00:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMb-0005ta-HH for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:55 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMZ-0002Xp-6c for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:48 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEM8-000AEs-F6; Fri, 15 Dec 2023 20:00:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=5r3bXy7P+uD1Y28KygA1yGEAJYquoAtLKY9+Xf/N9t8=; b=M1f7U6MCdjGJwEU9mtpoexhnf4 u503/Q40GDk7VBAFlLL17OjTun1vuG7qHm9zW6A+EShlGMmgjDRoXiAdMUvC+o4a6yHimpLXMPx04 dHFmvgkZdJltWzZ21CaC8MVi4jdLJVIUfbE/76aFigKhsviFaBMMhh4AXal+cDbODaHrzc5NgGOru fdNEnhdxDrIxT3cPvvla3ukVLpZx+1/pex4Z1UOk6ZcfwSfkPL69uCYRKDmAj6lkvwFon1gLZuTZX ZjRXzqaNG5YMYz0QAiH/De4iaWbVgUapkN4pa3mBIRlhOAhvnRab1sooDqhdPNW0S17t+G24VnTNs y2XizESK6CmWSY0yPFfXpzGRklVo4ef0TYPDdVkNDytEBSgqaxBoh3j2ClNle86/UGKz/9jBJNda2 U5IR8GBFvB0iokp2nluHDnTkLwYF8Bz4xKcdCopKC3IqiYNdjcZNBj8eLypDFX2Fi2raUqWHcAWbq FnlvsLfo3bIcePVJ9N58jdoVUHZQ6iL2Ie0oyk2e8wIUTYvDlf0c5Knogoc+6x13r28vFDIM2d68X MKP7t4SatxJvEmqk2RDXxo2Ogadw6dGcaH8QTBgAMtOzaINE3MXhpEAANW0frxfDnp1YA4MFIxsot N7zTTmxoaz/1pqlZfbCW6mZdQ7GW7x9vvr9PLdC9A=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:06 +0000 Message-Id: <20231215200009.346212-10-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 09/12] next-cube.c: move static old_scr2 variable to NeXTPC X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670588324100003 Content-Type: text/plain; charset="utf-8" Move the old_scr2 variable to NeXTPC so that the old SCR2 register state is stored along with the current SCR2 state. Since the SCR2 register is 32-bits wide, convert old_scr2 to uint32_t and update the SCR2 register access code to allow unaligned writes. Note that this is a migration break, but as nothing will currently boot then we do not need to worry about this now. Signed-off-by: Mark Cave-Ayland --- hw/m68k/next-cube.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index 7ffd1c412e..fd707b4b54 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -91,6 +91,7 @@ struct NeXTPC { =20 uint32_t scr1; uint32_t scr2; + uint32_t old_scr2; uint32_t int_mask; uint32_t int_status; uint32_t led; @@ -137,8 +138,7 @@ static void next_scr2_led_update(NeXTPC *s) =20 static void nextscr2_write(NeXTPC *s, uint32_t val, int size) { - static uint8_t old_scr2; - uint8_t scr2_2; + uint8_t old_scr2, scr2_2; NextRtc *rtc =3D &s->rtc; =20 if (size =3D=3D 4) { @@ -147,6 +147,8 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) scr2_2 =3D val & 0xFF; } =20 + old_scr2 =3D (s->old_scr2 >> 8) & 0xff; + if (scr2_2 & 0x1) { /* DPRINTF("RTC %x phase %i\n", scr2_2, rtc->phase); */ if (rtc->phase =3D=3D -1) { @@ -255,7 +257,6 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) } s->scr2 =3D val & 0xFFFF00FF; s->scr2 |=3D scr2_2 << 8; - old_scr2 =3D scr2_2; } =20 static uint64_t next_mmio_read(void *opaque, hwaddr addr, unsigned size) @@ -321,8 +322,11 @@ static void next_mmio_write(void *opaque, hwaddr addr,= uint64_t val, break; =20 case 0xd000 ... 0xd003: + s->scr2 =3D deposit32(s->scr2, (4 - (addr - 0xd000) - size) << 3, + size << 3, val); next_scr2_led_update(s); nextscr2_write(s, val, size); + s->old_scr2 =3D s->scr2; break; =20 default: @@ -880,6 +884,7 @@ static void next_pc_reset(DeviceState *dev) /* 0x0000XX00 << vital bits */ s->scr1 =3D 0x00011102; s->scr2 =3D 0x00ff0c80; + s->old_scr2 =3D s->scr2; =20 s->rtc.status =3D 0x90; =20 @@ -936,6 +941,7 @@ static const VMStateDescription next_pc_vmstate =3D { .fields =3D (VMStateField[]) { VMSTATE_UINT32(scr1, NeXTPC), VMSTATE_UINT32(scr2, NeXTPC), + VMSTATE_UINT32(old_scr2, NeXTPC), VMSTATE_UINT32(int_mask, NeXTPC), VMSTATE_UINT32(int_status, NeXTPC), VMSTATE_UINT32(led, NeXTPC), --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670515901733.8484182211805; Fri, 15 Dec 2023 12:01:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMr-0005xe-OZ; Fri, 15 Dec 2023 15:01:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMq-0005xN-NA for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:01:04 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMe-0002YI-4J for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:01:03 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEMC-000AEs-LW; Fri, 15 Dec 2023 20:00:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=r1ZA2t4vjwE7gsGF8Jy3ozto2DZCBs6lN3BxwGabjOM=; b=Xw33ws1qSQFBRPXM5qc1kAqWsm vsBRUdSZmNZXQEDhu9+DWJFeVPrI5V9JB0MWMBZR/YqgpKymqIiUpaC2yGwy/C7T1Y0nFCbqwnomK MReKzTv5aDx0SY6By5kMJawTdtTSnnrAVmFkCzx0b4cOPQv68yGY0NDcCiBV9wM0CcvXVswTxwYGv SuKuwjo5fY6A7CHmQvPuSTwupcF0U4omkZEKByDtEfQCNHeP/czZG8m40Cpu9bZNb6yKS+4vsnqSG 6i+kAw1Aw3FAaq+tefc5sEQzaZJoqmjH5UqZMj0H4ooTGMKVw6961r/7DTyCvDsUooBOup/VfgVu1 Gv1gZAAZTomRxs98WYdkrPtn9XH/pwsV92TbWdGDkOG6Scr5OyaB+/PTndNVPmzfms0R/dwjzDvUQ 9k/4pWEHK9RnjwV71wAuPzBthkAVM7lXvDsJcRfd9TbVhOSmDr2pASfjH1Rg8/j8bJQUxxlXxIS2p mN1NdOYyx+IT7EtzSRBShLHUELj9qqiNSVXeim+g5Yc994v+dbG/qA96R6NRvfuIsNi0MuEIuurcG Mj9ZRvBVQlaI+2kYrhsbglyvvnB8GteA9Gu7CriuL6UxlrivZvTHZVL54trkc5R3aNIwlpeSbX9mk sRZ3xwRKTRpNGZCPO4V8JDB7sSHGZdtvpQWnmL0xE=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:07 +0000 Message-Id: <20231215200009.346212-11-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 10/12] next-cube.c: remove val and size arguments from nextscr2_write() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670516245100003 Content-Type: text/plain; charset="utf-8" These are now redundant with the scr2 and old_scr2 fields in NeXTPC. Rename the function from nextscr2_write() to next_scr2_rtc_update() to better reflect its purpose. Signed-off-by: Mark Cave-Ayland --- hw/m68k/next-cube.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index fd707b4b54..d9a1f234ec 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -136,18 +136,13 @@ static void next_scr2_led_update(NeXTPC *s) } } =20 -static void nextscr2_write(NeXTPC *s, uint32_t val, int size) +static void next_scr2_rtc_update(NeXTPC *s) { uint8_t old_scr2, scr2_2; NextRtc *rtc =3D &s->rtc; =20 - if (size =3D=3D 4) { - scr2_2 =3D (val >> 8) & 0xFF; - } else { - scr2_2 =3D val & 0xFF; - } - - old_scr2 =3D (s->old_scr2 >> 8) & 0xff; + old_scr2 =3D extract32(s->old_scr2, 8, 8); + scr2_2 =3D extract32(s->scr2, 8, 8); =20 if (scr2_2 & 0x1) { /* DPRINTF("RTC %x phase %i\n", scr2_2, rtc->phase); */ @@ -255,8 +250,8 @@ static void nextscr2_write(NeXTPC *s, uint32_t val, int= size) rtc->command =3D 0; rtc->value =3D 0; } - s->scr2 =3D val & 0xFFFF00FF; - s->scr2 |=3D scr2_2 << 8; + + s->scr2 =3D deposit32(s->scr2, 8, 8, scr2_2); } =20 static uint64_t next_mmio_read(void *opaque, hwaddr addr, unsigned size) @@ -325,7 +320,7 @@ static void next_mmio_write(void *opaque, hwaddr addr, = uint64_t val, s->scr2 =3D deposit32(s->scr2, (4 - (addr - 0xd000) - size) << 3, size << 3, val); next_scr2_led_update(s); - nextscr2_write(s, val, size); + next_scr2_rtc_update(s); s->old_scr2 =3D s->scr2; break; =20 --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670497078143.76464368412883; Fri, 15 Dec 2023 12:01:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMm-0005wz-Tm; Fri, 15 Dec 2023 15:01:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMl-0005vn-3R for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:59 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMh-0002Yg-L0 for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:00:58 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEMG-000AEs-Rt; Fri, 15 Dec 2023 20:00:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=d8qdn8A9H7tJb1h77OHwlwFGp5J3shyL3s/TI3aisCc=; b=p6MVcfJAy9fFNpMChZu8n3VPln iDZi9yJkWzDhWbXG0WcWg49yUJvzj5OT7vN6mOvIMcn+G6oJs7q3oHs01E9vmSAZfnb43KzYqB/2i w6qRZ/7WMfsUaADg2a8HzWNg5TX27pr8D2DHlQXV7idBklktQ+Sjk3z2YuPCDBbf8j+1ug8j9D78q gtPwjVUxRfc/tLdH9jdj4wUxJrysSEd+pyHtgfRTIhd91mWhbsJZNUlg2eOnro3pOdSPS1Gs9kw+P aQAxFgQwwjM47CxyMQvC8uw/We2pIqZ+usk2ncX/UHNhPjN8ZWJ455fKx27ewUitJwY6lE0ojnCDV 16UBq2SpYWhlkbm1zpGV65DaMDifYzYqVGtII/HjavCnudhOYibdSiei9QQKi+HxY9LpIocoS+YIY JFyPvRxruXSxUSfwAHXfihDqfx91WItBKJU4OrJ8etUaQsVpEyoNbwQR+7QMFSqNYhMysNveUIUkc gaIYtL0FtfXMg0tlYAM7ApqbXoaR95wRaTIL2T0rolXumrJDH4G1IvCvfIqKIVMMW0qEJ5twtnhvk VL5kSzv8i0qCT/wRJXtfRhMzQI4YKudThTqkRTQUCBwBUZflti75W8lhG9JOVuThJgLaU8yleR7Mc VTUQsCE2dIhwN0l0nkmidLdx0Nj/ehNnJ6p7xfPu8=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:08 +0000 Message-Id: <20231215200009.346212-12-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 11/12] next-cube.c: replace sysmem with get_system_memory() in next_cube_init() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670498113100001 Content-Type: text/plain; charset="utf-8" Removing the intermediate variable helps simplify the code in next_cube_ini= t(). Signed-off-by: Mark Cave-Ayland --- hw/m68k/next-cube.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index d9a1f234ec..73deef25ca 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -974,7 +974,6 @@ static void next_cube_init(MachineState *machine) MemoryRegion *dmamem =3D g_new(MemoryRegion, 1); MemoryRegion *bmapm1 =3D g_new(MemoryRegion, 1); MemoryRegion *bmapm2 =3D g_new(MemoryRegion, 1); - MemoryRegion *sysmem =3D get_system_memory(); const char *bios_name =3D machine->firmware ?: ROM_FILE; DeviceState *pcdev; =20 @@ -996,7 +995,8 @@ static void next_cube_init(MachineState *machine) sysbus_realize_and_unref(SYS_BUS_DEVICE(pcdev), &error_fatal); =20 /* 64MB RAM starting at 0x04000000 */ - memory_region_add_subregion(sysmem, 0x04000000, machine->ram); + memory_region_add_subregion(get_system_memory(), 0x04000000, + machine->ram); =20 /* Framebuffer */ sysbus_create_simple(TYPE_NEXTFB, 0x0B000000, NULL); @@ -1010,19 +1010,19 @@ static void next_cube_init(MachineState *machine) /* BMAP memory */ memory_region_init_ram_flags_nomigrate(bmapm1, NULL, "next.bmapmem", 6= 4, RAM_SHARED, &error_fatal); - memory_region_add_subregion(sysmem, 0x020c0000, bmapm1); + memory_region_add_subregion(get_system_memory(), 0x020c0000, bmapm1); /* The Rev_2.5_v66.bin firmware accesses it at 0x820c0020, too */ memory_region_init_alias(bmapm2, NULL, "next.bmapmem2", bmapm1, 0x0, 6= 4); - memory_region_add_subregion(sysmem, 0x820c0000, bmapm2); + memory_region_add_subregion(get_system_memory(), 0x820c0000, bmapm2); =20 /* KBD */ sysbus_create_simple(TYPE_NEXTKBD, 0x0200e000, NULL); =20 /* Load ROM here */ memory_region_init_rom(rom, NULL, "next.rom", 0x20000, &error_fatal); - memory_region_add_subregion(sysmem, 0x01000000, rom); + memory_region_add_subregion(get_system_memory(), 0x01000000, rom); memory_region_init_alias(rom2, NULL, "next.rom2", rom, 0x0, 0x20000); - memory_region_add_subregion(sysmem, 0x0, rom2); + memory_region_add_subregion(get_system_memory(), 0x0, rom2); if (load_image_targphys(bios_name, 0x01000000, 0x20000) < 8) { if (!qtest_enabled()) { error_report("Failed to load firmware '%s'.", bios_name); @@ -1051,7 +1051,7 @@ static void next_cube_init(MachineState *machine) /* DMA */ memory_region_init_io(dmamem, NULL, &next_dma_ops, machine, "next.dma", 0x5000); - memory_region_add_subregion(sysmem, 0x02000000, dmamem); + memory_region_add_subregion(get_system_memory(), 0x02000000, dmamem); } =20 static void next_machine_class_init(ObjectClass *oc, void *data) --=20 2.39.2 From nobody Wed Nov 19 18:41:59 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702670598981400.69566709968115; Fri, 15 Dec 2023 12:03:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEEMs-0005xu-Iu; Fri, 15 Dec 2023 15:01:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMr-0005xU-1k for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:01:05 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEEMl-0002Z7-QJ for qemu-devel@nongnu.org; Fri, 15 Dec 2023 15:01:04 -0500 Received: from [2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066] (helo=localhost.localdomain) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEEML-000AEs-0E; Fri, 15 Dec 2023 20:00:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=jyHbGUD3VTckOBcQ0GcMGq8yLmzlFR+M8qEZX87AFRE=; b=bM9j3PJvV5ZkRubhJWgSAQug+o W/fDBzmODkb0PCTTHO0TgiCXLJ9J8Fsa1NikoMjaaYvEMXduicSkEuwSIxmCs79GuTo9ko0mlSZWe 7cjmjaYPELdYIwhR2+ZT5qXK/R0H4S6SOq2IhDfiEKhnnHw6cGMDFNDjHe0JeDbeSHFF5yPcsRX27 LSBXbHmR+dh8eHAaqIp4odbZOzzHHIqvqtDDqTC6Kq20MNEGDSrqFDAmb4NLxJFcSQPrYgwr/Rqsg VdVrt3XTQAd3I9oswfrwVH/OqE1PGVBMD3PURF9VC6/JjUxuh0WO46DxiQPF+TuWdedHtGzaMdm/K 1VP1noqVUr/7H1bHcD8esEkGN/HjAyO7A5eeRBo7J7WpY9RjZLK4+lZwqvlHh6wjTUXZxm9k5teek BNpl9iMLWrHGV1WTalz7aKFPLQrJwfIsJIB3+105iOrIF8Y5L0JaFBkFtK5VbhIRadal/q9a+9BTC uMORdkEJ2w2H/US9CaohnQgdL/mdF2TNZa07iouuXGuz7snL1IV8qGnSe8Bf2aYY8K074UqL02a2Y /Hi+fMbwHTiZSMahTXj5UVW3IA5BzL5XlEHQaGH0H4QfVbaoPm0CD7yoPK0u+Ht4IadD+lTDDOPxP Dcj4ayKk8AN1WEUQcT2UhVq1wOcHsnxUIo9azQsSE=; From: Mark Cave-Ayland To: huth@tuxfamily.org, qemu-devel@nongnu.org Date: Fri, 15 Dec 2023 20:00:09 +0000 Message-Id: <20231215200009.346212-13-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> References: <20231215200009.346212-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8bb0:f100:5e2c:460f:a6a7:b066 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 12/12] next-cube.c: move machine MemoryRegions into NeXTState X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1702670600356100003 Content-Type: text/plain; charset="utf-8" These static memory regions are contained within the machine and do not nee= d to be dynamically allocated. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/m68k/next-cube.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index 73deef25ca..4f231a1de0 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -74,6 +74,12 @@ typedef struct NextRtc { struct NeXTState { MachineState parent; =20 + MemoryRegion rom; + MemoryRegion rom2; + MemoryRegion dmamem; + MemoryRegion bmapm1; + MemoryRegion bmapm2; + next_dma dma[10]; }; =20 @@ -967,13 +973,9 @@ static const TypeInfo next_pc_info =3D { =20 static void next_cube_init(MachineState *machine) { + NeXTState *m =3D NEXT_MACHINE(machine); M68kCPU *cpu; CPUM68KState *env; - MemoryRegion *rom =3D g_new(MemoryRegion, 1); - MemoryRegion *rom2 =3D g_new(MemoryRegion, 1); - MemoryRegion *dmamem =3D g_new(MemoryRegion, 1); - MemoryRegion *bmapm1 =3D g_new(MemoryRegion, 1); - MemoryRegion *bmapm2 =3D g_new(MemoryRegion, 1); const char *bios_name =3D machine->firmware ?: ROM_FILE; DeviceState *pcdev; =20 @@ -1008,21 +1010,24 @@ static void next_cube_init(MachineState *machine) sysbus_mmio_map(SYS_BUS_DEVICE(pcdev), 1, 0x02100000); =20 /* BMAP memory */ - memory_region_init_ram_flags_nomigrate(bmapm1, NULL, "next.bmapmem", 6= 4, - RAM_SHARED, &error_fatal); - memory_region_add_subregion(get_system_memory(), 0x020c0000, bmapm1); + memory_region_init_ram_flags_nomigrate(&m->bmapm1, NULL, "next.bmapmem= ", + 64, RAM_SHARED, &error_fatal); + memory_region_add_subregion(get_system_memory(), 0x020c0000, &m->bmapm= 1); /* The Rev_2.5_v66.bin firmware accesses it at 0x820c0020, too */ - memory_region_init_alias(bmapm2, NULL, "next.bmapmem2", bmapm1, 0x0, 6= 4); - memory_region_add_subregion(get_system_memory(), 0x820c0000, bmapm2); + memory_region_init_alias(&m->bmapm2, NULL, "next.bmapmem2", &m->bmapm1, + 0x0, 64); + memory_region_add_subregion(get_system_memory(), 0x820c0000, + &m->bmapm2); =20 /* KBD */ sysbus_create_simple(TYPE_NEXTKBD, 0x0200e000, NULL); =20 /* Load ROM here */ - memory_region_init_rom(rom, NULL, "next.rom", 0x20000, &error_fatal); - memory_region_add_subregion(get_system_memory(), 0x01000000, rom); - memory_region_init_alias(rom2, NULL, "next.rom2", rom, 0x0, 0x20000); - memory_region_add_subregion(get_system_memory(), 0x0, rom2); + memory_region_init_rom(&m->rom, NULL, "next.rom", 0x20000, &error_fata= l); + memory_region_add_subregion(get_system_memory(), 0x01000000, &m->rom); + memory_region_init_alias(&m->rom2, NULL, "next.rom2", &m->rom, 0x0, + 0x20000); + memory_region_add_subregion(get_system_memory(), 0x0, &m->rom2); if (load_image_targphys(bios_name, 0x01000000, 0x20000) < 8) { if (!qtest_enabled()) { error_report("Failed to load firmware '%s'.", bios_name); @@ -1049,9 +1054,10 @@ static void next_cube_init(MachineState *machine) next_scsi_init(pcdev, cpu); =20 /* DMA */ - memory_region_init_io(dmamem, NULL, &next_dma_ops, machine, "next.dma", - 0x5000); - memory_region_add_subregion(get_system_memory(), 0x02000000, dmamem); + memory_region_init_io(&m->dmamem, NULL, &next_dma_ops, machine, + "next.dma", 0x5000); + memory_region_add_subregion(get_system_memory(), 0x02000000, + &m->dmamem); } =20 static void next_machine_class_init(ObjectClass *oc, void *data) --=20 2.39.2