From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50640C433EF for ; Wed, 8 Sep 2021 15:37:18 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DF52461100 for ; Wed, 8 Sep 2021 15:37:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org DF52461100 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=vivier.eu Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:54648 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNzdV-0006c3-1e for qemu-devel@archiver.kernel.org; Wed, 08 Sep 2021 11:37:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34784) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNzbv-0003pW-JO for qemu-devel@nongnu.org; Wed, 08 Sep 2021 11:35:39 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:60567) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNzbt-0003rH-UN for qemu-devel@nongnu.org; Wed, 08 Sep 2021 11:35:39 -0400 Received: from quad ([82.142.27.6]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MzQbw-1nAAO014S0-00vOo3; Wed, 08 Sep 2021 17:35:36 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 12/12] mac_via: add qdev gpios for nubus slot interrupts to VIA2 Date: Wed, 8 Sep 2021 17:35:29 +0200 Message-Id: <20210908153529.453843-13-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210908153529.453843-1-laurent@vivier.eu> References: <20210908153529.453843-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:0QMuheZgK1nh6x6PizyvHG3uPoS/lIXTKnEnjcOnhOHn6WDGQcD rdBFX0jHR5TSh3hEfTBs25/s1Lz5qhZLrnmcZ1iQQsu9N4Znfip2xvD/EbiF4YIkNrKR/Vn rVTLatt5rHCCTreqIaEyUm1W6eHVldLvN3zxgyENQ3zX70ON3rqI6Lu8mkYqfNfjUgwVkRo 4yHWJbkOn7nfpXLJl9pqA== X-UI-Out-Filterresults: notjunk:1;V03:K0:hQJSBC2qClg=:gHSSLSJQ/JPEN5d+zVicS7 zIllxRFCqtR+2occhywOyMzuwMfqzk248RyFQdTC732uFjN75vDSUMwLchLXaazO5jUp8Gw2b fVIAWnqIzxRZxcbySAKR/HDoKqRYeYbQo4PbkhZVuiZjEmas3HMdlwJXbNjnsQplgBOPtuCWs DJkNACLmItPSrfC8ny/VZwG8WNB3InbrNYgm6OKXyk9/8lSa0PEyqK/rXVUSAqNcl2QEtvAvR 68JvGIA2sAIKXqSs8B4MzFzDQJG3FdKpsE/vOLGuNvupHhFnTcEbRZYRvbKeoZ3KJlRD/hAXv ckf5WRXolUOlv8Nt5yOUI3N82jU/bOJTV5093Q2bA4tm/094uCkWFFjPO6+M/rqBh/iIADOO6 ZQ33W1d+Jx2wGTSqXOWgVDja5gb/aQajICkT1S0awEsswzQM/Bs/hOJVpN7gEUXQNU8BtDzwm MniCE9q73kaw4sZb1m/29ohi6mzLrxSSWUVV97C360iFn1I/2x+ZToVl7WgM+azsS6WjPd3fG xz0/XU/HUOp3tNTl61kQFs44Y0SR3/0GBYv30CLqMlvDQtFZa0gGqULcy4vqM0sFKc861Fikk O0iFXKJh+8nEVzQqvwzLVu19ehaffshUr7u9+lNVLkGbgdGvqzIGL2+M/DuBlsgi/KZL2/HHo wOgw2GwiiZ4wo75gsklGc0r/P7YXaWac/lgiLjlfCBR6B7ysCvELoR0QOKHx/aVtqwRmbbjJA R4oafCAVEqJmYkh3jv/5jXNpzV6bwSpJ/UrXyw== 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_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Cave-Ayland , Laurent Vivier Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Mark Cave-Ayland These will soon be required to enable nubus devices to support interrupts. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-Id: <20210830102447.10806-13-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- include/hw/misc/mac_via.h | 10 ++++++++++ hw/misc/mac_via.c | 23 +++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/include/hw/misc/mac_via.h b/include/hw/misc/mac_via.h index 5168e3ce665c..4506abe5d0e3 100644 --- a/include/hw/misc/mac_via.h +++ b/include/hw/misc/mac_via.h @@ -93,6 +93,16 @@ struct MOS6522Q800VIA1State { #define VIA2_IRQ_SCSI (1 << VIA2_IRQ_UNUSED_BIT) #define VIA2_IRQ_ASC (1 << VIA2_IRQ_ASC_BIT) +#define VIA2_NUBUS_IRQ_NB 7 + +#define VIA2_NUBUS_IRQ_9 0 +#define VIA2_NUBUS_IRQ_A 1 +#define VIA2_NUBUS_IRQ_B 2 +#define VIA2_NUBUS_IRQ_C 3 +#define VIA2_NUBUS_IRQ_D 4 +#define VIA2_NUBUS_IRQ_E 5 +#define VIA2_NUBUS_IRQ_INTVIDEO 6 + #define TYPE_MOS6522_Q800_VIA2 "mos6522-q800-via2" OBJECT_DECLARE_SIMPLE_TYPE(MOS6522Q800VIA2State, MOS6522_Q800_VIA2) diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index f093f7388e5c..d1abcd97b51d 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -1123,6 +1123,26 @@ static void mos6522_q800_via2_reset(DeviceState *dev) ms->dirb = 0; ms->b = 0; + ms->dira = 0; + ms->a = 0x7f; +} + +static void via2_nubus_irq_request(void *opaque, int irq, int level) +{ + MOS6522Q800VIA2State *v2s = opaque; + MOS6522State *s = MOS6522(v2s); + MOS6522DeviceClass *mdc = MOS6522_GET_CLASS(s); + + if (level) { + /* Port A nubus IRQ inputs are active LOW */ + s->a &= ~(1 << irq); + s->ifr |= 1 << VIA2_IRQ_NUBUS_BIT; + } else { + s->a |= (1 << irq); + s->ifr &= ~(1 << VIA2_IRQ_NUBUS_BIT); + } + + mdc->update_irq(s); } static void mos6522_q800_via2_init(Object *obj) @@ -1135,6 +1155,9 @@ static void mos6522_q800_via2_init(Object *obj) sysbus_init_mmio(sbd, &v2s->via_mem); qdev_init_gpio_in(DEVICE(obj), via2_irq_request, VIA2_IRQ_NB); + + qdev_init_gpio_in_named(DEVICE(obj), via2_nubus_irq_request, "nubus-irq", + VIA2_NUBUS_IRQ_NB); } static const VMStateDescription vmstate_q800_via2 = { -- 2.31.1