From nobody Tue Feb 10 07:22:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1526081425032301.5369428656247; Fri, 11 May 2018 16:30:25 -0700 (PDT) Received: from localhost ([::1]:54282 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHHUW-0004og-5k for importer@patchew.org; Fri, 11 May 2018 19:30:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51136) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHHSN-00047q-53 for qemu-devel@nongnu.org; Fri, 11 May 2018 19:28:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fHHSI-0000dH-81 for qemu-devel@nongnu.org; Fri, 11 May 2018 19:28:11 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:3414) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1fHHSH-0000cR-Qn for qemu-devel@nongnu.org; Fri, 11 May 2018 19:28:06 -0400 Received: from mail-bl2nam02lp0086.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.86]) by ob1.hgst.iphmx.com with ESMTP; 12 May 2018 07:28:04 +0800 Received: from risc6-mainframe.int.fusionio.com (199.255.44.171) by MWHPR04MB0414.namprd04.prod.outlook.com (2603:10b6:300:70::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Fri, 11 May 2018 23:28:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1526081286; x=1557617286; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=af9kLmlYBYtcccgqOI8zOcsxxWhvMQ0ttnKsJjSFzHI=; b=EXyHQXp140CoFRlkQeD81RiebHirAv8d/Gw8vnPkA9qeZD4MSiX3YG+0 akMgZrKMguxHuAeo3sJKdhm24SRF9Bglpl9c4ZzK0IbJ22HyrsN73fH6L rvLTjCbNTKnVTeIv33IV3PmleOJ6V4h2iBlwUEnRps9298k2zQjy43OVx Qs6+WWjbs6M/5sW//8TK3Ty/kAG6W7OFW8lZgAsACzkpj28VVc3UxTRTM g5c8J5xJqaAg3FMY925vA+3RB1NiSuTFG734VJtipXIim1VLTbd7647B6 KhlJElMZcHMEiR4ZAnLdWGpU13RSBeiazbEYiliNmhDC2CoFDnJkAkgIU Q==; X-IronPort-AV: E=Sophos;i="5.49,390,1520870400"; d="scan'208";a="77724164" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lo5s6KdRWb/8qec1PahUmclIyBIm0rKhtz05TlEfFWI=; b=LFXsHF6dvgW9TYwKgdqvcttfHkLTLtvhmu+OjyYnZYEzWfIT0Uj5lZPYqGeHk7WcDeSU7uhwsjbhyP5J5JL1UbHrCUxp45NAycKhGjAYHiOxaJ3afyS6jhiq6UnoUZjWpBZdlGshGPl6D+kd2rpk33vtWR4scsf8xSExNEJU2Jg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; From: Alistair Francis To: qemu-devel@nongnu.org Date: Fri, 11 May 2018 16:27:53 -0700 Message-Id: <61fbecc3421c79260ffb8e9f618290d737d78929.1526081108.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [199.255.44.171] X-ClientProxiedBy: CO1PR15CA0081.namprd15.prod.outlook.com (2603:10b6:101:20::25) To MWHPR04MB0414.namprd04.prod.outlook.com (2603:10b6:300:70::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:MWHPR04MB0414; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0414; 3:kti3LBX2/dEqgYQlnQMgPbzktFIMwiRAgEDvZNZFXx1gpFMwTETyEbNQBvjndI6U6xlvPDvOMCVT69wkztePoHyJRxfKWYl1Ad6Z0LuyOlPqemXHwh6hRTpWLinbLbsSrs0aW8zUb8coVTWFQe5sz9WyDMQXvwvKltdhAFai34xTH0gll/QIIr65HQT1z6oDX4ay7m9Idzz6f3PRI4yaBj9lqbCC5lmqn+5CtddnSUThT4JypafZtLy9l1aX2AEk; 25:KwBgWbTJVLmsB8KrFBE0CuTeh06W3oW9KRK3moZPsWttr4i9xOTxke/DP0wbNmVS8tcV40xB8exY2QMiCb9LLuNVRJSbIGFjVu8ADcHwi1pUl4XsMPXUUScQ4kQdsFeH7bolzdQZ+WaZjC9S9DNMW0jkgMhvrfCX1iH/GfeWz2+QuUoq0c7EGRSq+M+r1Xro9gKxfumFI658L68xQZnT6eI3NhmBGJMsH056iDvdhAzepvdjb0vmLJECu95IFIY8DrsJkU+cR4FxfdksDrA00dOw1OHqofME+6i6YUz8oHfzZqQuuWPJobXzfqlHRCSFoj6FomkUlErwHMqqHkowCg==; 31:tF79Y5PKNQa3EXV9MdRr+mHzqrF0pND+uJ3ftMQcjgwuMy/mwMUaiYqaYtEBAvXH06PP01/JiXJg/V+AS58bkKyDhsFr4YDDKPYcyKHevp711s1wNA1k9q6hiSfe4DJ1nRjY4kMin2eDvAtUB7hDbMBrqxSUgJuNsokTS4fhq/bJEi7yK7C39PuN4nuQkf6Jvd/GHVTxDLq4cLS0wIyvKi/UdJnr8RCcUtNdM9fsuPQ= X-MS-TrafficTypeDiagnostic: MWHPR04MB0414: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0414; 20:w8NnyL+3dJi4P5tumDa6q5LG/IUA1UExJQ8FzFfDBUk1iurRGj3oF7BNT3TwSEQMEVnXVplNBc+2GNv4IbzWurCLGijrcRdmudIspuKrkREWUE3q3h32DOWG8Pd8MKpExxTg23dBeMGdntJkYx290ccuWTUAf1UeqoyBeQ2xszVfv0HqWEGM3TPkRpNKuMTbT29AhxQqIXTWd/I85ptzCFUsnmsQQg6ImOV3kxFDpeLAsKkImoFog+XU8n/HYZ3IBtxh0YHhPimZQsMngXeglH9pFL+wLL93iQXGh0H7cbPd8B/9iR92MgnI7TH2y0ZLxPB9Lt/66FjXRo/9x2OHM8s6Q5r3c5rvnIY0l7vVmW+l5Sv82KcUnZW3iA7YSumH+7I4WA6goFdj/RoKAOqRTQfeaiQ0MkPRsPsD6VRB71eJgGUmdB2SnRyOIujbUSTAzd1oqibrAocR1e6lYjG6Q1ZhkUN73oojViRXZ8vmbwmCrtJRaaM0jgyh9uXmfp3R; 4:xEBp0of+71EU2Z9bXVWEsU93n4XzuA1q1elvUnN2UD12e5pROLVqWPKPSUrEsCxJO44W5pPGz3IUFmedliNg3oqLJmsaUanom2cVwmFYv//7n4eSvX13CpE/cE0E2r+79EJ0i4qflW7XtdUZUzyQciSx9iq9nE55XF6ZEFSLtvhWS/RWfrLX5f0l2En+VRPuPiV5tqIm3qlz+tmPMItt8tprMFSpXsiP/XoDKoU2NDeV1h3WfOdYn4OCKZZXpvSFlKXXdEOEGzNTsxeVmBc27Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:MWHPR04MB0414; BCL:0; PCL:0; RULEID:; SRVR:MWHPR04MB0414; X-Forefront-PRVS: 06691A4183 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(376002)(366004)(346002)(39380400002)(39860400002)(189003)(199004)(2616005)(956004)(81156014)(50466002)(59450400001)(105586002)(2361001)(575784001)(446003)(47776003)(8936002)(476003)(81166006)(386003)(6506007)(2351001)(11346002)(16526019)(186003)(305945005)(26005)(478600001)(23676004)(72206003)(316002)(66066001)(486006)(39060400002)(106356001)(7736002)(4326008)(86362001)(6486002)(6512007)(76176011)(53936002)(44832011)(6116002)(6916009)(8676002)(6666003)(97736004)(52116002)(118296001)(68736007)(2906002)(25786009)(36756003)(3846002)(50226002)(2870700001)(5660300001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR04MB0414; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjA0TUIwNDE0OzIzOm5Ld285VWlsbktRSkMrSzVLU0ZQRkZtWVpR?= =?utf-8?B?MEVIb0xtSHpLMFBkWmdta1pKc3JEc0s5aURvaU53aTRLWk95YTNoSytqNFBn?= =?utf-8?B?c0VqUUtqN3pONGFVOExzY0M0Y3F5RnozNUdmWFhQd3lkZWMxZ1BUVHg0Ui9V?= =?utf-8?B?c3RVb3lsb2ttWXg4b1FKRWpJNjkyZUZ4REFvUmkxdDl6RUdVbG56dXkrY2ww?= =?utf-8?B?Mmd1S25NY3c0ZnpjNUJTb2FhTEd4ZVhNUDd1dWxPTXVxUUZQbHZlckoyRmkx?= =?utf-8?B?QVZHaWg3OFcycXFlSjI4TkxTc0J5cS9ia2dDWmNXanYwem0vcEdIZWorWVJy?= =?utf-8?B?WTNnMXJrYTliMVJyT3hQdS80Y2xVeTV0Z1JiVXJmbnFBV3pIVFJyb3BnWlp0?= =?utf-8?B?UDhJbDZUbkUwNFNuWTFwTTNjV0JnM2FtU3RSaGMvZ2U1Ujh2bGpqYjZzNm11?= =?utf-8?B?U0VUZjdFWk9SWWlJWnJ5d3hnUHdhWHlYQXJ4bnNUUzdCY1lzZnVTWmNTMlpR?= =?utf-8?B?R3paSWxVNTRJWGhVNWxoeE1KMG91Ym9WNWVIWDdPUkppTU1rbFRYMEptVUtH?= =?utf-8?B?Vk0zbVBYc1ArenYzVUJ1K1BkT2twM0hXdGlZM3pJamNUdUk3Ni9XUDhzem9n?= =?utf-8?B?aTBHSFZRU2R0YTJUdjhlQ1M5MDRvVE9YSUhVa1dtWTNNZ011a05IZGw5amt0?= =?utf-8?B?bEVYbndvV2RqMlUrMHdTanM1Q0FoWmJPTHBhRGY1dVdaOTkxWTF3VWo4Z01Y?= =?utf-8?B?SVpaOTNtNjlmc3ZnS2EwSnhhR2lKNnFQdGNpalFQb1lXdmVaWXZ1cUlpOHha?= =?utf-8?B?Y0pqK00ySUp5ZzRMSHpKdWFISkhiTVFGbUtIZU9RUjdYeHZxWWFuQ2hPczVC?= =?utf-8?B?Vm5iUW5VTXJDdGNtSHFLT2s5a2JOTVFrSWhodG9oZERnWFZ3bE9yOElCRmY3?= =?utf-8?B?bDR2Qm5YZURrb1l5OURFWmVydlhadUhWcnBCb3ZLNm4xWUJRUklUcHlOZ1lS?= =?utf-8?B?aVM4VUJ6Sk1pVXBEeUd2SnVHVHZyYU9aTG4yRGx6SGlTcUxWa3FtL0w1Y1pS?= =?utf-8?B?a3dPS0J2WmUyZytOZit2NnM4ZHpHZTBHdHQ3M205cGgzZldOV1RkdG42R0to?= =?utf-8?B?bFJxWEVWOWhGZ0JEeHRDN25WRkluNTErTmRHdHV0Y0dpM0RIdjhDU1d3SkFs?= =?utf-8?B?Vm5ScDM4eC94aGh4WWljNXRPU2xLelRmZVkvMEtieCtURHk4NkJWbUZhUVFW?= =?utf-8?B?ZkdNQ2ZtcG91eHFVamxWV0tBUS9kYWdjZXh3SFhZQTc2VU5GR0FCU0hQdjJo?= =?utf-8?B?dEIrNDU2b0RDNEVwbDV6Z0w3WG9VNXFzQll6bUw5K0ZrSTkzcG5zYTRta1ZD?= =?utf-8?B?MEJvalFhVEJnUGFWRERQcEFqcjZpQUhrQmF6TW1UMUM5Zk1pQ2FNNDlDZUVR?= =?utf-8?B?Q3h1eC9DcUZkKzRuVVUxeDdVakhQVktoNC90c3c2ODBTY3dYczR2Wmp6ZXRF?= =?utf-8?B?dXlTUW16S0lsRk01R3o2ZlNJWEMzc2ZsaGN2ZXV3QlNnWldaKytpZTFWWExp?= =?utf-8?B?R1J6VWV6OUV3NmpBV08zejFmNmNvbXhuaVdhMlRkelVCOVRwTWZ0RlhoeGNY?= =?utf-8?B?YnVRaERLRVFhVkpMUzU0MjJ3YW54U2NTZzNnSVZBaGhJSlFHWXJlc0kwdGNP?= =?utf-8?B?azkwLys5N3FUZmdMTVhkMHgyNHVYdTZpRWNqTVloTjZiN1VwRG5TZjZHcTdL?= =?utf-8?B?bjFSeE1lZHl2Q2U2VXFLTzdjS0w3REs3NlFNUGRMT0lmWUlFMVdreGZmRGp1?= =?utf-8?Q?3foW0VPgGfbd+?= X-Microsoft-Antispam-Message-Info: n2Lxt8XBJiltbVGqoOafjwPNLMXY+/7QaYB3akkj1kZU/LCOwC5MkKLmK+q6WUuekqcgD2LBZkWxhSKHQbYJRoegZXzHya2upwtV8ZxJcdUd0XnU1C4bqhT7ycUh13dvucTu68HJaDcgfDDk5xbm6H3YzjKHaTg6v2w6IkfKvHyIcDAWOLnNC5ocuRr+2N8M X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0414; 6:5nmNIl7BqxPtTYqaUy8TpOvF+wXLUPSLxpZeGldIPibRBrlcRhpHfv0HGYgHVCfPrhHMt+v5LPKpwk7bEOkrgivPyEZRWWfG+azY0sGckPEYjMCsohmAF9m4wGNLsqHcdhvWGe0daGr80RpKAQAostiBxah0458yGf1jrc7TGtpqEC+MpAnVdtrkAUne0BLvOLS+fa9oLJ0x8kO8IAdowCRkEaW9PkkFfHQAoRLupfPpiMbB6j2x4yaSJdISepSvNq84twTaChtZBU+ySpnUm/C1PYaPdHVRDeifVCPpBnZFwjH46bH8mtKwgKlAw4wQQDr6tLCJZK0WkUqHVMpZfhi6r627mYufhaMLWcYFrgKcXWdlN5DC2kzEyDTzdZqMy6ZhjBC3NxsbGBYHWA2ItEVtZM/bqeai3ZOxmqF1GTIAU5lNWsNCjZnmmXxlBddm/QH69yX9itqicNmF2ywStA==; 5:oU/+YdqX06JInaSrxLMa/OKZWXbyVR1olQA4Ffgjy/yiCHNO5lLZPXr1wycKRny0UYiMywKKNyqFqW3e1eYoHARrZkD+JAryVXhyRw23UNXzyx/kVNzWJBIqvxFmghyAqXVHcaOnr+ju6X+ZIFoWpGpm5Bzvov+L1T8iohUDaus=; 24:LXgwOLLzSb6RQmoWjiueU5xAlxhw1FKrr19KXSWCiV2n6wdjrKtEbSXUhm739Yb2rTF2T08okUUwNLzdjoBXzV7ZTsVDubEtTOiqUbgnZB0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0414; 7:b2KDPfaeDD6VG0fj7do2T8V3TS1mbhdDMylVdAVRYUKy6W5QzNbxeKy1DX5cQ84P6kBsBB0XzBZVPzOSRz4ak6Hc7ypKwxOvX2R+VpG5yJmakJ2xQrhZcQJC0kPyrbAoJIFfDno9gebIvCkfuohfvIHAHH8LM3KY4NnAa/AGjiqpIfi8Wmmz9jmv98X7qBtGJLAEJ+voILFyCE3nkjk0v9+JFd7nSqyvCZTTVZx4z8TKH5Mcsxt/uJa3yRnsXP6+; 20:CWezXEPMQFK8DozX8xBrNxgd5Z2cXwhzaG3gnMYzeP1R5U0fifwr8zZc4kWOMn+oXaPysL84e0Qa2YcgHkPMVVN6xrd5uVPYio+e8O+djUTUSDccEaffI1V8hZ/tx6sXYwrxHQJWZZ4KSNi/7H88XaUwA8kkdwFL8wxeOYPNzAk= X-MS-Office365-Filtering-Correlation-Id: 4dfcff50-759e-4006-6745-08d5b796d6f6 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2018 23:28:01.8493 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4dfcff50-759e-4006-6745-08d5b796d6f6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0414 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PATCH v2 3/7] hw/riscv/sifive_plic: Use gpios instead of irqs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, mjc@sifive.com, alistair.francis@wdc.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Instead of creating the interrupt in lines with qemu_allocate_irq() use qdev_init_gpio_in() as this gives us the ability to use the qdev*gpio*() helpers later on. Signed-off-by: Alistair Francis Suggested-by: Philippe Mathieu-Daud=C3=A9 --- hw/riscv/sifive_e.c | 5 +++-- hw/riscv/sifive_plic.c | 6 +----- hw/riscv/sifive_u.c | 5 +++-- hw/riscv/virt.c | 4 ++-- include/hw/riscv/sifive_plic.h | 1 - 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c index 0ab5e3ca45..a0e9d500bc 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -190,13 +190,14 @@ static void riscv_sifive_e31_realize(DeviceState *dev= , Error **errp) sifive_mmio_emulate(sys_mem, "riscv.sifive.e.gpio0", memmap[SIFIVE_E_GPIO0].base, memmap[SIFIVE_E_GPIO0].size); sifive_uart_create(sys_mem, memmap[SIFIVE_E_UART0].base, - serial_hd(0), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART0_IRQ]); + serial_hd(0), qdev_get_gpio_in(DEVICE(s->plic), SIFIVE_E_UART0_IRQ= )); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.qspi0", memmap[SIFIVE_E_QSPI0].base, memmap[SIFIVE_E_QSPI0].size); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.pwm0", memmap[SIFIVE_E_PWM0].base, memmap[SIFIVE_E_PWM0].size); /* sifive_uart_create(sys_mem, memmap[SIFIVE_E_UART1].base, - serial_hd(1), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART1_IRQ]); */ + serial_hd(1), qdev_get_gpio_in(DEVICE(s->plic), + SIFIVE_E_UART1_IRQ)); */ sifive_mmio_emulate(sys_mem, "riscv.sifive.e.qspi1", memmap[SIFIVE_E_QSPI1].base, memmap[SIFIVE_E_QSPI1].size); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.pwm1", diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c index 874de2ebaf..a91aeb97ab 100644 --- a/hw/riscv/sifive_plic.c +++ b/hw/riscv/sifive_plic.c @@ -435,7 +435,6 @@ static void sifive_plic_irq_request(void *opaque, int i= rq, int level) static void sifive_plic_realize(DeviceState *dev, Error **errp) { SiFivePLICState *plic =3D SIFIVE_PLIC(dev); - int i; =20 memory_region_init_io(&plic->mmio, OBJECT(dev), &sifive_plic_ops, plic, TYPE_SIFIVE_PLIC, plic->aperture_size); @@ -448,10 +447,7 @@ static void sifive_plic_realize(DeviceState *dev, Erro= r **errp) plic->claimed =3D g_new0(uint32_t, plic->bitfield_words); plic->enable =3D g_new0(uint32_t, plic->bitfield_words * plic->num_add= rs); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &plic->mmio); - plic->irqs =3D g_new0(qemu_irq, plic->num_sources + 1); - for (i =3D 0; i <=3D plic->num_sources; i++) { - plic->irqs[i] =3D qemu_allocate_irq(sifive_plic_irq_request, plic,= i); - } + qdev_init_gpio_in(dev, sifive_plic_irq_request, plic->num_sources); } =20 static void sifive_plic_class_init(ObjectClass *klass, void *data) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 26155e932d..d1008c42f4 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -320,9 +320,10 @@ static void riscv_sifive_u54_realize(DeviceState *dev,= Error **errp) SIFIVE_U_PLIC_CONTEXT_STRIDE, memmap[SIFIVE_U_PLIC].size); sifive_uart_create(system_memory, memmap[SIFIVE_U_UART0].base, - serial_hd(0), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART0_IRQ]); + serial_hd(0), qdev_get_gpio_in(DEVICE(s->plic), SIFIVE_U_UART0_IRQ= )); /* sifive_uart_create(system_memory, memmap[SIFIVE_U_UART1].base, - serial_hd(1), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART1_IRQ]); */ + serial_hd(1), qdev_get_gpio_in(DEVICE(s->plic), + SIFIVE_U_UART1_IRQ)); */ sifive_clint_create(memmap[SIFIVE_U_CLINT].base, memmap[SIFIVE_U_CLINT].size, smp_cpus, SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE); diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index ad03113e0f..bdd75722eb 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -379,11 +379,11 @@ static void riscv_virt_board_init(MachineState *machi= ne) for (i =3D 0; i < VIRTIO_COUNT; i++) { sysbus_create_simple("virtio-mmio", memmap[VIRT_VIRTIO].base + i * memmap[VIRT_VIRTIO].size, - SIFIVE_PLIC(s->plic)->irqs[VIRTIO_IRQ + i]); + qdev_get_gpio_in(DEVICE(s->plic), VIRTIO_IRQ + i)); } =20 serial_mm_init(system_memory, memmap[VIRT_UART0].base, - 0, SIFIVE_PLIC(s->plic)->irqs[UART0_IRQ], 399193, + 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193, serial_hd(0), DEVICE_LITTLE_ENDIAN); } =20 diff --git a/include/hw/riscv/sifive_plic.h b/include/hw/riscv/sifive_plic.h index 11a5a98df1..2f2af7e686 100644 --- a/include/hw/riscv/sifive_plic.h +++ b/include/hw/riscv/sifive_plic.h @@ -56,7 +56,6 @@ typedef struct SiFivePLICState { uint32_t *claimed; uint32_t *enable; QemuMutex lock; - qemu_irq *irqs; =20 /* config */ char *hart_config; --=20 2.17.0