From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420577620360.26337857718056; Thu, 22 Jun 2023 00:56:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAi-00047X-SP; Thu, 22 Jun 2023 03:56:04 -0400 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 1qCFAf-00040S-2H for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002rO-90 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:58 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M8hlZ-1q7YLD3B8D-004hYV; Thu, 22 Jun 2023 09:55:46 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 01/24] q800: fix up minor spacing issues in hw_compat_q800 GlobalProperty array Date: Thu, 22 Jun 2023 09:55:21 +0200 Message-Id: <20230622075544.210899-2-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:oGnDNRk7z5rEwHHbUeu1Ly5s+5yURUSa4tum0ZFJUAxfUD2rxGX wjwu0Cm0yMAQSKiyWwmkkzHXULiOpfMNnu3RWpDfb6ob4IlTsgGlfgbsBPmepphfi/+OZhu YgO15e+6EWWRrhj25ElimEy5LQrd5Yi5bGeDkj8v/uyIuuT7KzWjBEE2ByW987EZpTW0t+H uVcOo3OQkCilEdTTPvlfg== UI-OutboundReport: notjunk:1;M01:P0:K3zxL/9EqL4=;N85fwa4YgdarS8XGK+Vlq/sIyEt o8q3/YxHYSYrs7+rClhYUiLHrrtAEc68JPtXkPloVxCJKkRKKzmIvzsvaEoG+i3t1DIPjTDc4 d7PT1CH+U5TPo1eKrn5j/6ljwFvCDFocnBNTNdgV7Gkf3KC2YIMupwlshBFsF1DE7XjjsZiDC MFFRM3YKpi52695Fr9Cqs1Td/o1hO7TtZxEBhPoN5l7BkML5FLgwX51VhKdyZwOsqILZgYlAu HRb8hZ37AKa1AtBJlhABr6KdiocCzAXFEpTFijIAk0wRevzBF3++18XHEasSCvmh9IUv8/ljj 6OrYpfInk4/hchB9eKOfrFecnekkKe41zlSZzY1eXprydg3gR6bCGcZ1V0oWIobF+Hd9Ltvrj MSQHIf7H9VG0ljUWtW18M0u2eoYnMNijKZSZkTU6vxqgUH2G79QyiAQWasNVXtwsqFWXCKrJQ Y5ifQONDkgrl27USKDzB/Da04GQ0CA/lNx3dzDwCDrb4fuDRqBqhtOuh4zPlvU5dIarmrhKoT 7yXFsTVNgKedpReCApPFt5IgJJitLy5A5mtzY+4QFX04LimdL5lXqVKzQBqaxAJQH+e0HjTXL TjBZMwN3N2xX/Hu1dvK6M1sz8IkPiBDLf4RjzCtxXklSB5n8SlTQmMiZZuG945717y/uCDgdQ x7QTAJjBpoQNYsAqvkdBhldt3qyyrroD70aAbJ3QXw== 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: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420578218100001 From: Mark Cave-Ayland Ensure there is a space before the final closing brace for all global properties. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-2-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/m68k/q800.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 68f0cd8cac2e..dda57c60bfd9 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -719,14 +719,14 @@ static void q800_init(MachineState *machine) } =20 static GlobalProperty hw_compat_q800[] =3D { - { "scsi-hd", "quirk_mode_page_vendor_specific_apple", "on"}, + { "scsi-hd", "quirk_mode_page_vendor_specific_apple", "on" }, { "scsi-hd", "vendor", " SEAGATE" }, { "scsi-hd", "product", " ST225N" }, { "scsi-hd", "ver", "1.0 " }, - { "scsi-cd", "quirk_mode_page_apple_vendor", "on"}, - { "scsi-cd", "quirk_mode_sense_rom_use_dbd", "on"}, - { "scsi-cd", "quirk_mode_page_vendor_specific_apple", "on"}, - { "scsi-cd", "quirk_mode_page_truncated", "on"}, + { "scsi-cd", "quirk_mode_page_apple_vendor", "on" }, + { "scsi-cd", "quirk_mode_sense_rom_use_dbd", "on" }, + { "scsi-cd", "quirk_mode_page_vendor_specific_apple", "on" }, + { "scsi-cd", "quirk_mode_page_truncated", "on" }, { "scsi-cd", "vendor", "MATSHITA" }, { "scsi-cd", "product", "CD-ROM CR-8005" }, { "scsi-cd", "ver", "1.0k" }, --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420756606195.48858948003897; Thu, 22 Jun 2023 00:59:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAj-00048S-Ct; Thu, 22 Jun 2023 03:56:05 -0400 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 1qCFAf-00040z-9T for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002rT-87 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:58 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MMX9b-1qU2lg0x5b-00JbmL; Thu, 22 Jun 2023 09:55:47 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 02/24] q800: add missing space after parent object in GLUEState Date: Thu, 22 Jun 2023 09:55:22 +0200 Message-Id: <20230622075544.210899-3-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:XUjuaBJpzmtiWOzS+HYYjXv5V/I5TY1IZwv2Un+Rrw+llsRULLe 45BLI8K8jAbVCq10Z7QEaoT8kYj5fV6hZJKwai2n0WJyDigO//deDKOy9+tecvs4gC0buSh uYUNveMfVDVeFuw5SHyqekE0OCK/ngLksKhRopAeH13cVFuvSAOoQ3jD31Fi4EjOLJuRa8L LV7JruZ1smYcsVI+EUYtg== UI-OutboundReport: notjunk:1;M01:P0:PdGh3UCiYWg=;KnGCQLhF04VRVsUKIjN013NtsZ9 Gth8+CfVFihhcpoFS14TPPAghuNgCh6maWljaUUrh3OQX++aQ0kC2rK8jLuXPRrTph4gm3cxu Aif5brm08HYG4O/g8lK7SPLdDcfdq77xMhzx383xD5zlfEsIO2F/U+KQ7DPIeSKc1lhBrMVLa 8MKcuvK+KCTKlMvv9yO0BctZ5nExFDo5XZjExum2ZSzgtVf4j5Z2GCYi6O+fCZo5wqeSErS+X KRbnyuR4hvABH7DmY0eENKaB78Vu+cBE/838qt53rnodZ1IxZqfln7jOALS4dB/darEUs7FMh qTEndASGv7Sip86Fnc7SJRKkKysXuyWtGqMY4D6ZP4Amt6KA4cxIpAg/xGKZmjK5CkTGpWzDX H5fKHLaQK/g9B8CCWQO7SEZkcdwO+fesLiHDV/jS/Tl4iiwLpi9ww/9/GNzekTdgXio1TqSWo VarGuitkj6i3X1JNkt9Ct4VwrhKRfnp7h3TWC+0/dtK4qC6KtBFry9DIXF+2kfaCjlC50Dvw+ vHHh0bdgDUAV/QU83xPLNLAFTgTPjYYQ0+m5PK0ffKS19poaFf9uvQOfNntnZjRQBxJB7Hbkh D6FmwElb529LfUtU0viWE+mXPGjN/zfkkBmi/URGK/aNAL0ziHttjoUjbsUt/4VNVYhXyr58Z LA3Vxq5Cv8FYIU/JWv0PBia/2V3ST7YlO/eqcfpXyA== 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: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420757217100001 From: Mark Cave-Ayland This brings GLUEState in line with our current QOM guidelines. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-3-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/m68k/q800.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index dda57c60bfd9..465c510c186e 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -100,6 +100,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(GLUEState, GLUE) =20 struct GLUEState { SysBusDevice parent_obj; + M68kCPU *cpu; uint8_t ipr; uint8_t auxmode; --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420576759949.419881389008; Thu, 22 Jun 2023 00:56:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAk-0004Cb-6X; Thu, 22 Jun 2023 03:56:06 -0400 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 1qCFAf-00040v-8y for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.187]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002rY-9D for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:58 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mn2Fb-1plwVY2zW3-00k6qH; Thu, 22 Jun 2023 09:55:47 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 03/24] q800: introduce Q800MachineState Date: Thu, 22 Jun 2023 09:55:23 +0200 Message-Id: <20230622075544.210899-4-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:o89uu9sa2mhTYJOgC+SpgjAxtFd+Y89mK5k6yuHGVel6U6Xmf7u i07NHNeaiwO2k2c+PJhXPetQUtWD6uXno3i9M+PUhkozjAmLnu61YmAVz7JsK9tikSvKG3g PBYT+Qtem8HGFrsjD268UOX5hsiNnDzcKb4jVx4TIS0xcYl0OBTg7WIluGfHdVDh1ez0TjL B4LVFFtlhLv/NOwF3ndsQ== UI-OutboundReport: notjunk:1;M01:P0:YWvgwPQVBWs=;3jbaIfCt3M9q0LAzZ1m8U8vqMtw 7w3BqvEjTzm6PYdsmJghYxIcohEPPIdrA07V87DiybcEZx1nQn6RC60Oc15Oah2xwyKxTkvmV ra54LDg+h27x5iu3vzuElsPKNkSB26finn/EwiNO6VvRD5v7hfpveCBe6T8aGTf8yjURCcLac S12ZerGtaYO/593c3y7t1o1C3n3kt9LtzWmsNty3LKz5GrLa3oRtQi9Bx2X5GKr+q2c6noBKd hPQM0nzn9PWOvl8e/KBIVLVMpPKxHRHh+nTzVnYpSc1Min2qCPYesPxJ6/4UfUiNL0g7BHcoQ /AMcvt4wACJ16F+rQERPPsjforkcykHbwYDfmhPBA0JMMTvSiBlUcstiEJ9EKv6aIZTjVKTO4 DLh6OhavevTW2/uxJ0xjKT+1HLGsm7kWQY6nGMFAN9k42dc5wFTSVIiqPdFpJzG6e3Lbaq8o2 BlSQYoCY8cBoSHlpNdJOc0yxoxQZGfJj+ARv0rc7o5ZiEkgLawd0Ryc/8btfDPBwN1Z70WQgN 5q3g/4MJlJK2NPy8KYgRLnXmtXgkIb+nfkLUuOXLQN5WTwJf4FPYMq+JR55bw7RpVNJXzsxD7 uxprNmuyY2u6E8YNmd3Ev2g6Rq7wjxhkjKyiVcLcpz/0OZqjHmSS2YaRyMdUwvdqeGmyJqQUp yMIRBge1ASzW+jJTwCCjzhGPW2c7d9Mc23IC+RzY8Q== 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: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420578368100005 From: Mark Cave-Ayland This provides an overall container and owner for Machine-related objects su= ch as MemoryRegions. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- MAINTAINERS | 1 + include/hw/m68k/q800.h | 40 ++++++++++++++++++++++++++++++++++++++++ hw/m68k/q800.c | 2 ++ 3 files changed, 43 insertions(+) create mode 100644 include/hw/m68k/q800.h diff --git a/MAINTAINERS b/MAINTAINERS index 88b5a7ee0a79..748a66fbaa30 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1236,6 +1236,7 @@ F: include/hw/misc/mac_via.h F: include/hw/nubus/* F: include/hw/display/macfb.h F: include/hw/block/swim.h +F: include/hw/m68k/q800.h =20 virt M: Laurent Vivier diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h new file mode 100644 index 000000000000..f3bc17aa1bdc --- /dev/null +++ b/include/hw/m68k/q800.h @@ -0,0 +1,40 @@ +/* + * QEMU Motorla 680x0 Macintosh hardware System Emulator + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ + +#ifndef HW_Q800_H +#define HW_Q800_H + +#include "hw/boards.h" +#include "qom/object.h" + +/* + * The main Q800 machine + */ + +struct Q800MachineState { + MachineState parent_obj; +}; + +#define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") +OBJECT_DECLARE_SIMPLE_TYPE(Q800MachineState, Q800_MACHINE) + +#endif diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 465c510c186e..c0256c8a904c 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -38,6 +38,7 @@ #include "standard-headers/asm-m68k/bootinfo.h" #include "standard-headers/asm-m68k/bootinfo-mac.h" #include "bootinfo.h" +#include "hw/m68k/q800.h" #include "hw/misc/mac_via.h" #include "hw/input/adb.h" #include "hw/nubus/mac-nubus-bridge.h" @@ -749,6 +750,7 @@ static void q800_machine_class_init(ObjectClass *oc, vo= id *data) static const TypeInfo q800_machine_typeinfo =3D { .name =3D MACHINE_TYPE_NAME("q800"), .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(Q800MachineState), .class_init =3D q800_machine_class_init, }; =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420634885722.7234704074606; Thu, 22 Jun 2023 00:57:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAk-0004DC-F8; Thu, 22 Jun 2023 03:56:06 -0400 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 1qCFAf-00040r-8U for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002rc-95 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MA7b8-1qMeEw0j1u-00BaNI; Thu, 22 Jun 2023 09:55:48 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 04/24] q800: rename q800_init() to q800_machine_init() Date: Thu, 22 Jun 2023 09:55:24 +0200 Message-Id: <20230622075544.210899-5-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:e2khBa/uvB5RS0TqFzxpxE+Lq/QC44XzgMLdrVhVGkQ3vJO/zGs vQzZyRyAJpx0hRb0lOW/1YhMjTfdGbULIfykyOF7NH71UAT2YuES9aGsHwpv5I+dMnJsVf6 fhsh8NeSIznwon6ee6VTum4qP63ti6vzSQI8kX6TL+ha1XLOn0mEvUoRamphyCwjRMgdg5F ktNrqlGgiYlUk/S+WCZhw== UI-OutboundReport: notjunk:1;M01:P0:YTjOggislO0=;Rjgkiv7hnho2NMOnniM0Zfiu+C8 Oe5L5euBEYLZVVH4qLxVUdQwK81vUvKQCufOBCy9bJvQtzTsIBuSIrBoWUDeIu3h/CXpncuNt cEOyNlP1Jove3JlQO0OnMeMAiRrY1r1RnhBIheNSJXWuzdamXSlCPr5LmNEBaCk0NX1pXTQ2k OeStYcpu3xs0ixal9J/11fGiXa9lbpp+fNc/UkYoRWSEBxcqhxoS42JX4tYu1k0grrBNoH69T XMAlvaFkbrpy/YrzdNhPU77Yt1fPaBV2gsS9Iz405yC2yQcMgZdKo0pulWXHyzB0alq97tedi Oi30MVhJBzFtLRoXqBxrH9vb26N+YsVXp18AYbtN0qpTxQEIvFDKwR5V8LJZ+kY+b9FxIiA6M 92E0ZmlOLrCDBtIGwbwhVC/xjNhDyOQfoiH4gu6VmAsWbEs/wmM9Hcp/ZZNAkOlxmsEyggbwi zUBUTCdy+224wC6bvASfJjfBzk6ANfUMtCa9cdA/OkJn/PzfNrZyxvWEc2x0i6iC8zsFvrUqA VHu+kMU8pYXrWxgoEJSREK9gsTCjjyePaplxMnFyzMrCC8y5oNpE5niuJGk6rqiVJWR1cwozx 72iUUe3U7YB0Gv/er1ewovgiDv1vDt5jo3STpxjr7Ec5az+ILQCT05tuNxb5aqvTNrq5uGOX2 198YMk4lwq5KDdzYIuw3ZZsaTbpQc0NBgernkzJx2g== 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: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420636190100005 From: Mark Cave-Ayland This will enable us later to distinguish between QOM initialisation and mac= hine initialisation. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-5-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/m68k/q800.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index c0256c8a904c..062a3c6c7614 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -362,7 +362,7 @@ static uint8_t fake_mac_rom[] =3D { 0x60, 0xFE /* bras [self] */ }; =20 -static void q800_init(MachineState *machine) +static void q800_machine_init(MachineState *machine) { M68kCPU *cpu =3D NULL; int linux_boot; @@ -738,8 +738,9 @@ static const size_t hw_compat_q800_len =3D G_N_ELEMENTS= (hw_compat_q800); static void q800_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Macintosh Quadra 800"; - mc->init =3D q800_init; + mc->init =3D q800_machine_init; mc->default_cpu_type =3D M68K_CPU_TYPE_NAME("m68040"); mc->max_cpus =3D 1; mc->block_default_type =3D IF_SCSI; --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420646383988.1759056686419; Thu, 22 Jun 2023 00:57:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAh-00044Q-KQ; Thu, 22 Jun 2023 03:56:03 -0400 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 1qCFAb-0003yk-PO for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from mout.kundenserver.de ([212.227.126.187]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002rh-8O for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:57 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MQdtO-1qPtuE2odi-00NkVU; Thu, 22 Jun 2023 09:55:48 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 05/24] q800: move CPU object into Q800MachineState Date: Thu, 22 Jun 2023 09:55:25 +0200 Message-Id: <20230622075544.210899-6-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2a8xwGQld4SdRMFrDuktq0vClksm0MGLxxJy4dQWs0nckl6VWNw /D9ZxgjHg74t9YAUYWKKJHOwAC004kLYI9IIOuCtTFtN3mjiuJbbfoxchaYmjcXOfEksKZ8 m4EnlD+XatHGvPgT4tOtKBx+c+hnzpX/hkxzedaPh4tYvnEWdJA1rRaO6J08s5dlxdBAOsh f3hYIYmGO64+Nd/yQgVXA== UI-OutboundReport: notjunk:1;M01:P0:RgsqI9lrHfk=;X9vIn40SdYWg/GiMWNmuZ9ofkpA fIGH0nkk16ssi/34/I9xXzyKw6/ySeYpJM6UWV87S3me+6ypyJ3GUrd8LjBRXywjFQqVQQL9i WWd5rf0sO3OeBE5Clp0RfjFXLBvb30tW5d+TTG8aV1k9eKaqlVsls21CA/KKGQ33Km4LiL3Ra WBNRqlbIij9FcSZ3p8TU+u9kt5cofTV0epdMgU6NlmElhtviXSCTIU6V32uEc71mIiIBfmc7H iFh/CLYcoQ13oLI8MlwuNlMVuieYtM794A4BrHQwYoSXslmTYTTIT8qhIFVcmhxTJHc+iBcGj ig+8Mtwu7yQTi62tjh0FBG/0/U25n7dSWy1r/OZSPedbC6bB4gDhJP3XikAHuB2g0g2MpqMHl sMNgjOgVmp1pPWrEC10hbsz4EmXq9pBgXLVcTAEETGqdBwYfGRs9oRJGzE9aTuiVNwLwmHtEq 5Q4XgHnNavCZhS2RP4kmqqDxhw4fHlBjhhWe4JZqYQisTQv5q1cN4zZm0Mef10YO1uENOia6+ AMsrChMpoADd0OufMa24wgQ81Pe0p/JSVMsibEN3kS8b3tvwpQeUqSfMYAeB8c4+4RELvbRIL /7C/z94W7yAUW4RXG8JoHzCx00WAltjgpcQDT+JuOPIUy3Vnws4nDxco5olk/l/d/a/qqhkNj BFv56buR3Yy3nJtN6Br4OOX6YUKsSrDdOE3tL+0QMg== 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: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420648388100003 From: Mark Cave-Ayland Also change the instantiation of the CPU to use object_initialize_child() followed by a separate realisation. Restrict valid CPU types to m68040. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-6-mark.cave-ayland@ilande.co.uk> [lv: update commit message] Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 3 +++ hw/m68k/q800.c | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index f3bc17aa1bdc..4cb1a51dfe9d 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -25,6 +25,7 @@ =20 #include "hw/boards.h" #include "qom/object.h" +#include "target/m68k/cpu-qom.h" =20 /* * The main Q800 machine @@ -32,6 +33,8 @@ =20 struct Q800MachineState { MachineState parent_obj; + + M68kCPU cpu; }; =20 #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 062a3c6c7614..2b651de3c13b 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -364,7 +364,7 @@ static uint8_t fake_mac_rom[] =3D { =20 static void q800_machine_init(MachineState *machine) { - M68kCPU *cpu =3D NULL; + Q800MachineState *m =3D Q800_MACHINE(machine); int linux_boot; int32_t kernel_size; uint64_t elf_entry; @@ -407,8 +407,9 @@ static void q800_machine_init(MachineState *machine) } =20 /* init CPUs */ - cpu =3D M68K_CPU(cpu_create(machine->cpu_type)); - qemu_register_reset(main_cpu_reset, cpu); + object_initialize_child(OBJECT(machine), "cpu", &m->cpu, machine->cpu_= type); + qdev_realize(DEVICE(&m->cpu), NULL, &error_fatal); + qemu_register_reset(main_cpu_reset, &m->cpu); =20 /* RAM */ memory_region_add_subregion(get_system_memory(), 0, machine->ram); @@ -430,7 +431,8 @@ static void q800_machine_init(MachineState *machine) =20 /* IRQ Glue */ glue =3D qdev_new(TYPE_GLUE); - object_property_set_link(OBJECT(glue), "cpu", OBJECT(cpu), &error_abor= t); + object_property_set_link(OBJECT(glue), "cpu", OBJECT(&m->cpu), + &error_abort); sysbus_realize_and_unref(SYS_BUS_DEVICE(glue), &error_fatal); =20 /* VIA 1 */ @@ -605,7 +607,7 @@ static void q800_machine_init(MachineState *machine) =20 macfb_mode =3D (NUBUS_MACFB(dev)->macfb).mode; =20 - cs =3D CPU(cpu); + cs =3D CPU(&m->cpu); if (linux_boot) { uint64_t high; void *param_blob, *param_ptr, *param_rng_seed; @@ -735,6 +737,11 @@ static GlobalProperty hw_compat_q800[] =3D { }; static const size_t hw_compat_q800_len =3D G_N_ELEMENTS(hw_compat_q800); =20 +static const char *q800_machine_valid_cpu_types[] =3D { + M68K_CPU_TYPE_NAME("m68040"), + NULL +}; + static void q800_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); @@ -742,6 +749,7 @@ static void q800_machine_class_init(ObjectClass *oc, vo= id *data) mc->desc =3D "Macintosh Quadra 800"; mc->init =3D q800_machine_init; mc->default_cpu_type =3D M68K_CPU_TYPE_NAME("m68040"); + mc->valid_cpu_types =3D q800_machine_valid_cpu_types; mc->max_cpus =3D 1; mc->block_default_type =3D IF_SCSI; mc->default_ram_id =3D "m68k_mac.ram"; --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420710547747.3552234328508; Thu, 22 Jun 2023 00:58:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBJ-0004th-BZ; Thu, 22 Jun 2023 03:56:41 -0400 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 1qCFAf-00040k-6K for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002s5-8j for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:58 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MD9jV-1qKjcy0YZV-0097Op; Thu, 22 Jun 2023 09:55:49 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 06/24] q800: move ROM memory region to Q800MachineState Date: Thu, 22 Jun 2023 09:55:26 +0200 Message-Id: <20230622075544.210899-7-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:nFhTxUe+M2uX0htoHlTjvqFF1q20sVTZsIZ2mTtA8gyK/Iy4OrP VqtVVr9P/Xt3SWnXUwo2D7ghUwfgmhEFCdezTpaf7NY/sibB8T6506azDfKrxL9RQqLSDp4 KWjDCOBCy7C2j57BEO1/wqImmTDtM1bbOeXyEHtMCGepXNnPorAZ40Kidjs3pG27CoUI2Aj EYo+J8jb7rj41jZw4NQqA== UI-OutboundReport: notjunk:1;M01:P0:mwZuDtMqCZY=;F0bo6dzn0bVE5rj7EWAU7vv9vQY c2Uv0Odfz+23buX6ZFwkFmn8TaftWdiwQ2xIX3Gg5f/2yzEkHo9MZoNUDrG1DGUxJywPnr9KJ e3lAv4PSlO0YVDnAok0iIzZGbHE9oD00Z6KCmOKbsjt1ikefAzIxbPXcdYpNmjbpeA7WsuVcO 0SGX70ymG4RjQ92rjvVQTYaPttWRHelblVQK1mD9d0iUgj+mjaDmP9zPxzczcW5djRkUelDgX drc7YqH+ZlouMRW9BfnuEY7Cu/8kO2otfavKqtND9wDxkOkzN8d3/1uBi9zBLt8EvCZgs4G2A It+x/cnbqdDahRbHZop8r6qmS+8fMpv15US/SMgFTUYb2uQx1KcnUyvm6/b/FWXJpQpRIzM6Y WzBBpr5YUdZORv2nD3l3OQRfyBKeBsAv9XHA23Y6vUXI01k9YNU9PfuzrTZIeVzvXVRJGX1yH Pn7p6h9MXCG4YpgQtGW2s1Nd7uXdDnATYH3Or/DNeAHhqF8hrqyFX1Y5RhkdhuMAFCPzqhzdX PyuoXZ6eU2+Px00LzgSMZAjZLV5+pphkO2GvDHxeu11TMs3NUEqZpdwDVgHU44G2Gq2Nk4ufv 7E72YPc23Im7+wPLmlI31Gp3BNa/B3SgUT6Hy9Jscd5y7j91SJTRwXOMqvxxRI9BJz9FFNOlF kyNka284NoHflgQDB34IzOtFjXNuW/1Rz2/SGdT3/Q== 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: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420712744100007 From: Mark Cave-Ayland Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-7-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 13 +++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 4cb1a51dfe9d..d1f1ae4b8864 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -26,6 +26,7 @@ #include "hw/boards.h" #include "qom/object.h" #include "target/m68k/cpu-qom.h" +#include "exec/memory.h" =20 /* * The main Q800 machine @@ -35,6 +36,7 @@ struct Q800MachineState { MachineState parent_obj; =20 M68kCPU cpu; + MemoryRegion rom; }; =20 #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 2b651de3c13b..9f9668c2b4b3 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -372,7 +372,6 @@ static void q800_machine_init(MachineState *machine) int bios_size; ram_addr_t initrd_base; int32_t initrd_size; - MemoryRegion *rom; MemoryRegion *io; MemoryRegion *dp8393x_prom =3D g_new(MemoryRegion, 1); uint8_t *prom; @@ -646,11 +645,10 @@ static void q800_machine_init(MachineState *machine) BOOTINFO1(param_ptr, BI_MAC_VROW, macfb_mode->stride); BOOTINFO1(param_ptr, BI_MAC_SCCBASE, SCC_BASE); =20 - rom =3D g_malloc(sizeof(*rom)); - memory_region_init_ram_ptr(rom, NULL, "m68k_fake_mac.rom", + memory_region_init_ram_ptr(&m->rom, NULL, "m68k_fake_mac.rom", sizeof(fake_mac_rom), fake_mac_rom); - memory_region_set_readonly(rom, true); - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); + memory_region_set_readonly(&m->rom, true); + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->= rom); =20 if (kernel_cmdline) { BOOTINFOSTR(param_ptr, BI_COMMAND_LINE, @@ -692,11 +690,10 @@ static void q800_machine_init(MachineState *machine) } else { uint8_t *ptr; /* allocate and load BIOS */ - rom =3D g_malloc(sizeof(*rom)); - memory_region_init_rom(rom, NULL, "m68k_mac.rom", MACROM_SIZE, + memory_region_init_rom(&m->rom, NULL, "m68k_mac.rom", MACROM_SIZE, &error_abort); filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->= rom); =20 /* Load MacROM binary */ if (filename) { --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420661521483.3074517141781; Thu, 22 Jun 2023 00:57:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFB2-0004Ht-Tm; Thu, 22 Jun 2023 03:56:29 -0400 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 1qCFAg-000438-Or for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from mout.kundenserver.de ([212.227.126.133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sV-8u for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MWixU-1qaJVl2a40-00X7Mc; Thu, 22 Jun 2023 09:55:50 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 07/24] q800: move GLUE device into separate q800-glue.c file Date: Thu, 22 Jun 2023 09:55:27 +0200 Message-Id: <20230622075544.210899-8-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:F07EPQdHAK5INksPuITxFBfSCTGC8Gg0Dwam2ZT7pSGaEK8pN76 8Gpy00lGW3ENr5Wi8KGVjAV4F9ZypMKS2XC2DRUYrHM51C4GwOxZuagg4DUykFY33sYkafP CtBTZpjbhZa5Nd3trjwn183CKjYS3h6yspCW8asC4ammfY1Kw7/25XwuyoqVH2mDP+Io7Aw ddbe8WPC/0NkzaHQIN+Ug== UI-OutboundReport: notjunk:1;M01:P0:HCfMPhW76DU=;Uckrqntzm/DGoUcr64taoqG3w/r KXb/wxkYPZ+l/YArjBFAxefivfInmNdrseUYE6OobpIxrg+qKMq5h2mVPZYVWY+ZWqA3zKDDd J2Uk7SXLVyFapxRzzbC/bAgdMurF2EBvPBwkbrTveyyjsQ8B8tQWhwjlG8LUldPpUx269JT9U YNAI/7wGnsZ29MBwzLES5jYz/g65rzoYi5+ujwJ8OQnG7OUwzj35ri4sbsz+hdCICZ/1EQe/A 0nGDIlDH77EQJ5rz+KhDd0VXCm53MdAb4Q5JfzB9f1Zh85/+MI3O+AcOcolsEadtRCHzTWQ2A avLLTwtHbAug/TTCcGPG+NKoqed+YviDI8uhm2BQt1qifNJZof9C7XfZYM/qvsbE1CACsVtDr kXlVwMOZt01tYgiE6HSAQCsUtaADLtApmNeA/0Kxbe7eyJHup/f97tPfuvy2Pe9+hYnHStzY+ 7FMXcTZ3WZQAtLBNVAP0SK7ZMxZFhjnWYtu6iRlKhWCmfY5KB/9EOGSF/EEubknrXtN4cF4wQ eFqWMjmfOgYexZN+yHwHxPnK1WHv5847uUOD9Xae5NQxls2yAqY43cOoQ0UkTCYOupu6JH/EM kDpxwOHIHAA7z2O2QH7k+8jntUZUty06szPCKGOfTG3Ybv2ZcsAtkpwwQR0Dx9Ph8HUtHgvU0 bqPnydlvWPJeSurNbj4fB8HrOq7UYCPAWvijgqKTlw== 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: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420662521100003 From: Mark Cave-Ayland This will allow the q800-glue.h header to be included separately so that the GLUE device can be referenced externally. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-8-mark.cave-ayland@ilande.co.uk> [lv: update comment] Signed-off-by: Laurent Vivier --- MAINTAINERS | 2 + include/hw/m68k/q800-glue.h | 50 +++++++ hw/m68k/q800-glue.c | 252 ++++++++++++++++++++++++++++++++++++ hw/m68k/q800.c | 238 +--------------------------------- hw/m68k/meson.build | 2 +- 5 files changed, 306 insertions(+), 238 deletions(-) create mode 100644 include/hw/m68k/q800-glue.h create mode 100644 hw/m68k/q800-glue.c diff --git a/MAINTAINERS b/MAINTAINERS index 748a66fbaa30..7f323cd2ebd8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1225,6 +1225,7 @@ q800 M: Laurent Vivier S: Maintained F: hw/m68k/q800.c +F: hw/m68k/q800-glue.c F: hw/misc/mac_via.c F: hw/nubus/* F: hw/display/macfb.c @@ -1237,6 +1238,7 @@ F: include/hw/nubus/* F: include/hw/display/macfb.h F: include/hw/block/swim.h F: include/hw/m68k/q800.h +F: include/hw/m68k/q800-glue.h =20 virt M: Laurent Vivier diff --git a/include/hw/m68k/q800-glue.h b/include/hw/m68k/q800-glue.h new file mode 100644 index 000000000000..a35efc1c534d --- /dev/null +++ b/include/hw/m68k/q800-glue.h @@ -0,0 +1,50 @@ +/* + * QEMU q800 logic GLUE (General Logic Unit) + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ + +#ifndef HW_Q800_GLUE_H +#define HW_Q800_GLUE_H + +#include "qemu/osdep.h" +#include "hw/sysbus.h" + +#define TYPE_GLUE "q800-glue" +OBJECT_DECLARE_SIMPLE_TYPE(GLUEState, GLUE) + +struct GLUEState { + SysBusDevice parent_obj; + + M68kCPU *cpu; + uint8_t ipr; + uint8_t auxmode; + qemu_irq irqs[1]; + QEMUTimer *nmi_release; +}; + +#define GLUE_IRQ_IN_VIA1 0 +#define GLUE_IRQ_IN_VIA2 1 +#define GLUE_IRQ_IN_SONIC 2 +#define GLUE_IRQ_IN_ESCC 3 +#define GLUE_IRQ_IN_NMI 4 + +#define GLUE_IRQ_NUBUS_9 0 + +#endif diff --git a/hw/m68k/q800-glue.c b/hw/m68k/q800-glue.c new file mode 100644 index 000000000000..e81f9438f116 --- /dev/null +++ b/hw/m68k/q800-glue.c @@ -0,0 +1,252 @@ +/* + * QEMU q800 logic GLUE (General Logic Unit) + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "hw/m68k/q800-glue.h" +#include "hw/boards.h" +#include "hw/irq.h" +#include "hw/nmi.h" +#include "hw/qdev-properties.h" +#include "migration/vmstate.h" + +/* + * The GLUE (General Logic Unit) is an Apple custom integrated circuit chip + * that performs a variety of functions (RAM management, clock generation,= ...). + * The GLUE chip receives interrupt requests from various devices, + * assign priority to each, and asserts one or more interrupt line to the + * CPU. + */ + +/* + * The GLUE logic on the Quadra 800 supports 2 different IRQ routing modes + * controlled from the VIA1 auxmode GPIO (port B bit 6) which are document= ed + * in NetBSD as follows: + * + * A/UX mode (Linux, NetBSD, auxmode GPIO low) + * + * Level 0: Spurious: ignored + * Level 1: Software + * Level 2: VIA2 (except ethernet, sound) + * Level 3: Ethernet + * Level 4: Serial (SCC) + * Level 5: Sound + * Level 6: VIA1 + * Level 7: NMIs: parity errors, RESET button, YANCC error + * + * Classic mode (default: used by MacOS, A/UX 3.0.1, auxmode GPIO high) + * + * Level 0: Spurious: ignored + * Level 1: VIA1 (clock, ADB) + * Level 2: VIA2 (NuBus, SCSI) + * Level 3: + * Level 4: Serial (SCC) + * Level 5: + * Level 6: + * Level 7: Non-maskable: parity errors, RESET button + * + * Note that despite references to A/UX mode in Linux and NetBSD, at least + * A/UX 3.0.1 still uses Classic mode. + */ + +static void GLUE_set_irq(void *opaque, int irq, int level) +{ + GLUEState *s =3D opaque; + int i; + + if (s->auxmode) { + /* Classic mode */ + switch (irq) { + case GLUE_IRQ_IN_VIA1: + irq =3D 0; + break; + + case GLUE_IRQ_IN_VIA2: + irq =3D 1; + break; + + case GLUE_IRQ_IN_SONIC: + /* Route to VIA2 instead */ + qemu_set_irq(s->irqs[GLUE_IRQ_NUBUS_9], level); + return; + + case GLUE_IRQ_IN_ESCC: + irq =3D 3; + break; + + case GLUE_IRQ_IN_NMI: + irq =3D 6; + break; + + default: + g_assert_not_reached(); + } + } else { + /* A/UX mode */ + switch (irq) { + case GLUE_IRQ_IN_VIA1: + irq =3D 5; + break; + + case GLUE_IRQ_IN_VIA2: + irq =3D 1; + break; + + case GLUE_IRQ_IN_SONIC: + irq =3D 2; + break; + + case GLUE_IRQ_IN_ESCC: + irq =3D 3; + break; + + case GLUE_IRQ_IN_NMI: + irq =3D 6; + break; + + default: + g_assert_not_reached(); + } + } + + if (level) { + s->ipr |=3D 1 << irq; + } else { + s->ipr &=3D ~(1 << irq); + } + + for (i =3D 7; i >=3D 0; i--) { + if ((s->ipr >> i) & 1) { + m68k_set_irq_level(s->cpu, i + 1, i + 25); + return; + } + } + m68k_set_irq_level(s->cpu, 0, 0); +} + +static void glue_auxmode_set_irq(void *opaque, int irq, int level) +{ + GLUEState *s =3D GLUE(opaque); + + s->auxmode =3D level; +} + +static void glue_nmi(NMIState *n, int cpu_index, Error **errp) +{ + GLUEState *s =3D GLUE(n); + + /* Hold NMI active for 100ms */ + GLUE_set_irq(s, GLUE_IRQ_IN_NMI, 1); + timer_mod(s->nmi_release, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + 100); +} + +static void glue_nmi_release(void *opaque) +{ + GLUEState *s =3D GLUE(opaque); + + GLUE_set_irq(s, GLUE_IRQ_IN_NMI, 0); +} + +static void glue_reset(DeviceState *dev) +{ + GLUEState *s =3D GLUE(dev); + + s->ipr =3D 0; + s->auxmode =3D 0; + + timer_del(s->nmi_release); +} + +static const VMStateDescription vmstate_glue =3D { + .name =3D "q800-glue", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (VMStateField[]) { + VMSTATE_UINT8(ipr, GLUEState), + VMSTATE_UINT8(auxmode, GLUEState), + VMSTATE_TIMER_PTR(nmi_release, GLUEState), + VMSTATE_END_OF_LIST(), + }, +}; + +/* + * If the m68k CPU implemented its inbound irq lines as GPIO lines + * rather than via the m68k_set_irq_level() function we would not need + * this cpu link property and could instead provide outbound IRQ lines + * that the board could wire up to the CPU. + */ +static Property glue_properties[] =3D { + DEFINE_PROP_LINK("cpu", GLUEState, cpu, TYPE_M68K_CPU, M68kCPU *), + DEFINE_PROP_END_OF_LIST(), +}; + +static void glue_finalize(Object *obj) +{ + GLUEState *s =3D GLUE(obj); + + timer_free(s->nmi_release); +} + +static void glue_init(Object *obj) +{ + DeviceState *dev =3D DEVICE(obj); + GLUEState *s =3D GLUE(dev); + + qdev_init_gpio_in(dev, GLUE_set_irq, 8); + qdev_init_gpio_in_named(dev, glue_auxmode_set_irq, "auxmode", 1); + + qdev_init_gpio_out(dev, s->irqs, 1); + + /* NMI release timer */ + s->nmi_release =3D timer_new_ms(QEMU_CLOCK_VIRTUAL, glue_nmi_release, = s); +} + +static void glue_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + NMIClass *nc =3D NMI_CLASS(klass); + + dc->vmsd =3D &vmstate_glue; + dc->reset =3D glue_reset; + device_class_set_props(dc, glue_properties); + nc->nmi_monitor_handler =3D glue_nmi; +} + +static const TypeInfo glue_info =3D { + .name =3D TYPE_GLUE, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(GLUEState), + .instance_init =3D glue_init, + .instance_finalize =3D glue_finalize, + .class_init =3D glue_class_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_NMI }, + { } + }, +}; + +static void glue_register_types(void) +{ + type_register_static(&glue_info); +} + +type_init(glue_register_types) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 9f9668c2b4b3..9f9de2ebafb7 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -28,7 +28,6 @@ #include "cpu.h" #include "hw/boards.h" #include "hw/or-irq.h" -#include "hw/nmi.h" #include "elf.h" #include "hw/loader.h" #include "ui/console.h" @@ -39,6 +38,7 @@ #include "standard-headers/asm-m68k/bootinfo-mac.h" #include "bootinfo.h" #include "hw/m68k/q800.h" +#include "hw/m68k/q800-glue.h" #include "hw/misc/mac_via.h" #include "hw/input/adb.h" #include "hw/nubus/mac-nubus-bridge.h" @@ -88,241 +88,6 @@ #define Q800_NUBUS_SLOTS_AVAILABLE (BIT(0x9) | BIT(0xc) | BIT(0xd) | \ BIT(0xe)) =20 -/* - * The GLUE (General Logic Unit) is an Apple custom integrated circuit chip - * that performs a variety of functions (RAM management, clock generation,= ...). - * The GLUE chip receives interrupt requests from various devices, - * assign priority to each, and asserts one or more interrupt line to the - * CPU. - */ - -#define TYPE_GLUE "q800-glue" -OBJECT_DECLARE_SIMPLE_TYPE(GLUEState, GLUE) - -struct GLUEState { - SysBusDevice parent_obj; - - M68kCPU *cpu; - uint8_t ipr; - uint8_t auxmode; - qemu_irq irqs[1]; - QEMUTimer *nmi_release; -}; - -#define GLUE_IRQ_IN_VIA1 0 -#define GLUE_IRQ_IN_VIA2 1 -#define GLUE_IRQ_IN_SONIC 2 -#define GLUE_IRQ_IN_ESCC 3 -#define GLUE_IRQ_IN_NMI 4 - -#define GLUE_IRQ_NUBUS_9 0 - -/* - * The GLUE logic on the Quadra 800 supports 2 different IRQ routing modes - * controlled from the VIA1 auxmode GPIO (port B bit 6) which are document= ed - * in NetBSD as follows: - * - * A/UX mode (Linux, NetBSD, auxmode GPIO low) - * - * Level 0: Spurious: ignored - * Level 1: Software - * Level 2: VIA2 (except ethernet, sound) - * Level 3: Ethernet - * Level 4: Serial (SCC) - * Level 5: Sound - * Level 6: VIA1 - * Level 7: NMIs: parity errors, RESET button, YANCC error - * - * Classic mode (default: used by MacOS, A/UX 3.0.1, auxmode GPIO high) - * - * Level 0: Spurious: ignored - * Level 1: VIA1 (clock, ADB) - * Level 2: VIA2 (NuBus, SCSI) - * Level 3: - * Level 4: Serial (SCC) - * Level 5: - * Level 6: - * Level 7: Non-maskable: parity errors, RESET button - * - * Note that despite references to A/UX mode in Linux and NetBSD, at least - * A/UX 3.0.1 still uses Classic mode. - */ - -static void GLUE_set_irq(void *opaque, int irq, int level) -{ - GLUEState *s =3D opaque; - int i; - - if (s->auxmode) { - /* Classic mode */ - switch (irq) { - case GLUE_IRQ_IN_VIA1: - irq =3D 0; - break; - - case GLUE_IRQ_IN_VIA2: - irq =3D 1; - break; - - case GLUE_IRQ_IN_SONIC: - /* Route to VIA2 instead */ - qemu_set_irq(s->irqs[GLUE_IRQ_NUBUS_9], level); - return; - - case GLUE_IRQ_IN_ESCC: - irq =3D 3; - break; - - case GLUE_IRQ_IN_NMI: - irq =3D 6; - break; - - default: - g_assert_not_reached(); - } - } else { - /* A/UX mode */ - switch (irq) { - case GLUE_IRQ_IN_VIA1: - irq =3D 5; - break; - - case GLUE_IRQ_IN_VIA2: - irq =3D 1; - break; - - case GLUE_IRQ_IN_SONIC: - irq =3D 2; - break; - - case GLUE_IRQ_IN_ESCC: - irq =3D 3; - break; - - case GLUE_IRQ_IN_NMI: - irq =3D 6; - break; - - default: - g_assert_not_reached(); - } - } - - if (level) { - s->ipr |=3D 1 << irq; - } else { - s->ipr &=3D ~(1 << irq); - } - - for (i =3D 7; i >=3D 0; i--) { - if ((s->ipr >> i) & 1) { - m68k_set_irq_level(s->cpu, i + 1, i + 25); - return; - } - } - m68k_set_irq_level(s->cpu, 0, 0); -} - -static void glue_auxmode_set_irq(void *opaque, int irq, int level) -{ - GLUEState *s =3D GLUE(opaque); - - s->auxmode =3D level; -} - -static void glue_nmi(NMIState *n, int cpu_index, Error **errp) -{ - GLUEState *s =3D GLUE(n); - - /* Hold NMI active for 100ms */ - GLUE_set_irq(s, GLUE_IRQ_IN_NMI, 1); - timer_mod(s->nmi_release, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + 100); -} - -static void glue_nmi_release(void *opaque) -{ - GLUEState *s =3D GLUE(opaque); - - GLUE_set_irq(s, GLUE_IRQ_IN_NMI, 0); -} - -static void glue_reset(DeviceState *dev) -{ - GLUEState *s =3D GLUE(dev); - - s->ipr =3D 0; - s->auxmode =3D 0; - - timer_del(s->nmi_release); -} - -static const VMStateDescription vmstate_glue =3D { - .name =3D "q800-glue", - .version_id =3D 0, - .minimum_version_id =3D 0, - .fields =3D (VMStateField[]) { - VMSTATE_UINT8(ipr, GLUEState), - VMSTATE_UINT8(auxmode, GLUEState), - VMSTATE_TIMER_PTR(nmi_release, GLUEState), - VMSTATE_END_OF_LIST(), - }, -}; - -/* - * If the m68k CPU implemented its inbound irq lines as GPIO lines - * rather than via the m68k_set_irq_level() function we would not need - * this cpu link property and could instead provide outbound IRQ lines - * that the board could wire up to the CPU. - */ -static Property glue_properties[] =3D { - DEFINE_PROP_LINK("cpu", GLUEState, cpu, TYPE_M68K_CPU, M68kCPU *), - DEFINE_PROP_END_OF_LIST(), -}; - -static void glue_finalize(Object *obj) -{ - GLUEState *s =3D GLUE(obj); - - timer_free(s->nmi_release); -} - -static void glue_init(Object *obj) -{ - DeviceState *dev =3D DEVICE(obj); - GLUEState *s =3D GLUE(dev); - - qdev_init_gpio_in(dev, GLUE_set_irq, 8); - qdev_init_gpio_in_named(dev, glue_auxmode_set_irq, "auxmode", 1); - - qdev_init_gpio_out(dev, s->irqs, 1); - - /* NMI release timer */ - s->nmi_release =3D timer_new_ms(QEMU_CLOCK_VIRTUAL, glue_nmi_release, = s); -} - -static void glue_class_init(ObjectClass *klass, void *data) -{ - DeviceClass *dc =3D DEVICE_CLASS(klass); - NMIClass *nc =3D NMI_CLASS(klass); - - dc->vmsd =3D &vmstate_glue; - dc->reset =3D glue_reset; - device_class_set_props(dc, glue_properties); - nc->nmi_monitor_handler =3D glue_nmi; -} - -static const TypeInfo glue_info =3D { - .name =3D TYPE_GLUE, - .parent =3D TYPE_SYS_BUS_DEVICE, - .instance_size =3D sizeof(GLUEState), - .instance_init =3D glue_init, - .instance_finalize =3D glue_finalize, - .class_init =3D glue_class_init, - .interfaces =3D (InterfaceInfo[]) { - { TYPE_NMI }, - { } - }, -}; =20 static void main_cpu_reset(void *opaque) { @@ -763,7 +528,6 @@ static const TypeInfo q800_machine_typeinfo =3D { static void q800_machine_register_types(void) { type_register_static(&q800_machine_typeinfo); - type_register_static(&glue_info); } =20 type_init(q800_machine_register_types) diff --git a/hw/m68k/meson.build b/hw/m68k/meson.build index 31248641d301..84bc68fa4ee4 100644 --- a/hw/m68k/meson.build +++ b/hw/m68k/meson.build @@ -2,7 +2,7 @@ m68k_ss =3D ss.source_set() m68k_ss.add(when: 'CONFIG_AN5206', if_true: files('an5206.c', 'mcf5206.c')) m68k_ss.add(when: 'CONFIG_MCF5208', if_true: files('mcf5208.c', 'mcf_intc.= c')) m68k_ss.add(when: 'CONFIG_NEXTCUBE', if_true: files('next-kbd.c', 'next-cu= be.c')) -m68k_ss.add(when: 'CONFIG_Q800', if_true: files('q800.c')) +m68k_ss.add(when: 'CONFIG_Q800', if_true: files('q800.c', 'q800-glue.c')) m68k_ss.add(when: 'CONFIG_M68K_VIRT', if_true: files('virt.c')) =20 hw_arch +=3D {'m68k': m68k_ss} --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420577756197.69084032358933; Thu, 22 Jun 2023 00:56:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAi-00047q-W7; Thu, 22 Jun 2023 03:56:05 -0400 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 1qCFAf-00040a-4D for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sS-89 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MMX9b-1qU2ld1R3f-00JbmL; Thu, 22 Jun 2023 09:55:50 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 08/24] q800-glue.c: switch TypeInfo registration to use DEFINE_TYPES() macro Date: Thu, 22 Jun 2023 09:55:28 +0200 Message-Id: <20230622075544.210899-9-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:9N/NQmf2WWvqvbqNf01BXOYYLqsY2uavhlIrVnaPUL6HkequFdM 4Iok9Bl0A+oFCFtDFBrUe+1YcZI+5UEC9aMli8q7wdNJH8MCY8KV2+wZ5NXX90D/zDNHNCN 2valk7vT8nzbw14LJtU+30sspHP6sN9JNwiIz37/j8wsP5AXCaC8RRUYDI2yWpA66FZBHml oL6di+zu92+sZgqHB6pHw== UI-OutboundReport: notjunk:1;M01:P0:Rrfnv/fOYPE=;/6ceZQu61dYnn6UgHHmfTU1R1PH vZ95eHhqgEqEp27zkPgpGA9xNhzBtUjeTZsZZZ8SsFUxAMfe3XkisQ+SB44jWAQTWeYoutsVc bgIA1OMbVA/a1simlMsW6jd9hcKbXgTcbfC4IAEEYSeyKz0KVz2idJaFPSCkvzuTkkval5Tpf LchW/XDBp1VOYJjaxChjvXbLuUPBg8zBrsDIK2LcZpEJeBUtKFEgbwx1+C28DD4jPL1I299Tv Pd96vw3GxjkBN2OjDIlZHgMpeHhZq/Xt3JPYD+d4YC9zaqnS4j3EaubJRdonMc6MzkgjDPxOj EicpgaZ2rnGdudnRIjYxG6zpAhgdVnu9lf6EVGXvvUJ5bU9oOLoQzY5WNbEu4VA+iiCo3EzpY cgB2OQm8S/9d9nFYEKR1CJ35bSwahZI6FHNZbZFh6Or7GTJjdk8ptIfFveSPV0Xam0QkZh4EO RR+NVToNwRXXPl8yHxxVzu14BsOsZFgfxXjRi3TObWdePFGUFLk3jAR1/7UqbGtuXTiTznwyf Q2q194puE6yRpIO8MjXKpXDGGik7ZXyMDVRmcDHLstR2QSUpGmOMp6rcnxLRdcsfiwEbBNj45 80h25V1BS4Y1sW6rxYnYRpwcQHN7ARfr3esftvWgLhtcotHBzaOE3Fj9D7thzeX/zbNfjpNMS RP8i+KjSLdVIjUt8wXxvEAGGwJM+C7bsHHzb/DtRjA== 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: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420580043100010 From: Mark Cave-Ayland The use of the DEFINE_TYPES() macro will soon be recommended over the use of calling type_init() directly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-9-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/m68k/q800-glue.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/hw/m68k/q800-glue.c b/hw/m68k/q800-glue.c index e81f9438f116..34c4f0e9876d 100644 --- a/hw/m68k/q800-glue.c +++ b/hw/m68k/q800-glue.c @@ -231,22 +231,19 @@ static void glue_class_init(ObjectClass *klass, void = *data) nc->nmi_monitor_handler =3D glue_nmi; } =20 -static const TypeInfo glue_info =3D { - .name =3D TYPE_GLUE, - .parent =3D TYPE_SYS_BUS_DEVICE, - .instance_size =3D sizeof(GLUEState), - .instance_init =3D glue_init, - .instance_finalize =3D glue_finalize, - .class_init =3D glue_class_init, - .interfaces =3D (InterfaceInfo[]) { - { TYPE_NMI }, - { } +static const TypeInfo glue_info_types[] =3D { + { + .name =3D TYPE_GLUE, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(GLUEState), + .instance_init =3D glue_init, + .instance_finalize =3D glue_finalize, + .class_init =3D glue_class_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_NMI }, + { } + }, }, }; =20 -static void glue_register_types(void) -{ - type_register_static(&glue_info); -} - -type_init(glue_register_types) +DEFINE_TYPES(glue_info_types) --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16874207157315.962252485636782; Thu, 22 Jun 2023 00:58:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBH-0004hh-24; Thu, 22 Jun 2023 03:56:39 -0400 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 1qCFAb-0003yj-Ob for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from mout.kundenserver.de ([212.227.126.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sY-8D for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:55:57 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MBll6-1qOIOo3NSW-00C8ba; Thu, 22 Jun 2023 09:55:51 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 09/24] q800: move GLUE device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:29 +0200 Message-Id: <20230622075544.210899-10-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:PxyR+IbYaaxEwPRvzBYr3E6Q3w3QPQ7b9JR820xt4EzEGmscYy6 V8W6qLbJEcrGMPL911yo6GbkOA+HCylqv9n0xaY8by4EKGJ6R1rtwV6qGWlUoNY8t1gIeH0 CpG+vxgsEiuXLzqEl8LaKSxrmGdkxuYDfwYN7LjJQ0kQ6vwgopKPO5YgbKZ3PWVvGo3wT2M R87XqIIpm47v5uF1ZWM2g== UI-OutboundReport: notjunk:1;M01:P0:nQw+0VAXMQo=;TUm5NISQPGaGlENMLHFx5kxA/wW GmWXltdo4FHMC4A6O+pIfrxj5vJqk+outQDxgi+mg7L+bV9WIbXBwDXwIKx1hOvnp/+1tCf0f eJM/XkZNP1qqxny0z5n3X1g05Ud7OxQf1e0EIWSuydQsbxlF2PbeqyP3249p29YJdTsF2mMvY pLw/jZDCm6anFhrurWhHT3Me+xgWrNfsB6PIYYAFt9qEXJkuc4BJh3ojQrzfXifWFHapIPFJM rPQwIVR0ZAwTysUg8crcWnye2/Ha6q80o4I55GMEk/NbgtxsqLgN8Y+D8I0Skx/eYhFfJZx5R zy0Tfn2k4E3Ra5fHpO08xYF/EcZMY4AJuF1l168zylIN8jO8V1NOGJGM9BJPKjRZvOFIdCds6 qDVfZ08q3d83/0Opxdi+8RzsycjiRU1/Xpqd7aEQTU9aYRs41E6zBewLkqIzvgcz9TPYYB4CG hAHJNpWFApfaw5K08mwFB8oOUQikZHYw10V4FlR6tz/Guv/n+PWSlX+dARVyHsbJfNn3BaqJg bVg/l4C9FDPIzWpAZ1zE9fdy4HvL6Txwv4kScKfrl8EVKGeQoMOEfH3pzCA5kgHVGmMWrNDyx higkoQxXa7ApUNNgBCFHp94Wc27mbZzP+6oGbmvJ6CeHhqpHvZFWHiFzHLqRs95EZtlREwYdI hxds2xkC33YFVOuOucSuQGCSkynJIfXScVRRh9HJSw== 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: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420716758100002 From: Mark Cave-Ayland Also change the instantiation of the GLUE device to use object_initialize_c= hild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-10-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 24 ++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index d1f1ae4b8864..fda42e0a1c30 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -27,6 +27,7 @@ #include "qom/object.h" #include "target/m68k/cpu-qom.h" #include "exec/memory.h" +#include "hw/m68k/q800-glue.h" =20 /* * The main Q800 machine @@ -37,6 +38,7 @@ struct Q800MachineState { =20 M68kCPU cpu; MemoryRegion rom; + GLUEState glue; }; =20 #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 9f9de2ebafb7..505e50d4af2e 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -158,7 +158,6 @@ static void q800_machine_init(MachineState *machine) SysBusDevice *sysbus; BusState *adb_bus; NubusBus *nubus; - DeviceState *glue; DriveInfo *dinfo; uint8_t rng_seed[32]; =20 @@ -194,10 +193,10 @@ static void q800_machine_init(MachineState *machine) } =20 /* IRQ Glue */ - glue =3D qdev_new(TYPE_GLUE); - object_property_set_link(OBJECT(glue), "cpu", OBJECT(&m->cpu), + object_initialize_child(OBJECT(machine), "glue", &m->glue, TYPE_GLUE); + object_property_set_link(OBJECT(&m->glue), "cpu", OBJECT(&m->cpu), &error_abort); - sysbus_realize_and_unref(SYS_BUS_DEVICE(glue), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(&m->glue), &error_fatal); =20 /* VIA 1 */ via1_dev =3D qdev_new(TYPE_MOS6522_Q800_VIA1); @@ -208,10 +207,12 @@ static void q800_machine_init(MachineState *machine) sysbus =3D SYS_BUS_DEVICE(via1_dev); sysbus_realize_and_unref(sysbus, &error_fatal); sysbus_mmio_map(sysbus, 1, VIA_BASE); - sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(glue, GLUE_IRQ_IN_VIA1)= ); + sysbus_connect_irq(sysbus, 0, + qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA1= )); /* A/UX mode */ qdev_connect_gpio_out(via1_dev, 0, - qdev_get_gpio_in_named(glue, "auxmode", 0)); + qdev_get_gpio_in_named(DEVICE(&m->glue), + "auxmode", 0)); =20 adb_bus =3D qdev_get_child_bus(via1_dev, "adb.0"); dev =3D qdev_new(TYPE_ADB_KEYBOARD); @@ -224,7 +225,8 @@ static void q800_machine_init(MachineState *machine) sysbus =3D SYS_BUS_DEVICE(via2_dev); sysbus_realize_and_unref(sysbus, &error_fatal); sysbus_mmio_map(sysbus, 1, VIA_BASE + VIA_SIZE); - sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(glue, GLUE_IRQ_IN_VIA2)= ); + sysbus_connect_irq(sysbus, 0, + qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA2= )); =20 /* MACSONIC */ =20 @@ -257,7 +259,8 @@ static void q800_machine_init(MachineState *machine) sysbus =3D SYS_BUS_DEVICE(dev); sysbus_realize_and_unref(sysbus, &error_fatal); sysbus_mmio_map(sysbus, 0, SONIC_BASE); - sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(glue, GLUE_IRQ_IN_SONIC= )); + sysbus_connect_irq(sysbus, 0, + qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_SONI= C)); =20 memory_region_init_rom(dp8393x_prom, NULL, "dp8393x-q800.prom", SONIC_PROM_SIZE, &error_fatal); @@ -294,7 +297,8 @@ static void q800_machine_init(MachineState *machine) sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(escc_orgate, 0)); sysbus_connect_irq(sysbus, 1, qdev_get_gpio_in(escc_orgate, 1)); qdev_connect_gpio_out(escc_orgate, 0, - qdev_get_gpio_in(glue, GLUE_IRQ_IN_ESCC)); + qdev_get_gpio_in(DEVICE(&m->glue), + GLUE_IRQ_IN_ESCC)); sysbus_mmio_map(sysbus, 0, SCC_BASE); =20 /* SCSI */ @@ -349,7 +353,7 @@ static void q800_machine_init(MachineState *machine) * Since the framebuffer in slot 0x9 uses a separate IRQ, wire the unu= sed * IRQ via GLUE for use by SONIC Ethernet in classic mode */ - qdev_connect_gpio_out(glue, GLUE_IRQ_NUBUS_9, + qdev_connect_gpio_out(DEVICE(&m->glue), GLUE_IRQ_NUBUS_9, qdev_get_gpio_in_named(via2_dev, "nubus-irq", VIA2_NUBUS_IRQ_9)); =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420606489451.7781676230437; Thu, 22 Jun 2023 00:56:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAk-0004Ci-8Q; Thu, 22 Jun 2023 03:56:06 -0400 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 1qCFAf-00040p-8c for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.187]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sg-Dd for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M4K2r-1qByBa1BzN-000HiB; Thu, 22 Jun 2023 09:55:51 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 10/24] q800: introduce mac-io container memory region Date: Thu, 22 Jun 2023 09:55:30 +0200 Message-Id: <20230622075544.210899-11-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:svQwwDmFA38z6bbN+gxEuCW27U5/FS7UZcBHWj0U0nsVCctWy4N 2mx+DVcX75TCsjvUZQ/gG7K1ZHscTYXv+4ezx+g8Mq62LWgtkUg7nqopnkHjR9NPQO9TFkR QpIrQvvqKmEO0BnktW6IdIhTQo7Fn+d16aJPknMoRFlba+6W/04KehqaJ8Fekxh4xBrCxzR gy+gyCFQhVP+D8mibuOTg== UI-OutboundReport: notjunk:1;M01:P0:itwQze57olQ=;aX0shrmONI184ebTrUJnSDLQTWl eivwifzGTPo3zNW78b7nBy+G1e3DuHXrcUHUMdRPsqq2o2xv52Y5pEKF16LJ6zNqBmt2WB0Av BZy2CtRxTMEn1hDOllAhmTW2e4rybZ75sIU56jwB1k7Z7+Upa1sYvK+7Zi12Vf5vwVOJmPN7S aTFaJloW7LmvdppWG45BFmNzdHyy+ghGEqIpT2eqBNl1BVZv2vx1ey3mvY2dTRsnFSmnuorLD BR+sL6ZTX96ABzKO888+9qxQ9AXnvyCO/kUN+nXmQA8p5pL6qLX0wwwI1YeV/cYj8JIv9nUad shHt0ZZM40RPwd3oVsNcK0NnApI6/IgAedAim7PqAGBDZm1bJmInxHsgmNOzo3kA/CmQg4Qjt OkQ5nuMKzOoZu3YDKM3SV/MIapBJe28d2469WMFmwbNzTCcIvwkfSWz1iC4pbcq3RbHsT/gti AwsL2bN9jk0i64i1qdRqc32YT2gaYSkFEwo2RK4URwUwMyLXn5wumnJ9NZYrKGiFK8v6eVBfJ RHs+GUPC/f0WS02ml9RvqyukRV5Lg+kRHmlvSmPZCZR5lsuyLEkzWsRREVHtfxU7CCGnXl/Jo jShbLZwLTjQiiXtgnLDskbmFFZLeNm/JXQe6wRWig7blTTHaYSvGuyuAnrj9AqeBTNoyA1qNV Km1N1fACyUubKaBSGLdit9nNpblNnVMkf4XR58tcyg== 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: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420608171100003 From: Mark Cave-Ayland Move all devices from the IO region to within the container in preparation for updating the IO aliasing mechanism. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-11-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 1 + hw/m68k/q800.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index fda42e0a1c30..17067dfad791 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -39,6 +39,7 @@ struct Q800MachineState { M68kCPU cpu; MemoryRegion rom; GLUEState glue; + MemoryRegion macio; }; =20 #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 505e50d4af2e..359bdf3443a6 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -177,6 +177,12 @@ static void q800_machine_init(MachineState *machine) /* RAM */ memory_region_add_subregion(get_system_memory(), 0, machine->ram); =20 + /* + * Create container for all IO devices + */ + memory_region_init(&m->macio, OBJECT(machine), "mac-io", IO_SLICE); + memory_region_add_subregion(get_system_memory(), IO_BASE, &m->macio); + /* * Memory from IO_BASE to IO_BASE + IO_SLICE is repeated * from IO_BASE + IO_SLICE to IO_BASE + IO_SIZE --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420719477322.36450370397665; Thu, 22 Jun 2023 00:58:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBI-0004q3-FL; Thu, 22 Jun 2023 03:56:40 -0400 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 1qCFAf-00040j-5N for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sf-GG for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N9dbx-1pzbmM2yXN-015dpb; Thu, 22 Jun 2023 09:55:51 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland Subject: [PULL 11/24] q800: reimplement mac-io region aliasing using IO memory region Date: Thu, 22 Jun 2023 09:55:31 +0200 Message-Id: <20230622075544.210899-12-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:K3FMKbnxpGgyPBsWTdsRCNyIeX227QH53/qvHARZCrD2EA0tdwo XCaGwRBGj2eFEgpaay4BZALNnvwInQkuLhHCMRT9n3jezMAO9a7BW4bZ6dKeirwdPAjYhDT PDm5A98JbHk0MichyaavqOrurf9J2RdKLsPEKq/fegUegtFLWEHCSk52SBcGZW9Ijsvq4Ci fW2dc8gvWTTRv6Ar9BDkQ== UI-OutboundReport: notjunk:1;M01:P0:Nb02S1CrR2I=;Yex8n4caz6nMa0/zHpmgXONSQpi 7l1e8P3LDwR8tbR4KH1osu3PbhAeH/Dkxh8xxsA61X5XQlXql3/HZ+aLGstqdUYEm28FkHH73 jsJ6LJrJJY/tFkkw7y/K2dSuU4qZeCV//+j56vb/+fzq7Q/78yFvJCRfpSKT5C5U0yNDzuZlc weHG4Qij3WEJT04Ek3bomtsunrHlZGH9rcltWJxyHsgaJJ7ySOfOw+qvSMkLgvXmBcfuVusZ8 Ow+ntvQxV7GN0NvBreYIPLYK0/BNWjvFLrzHpBSpsCNHKqC2Pq2zFz+28f2uRTZwOpU4WCPXk y/3nKarck+0MTVCesnru1m8mvbWn7/hvXPNJECf0sphYllSsTcgdhHm1c+LOys2H+Vj4p/Jda aB0oo8yiM9IQ7GQh5VhzXwsoNH5vt+oyOleDebVxPKFF+qkMy6Vn3JRNZs2afMLQeAekAvyJU W46aMpk7wflIzghtcqt5Yp79hHPRIM59sG1sIhUVQ76qs1hlvSM69Uz0LY7AaCBWDgoBgAta9 z5oU8AoNxHS+du/kbMmRXgcmMdDuDsvArAhz52sY3EvEdxDmtXrkeS0eYR5J/gokKLaqmQ0PL 3Nui4OU404aV2zSO6X+OKeHp7+iPS04TZXaGoZnYhHNKqzWUMYTC1gm95xpOs2dldftSfx5ID XjfZPGyUp2dlafxXtS9yg/k87kl1dArlnsgBcp7FNg== 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: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420720767100011 Content-Type: text/plain; charset="utf-8" From: Mark Cave-Ayland The current use of aliased memory regions causes us 2 problems: firstly the output of "info qom-tree" is absolutely huge and difficult to read, and secondly we have already reached the internal limit for memory regions as adding any new memory region into the mac-io region causes QEMU to assert with "phys_section_add: Assertion `map->sections_nb < TARGET_PAGE_SIZE' failed". Implement the mac-io region aliasing using a single IO memory region that applies IO_SLICE_MASK representing the maximum size of the aliased region a= nd then forwarding the access to the existing mac-io memory region using the address space API. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-12-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 1 + hw/m68k/q800.c | 100 +++++++++++++++++++++++++++++++++-------- 2 files changed, 82 insertions(+), 19 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 17067dfad791..1ed38bf0b180 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -40,6 +40,7 @@ struct Q800MachineState { MemoryRegion rom; GLUEState glue; MemoryRegion macio; + MemoryRegion macio_alias; }; =20 #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 359bdf3443a6..51b8d8ec3c14 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -59,6 +59,7 @@ =20 #define IO_BASE 0x50000000 #define IO_SLICE 0x00040000 +#define IO_SLICE_MASK (IO_SLICE - 1) #define IO_SIZE 0x04000000 =20 #define VIA_BASE (IO_BASE + 0x00000) @@ -127,6 +128,68 @@ static uint8_t fake_mac_rom[] =3D { 0x60, 0xFE /* bras [self] */ }; =20 +static MemTxResult macio_alias_read(void *opaque, hwaddr addr, uint64_t *d= ata, + unsigned size, MemTxAttrs attrs) +{ + MemTxResult r; + uint32_t val; + + addr &=3D IO_SLICE_MASK; + addr |=3D IO_BASE; + + switch (size) { + case 4: + val =3D address_space_ldl_be(&address_space_memory, addr, attrs, &= r); + break; + case 2: + val =3D address_space_lduw_be(&address_space_memory, addr, attrs, = &r); + break; + case 1: + val =3D address_space_ldub(&address_space_memory, addr, attrs, &r); + break; + default: + g_assert_not_reached(); + } + + *data =3D val; + return r; +} + +static MemTxResult macio_alias_write(void *opaque, hwaddr addr, uint64_t v= alue, + unsigned size, MemTxAttrs attrs) +{ + MemTxResult r; + + addr &=3D IO_SLICE_MASK; + addr |=3D IO_BASE; + + switch (size) { + case 4: + address_space_stl_be(&address_space_memory, addr, value, attrs, &r= ); + break; + case 2: + address_space_stw_be(&address_space_memory, addr, value, attrs, &r= ); + break; + case 1: + address_space_stb(&address_space_memory, addr, value, attrs, &r); + break; + default: + g_assert_not_reached(); + } + + return r; +} + +static const MemoryRegionOps macio_alias_ops =3D { + .read_with_attrs =3D macio_alias_read, + .write_with_attrs =3D macio_alias_write, + .endianness =3D DEVICE_BIG_ENDIAN, + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 4, + }, +}; + static void q800_machine_init(MachineState *machine) { Q800MachineState *m =3D Q800_MACHINE(machine); @@ -137,10 +200,8 @@ static void q800_machine_init(MachineState *machine) int bios_size; ram_addr_t initrd_base; int32_t initrd_size; - MemoryRegion *io; MemoryRegion *dp8393x_prom =3D g_new(MemoryRegion, 1); uint8_t *prom; - const int io_slice_nb =3D (IO_SIZE / IO_SLICE) - 1; int i, checksum; MacFbMode *macfb_mode; ram_addr_t ram_size =3D machine->ram_size; @@ -187,16 +248,10 @@ static void q800_machine_init(MachineState *machine) * Memory from IO_BASE to IO_BASE + IO_SLICE is repeated * from IO_BASE + IO_SLICE to IO_BASE + IO_SIZE */ - io =3D g_new(MemoryRegion, io_slice_nb); - for (i =3D 0; i < io_slice_nb; i++) { - char *name =3D g_strdup_printf("mac_m68k.io[%d]", i + 1); - - memory_region_init_alias(&io[i], NULL, name, get_system_memory(), - IO_BASE, IO_SLICE); - memory_region_add_subregion(get_system_memory(), - IO_BASE + (i + 1) * IO_SLICE, &io[i]); - g_free(name); - } + memory_region_init_io(&m->macio_alias, OBJECT(machine), &macio_alias_o= ps, + &m->macio, "mac-io.alias", IO_SIZE - IO_SLICE); + memory_region_add_subregion(get_system_memory(), IO_BASE + IO_SLICE, + &m->macio_alias); =20 /* IRQ Glue */ object_initialize_child(OBJECT(machine), "glue", &m->glue, TYPE_GLUE); @@ -212,7 +267,8 @@ static void q800_machine_init(MachineState *machine) } sysbus =3D SYS_BUS_DEVICE(via1_dev); sysbus_realize_and_unref(sysbus, &error_fatal); - sysbus_mmio_map(sysbus, 1, VIA_BASE); + memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE, + sysbus_mmio_get_region(sysbus, 1)); sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA1= )); /* A/UX mode */ @@ -230,7 +286,8 @@ static void q800_machine_init(MachineState *machine) via2_dev =3D qdev_new(TYPE_MOS6522_Q800_VIA2); sysbus =3D SYS_BUS_DEVICE(via2_dev); sysbus_realize_and_unref(sysbus, &error_fatal); - sysbus_mmio_map(sysbus, 1, VIA_BASE + VIA_SIZE); + memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE + VIA_SIZE, + sysbus_mmio_get_region(sysbus, 1)); sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA2= )); =20 @@ -264,7 +321,8 @@ static void q800_machine_init(MachineState *machine) OBJECT(get_system_memory()), &error_abort); sysbus =3D SYS_BUS_DEVICE(dev); sysbus_realize_and_unref(sysbus, &error_fatal); - sysbus_mmio_map(sysbus, 0, SONIC_BASE); + memory_region_add_subregion(&m->macio, SONIC_BASE - IO_BASE, + sysbus_mmio_get_region(sysbus, 0)); sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_SONI= C)); =20 @@ -305,7 +363,8 @@ static void q800_machine_init(MachineState *machine) qdev_connect_gpio_out(escc_orgate, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_ESCC)); - sysbus_mmio_map(sysbus, 0, SCC_BASE); + memory_region_add_subregion(&m->macio, SCC_BASE - IO_BASE, + sysbus_mmio_get_region(sysbus, 0)); =20 /* SCSI */ =20 @@ -325,8 +384,10 @@ static void q800_machine_init(MachineState *machine) VIA2_IRQ_SCSI_BIT))); sysbus_connect_irq(sysbus, 1, qemu_irq_invert(qdev_get_gpio_in(via2_de= v, VIA2_IRQ_SCSI_DATA_BIT))= ); - sysbus_mmio_map(sysbus, 0, ESP_BASE); - sysbus_mmio_map(sysbus, 1, ESP_PDMA); + memory_region_add_subregion(&m->macio, ESP_BASE - IO_BASE, + sysbus_mmio_get_region(sysbus, 0)); + memory_region_add_subregion(&m->macio, ESP_PDMA - IO_BASE, + sysbus_mmio_get_region(sysbus, 1)); =20 scsi_bus_legacy_handle_cmdline(&esp->bus); =20 @@ -334,7 +395,8 @@ static void q800_machine_init(MachineState *machine) =20 dev =3D qdev_new(TYPE_SWIM); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, SWIM_BASE); + memory_region_add_subregion(&m->macio, SWIM_BASE - IO_BASE, + sysbus_mmio_get_region(SYS_BUS_DEVICE(dev)= , 0)); =20 /* NuBus */ =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420633671423.89600500152153; Thu, 22 Jun 2023 00:57:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAl-0004FN-Jx; Thu, 22 Jun 2023 03:56:07 -0400 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 1qCFAf-00040w-8m for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from mout.kundenserver.de ([212.227.126.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAY-0002sr-BX for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:00 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N17pC-1q4qIs137q-012aVA; Thu, 22 Jun 2023 09:55:52 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 12/24] q800: move VIA1 device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:32 +0200 Message-Id: <20230622075544.210899-13-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:3LBjkbtbInuNCQeWr5jpD6/eqXfQM+BoaFGZwyTZ2mplDhcWcWu fsLZJ71fN6RWJxPMAN7XEkcCE0QO2GqAPIl5UV56nQLCxMxTYS95tQKFhKrdGX7JG0rAK0N hZMJy1N57ZOdoHs0Mi5rjpkYODtPFrWJVvlcheqm+bjXxElyabJW743bS/rWhXw5WkiXgeC J6EPR8LoerT5Aff2TCsfg== UI-OutboundReport: notjunk:1;M01:P0:mafUbfmhNKE=;47sevGksBI+dGOTiJCKgk4jARtQ rC7kOLgU5n1hDdwYzdad3GgUFWOUEEelIKxSJBNiHmy0uIROxH4s+HPYKVagqsqdLy2F/hy7M 6GwqkWtcTd+p+m/Z60Ut88sh39wBDoZORMiWd42ts0ZFKASUFx/fcYrr4V4nqJZy3/REAOAU6 Pg6aEPS6EAYbbE/TqlMlx/UM3Yh5GyfT1yYImseJwc5OOBKgh/3xrRROOutPnHMcPafRB0PyY JnUdfjQNoCjq1LShdi1+VNAsaf/B7WaLyyL5DwbZnzwFAaoWXq9FH6+Z559GbJgUFvLtQBxOF lyw3W4Gyr9F57PDpplqT2yIBVgUN9ix0WXeaq5CpfcwEANjbocGbq7e4ZOMDZe+z6qPBB65QK pARjKYiPF39s1U//W4eU5ti4wuMS2Gfp0RCog8644RhjPYm9LPLvwkNGTeUZDlG9C391iamar o+GssGapduYjr6kjahs87hk3VKuyPN1qjs5S3T7KzBOiqWR/S9rHeLmV1PDc5DkU/LDzRBXfB pA45dAK7auYpiwhh9Y2S1REGG1n5XQrFENge7CizbdGNJ6muI2N8WKXjw4YoWRVx3IXIGvvkk wjf3RxeOgPg7BUUg+ZwFc2r4jkNVO3U6hrdFvJzY5HogZsjpGw99DsKp5GeCFoLnwT82cLTvM sBPltwt9e1iYxpcegqJ0RqmKql19pnXCscBeLkgzZQ== 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: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420634445100001 From: Mark Cave-Ayland Also change the instantiation of the VIA1 device to use object_initialize_c= hild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-13-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 16 +++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 1ed38bf0b180..5cf66d08a094 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -28,6 +28,7 @@ #include "target/m68k/cpu-qom.h" #include "exec/memory.h" #include "hw/m68k/q800-glue.h" +#include "hw/misc/mac_via.h" =20 /* * The main Q800 machine @@ -39,6 +40,7 @@ struct Q800MachineState { M68kCPU cpu; MemoryRegion rom; GLUEState glue; + MOS6522Q800VIA1State via1; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 51b8d8ec3c14..fccdad5f3c90 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -212,7 +212,7 @@ static void q800_machine_init(MachineState *machine) hwaddr parameters_base; CPUState *cs; DeviceState *dev; - DeviceState *via1_dev, *via2_dev; + DeviceState *via2_dev; DeviceState *escc_orgate; SysBusESPState *sysbus_esp; ESPState *esp; @@ -260,23 +260,25 @@ static void q800_machine_init(MachineState *machine) sysbus_realize(SYS_BUS_DEVICE(&m->glue), &error_fatal); =20 /* VIA 1 */ - via1_dev =3D qdev_new(TYPE_MOS6522_Q800_VIA1); + object_initialize_child(OBJECT(machine), "via1", &m->via1, + TYPE_MOS6522_Q800_VIA1); dinfo =3D drive_get(IF_MTD, 0, 0); if (dinfo) { - qdev_prop_set_drive(via1_dev, "drive", blk_by_legacy_dinfo(dinfo)); + qdev_prop_set_drive(DEVICE(&m->via1), "drive", + blk_by_legacy_dinfo(dinfo)); } - sysbus =3D SYS_BUS_DEVICE(via1_dev); - sysbus_realize_and_unref(sysbus, &error_fatal); + sysbus =3D SYS_BUS_DEVICE(&m->via1); + sysbus_realize(sysbus, &error_fatal); memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE, sysbus_mmio_get_region(sysbus, 1)); sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA1= )); /* A/UX mode */ - qdev_connect_gpio_out(via1_dev, 0, + qdev_connect_gpio_out(DEVICE(&m->via1), 0, qdev_get_gpio_in_named(DEVICE(&m->glue), "auxmode", 0)); =20 - adb_bus =3D qdev_get_child_bus(via1_dev, "adb.0"); + adb_bus =3D qdev_get_child_bus(DEVICE(&m->via1), "adb.0"); dev =3D qdev_new(TYPE_ADB_KEYBOARD); qdev_realize_and_unref(dev, adb_bus, &error_fatal); dev =3D qdev_new(TYPE_ADB_MOUSE); --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420586299690.3734485729299; Thu, 22 Jun 2023 00:56:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAl-0004FC-Ge; Thu, 22 Jun 2023 03:56:07 -0400 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 1qCFAf-00042j-RM for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from mout.kundenserver.de ([212.227.126.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAa-0002sw-3G for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1McGtA-1pgC8a30qC-00cdfW; Thu, 22 Jun 2023 09:55:52 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 13/24] q800: move VIA2 device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:33 +0200 Message-Id: <20230622075544.210899-14-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:IzKaGmqgnoJafGW2Jn2mb9il9CLOouHSgX407iZJdWvrKN9XpJ1 lgUQ8MF4Bqpl6FSSjkcZb9xlQAkKgB0DFYoGDHSVXztS9I0rwVKRDXSNVSQNp3jcF+96RyR Jdybo7JZT5MBzvDPwoqKxGrwvE3nHLX+jMdvFj4xYyDPV9toePM1yoqYc/qRbiSi8ghBjDu kerAOHSx7klWb5W7ynUNg== UI-OutboundReport: notjunk:1;M01:P0:ClDTT/s/dyA=;Q03zmL7ojn6fkRbaf/vsnUzbE65 ER4nGEmOKcgaExrpcHsE641QuxkIkc5Me5t6t8xU3ZCqiFnwBXBm6Ft4KE4KHMfAnOid1F/vj 8YYJZNy0ik7575KpSfjyI7Y+8NTjc4mY2a3lVv3BTnLnxTGlSDVbuR/F69+rkvnlgnbdXx3s7 Yc9bQ8MbZACvm/ToHb6dPBckwpFmAqEKku6VCv3L988XsobRZwvJRVpNRm0Re+d/dXWHYhvk6 SLY7vxnyb9F9dqgZsPYRIM3CLvG9xbwFu66bZIR748PeUJbr4cE7+GzoHybrYEwkhsr3fq7R8 ZNtS4n2EiYmtjOHxuBYE9/N02ws8IDHp0x94sAdHbU8644SRbMLfQ0uoBfg0dLit74PTvOjjO obzEdcxyVQxOvOJtkacqYfrKAspe+UmBzVeczUUBCjMKhjTeVzN+mTtSEguakhBJL0Pw8Yzpg +msZUrS+NOMwmg0t5Rse5p//db2FGztsmYQypHIm7Ky8iFsUQiTVTCx71+jP1wpPGsbkyC9hu /+J7b1qO5t18cEXPHi8177vUCejqCRt+WTuU0qqntTmbjXIZnTQ9s7qymrZVL7Ft4drXiuYx3 +ihYb4zI9KKLpglWcT3BsVK0h6I+UxTdprmz5ogbxDYUAKKy2oRHf5/P/CD3gSfLN5w7rIjPA fLhhYgo4qO2FYt6AKS33UVr26HP3Pm9ygsSBAqDb/g== 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: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420588122100003 From: Mark Cave-Ayland Also change the instantiation of the VIA2 device to use object_initialize_c= hild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-14-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 1 + hw/m68k/q800.c | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 5cf66d08a094..06c771635b3f 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -41,6 +41,7 @@ struct Q800MachineState { MemoryRegion rom; GLUEState glue; MOS6522Q800VIA1State via1; + MOS6522Q800VIA2State via2; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index fccdad5f3c90..988b4981b830 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -212,7 +212,6 @@ static void q800_machine_init(MachineState *machine) hwaddr parameters_base; CPUState *cs; DeviceState *dev; - DeviceState *via2_dev; DeviceState *escc_orgate; SysBusESPState *sysbus_esp; ESPState *esp; @@ -285,9 +284,10 @@ static void q800_machine_init(MachineState *machine) qdev_realize_and_unref(dev, adb_bus, &error_fatal); =20 /* VIA 2 */ - via2_dev =3D qdev_new(TYPE_MOS6522_Q800_VIA2); - sysbus =3D SYS_BUS_DEVICE(via2_dev); - sysbus_realize_and_unref(sysbus, &error_fatal); + object_initialize_child(OBJECT(machine), "via2", &m->via2, + TYPE_MOS6522_Q800_VIA2); + sysbus =3D SYS_BUS_DEVICE(&m->via2); + sysbus_realize(sysbus, &error_fatal); memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE + VIA_SIZE, sysbus_mmio_get_region(sysbus, 1)); sysbus_connect_irq(sysbus, 0, @@ -382,10 +382,14 @@ static void q800_machine_init(MachineState *machine) sysbus =3D SYS_BUS_DEVICE(dev); sysbus_realize_and_unref(sysbus, &error_fatal); /* SCSI and SCSI data IRQs are negative edge triggered */ - sysbus_connect_irq(sysbus, 0, qemu_irq_invert(qdev_get_gpio_in(via2_de= v, - VIA2_IRQ_SCSI_BIT))); - sysbus_connect_irq(sysbus, 1, qemu_irq_invert(qdev_get_gpio_in(via2_de= v, - VIA2_IRQ_SCSI_DATA_BIT))= ); + sysbus_connect_irq(sysbus, 0, + qemu_irq_invert( + qdev_get_gpio_in(DEVICE(&m->via2), + VIA2_IRQ_SCSI_BIT))); + sysbus_connect_irq(sysbus, 1, + qemu_irq_invert( + qdev_get_gpio_in(DEVICE(&m->via2), + VIA2_IRQ_SCSI_DATA_BIT)= )); memory_region_add_subregion(&m->macio, ESP_BASE - IO_BASE, sysbus_mmio_get_region(sysbus, 0)); memory_region_add_subregion(&m->macio, ESP_PDMA - IO_BASE, @@ -411,11 +415,12 @@ static void q800_machine_init(MachineState *machine) sysbus_mmio_map(SYS_BUS_DEVICE(dev), 1, NUBUS_SLOT_BASE + MAC_NUBUS_FIRST_SLOT * NUBUS_SLOT_SIZE); qdev_connect_gpio_out(dev, 9, - qdev_get_gpio_in_named(via2_dev, "nubus-irq", + qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-= irq", VIA2_NUBUS_IRQ_INTVIDEO)); for (i =3D 1; i < VIA2_NUBUS_IRQ_NB; i++) { qdev_connect_gpio_out(dev, 9 + i, - qdev_get_gpio_in_named(via2_dev, "nubus-irq", + qdev_get_gpio_in_named(DEVICE(&m->via2), + "nubus-irq", VIA2_NUBUS_IRQ_9 + i)= ); } =20 @@ -424,7 +429,7 @@ static void q800_machine_init(MachineState *machine) * IRQ via GLUE for use by SONIC Ethernet in classic mode */ qdev_connect_gpio_out(DEVICE(&m->glue), GLUE_IRQ_NUBUS_9, - qdev_get_gpio_in_named(via2_dev, "nubus-irq", + qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-= irq", VIA2_NUBUS_IRQ_9)); =20 nubus =3D &NUBUS_BRIDGE(dev)->bus; --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168742071694168.17337349306513; Thu, 22 Jun 2023 00:58:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFB8-0004Kc-FS; Thu, 22 Jun 2023 03:56:32 -0400 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 1qCFAh-00045D-Lk for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:03 -0400 Received: from mout.kundenserver.de ([212.227.126.135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAb-0002tb-8Q for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:03 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mt7Ll-1pwM6q1ByT-00tThP; Thu, 22 Jun 2023 09:55:53 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 14/24] hw/net/dp8393x.c: move TYPE_DP8393X and dp8393xState into dp8393x.h Date: Thu, 22 Jun 2023 09:55:34 +0200 Message-Id: <20230622075544.210899-15-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:1T4D7+cQF0AZh1hCu2lG2G5Y4znKuhOiDIqLUajZx5MBmHYkoyJ NYa6gFlbutUqYqTvhKfIgieIl/SBajTaaCo1GTpiWbBDDLn6OpE1d4H9slTvyd2EsRzI3zk zRmgaulvi2BCYl6DbF9lLLzBRJzB6q9tFI0WzypX5sIlN6cbUHFnQXrJT/64AET65dMecfw blkLqyzqiyCMdhfYFJXhA== UI-OutboundReport: notjunk:1;M01:P0:NVAFAlkA6F4=;Ewq8B3oi2KKeXILtjY4/nGX3Ea5 nx5GuHJXJWc7J9BeEqz0lj4gbqlQmBnHMv5/ezBgHclEo52oSLYfD7JjEECVvdj1Z/aZkbG3Q TDVvND2qBVrTQCTNNwbmGXNRvnl+jdb5Qz/RaSNl+kgZE/5qKuLgUlrjvoqvMf684lw9yOpz4 5enHkkcxCgiVRu7i5QNWAv3U9W6kghYJ8hPWS7QpvrX8u+dvIEl/Wkuk7zxO5ymo7D5HJ6Nf4 8q7Zoykylqrq8IZSTQahTlbGngWMnhB6v9jmvOnt8TjRF2yol5EvX8NtI0/b/rBRaEj+Dv4Zw WQpwd/RSyhjlFAfw3wm06UF6Q2kMg8t7puLxJQFZc4QgXds+vD2ZTJ31vBvgowR+GKta78amP KuXEIxjNU1HTYjwKPtw0jOF4FlJAmV46YE9Hl6c7HObGFYabraAKoEvg6TYK8aecM+7MjSBH3 UhU7xUm9llq2T4G/y7LHz35DIKLeWWSWDQ63lgdecIsz3iW4t7Sgt0pkyrQYn3L40GBNha6Mr 1l8yHHEOWar3uTZyVOsdZbed8LZjd+Qg6wRGposrdSdEjGOUSClAnHMuFWwXpE1Q79i7FUAiP /0w1UT54CXFaZnGxjVjPafr4mMdb4W2oVoBOMRImBO99BBwdxTjcoHyPz4ukEXp1k7fPgrbEi K3Erf+ScpoQ65njpYqZpf8bt4gdPaKyyKcFNVBEFFw== 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: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420718758100007 From: Mark Cave-Ayland This is to enable them to be used outside of dp8393x.c. Signed-off-by: Mark Cave-Ayland CC: Jason Wang Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-15-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/net/dp8393x.h | 60 ++++++++++++++++++++++++++++++++++++++++ hw/net/dp8393x.c | 32 +-------------------- 2 files changed, 61 insertions(+), 31 deletions(-) create mode 100644 include/hw/net/dp8393x.h diff --git a/include/hw/net/dp8393x.h b/include/hw/net/dp8393x.h new file mode 100644 index 000000000000..4a3f7478be44 --- /dev/null +++ b/include/hw/net/dp8393x.h @@ -0,0 +1,60 @@ +/* + * QEMU NS SONIC DP8393x netcard + * + * Copyright (c) 2008-2009 Herve Poussineau + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#ifndef HW_NET_DP8393X_H +#define HW_NET_DP8393X_H + +#include "hw/sysbus.h" +#include "net/net.h" +#include "exec/memory.h" + +#define SONIC_REG_COUNT 0x40 + +#define TYPE_DP8393X "dp8393x" +OBJECT_DECLARE_SIMPLE_TYPE(dp8393xState, DP8393X) + +struct dp8393xState { + SysBusDevice parent_obj; + + /* Hardware */ + uint8_t it_shift; + bool big_endian; + bool last_rba_is_full; + qemu_irq irq; + int irq_level; + QEMUTimer *watchdog; + int64_t wt_last_update; + NICConf conf; + NICState *nic; + MemoryRegion mmio; + + /* Registers */ + uint16_t cam[16][3]; + uint16_t regs[SONIC_REG_COUNT]; + + /* Temporaries */ + uint8_t tx_buffer[0x10000]; + int loopback_packet; + + /* Memory access */ + MemoryRegion *dma_mr; + AddressSpace as; +}; + +#endif diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 45b954e46c25..a596f7fbc6b0 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/net/dp8393x.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "net/net.h" @@ -85,7 +86,6 @@ static const char *reg_names[] =3D { #define SONIC_MPT 0x2e #define SONIC_MDT 0x2f #define SONIC_DCR2 0x3f -#define SONIC_REG_COUNT 0x40 =20 #define SONIC_CR_HTX 0x0001 #define SONIC_CR_TXP 0x0002 @@ -139,36 +139,6 @@ static const char *reg_names[] =3D { #define SONIC_DESC_EOL 0x0001 #define SONIC_DESC_ADDR 0xFFFE =20 -#define TYPE_DP8393X "dp8393x" -OBJECT_DECLARE_SIMPLE_TYPE(dp8393xState, DP8393X) - -struct dp8393xState { - SysBusDevice parent_obj; - - /* Hardware */ - uint8_t it_shift; - bool big_endian; - bool last_rba_is_full; - qemu_irq irq; - int irq_level; - QEMUTimer *watchdog; - int64_t wt_last_update; - NICConf conf; - NICState *nic; - MemoryRegion mmio; - - /* Registers */ - uint16_t cam[16][3]; - uint16_t regs[SONIC_REG_COUNT]; - - /* Temporaries */ - uint8_t tx_buffer[0x10000]; - int loopback_packet; - - /* Memory access */ - MemoryRegion *dma_mr; - AddressSpace as; -}; =20 /* * Accessor functions for values which are formed by --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420719177522.5835683559982; Thu, 22 Jun 2023 00:58:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBJ-0004vn-QM; Thu, 22 Jun 2023 03:56:41 -0400 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 1qCFAi-00047W-BX for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from mout.kundenserver.de ([212.227.126.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAe-0002tn-QZ for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mbzdn-1pfMvO3VwV-00dT0z; Thu, 22 Jun 2023 09:55:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 15/24] q800: move dp8393x device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:35 +0200 Message-Id: <20230622075544.210899-16-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2taqKoVcWGVKtvT0RmLBtESlQMUlPQJx7yknWlVIseRjheTOGDM XKeL1illQ/NBeJyy+Cf2OwAgeYYo2RoaZYZ/r9R4f99nM4XGL1xMa+0kuJRugh1eKs+GPxa ZWbbeep5HFrsZRgSbiXzjEU693SI84gZPzbXmdOUtkySf/ymzk0skGl8eaNVcijAN5OWGnt Vp4by1uKDRM0k/fXcL5Ww== UI-OutboundReport: notjunk:1;M01:P0:mX2vNQ0bHxA=;ld6clkCgxOdlfJyol+E/GW7rXh0 U+Q/bhUDlKn71fDbrXt0JZYLG8VcmDZpW3yu/qJY4YclZXNVcyln1EM/r9FcqMP/y2ScNPiub ZaAgF2u9EyPGjjQy2mBCvvjX69SBLp8Xy2R1N+tdPtjxqeValDWcp3avKbzOeS8zI8uRSRFTm ovjF5wlrtDxedj6FruVxelswekY2cWnt4sc3yktu3xmhLfs7FpDgJPXkguw9kzhUrqVgkiDO7 LCjxCIaBzWY8S5SEsVhk6iz41loN+tjQHtlCgMzoREIXDpdKip9bIYjEfTWP2RfCYf8wPkwCw PpI098M3aLQSQCd9f/YHADaKnC6+WgLq88uyNGrbXawTVgZVFMMbLZW6JjhHh90SReW6qyYUw s0HdFT0Vx21BMEyWYa9oMm32jjbdph3j+MzrtAJbBOrBkW08+9unnfJ7AxQXt+gcPPek10h0r o8XsSlPSwpMo+xy+AS3I4LD+7hyE+qwac7X8EvNMjkKIC3znkBA2CwvZ9XxvYOxyQJV2PTzsE fRIlw0Ubq769s4E6CzLQNrwExvMmsG9vKuL1Y+B1B4Khl7HCfQwUh+lbTXAMXL4tqjDz0v/dI T4uI6Vb2ZL+ukcDx1mTLCvU8by1Zs9Q33MmjBisaweUYgAu7FVxUyVviuZPkn9TqTREmLJsfb Ic525eRkMs4rFv/RbGyNW6BN5KtwxAVNDXRiqzSskw== 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: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420720544100009 From: Mark Cave-Ayland Also change the instantiation of the dp8393x device to use object_initializ= e_child(). Signed-off-by: Mark Cave-Ayland CC: Jason Wang Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-16-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 06c771635b3f..d11bc020ed98 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -29,6 +29,7 @@ #include "exec/memory.h" #include "hw/m68k/q800-glue.h" #include "hw/misc/mac_via.h" +#include "hw/net/dp8393x.h" =20 /* * The main Q800 machine @@ -42,6 +43,7 @@ struct Q800MachineState { GLUEState glue; MOS6522Q800VIA1State via1; MOS6522Q800VIA2State via2; + dp8393xState dp8393x; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 988b4981b830..13806613fa36 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -315,14 +315,16 @@ static void q800_machine_init(MachineState *machine) nd_table[0].macaddr.a[1] =3D 0x00; nd_table[0].macaddr.a[2] =3D 0x07; =20 - dev =3D qdev_new("dp8393x"); + object_initialize_child(OBJECT(machine), "dp8393x", &m->dp8393x, + TYPE_DP8393X); + dev =3D DEVICE(&m->dp8393x); qdev_set_nic_properties(dev, &nd_table[0]); qdev_prop_set_uint8(dev, "it_shift", 2); qdev_prop_set_bit(dev, "big_endian", true); object_property_set_link(OBJECT(dev), "dma_mr", OBJECT(get_system_memory()), &error_abort); sysbus =3D SYS_BUS_DEVICE(dev); - sysbus_realize_and_unref(sysbus, &error_fatal); + sysbus_realize(sysbus, &error_fatal); memory_region_add_subregion(&m->macio, SONIC_BASE - IO_BASE, sysbus_mmio_get_region(sysbus, 0)); sysbus_connect_irq(sysbus, 0, --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168742061055472.22719528578284; Thu, 22 Jun 2023 00:56:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFAl-0004FJ-JT; Thu, 22 Jun 2023 03:56:07 -0400 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 1qCFAf-00042i-QF for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from mout.kundenserver.de ([212.227.126.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAa-0002tM-EN for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MofLl-1pjAp91EAT-00p3r5; Thu, 22 Jun 2023 09:55:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 16/24] q800: move ESCC device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:36 +0200 Message-Id: <20230622075544.210899-17-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:+9Z7l2cpk3VirFoUWI2Ac+rwZ3uJHXimiOlZnGV0HKwJC5kZ47J tqz3snW8/kNhGTiU1tStb4gwl8PlqQcwm0wt7ehNzWXWv6rjcqxecTBEP6QTxK9qKxDLhvB LW7pqEASCecyGTgmVfOuEykSnKjk2j9obXSB7WOhMpx7VogYx2tOyIN6OI9ksgXVzQyPh9H ldSie+owyYj7vStv9cKIw== UI-OutboundReport: notjunk:1;M01:P0:dZnF26nBPnI=;BShbyPGpeg/t32Jv+iQ4o1oYPPO E0AjhwkgadvpWwHc1ZBvoAXeLGPQmhc/zkM60B8gcbtPDo0aiiK+U/iH5Hm59IEu8Vo+VqDck TOTue7ZsA0D9rDbccWc2xs3kRk4Q4bGZJZFOWTK+aF22AHMqUFCmKS53vZiu+vzKvqXiv2jt9 Z3yRXMqRGv+tHIn2HRp61lR9IBlzLDi15u05yV/krP0voXc/IK99aXpTE0OM4UR0eahFiauBz Aw0LpiWO6UIhcpbYsE9Q5nBSO7tHNh9/414wxBA7HfQ/+A+dZxH0mIc3uFF0IEqEJNcwkcYs8 8vqhAYTfiTI4/ezv0s/+iddu82dDxkNOWjljBFXBe5nVamEHeJtQBXlWVQw4X+7/EIoA8lL7R Z/Rsf2ngQoHgIvaNv2t5m4Fl/MauS7k+14W5t8UGgU8RIoCrxBBhDny1hUrGw6foVkVhQJ7s3 lKyFUojBrYvEj8J3DHUxhN3JT6yOuEuYltPGqIxLXQBI1TX4PsBIhQsLjM8Diym26wI5NCM3I 5wNwtPNL0iwtpEmWHMl/9XD3FVVapD6VlARG3gb+OIvp9EgYq1ZVdVS6eLHhSEmpWxRkwCd7A rsMbC6+qVGY+Oe3TxzU+Z02HyNlQjFio9uD7cqvscn9KXgeoIxMG4CRs0JxgBRBPOqklT/Sai l9xAcUjIBpHdxnOAz5VP1gYnINg1pgzAKtFpM4maCA== 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: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420612151100003 From: Mark Cave-Ayland Also change the instantiation of the ESCC device to use object_initialize_c= hild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-17-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index d11bc020ed98..9e76a3fe7c0c 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -30,6 +30,7 @@ #include "hw/m68k/q800-glue.h" #include "hw/misc/mac_via.h" #include "hw/net/dp8393x.h" +#include "hw/char/escc.h" =20 /* * The main Q800 machine @@ -44,6 +45,7 @@ struct Q800MachineState { MOS6522Q800VIA1State via1; MOS6522Q800VIA2State via2; dp8393xState dp8393x; + ESCCState escc; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 13806613fa36..8bf94b2511c1 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -346,7 +346,9 @@ static void q800_machine_init(MachineState *machine) =20 /* SCC */ =20 - dev =3D qdev_new(TYPE_ESCC); + object_initialize_child(OBJECT(machine), "escc", &m->escc, + TYPE_ESCC); + dev =3D DEVICE(&m->escc); qdev_prop_set_uint32(dev, "disabled", 0); qdev_prop_set_uint32(dev, "frequency", MAC_CLOCK); qdev_prop_set_uint32(dev, "it_shift", 1); @@ -356,7 +358,7 @@ static void q800_machine_init(MachineState *machine) qdev_prop_set_uint32(dev, "chnBtype", 0); qdev_prop_set_uint32(dev, "chnAtype", 0); sysbus =3D SYS_BUS_DEVICE(dev); - sysbus_realize_and_unref(sysbus, &error_fatal); + sysbus_realize(sysbus, &error_fatal); =20 /* Logically OR both its IRQs together */ escc_orgate =3D DEVICE(object_new(TYPE_OR_IRQ)); --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420640915117.01439706335316; Thu, 22 Jun 2023 00:57:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBH-0004m5-PU; Thu, 22 Jun 2023 03:56:39 -0400 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 1qCFAf-00042m-Uc for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from mout.kundenserver.de ([212.227.126.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAa-0002tU-Sn for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:01 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mi2aH-1pYDWd37dR-00e2J5; Thu, 22 Jun 2023 09:55:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 17/24] q800: move escc_orgate device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:37 +0200 Message-Id: <20230622075544.210899-18-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:oBZ2MWvC3s7DHW5P16pH8wSgi3VrCWT1P0Qy8IDxtNy0XpAKS2R OwwE7fDi15K3O8t2jmHR50iZ/oL0gLvcjTWdR1pG+tyC4RUFEEE5ScOt8aSSa/HAB3XnvQH gj7h7WIyQPMHv1TssmC3l2h2T9ZLYDeiukoJuqDCUgRz8cKqkI+C21mdF6+GY1v+l9iUHVm ez8+liNUxxfT8kfw0G9Lg== UI-OutboundReport: notjunk:1;M01:P0:M6U5CpwuyNM=;1mWO9JE2G8PpNzEZ5DNCEONnw6n buQ0zTKfsWk4HbBGASRelKznX9H6JYxo0Mt0Nkj1ZQGCdkHhbumfOCoY5Evii83IZZjK70XZz xPHimEGv/Vk1l10mfMlib4Iq0nFhd7AKZiPlEHf4dipfgNUnSrv60pRU+3RG0GK+MFmBPQxJV bnH74fJHfx+J+Weyo6wYqHw3kUbIBgI1WDRCSfLVLwrNUKkATLuvCPPcU1+o8YXK1rAtBLWbU 3sM7bTsHrmrc71qwbaSBl2kSPHwk06pMm33FSZWvLr6qfR3XTe6624A9AKxrmOkKAfiS0WeAc DUdjQfl736MTEbyRPscaLmJnXPedyoUrwV78sgs5UTwsn1irCmWYz8sO2F+qvhox+yYLSFTNW 4DPW8MCha21uRVpmGoHU0u3tcj+f5t2KMxSQtntOfBpeb4SMixPybXwbueMi0Lq+skxET1zCc wtZU+A3qDbBjRcD8azS5nFEuvaZJDOq2kf2BJLr79JnIzUKGfv5R1x25q8gEgn+5e2pe+20i2 By96u3aDo231HxzdQ8/QoDuDv8gQw5S8pkpke5D8g0INPJEKDuo6TdwSsHnd1/QMPzQwqe3Sf xxBQQ63VtZBdivmbp26o5PNfV6dl60VlfELHxXOtVWKcMaiHYgneNVd50uJ9mULoh4N3Z1Gwd M26n/5Z9hhWEwCIOszlM9A09wkJEn7vHDo/lbD3zAg== 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: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420642138100001 From: Mark Cave-Ayland Also change the instantiation of the escc_orgate device to use object_initi= alize_child(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-18-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 16 +++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 9e76a3fe7c0c..36e1bd8e4e4d 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -31,6 +31,7 @@ #include "hw/misc/mac_via.h" #include "hw/net/dp8393x.h" #include "hw/char/escc.h" +#include "hw/or-irq.h" =20 /* * The main Q800 machine @@ -46,6 +47,7 @@ struct Q800MachineState { MOS6522Q800VIA2State via2; dp8393xState dp8393x; ESCCState escc; + OrIRQState escc_orgate; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 8bf94b2511c1..c6314c6bf937 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -212,7 +212,6 @@ static void q800_machine_init(MachineState *machine) hwaddr parameters_base; CPUState *cs; DeviceState *dev; - DeviceState *escc_orgate; SysBusESPState *sysbus_esp; ESPState *esp; SysBusDevice *sysbus; @@ -361,12 +360,15 @@ static void q800_machine_init(MachineState *machine) sysbus_realize(sysbus, &error_fatal); =20 /* Logically OR both its IRQs together */ - escc_orgate =3D DEVICE(object_new(TYPE_OR_IRQ)); - object_property_set_int(OBJECT(escc_orgate), "num-lines", 2, &error_fa= tal); - qdev_realize_and_unref(escc_orgate, NULL, &error_fatal); - sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(escc_orgate, 0)); - sysbus_connect_irq(sysbus, 1, qdev_get_gpio_in(escc_orgate, 1)); - qdev_connect_gpio_out(escc_orgate, 0, + object_initialize_child(OBJECT(machine), "escc_orgate", &m->escc_orgat= e, + TYPE_OR_IRQ); + object_property_set_int(OBJECT(&m->escc_orgate), "num-lines", 2, + &error_fatal); + dev =3D DEVICE(&m->escc_orgate); + qdev_realize(dev, NULL, &error_fatal); + sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(dev, 0)); + sysbus_connect_irq(sysbus, 1, qdev_get_gpio_in(dev, 1)); + qdev_connect_gpio_out(dev, 0, qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_ESCC)); memory_region_add_subregion(&m->macio, SCC_BASE - IO_BASE, --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16874206211363.1070064586045874; Thu, 22 Jun 2023 00:57:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBG-0004gP-Su; Thu, 22 Jun 2023 03:56:38 -0400 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 1qCFAh-00043p-0i for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:03 -0400 Received: from mout.kundenserver.de ([212.227.126.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAb-0002te-8h for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N0Fh1-1pqI6m0sOl-00xMNF; Thu, 22 Jun 2023 09:55:55 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 18/24] q800: move ESP device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:38 +0200 Message-Id: <20230622075544.210899-19-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:cqImZqtHm3pc+u+8T9QK0HPyVhJns5cvp/ws+OFP79te4JG+0IB gHf2CAxfJMsSbg4SuIgcW6oOigRY0wJerjcHTuk35Iky3BelnFy7gvD5xePhKMdEGSdD7Os 6tVWjvCc+GAZM6PiR/z0OWfjyXfm8DKZ+3KzdNKW05GmVv+eYSwiLBQOkng3fPpN1oaHFRt 3t09x9+fuajbdg7ho1gwg== UI-OutboundReport: notjunk:1;M01:P0:3mW9R8Ygykw=;MDoMZOJVi5Tjb8YHOg5fdl4aA/9 8//31qwtTsAZuM9qNl7MRIO5LWxWduUnTvuv5AUwcleXvHRFLhGw0Mu5ivu4Qkmo8wenlX9sy LLllPwnCdUHzIwz8m2NCZjQMg9kQIkrincuNmf3a32hs+aELPcalNxmEKG2KaUx2TBAo9q4nZ EpDVpNCzqUSI6eIM4Tup9UlDt2dG7FC9FUSA71lykxr1CxoXlywklKDQcf2ZhqCgchoDgyNk/ 1N50knAP0qCetiILXZhLElB9oAsjFl/2UO7WMyhIPoibuTsKZq5SVuzyoU9LBirJQDwpt1Sdd 0DIAdkZ2urNEmQWBjd4i/BQyBIOqXlHf5GXTpoLr39dI4c0LumyROTZnNJBRHlkPgQhX/bctb 3kfjrVmRYA8mLPA3q0gGfo8actWYVn/oujNdPV5oOVOEm1/iSLhSMDW1KQ6IHPQ1xQN2iOb5z P80EkfBX7OlHdQxUdPPuJ4ArKiJx6iixd/QJr5yNkqlTMWEmc7tX7AIuAP4isA+h5M2PB3l+r eP9BHPMcjBAUm2zYvmneorgYco9c4gLeENhkFzZUh0q5ATbXbnr0+li2E2imhONewsnRVfa/V /ai/rlSQ6Cs6EKji0k5mJhMWZyhV0+vglzTHW/zmVqvzzdyKcJpP47zfZ+bzBAeQWQ69VNAOG 4aGb6gucnGm5UCMe8ySYUfe2r7goF8cdwhSS53wqqQ== 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: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420622087100001 From: Mark Cave-Ayland Also change the instantiation of the ESP device to use object_initialize_ch= ild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-19-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 36e1bd8e4e4d..8f23e0c4c6a6 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -32,6 +32,7 @@ #include "hw/net/dp8393x.h" #include "hw/char/escc.h" #include "hw/or-irq.h" +#include "hw/scsi/esp.h" =20 /* * The main Q800 machine @@ -48,6 +49,7 @@ struct Q800MachineState { dp8393xState dp8393x; ESCCState escc; OrIRQState escc_orgate; + SysBusESPState esp; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index c6314c6bf937..9da46f445615 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -376,8 +376,9 @@ static void q800_machine_init(MachineState *machine) =20 /* SCSI */ =20 - dev =3D qdev_new(TYPE_SYSBUS_ESP); - sysbus_esp =3D SYSBUS_ESP(dev); + object_initialize_child(OBJECT(machine), "esp", &m->esp, + TYPE_SYSBUS_ESP); + sysbus_esp =3D SYSBUS_ESP(&m->esp); esp =3D &sysbus_esp->esp; esp->dma_memory_read =3D NULL; esp->dma_memory_write =3D NULL; @@ -385,8 +386,8 @@ static void q800_machine_init(MachineState *machine) sysbus_esp->it_shift =3D 4; esp->dma_enabled =3D 1; =20 - sysbus =3D SYS_BUS_DEVICE(dev); - sysbus_realize_and_unref(sysbus, &error_fatal); + sysbus =3D SYS_BUS_DEVICE(&m->esp); + sysbus_realize(sysbus, &error_fatal); /* SCSI and SCSI data IRQs are negative edge triggered */ sysbus_connect_irq(sysbus, 0, qemu_irq_invert( --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420726079560.8120076739204; Thu, 22 Jun 2023 00:58:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBJ-0004t2-5a; Thu, 22 Jun 2023 03:56:41 -0400 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 1qCFAh-00044U-Aj for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:03 -0400 Received: from mout.kundenserver.de ([212.227.17.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAe-0002uG-Q8 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:02 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N8XDT-1pyVqv4881-014RC6; Thu, 22 Jun 2023 09:55:57 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 19/24] q800: move SWIM device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:39 +0200 Message-Id: <20230622075544.210899-20-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:gVhnhMc3L5eB41slMJftQn96t0LiIxyNkrKLQm9hK2czVxzxMXj 8MUoYblwgGMSdsH2eW+EsCewXBkNCtgbNlku6unVeQyhHr89Wf0r0e5DUex4C9dXbhpTdGY QTCQ59lmYXn9LQl8nv6fD3zVpvg/jeVrhOCp9s2XL76GbuEFDpjgOqGciEIfMYUhE6vyGck zWdUKrohQ05EtjP/r6org== UI-OutboundReport: notjunk:1;M01:P0:8iJcMGzIFg0=;X1EPU3p0AUSAcrrBIyirqLqrpBe f3mYPhkRgUfwgK/FM/DSwB6gNLHc/IG1q1dW452Cpptx/Ggqs90aVM22i7NLMryPTdy2qaaKv 1J+HctKk7KXsPQp+LtjRai5G7p6tHcM9eVk82k6I+3jHPFr0fM+4MFerBvvZ0kIQy12TkxWdL pAfDhlRiYfcUDnSY2zm+unXE78kPATlhZgyEJiWCVcajICYmOmlRr3Cx+m3AgzvaU4LCbbMxy HoNSctzp3Jfkt6xsmrDfUjujRtsl1eLOU/pqcREoMycOmhHV2Sb86ZYdxRgJHqauqEkpfH3io 9KIwivmhzbJZWRzLKnxdNE+W+aHbXt7ChJhAcFXLndCDa5PW6u+5hdRKLWFUR1Y+zqUE2FLyj uAf7eDxeeNRYYnutu9BHm6V1OhbIe51fMZnjefPpku4qSf0Z6zzPIJH40V9P7of7Wodcc1Kj8 ai9S5EF04f0ehdiuJzkHXrwwMni9xSeBdxzUjYTYIMxc91mjs3AsJKbZf9KvR5jtNF/FanoEs AxgNbe/JrD+HC7kidKijIWdGtvNIebq/y5tGMzgM5ZnQ/WGxV+hrBont2TIlsM8B3hVYJtUW7 WEaCfZz4MmYCL9kehyp1UfILjDc8gZx2Owoh4k6iVyahAHnQaNLbYcRh7X/gq3l/0qXfCIZrS geKE8N6ozCKz+2RIv8Hd5mSCMYQT9QicI2cKDmqBIQ== 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: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420726790100007 From: Mark Cave-Ayland Also change the instantiation of the SWIM device to use object_initialize_c= hild(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-20-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 8f23e0c4c6a6..06e095ae293f 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -33,6 +33,7 @@ #include "hw/char/escc.h" #include "hw/or-irq.h" #include "hw/scsi/esp.h" +#include "hw/block/swim.h" =20 /* * The main Q800 machine @@ -50,6 +51,7 @@ struct Q800MachineState { ESCCState escc; OrIRQState escc_orgate; SysBusESPState esp; + Swim swim; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 9da46f445615..50fc7de9a20b 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -406,10 +406,12 @@ static void q800_machine_init(MachineState *machine) =20 /* SWIM floppy controller */ =20 - dev =3D qdev_new(TYPE_SWIM); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + object_initialize_child(OBJECT(machine), "swim", &m->swim, + TYPE_SWIM); + sysbus =3D SYS_BUS_DEVICE(&m->swim); + sysbus_realize(sysbus, &error_fatal); memory_region_add_subregion(&m->macio, SWIM_BASE - IO_BASE, - sysbus_mmio_get_region(SYS_BUS_DEVICE(dev)= , 0)); + sysbus_mmio_get_region(sysbus, 0)); =20 /* NuBus */ =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420809311230.43268279454264; Thu, 22 Jun 2023 01:00:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBL-00052A-W9; Thu, 22 Jun 2023 03:56:44 -0400 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 1qCFAi-00047Y-Cd for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from mout.kundenserver.de ([212.227.17.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAe-0002uQ-Pi for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MTikV-1qfYIa1zhN-00TyNy; Thu, 22 Jun 2023 09:55:57 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 20/24] q800: move mac-nubus-bridge device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:40 +0200 Message-Id: <20230622075544.210899-21-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:tXjPYoArKM+0+KB9Q8Zhxdi3ZDAgM+WcQQfaUJolsy9J/a0LkZO cEEJ0RQwpQrMwSX/4UVJaJZtpNcebns6TCcvcAq+073jKxWRWZsNK7/Tj7SNRWPd4aY78RM LOGN8YkvpchLTaIlSTkyZimjBxUs/EJONp3Rl77XoktZCETH673+4AO+Vp8dr5KOu8f+35l vx/Dghiv2j51t0mdOM7TQ== UI-OutboundReport: notjunk:1;M01:P0:pD8n9qSiDPE=;vryF3taETt5G/q2gQJp2FalCnvT Oc7rlqjeDfWWW2PXjfh7aCXlgz1H5WQQ2OzxWYGi5/M2r8Jwxnxwn3QUw2SYDeluNb/AB/nzE F4yfhHJIe0IhOGeWEt6NEmZtMTlN+1yOGCCLXwp7lOM/eqDoKmpk/96+5+/N8+ZOVk61ZNr6X UqMltzjZdQShQMs3bkmiHx8QLt3LdT/fgRMHkjtv3pa4j+a7lFDxm+3PlJjE23lcLvbCEVxSy rRD6e8iKpiI38PkCTXu1DXbK/LYxTteeSduKJVlTnwhMyP2IDhVH0MiBtu3NnTUfCgeNNY+cP Pkrfg3kOwW75lK7fXdzTJ0r+BIwVCPw/M7EDD8M1GVlRqdJwqTpziJzKKB1LsU18efaXWXOZr lMS+AkK2OuP9C5mMccu9vRNSOIiMbd7vBy6lbNs/fXue6J4Mg+BCBt45vHCVU1yFnBxgr/oJr ehdn1I+yeac0EZF4L2ga+piIm8+XtBE1RXhQkmPmTLLHthwXOsmkbsZuKmy+b18PGDNn738rs 1tOXtEHR30/Ufqh87jVEwcHFess5hxhnN6YtgR1y7xNMl5Ie+B40MoOZEzM7puiOdkYaQuJ3O MUmFfszfUNmYZHfCm16z25Pcff1hbvQyqC94psX32YvND+hPSUazv8/I1Bx7WhoGMEUY4MLbC Hli+IuwXirgLA+pYZ5Uhb1W+QJnrvSaOl9Uu8OAdMw== 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: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420811614100003 From: Mark Cave-Ayland Also change the instantiation of the mac-nubus-bridge device to use object_initialize_child() and map the Nubus address space using memory_region_add_subregion() instead of sysbus_mmio_map(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-21-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 06e095ae293f..8f2c572a81e0 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -34,6 +34,7 @@ #include "hw/or-irq.h" #include "hw/scsi/esp.h" #include "hw/block/swim.h" +#include "hw/nubus/mac-nubus-bridge.h" =20 /* * The main Q800 machine @@ -52,6 +53,7 @@ struct Q800MachineState { OrIRQState escc_orgate; SysBusESPState esp; Swim swim; + MacNubusBridge mac_nubus_bridge; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 50fc7de9a20b..b22651931a22 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -415,14 +415,21 @@ static void q800_machine_init(MachineState *machine) =20 /* NuBus */ =20 - dev =3D qdev_new(TYPE_MAC_NUBUS_BRIDGE); - qdev_prop_set_uint32(dev, "slot-available-mask", + object_initialize_child(OBJECT(machine), "mac-nubus-bridge", + &m->mac_nubus_bridge, + TYPE_MAC_NUBUS_BRIDGE); + sysbus =3D SYS_BUS_DEVICE(&m->mac_nubus_bridge); + dev =3D DEVICE(&m->mac_nubus_bridge); + qdev_prop_set_uint32(DEVICE(&m->mac_nubus_bridge), "slot-available-mas= k", Q800_NUBUS_SLOTS_AVAILABLE); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, - MAC_NUBUS_FIRST_SLOT * NUBUS_SUPER_SLOT_SIZE); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 1, NUBUS_SLOT_BASE + - MAC_NUBUS_FIRST_SLOT * NUBUS_SLOT_SIZE); + sysbus_realize(sysbus, &error_fatal); + memory_region_add_subregion(get_system_memory(), + MAC_NUBUS_FIRST_SLOT * NUBUS_SUPER_SLOT_SI= ZE, + sysbus_mmio_get_region(sysbus, 0)); + memory_region_add_subregion(get_system_memory(), + NUBUS_SLOT_BASE + + MAC_NUBUS_FIRST_SLOT * NUBUS_SLOT_SIZE, + sysbus_mmio_get_region(sysbus, 1)); qdev_connect_gpio_out(dev, 9, qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-= irq", VIA2_NUBUS_IRQ_INTVIDEO)); --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420751487704.9621191904839; Thu, 22 Jun 2023 00:59:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBK-0004yh-Js; Thu, 22 Jun 2023 03:56:42 -0400 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 1qCFAh-00046c-Vf for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from mout.kundenserver.de ([217.72.192.74]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAe-0002uZ-Q7 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:03 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mduym-1pdS3941Ze-00b6Dd; Thu, 22 Jun 2023 09:55:58 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 21/24] q800: don't access Nubus bus directly from the mac-nubus-bridge device Date: Thu, 22 Jun 2023 09:55:41 +0200 Message-Id: <20230622075544.210899-22-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:xKDB1N2Vb5k8Q0aeD3s/Fhreig6jvObF6SMwOyfWR9SUtrEwYzx 6awIEwnLarCs3Tx/79Er0Vgdw1sWVSvMnWIiUqcD0QwN0Tl+RABHzPbf+MxTVVCcax+Omm6 buK8Ym70Wq0yaxjUO7fk3V/PF0nnf7VseasP+Fii9cc7SDJjdhtUSXQKSQpxj26TMnnwy/j 1TXZT8visCBuhrmbzAmSQ== UI-OutboundReport: notjunk:1;M01:P0:2LHCEWTXjI8=;9adtCI2hNubtSsgYhDUqUNivMkX tnpAatcccT8ooxZ9/L7NJ+nny7uWJEagQdF8oRkwKvXkVhmCGo6K6IJag8gLJaEdOFXERF+QR cUvuRd8iFI2KdHSI6Fluxe1a6IXLamzCKkYB9dsuQhNcRd6GMN36ERr1G4F6nGukBBAVjTy5E 6AyTmBpVpS0UpBCaf13b5X5C1zgcoEkjYBN7aDdELnsrmdD+HV27u52pIL+RcwmO5ACPmWabr hbCSAIpPN0xsERS1GLzofdX0uniqo0b0EJb6n/tccxBz8060YHDs7C6R3oH5zKm9ijC1QZnol I/aeDimy+iiiK5qPUvQMgbFOP/A5COPvhEHAPTMepyRommarY8NdMySZgyINzbfdKxjIAEEuB ssSf6RlWO9/wtM/SD5K8pUJ54UJlJf2FxnvYb9olSKip/rdzaCsNoPC6Ds/7GEHnvfZK7w3RF SG70A7TXoFp4IWMs+p4ze7Cl3ICZU8RIAVafS4U59BLptHcqh056hzzd8xQaoZFkqS0n8itX8 kChoqgQp4W4Y8aN10Z2BOSk59w6itp0tqL4CEv317/zbTXgSiRMXD2pcAsIGvKB2it4lghdnQ aAHvEkrMfMT+av9hNE7LkGlsVOEnVzV/RtKhCGL0o3v+LggcSajINLiQfNGMz4mo5RRBAVMbT D6ua9kK9YGXuqiy4QEBtaJt1jJ5DQxlgzVD7wFHuKA== 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: none client-ip=217.72.192.74; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420753223100003 From: Mark Cave-Ayland Instead use the qdev_get_child_bus() function which is intended for this ex= act purpose. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230621085353.113233-22-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/m68k/q800.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index b22651931a22..a32e6fbf8dec 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -448,7 +448,7 @@ static void q800_machine_init(MachineState *machine) qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-= irq", VIA2_NUBUS_IRQ_9)); =20 - nubus =3D &NUBUS_BRIDGE(dev)->bus; + nubus =3D NUBUS_BUS(qdev_get_child_bus(dev, "nubus-bus.0")); =20 /* framebuffer in nubus slot #9 */ =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420733310709.9143820020156; Thu, 22 Jun 2023 00:58:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBN-00059M-EK; Thu, 22 Jun 2023 03:56:45 -0400 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 1qCFAi-00047z-UX for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from mout.kundenserver.de ([212.227.17.24]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAf-0002ul-Cn for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mzy6q-1pqZ5c1wSk-00x2wn; Thu, 22 Jun 2023 09:55:58 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 22/24] q800: move macfb device to Q800MachineState Date: Thu, 22 Jun 2023 09:55:42 +0200 Message-Id: <20230622075544.210899-23-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:3jlqllWOxDsuL3v784kdsbIcJ/Xxl5xwyrNZSkIDmgn4IfHGlYM LHD8oCRntERAw4KFd9wRiMGSzH5fpPmPT6nxRZyInOO6NQU/wAjl843toIQAFxAel19D3be Nty+stSi7XJ5AETju7XTY/LJ5r5tcsi1DzxqO5K2kblf2otuiQkBRK5WMr902EK9+C8wtq+ xdwDNQsIjJiWzTUIcm1bg== UI-OutboundReport: notjunk:1;M01:P0:09haBy0z8rY=;B3cO2BhZuUUuN4sRuOW2s5l6vba 4O8w4C057L9E+J2lE8LBtsnn5H/euGfSD4E85vkApBdv5trGKGPpbn2eeuKryTurDYQHweFSF Dg+Mjzt1HDlGiSujx8ydmHeCrXjMjJyUYC1HZ5bhz8iuWVKQrfxn5BZOV9cSyZX8DFOLgnRJM MuVJaKX3DaBbCizHUc1RrXh7uQfKTXsgL29CbJg0eqgR9VPz9v1NlNyrr2K8Pk+eL++e5FUOR ja32WYO63n7ACl4FnzmuyV/uoPE7ZtJBssOdqBp/dAoqdBOziZ8umnpFRtGvetor6o92v4QMc 2cl4TMPCenWzsXTzWai7S0Sy5pApqUUQokFZVhSvO44O1yOIEEuNFbrWM7yCMJTWOddsrWhCQ BzcEXIDEWfg8I4BVMBR1Cr8DUKzdSiJ6X06YTMekljUikhJ/JlZIE0grAajh+Js/CK+dSkmlK YuL7BzpOau/QySa8pZjFNjp+HwgIGF9HqrsTaZqKq2Da1p7GIwa+ga+fYht947pe5fv2NK+MT 4231jWb3LVD3tlsRid02FEn1PuS1qTmw1AR6yRdofPwYQh66OxAYht91l6GoTJgnrBAGgPc3i 4wqLB7PJWDeLOc54YwaAQ9yy2149OYKOLEwkBaGexaVeeTuffB7txL7nYlulWcPMX5n+EC83w 5dEmucjdEpUOceg3gIo3sOICKg4kczhAIfPGmp2Oww== 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: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420734827100003 From: Mark Cave-Ayland Also change the instantiation of the macfb device to use object_initialize_= child(). Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-23-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/m68k/q800.h | 2 ++ hw/m68k/q800.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 8f2c572a81e0..b3d77f1cba6e 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -35,6 +35,7 @@ #include "hw/scsi/esp.h" #include "hw/block/swim.h" #include "hw/nubus/mac-nubus-bridge.h" +#include "hw/display/macfb.h" =20 /* * The main Q800 machine @@ -54,6 +55,7 @@ struct Q800MachineState { SysBusESPState esp; Swim swim; MacNubusBridge mac_nubus_bridge; + MacfbNubusState macfb; MemoryRegion macio; MemoryRegion macio_alias; }; diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index a32e6fbf8dec..b770b71d5475 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -452,7 +452,9 @@ static void q800_machine_init(MachineState *machine) =20 /* framebuffer in nubus slot #9 */ =20 - dev =3D qdev_new(TYPE_NUBUS_MACFB); + object_initialize_child(OBJECT(machine), "macfb", &m->macfb, + TYPE_NUBUS_MACFB); + dev =3D DEVICE(&m->macfb); qdev_prop_set_uint32(dev, "slot", 9); qdev_prop_set_uint32(dev, "width", graphic_width); qdev_prop_set_uint32(dev, "height", graphic_height); @@ -462,7 +464,7 @@ static void q800_machine_init(MachineState *machine) } else { qdev_prop_set_uint8(dev, "display", MACFB_DISPLAY_VGA); } - qdev_realize_and_unref(dev, BUS(nubus), &error_fatal); + qdev_realize(dev, BUS(nubus), &error_fatal); =20 macfb_mode =3D (NUBUS_MACFB(dev)->macfb).mode; =20 --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420724207437.9493747640287; Thu, 22 Jun 2023 00:58:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBL-00050F-6t; Thu, 22 Jun 2023 03:56:43 -0400 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 1qCFAi-00047Z-EN for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from mout.kundenserver.de ([212.227.17.24]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAf-0002uf-8f for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N7hrw-1pyEbU3kUE-014iRV; Thu, 22 Jun 2023 09:55:59 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland Subject: [PULL 23/24] mac_via: fix rtc command decoding from PRAM addresses 0x0 to 0xf Date: Thu, 22 Jun 2023 09:55:43 +0200 Message-Id: <20230622075544.210899-24-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:WCC7T8vamM0a2uaJmYGUKbFceEHpPDboH6flQamr6OnhGlXgQst ecT3kfMI46NSGnqbEcuGUlY8k/4wOZWWvF8Nks9bPQtdST/Uh5li/nTSHG3rBnOsK/3wh/t uBhIJJbeC73uLJj9iQnr8QF0p1RrDjvdwQv6iMK3J4uWJDSH4mHlpRkXTMnT6lUpeyDPxeh Q2znceowZYA3Mj0DgsVow== UI-OutboundReport: notjunk:1;M01:P0:4GMdWnlneqs=;B9bCbCxnMmg9x4POnxRC+2eF+6m kFgf5CP1aMMBIMn4NYkQ+BMpB4s9231BOjUMrachs8A4Esbcv8QEtZDePMFtCfOIv2JRLY1rG SAKVVh/vOixoOp+tHPXpkBG7cae+Iv3PlLrF5+StvR6s9aQ9r1mF2kSLpgvG6DYdFXpCYiGvc bw+yes/rap0Mo+Jm4cUzvkksj0T04qQMa4NP2mYDO5fc6QENvEazTK8/f4KkglkIIwsf58S0G Dh01Djlwg4AELjrbZAsqq0pldQQZyGj5Hjm3YJ3Q+Y9SsIBnBZAMD2WKD37rtWZAgp4ZbsTvT DTlzzIkxwUDJugZ9TfkZTsQNznff+nV21XbY7Tqee17ExHN9sisWaJjU9FMrm4RbhZuIE1nIr a5cBwU+EpUtVTdklr1RIx9FvXiOcdE7bTR7mOVAPwIBPY9oml26O5WNyKfJ0tvt4HygefehMV er2Szvc56QZAbaTz0h7j/q6fX8oQ0fAxALOu3QAzjZwl8H1Kvw2HMS2Hi7RN99Ww7OV4ByXYb 3flndNw+7zcS8IkZhUCbPR3lPNELSo+InMH1f7mJqpAh4RsKDzZT8TLfoQmIqCf6Ub13hqF0y hAbTCLNu4dUUclnvNzcO9FDwyhFfAMhMutjthycRwWGIW/D2bdPU1slHb7vu8v/eh7iKPHrUM 443LqnWSPBJ2etvwZjtN4lke460xZbO9iTjDJ72Tzg== 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: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420725229100003 Content-Type: text/plain; charset="utf-8" From: Mark Cave-Ayland A comparison between the rtc command table included in the comment and the = code itself shows that the decoding for PRAM addresses 0x0 to 0xf is being done = on the raw command, and not the shifted version held in value. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-24-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/misc/mac_via.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index 076d18e5fd9f..85c2e65856eb 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -399,7 +399,7 @@ static int via1_rtc_compact_cmd(uint8_t value) } else if ((value & 0x1c) =3D=3D 0x08) { /* RAM address 0x10 to 0x13 */ return read | (REG_PRAM_ADDR + 0x10 + (value & 0x03)); - } else if ((value & 0x43) =3D=3D 0x41) { + } else if ((value & 0x10) =3D=3D 0x10) { /* RAM address 0x00 to 0x0f */ return read | (REG_PRAM_ADDR + (value & 0x0f)); } --=20 2.40.1 From nobody Sat May 18 14:01:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687420742920117.37694425575489; Thu, 22 Jun 2023 00:59:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qCFBK-0004y7-G1; Thu, 22 Jun 2023 03:56:42 -0400 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 1qCFAj-00048b-98 for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:05 -0400 Received: from mout.kundenserver.de ([212.227.17.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qCFAf-0002uo-DW for qemu-devel@nongnu.org; Thu, 22 Jun 2023 03:56:04 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N8XDT-1pyVqw1PIv-014RC6; Thu, 22 Jun 2023 09:55:59 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Mark Cave-Ayland Subject: [PULL 24/24] mac_via: fix rtc command decoding for the PRAM seconds registers Date: Thu, 22 Jun 2023 09:55:44 +0200 Message-Id: <20230622075544.210899-25-laurent@vivier.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230622075544.210899-1-laurent@vivier.eu> References: <20230622075544.210899-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:4BncvCbkfznm9DbU91w+DqND9gdV6sjJwgfy6YGgWVzQ66x+xtx aaZUGRxU28NiosMeDBqPQrGjqIJhfJFT5ezipfbH5puOlL6nBRVb7YB8lAON0beg7EOyyR3 Mxr5PA0un4u5ZNhiQ+D196gwRmSAYFGY7v4KeCR3ZxsxFdP0vW+Uhct71OW54oGt/ouSgGx Ycz/eRdTTIeswh9vmEhOA== UI-OutboundReport: notjunk:1;M01:P0:UybWCMW1myU=;N/I7K0LaYolsmpx6m7VfWc8asFZ pAVqMJOvG+5qBCb9XyU1Z543QFaYCPtG+h7MKqlNPd808mPPfZqrWlNj7hbt8+4YuEW86pkU5 qgfBlqNhR1GzWe+0WQ/RqOs3TCfpPgp0+oK9o9YGfsSCiceymqqGY7jeEjBxXoy7ua7VTIsBG pGrO92u8uASDtiuvDFtrxeBam8zIR/YD6CaXIA38qskJecXsH3ylRF7g18ppImv4j3g/FNDK0 RJGPu37ofa7hboN4rjFpZLGyeq0k1ijQAhykHmj8fu/amj3QOy7qQIOpUs58Xag2BZLRVZiap s//oENkJSzFz1+nhaMZ1SeM6lKx45c/ufwAgCjRhGD9iGS1r4thT8GXXBxFz/1ktxJo/QmsGH /Bv0dK4HQVPmhrFvB67aL/JBnSLQCJc6l8aOOGTezaQpIUF5e+EuOQdQE3MS1E2nnoKkJRp+n S2P260cPqgGhvQCw68WOSJzBXhyCSk9SNwGcKtGOXr6el+PHndqMWv0dl9dVpct/R8grpmY5f 6oSzwfsv80qXJBUrGQgkQtvU9wxpsOszOyh9+QRRBa+G4GNFrgZn0CWTo752c/IBI2mwcBEou 8xcFK/VeG46t8pyfwaCGO2m/KDZJmcGYNNbKenXrWdjFMwqU1DeqtS7/QtS9yuvmLOU3xVmGO PDalvAlAaX0SyEgId0zwGWFHav36vUvO8NQP2XroHg== 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: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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-ZM-MESSAGEID: 1687420743178100003 Content-Type: text/plain; charset="utf-8" From: Mark Cave-Ayland Analysis of the MacOS toolbox ROM code shows that on startup it attempts 2 separate reads of the seconds registers with commands 0x9d...0x91 followed = by 0x8d..0x81 without resetting the command to its initial value. The PRAM sec= onds value is only accepted when the values of the 2 separate reads match. From this we conclude that bit 4 of the rtc command is not decoded or we do= n't care about its value when reading the PRAM seconds registers. Implement this decoding change so that both reads return successfully which allows the Mac= OS toolbox ROM to correctly set the date/time. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-Id: <20230621085353.113233-25-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- hw/misc/mac_via.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index 85c2e65856eb..0787a0268d17 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -362,10 +362,10 @@ static void pram_update(MOS6522Q800VIA1State *v1s) * * Command byte Register addressed by the command * - * z0000001 Seconds register 0 (lowest-order byte) - * z0000101 Seconds register 1 - * z0001001 Seconds register 2 - * z0001101 Seconds register 3 (highest-order byte) + * z00x0001 Seconds register 0 (lowest-order byte) + * z00x0101 Seconds register 1 + * z00x1001 Seconds register 2 + * z00x1101 Seconds register 3 (highest-order byte) * 00110001 Test register (write-only) * 00110101 Write-Protect Register (write-only) * z010aa01 RAM address 100aa ($10-$13) (first 20 bytes only) @@ -373,6 +373,7 @@ static void pram_update(MOS6522Q800VIA1State *v1s) * z0111aaa Extended memory designator and sector number * * For a read request, z=3D1, for a write z=3D0 + * The letter x indicates don't care * The letter a indicates bits whose value depend on what parameter * RAM byte you want to address */ @@ -389,7 +390,7 @@ static int via1_rtc_compact_cmd(uint8_t value) } if ((value & 0x03) =3D=3D 0x01) { value >>=3D 2; - if ((value & 0x1c) =3D=3D 0) { + if ((value & 0x18) =3D=3D 0) { /* seconds registers */ return read | (REG_0 + (value & 0x03)); } else if ((value =3D=3D 0x0c) && !read) { --=20 2.40.1