From nobody Thu Oct 30 15:26:08 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail 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 1526342970625694.3048213687605; Mon, 14 May 2018 17:09:30 -0700 (PDT) Received: from localhost ([::1]:55824 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fINWz-0004FZ-QQ for importer@patchew.org; Mon, 14 May 2018 20:09:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45315) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fINVD-0003Bt-30 for qemu-devel@nongnu.org; Mon, 14 May 2018 20:07:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fINV9-0000fV-Lh for qemu-devel@nongnu.org; Mon, 14 May 2018 20:07:39 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:34225) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1fINV9-0000ZK-6a for qemu-devel@nongnu.org; Mon, 14 May 2018 20:07:35 -0400 Received: from mail-sn1nam02lp0021.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) ([216.32.180.21]) by ob1.hgst.iphmx.com with ESMTP; 15 May 2018 08:07:32 +0800 Received: from risc6-mainframe.int.fusionio.com (199.255.44.171) by MWHPR04MB0417.namprd04.prod.outlook.com (2603:10b6:300:70::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Tue, 15 May 2018 00:07:30 +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=1526342855; x=1557878855; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=q/hXAwYDJLzKX4hIVEXC1Ej/uyCB18nEWrnfxW+Ps6Q=; b=PkEqXhTc1VM5dQaijlM2hOEkj7KsKObONhsixit2+R4qi3ICKKE76UKh h7k0AyK0shN3v1Ulz7cQt2WNeWjtH2uJ8HiqHGq4LAs1bmn/catBclXA3 rP6eJdTsckS2sgz9oaGqrXwReGUFaayphEGAAQMQttozoX4tAT9YMVyfk x7Q/4MCCsD24847VviXjrLFdl7B7CJ1XEy5zdfwR16euki+G+pt1R7c2F cYrHWaWS46GldN3yLcS+icaTY//aPmFk/4PsL6RyONSAQwxN4csOPZIE+ u2uYAbaEiLQaGnn6OoP1eil9jwzDoWNuJ3Y29WyE7xVbJHbdfg6DY4xnA g==; X-IronPort-AV: E=Sophos;i="5.49,402,1520870400"; d="scan'208";a="181147258" 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=zHVY2heDlnCQU+CetQBxS8nyfwE27f/f5mr7ej9WkT4=; b=cbHOaNdbPDUh0p9QoIPOAsLz/xv8I4UmHi1ioRItbbxNvcXCjIu4u/qKz75mX/qM4bgxkQRw6DHp9XdVHaatOFCJWwidWo2wL5iLJ3q/jrLx34wnjdGz/J9Ow7sUQtMZOw0xCeYzQCl4GihkAeKUvMeOH6kiPJr84f2Sfv/bBCA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; From: Alistair Francis To: qemu-devel@nongnu.org Date: Mon, 14 May 2018 17:07:20 -0700 Message-Id: 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: BYAPR02CA0014.namprd02.prod.outlook.com (2603:10b6:a02:ee::27) To MWHPR04MB0417.namprd04.prod.outlook.com (2603:10b6:300:70::22) 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:MWHPR04MB0417; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0417; 3:XcGc97YUhTyB44gVq/Tmo2HmW43XQVZSVTHQa/nfTxq7FKVtOm+vUmPb26dVIzH4w52VubUllUiiFs3Zujpad29QruOuXH/rhjGFTcgAcQUy7GlPsIQDSU4YXKMEOkp/bxwfP/UnWq2sKCUIutCtpDSRZT1G5xfHakowBkDYG1w7jCBCIqH+UVD7H7RWiiRlIuTHpTn2Ns5OZOcdy20m5Ug+BT+Z1S+bXITVifDzKbd8OIEKjaf0lY5NspGCSily; 25:PHORcfYiCTaSsWY6/aKOUGPXBTZDDkhevFDYjagCg/F1qt7rw7QT0jBAsdNEKD8jgYL+iNG8y/uHZjT0wBz92nAPfqgv+MyjV7eL1nRuHt34klGOJfkcjUTmEj+hhcSLvKMpb9CA3zvjdMig3lt6l/seSq+8/SVjAN4TMgwKVwwmqYVHBY50FdbPjekCgZQVXsyhozIWVfHXxs+EtqddFYnE980qPqm9ALD0ct9aBbguqqUJOaVlHRXMe3aW2IaI79Bf35vLXGSNmkK+67tvDCIIH2iXpdcjFUHFznrXnkWEEOewxvJeS+f/7cpZ+jz9IaWzpoLW4c4dluqPOMDsyA==; 31:+GBsKWblvME9k5xqow73MbyX1WvXb/T8fSrUYvz7FXRKje2hM60LsKug55uFR94znXE45cOUdGlKe4/dia94Cor1f7PxhRTXtOVKnqbffG3gvOWYfWCOQLnFVCLPjlvkoW4JKtijvB8adkpG4QPxi7KOcpqryP20Nxx9E9wavFjkvS2AIK4fWd6XMyZu9UbiHPPIPht86xr/0wlfrnnVktuXcoV9nkzUirBMQpmmu+0= X-MS-TrafficTypeDiagnostic: MWHPR04MB0417: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0417; 20:4y9x8JCgpXvY1RIkR6lpL42EhCOiD4VKz60LUgOtgZ63hV6h+KFMUXnheiTY9UBH3GOykkyLkgCh3+E4Im36sWdCceDAXx4u7Df6kj6J/B4bK8lzkG4WZOQ7v8mhc8FFIBqxMBQC/2VmOUThRPx0zUwVuqnQ6BAOsR8qpHNB55MrrtVEd0jKUqtaL2TJehuXpLlzZM30E2WpgsM6q7XotXYz32+xONAckMwcKcQl/KLLmOkIUy85UmpeyP0Mj4kiX9ahT9QWvP6R8qSs97N+Jv6+B6xCha+dWnU9wd3EuUeqRq1JtIq9JC7GNkRdBaQbQeAzWZ7wYitouPa1E6SYqezQQjA1Sm8NvcD7rXyJBlG7mJR97JGbWV4nOtjYnY+LWiWsvAKR300DyknvJZt1nZ7kpW+Anvbv/FxWxNn85jwTV52iX7Lu6qoJm52SLJ/yAdqMKopJQk1HGW/gGZ9S4b+V79dGGM5qF2eXjoCsRpDHBPqQqHyHe0GA98d4CUIg; 4:wx9o2Qa2KDQhXUrf9N564qBpcOvtaSYLBr21O2A10NcQK1LBdJ/jpKgrcdIShJqI5a5XfiKEjGHcjZI7t/X8JPXJtu0nzoeRdW1/7EdjC/1DsJYz0CCuGadv1+sN6S2ClErUzN6HRBv6zGQ93031dZTFkFnaZSmk7ARFuz37acdrLCNbhJw7GS63WEshnchLLt7+5dPi2X5Mudnf4kNarYjit33nTwFK2tzoHI1EKSGAv4TkPoaZr9cPxV2eOzOraNcJwlm3u00Cq8QeobDLLA== 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)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:MWHPR04MB0417; BCL:0; PCL:0; RULEID:; SRVR:MWHPR04MB0417; X-Forefront-PRVS: 0673F5BE31 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(446003)(575784001)(3846002)(50226002)(86362001)(6512007)(2906002)(305945005)(2870700001)(25786009)(39060400002)(316002)(53936002)(6916009)(6666003)(4326008)(6116002)(97736004)(11346002)(47776003)(8936002)(66066001)(118296001)(68736007)(5660300001)(2616005)(956004)(476003)(50466002)(8676002)(52116002)(6486002)(23676004)(7736002)(6506007)(59450400001)(81156014)(81166006)(44832011)(386003)(486006)(105586002)(2351001)(72206003)(186003)(16526019)(26005)(2361001)(36756003)(106356001)(478600001)(76176011); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR04MB0417; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjA0TUIwNDE3OzIzOnFKYm9yRHh1TXdBM3ZWTXhTd0I3WDlqUStU?= =?utf-8?B?NXVOM1doMEZLNUpHQ2dpOVI4M2V6S3dLREl2dnh3amd0MG5FcFdNZG14QTBa?= =?utf-8?B?UWtqajREVkdNa0JNYU9aWW1GUWFGQVM5YjRBYkFkaE5pTmppOW5zTlBPbkdY?= =?utf-8?B?ckJMWEYzUUh2U2JGRVQ5aXovVFRRaDNDT29VMUl0aDBNazZ6YjZleHZoc1dL?= =?utf-8?B?OXhVWHdLQnRkL2lZbVBkNzdPVm5aaTFDWFBWRWVBV1JhYlc2NGZIeXhVT2VP?= =?utf-8?B?eDY2Mng5blhuZThxMWtmNkFhcXREU3Awb3VFc28zRnNwSXQyV3hZTHlaQjl5?= =?utf-8?B?cmJET2pqdFBWUERrY3VJdEpaWitGYXpYSWY2NFJQQ3ZTNjBnMDlBQUprVWR6?= =?utf-8?B?OEloQ2p5aWZISDZKaVFucDdKc2lxUkdILzlYakJJVVZhaG5tQW5GSktpbWdo?= =?utf-8?B?enJtUkNKVTZZRUtTa3g1REZIZU9GdWZLczV2UXZ0VEJhamxGNDFuMVpMTHBk?= =?utf-8?B?Y3ZtR1QwS2c3SCtiN0FGQmRUMGZOR1p3ZUpwNDlkNGh1MHRwTnBqTjFDTDZy?= =?utf-8?B?WGh6aWNpWXlxTDQ0NDZWODZBdVVLY0NJU3lLVndMTFk3L3d0amx5bDBoSWVy?= =?utf-8?B?Z2V4OThFWEZsdmF0RjlLL0V4N1lVYXVTK1RZaDBFM2ZwSEFPZnRjb3lqY2Jw?= =?utf-8?B?THFVMFNZbEZ5dG5sZWpOcmhyZVlsUHdFMEFhUTEyYTgrRXJKODU0VXRJZ3FH?= =?utf-8?B?STdiR0FiV1RRSVpuUkNDdlV5dkdDV0dQcWN5endFbXJuRVp2WkR3SGxKb2Fi?= =?utf-8?B?VGkxMnlCMThLcUFTbzIvc3hJcUVjcUhoUlI3ZGNKdE5YZGFrSHFyNjB6RXpp?= =?utf-8?B?M1pyRlJ6RVI2Z29ocTZZc1pvaCtVUkE1bEpDUVJWMDg1Y0lnejgybFQ1L2hn?= =?utf-8?B?eVViM1Z6RWFvb1pRUkN4SWV0SnlyZUg1NVZLZEVJY29KSzgzZWdsRW91T3Ey?= =?utf-8?B?Y3N5cFRScnc0UzZKbkt5b09OZFB1N2g2ZDFNaW9IN1NwYzhteld2OG12NHlZ?= =?utf-8?B?VWV3ZUZ0QW9XTnVFSFFiZVZYTER5V3IwbjZ0Sm9aalZPNS9YV1pRaGxzM2xz?= =?utf-8?B?cE9kL1d0dlhYMXZtZmJqMnQvTnJvRktiRFZsNlE1bFZaWGhjc2d3TU5sUnA1?= =?utf-8?B?YWpYQmNPdGhpc0wwcHdCNGtCYTFGbGNGR2h5QksyVlppcGo1OG5CckNkR0R5?= =?utf-8?B?UUp0R3MvdHMzQ1ZDM0JVTEF1VFBPL2RVWVlvQ2hoeTdDVWYwR09pU0hhOWpR?= =?utf-8?B?eW1jYXE2V0VUTXg1SjVTRjZQNkZSRkdkbzFnQ29tLzU1Zm5YYS9wdzA0U2NY?= =?utf-8?B?YzkrQVYwS09URXFMWVBHUUNGc0kwZ2dNV3o3L3ZMY2lGaC8xZWVnL3BZb3hZ?= =?utf-8?B?NG1LM0svWFk1VVYrN09ybDVXRmFXdlhBWXdMWEV2a2RZN2liSXhjR0haYUxQ?= =?utf-8?B?ZmpmWStxU0FsQk83anJwWFJiY204OHVOVGVSbXg2VjBoTEJZZ2dQSjhIU215?= =?utf-8?B?cTdnZVoyVENPMExsd1c0QWw0dHpqS1dFUGpRMFJaWGdlYzRIajUrTkxvOTNq?= =?utf-8?B?V2FPQXNkUXFTMitLYWVoUm00dWgvczI3Um10WTR1VS9vNHg5UFVhdHc2NVRL?= =?utf-8?B?Yk1wdjRSOWVDTmt1WmZIUndUUEVVVDVvLzY0SG5RcnJlbkc4dGVtc2dtNGN1?= =?utf-8?B?SzVQcU9HaHg0dGhUS1ZMM1J4UzNCWUZuVStIcFpacFBIMGpySmdFU1hjWHJB?= =?utf-8?Q?/AI5wKB29JHy0?= X-Microsoft-Antispam-Message-Info: nyr1hxOnzeSGyfR54v/Kv1qQRVZXiYp8tH2YYknvc7uST3Lf4kCZeJy0ykzC6sY3yzmmM5wP1zQte3mbf/wuLw28mg8T9Xz7ZAGeHjv/bXnnZilxHqtGLsI1SYRbLCo4P9HkytkY0Yv2U6rX5JJ/ECnSj8jRQ417xY8BGsEvFHEw7reMJ9FqWMfg5FVLfXN3 X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0417; 6:9fi3ESKPQAyt9RJ5BVTwcXoDDE12/09Lq5f9+BKgsdIaTwSCU3G+D4EXIC6PBMuJ/JDKgXel5LOnZSJT0H0SpO0IOVAnZwhFNrVhOUWauRaDfxgzYhQh1g/7H7J0wS9iXCBI8lUqSAqp+alTKNXpAhq/rz1UeZHNSVT6hxKtq3R0mTPFlA6OdhHUjW1UHP1z1cTJCRe6NBVK06DsTxW63vXxxwO3xyTYMHl9lpnEVKrJ/DGJIMsmCJKLERakakhkaDTKdakDhbhUDz9GnJaTG83w/TAbbYgFRnMMJUu/5zQaymhnj3RQ0AO5tUO8/ufxcUDkve60MaBJIsuG+49O2yW0JLBYu76EePHWEiWRStv0IzK4tkOBcD/g7byut6Yw11Mcb/OUVWpco89IZCdzq//AhRpQ9SeKJ37uhdoMR/QRqzQZtQUbKNYhxwW7h2vWBFlksx7F6XR3j380Y9FlcQ==; 5:ChdEv3ItoYbFirjd/JVjZDPYecm1jA2PMARu/mk8iA3g1DAJucT3fHECjrxgLeSv72sYY1yiWm9RaQoKnkG656Y/LXioTZSKAnD0eIIphnFrZhsXk0ZTaTrRicacsN0CBePtBqllYThsydxkque935TsNPKX+J/zXie2Th8D+So=; 24:vfMUKPULRJ8ovzptAkJkJBFxbMrc4tTM36pFn5gY0SFXIxA98TEt4+vHeFcpk0+LUpP8NXVXwWfh+fw4CWcehq+fOZyE8czE+XJByUj5AiM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0417; 7:gnGUchELwA37J15gt5tzh57wh+Kc35vZKJlVvGluPrHcpkfe0/Bcl+pYRLxQv4axh8kw55Rq5VPkvmyco0zi/LdOmAYgeS9zT8TkMaPUuIKW1nbAz6VBIfQL0F2uw+UHLcCB9Q9uFqtv9Xft0f+zIa9GqUWnzCeQBRQiXHPW03G6l/hZvdZgIPaAEmSBM7PV1v4mgOf0Ixezll7w7sooljfiYIGghlGgW0R4QEcFAWkeCUHv3Lj+b/pN8VAlxdJI; 20:NeK5fY0ijBcuepp3LjUfDfyGvN4b1dKkcyo8LVz1WIIjK4LC8e2Cumyr5heRGO2reyHVtL7puqNMTiP12tkv37sSTR0tWJGEj0bQPcPO9EW+SPH8lsSN8g0Cpm7GoC5CAkqRImscf5tnI4zf7ODm5glteQ2g0aCeJIrWwcZNUss= X-MS-Office365-Filtering-Correlation-Id: dfd07d2d-9a33-4adf-942f-08d5b9f7d9da X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2018 00:07:30.4272 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dfd07d2d-9a33-4adf-942f-08d5b9f7d9da X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0417 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 68.232.141.245 Subject: [Qemu-devel] [PATCH v3 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 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Michael Clark --- 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 384b456540..006703163b 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -190,13 +190,14 @@ static void riscv_sifive_e_soc_realize(DeviceState *d= ev, 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 45b6aeb36b..3883d7ff9c 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -320,9 +320,10 @@ static void riscv_sifive_u_soc_realize(DeviceState *de= v, 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