From nobody Tue Nov 4 18:32:07 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 1530637465349772.1419572982435; Tue, 3 Jul 2018 10:04:25 -0700 (PDT) Received: from localhost ([::1]:41810 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1faOj2-00082X-Ko for importer@patchew.org; Tue, 03 Jul 2018 13:04:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49749) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1faOGl-00084X-7r for qemu-devel@nongnu.org; Tue, 03 Jul 2018 12:35:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1faOGh-0005km-Rr for qemu-devel@nongnu.org; Tue, 03 Jul 2018 12:35:11 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:62998) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1faOGh-0005ir-J2 for qemu-devel@nongnu.org; Tue, 03 Jul 2018 12:35:07 -0400 Received: from mail-co1nam04lp0047.outbound.protection.outlook.com (HELO NAM04-CO1-obe.outbound.protection.outlook.com) ([216.32.181.47]) by ob1.hgst.iphmx.com with ESMTP; 04 Jul 2018 00:35:07 +0800 Received: from risc6-mainframe.int.fusionio.com (199.255.44.171) by BN6PR04MB0387.namprd04.prod.outlook.com (2603:10b6:404:91::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.24; Tue, 3 Jul 2018 16:35:02 +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=1530635708; x=1562171708; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Zw1jLbQVKakFcKolQ+mCze05++lWEYeSKOZzVwlFd8A=; b=QkrY5DakLznaYDCx30TbIKdMCcKx6u4K2Og398CWMMeZHm69z86irGz8 i7EIiVp3pZU6y/F9jzXaSisJcKs5ehpVEYKQf3lBz8Jyd841HPWvqKpin TLVHF1U9Qz66lWar3U5xk8kv2zwcqcQRInpExrqs3unT+T9jTahn5DO7B 1BQ4LrILrOSOtRT8FJtZJIsOUvo1Z0u4OKMMhkrOhl/fb5xbFR44fyUk5 Ca4RYxcHmIcIgJTlY3kjpZ6YTWNUU9bjzscQFGrkN89zVordUGb9vd5rh FXpaA040DmuOl8W/GibgBTCbdmz7REcGHjoP1cGllrSqxMA11mXnYlA0Y Q==; X-IronPort-AV: E=Sophos;i="5.51,304,1526313600"; d="scan'208";a="84260498" 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:X-MS-Exchange-SenderADCheck; bh=RG4d1E8hQlGp9GYBsdxMjG7mlwyOKW7aberum6UNVwQ=; b=n36azlXga0+ZMJ09x17HJG+yTBmfkxIghcANYNubPUrdPFvEVuE3nQtHwXNycyk+9x4/M/OyhThFTZyqlUZis3FfS0Hg2REBW5yD+BQCJhc1ynt1+HcqaQlUOqiDdHQTsl/N4+fWEdjgfx3Zxa1MlMTZKWiHunO7elQ1+rPDxAA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org, mjc@sifive.com Date: Tue, 3 Jul 2018 09:34:42 -0700 Message-Id: <20180703163446.9943-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180703163446.9943-1-alistair.francis@wdc.com> References: <20180703163446.9943-1-alistair.francis@wdc.com> 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: CO2PR04CA0095.namprd04.prod.outlook.com (2603:10b6:104:6::21) To BN6PR04MB0387.namprd04.prod.outlook.com (2603:10b6:404:91::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 062eb85c-8139-44ad-b5a9-08d5e102ed6a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:BN6PR04MB0387; X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0387; 3:AhsIW/mbDOcUv8sNhLufw/bIrBoEbNZhCyZZQMBmJPhj3LcesAb0E48KED61VyKPUEgPllrv4eePCEadog3+w0ispVfMBes07PPzdQkKZfppRZVKqGavPhCA0pbTSHhbuy0F7SwXS2rEwfieLDkqtwBngsR/tk6EjOeaGCFNLE0lBxbfUAS7vAkCj6aAofqt/QhU7oZEU/f15xi6628LCQfEBEvQpuyKuG7Ug5gfDcrgBt3oB1878KvvDMVUSPgU; 25:MG93ttdM1CDfaafQlv3nszG9XTNMSLMfKBpGg7oxJb18lr5fUR8ItaY/LJ3z+k5BJGGwVc2fHjXhKN8gAOrqzPkSFgulGdFVQ005pkD/4vDS5dGFvCE8f1cc48Y4eNV9UsuJgIcMVs9+QyyVFdXiAI5llBBkIoz1N93Q6GsAB1QLHJwqY94NksWil0X5ZQSPUp5EfGdkh9t8DMpEHWgLCtw6YcHSqG1P5lMZcW9JT7JiROs13PwriURGGWB9A9hsrfuLHWVevm0B066pQwLYGfzte9YU6u6bMk7vTckSsMRGCI05sT2SNX/CGPO3s28/L1kiIPN8+b0ZeGGDzmb4qQ==; 31:WAiDke96IXFPZSoRdz7NC9xCrLt5ZbBvM/eum0goDfbVwswH1RzlvVvQSrh+crDtolZuzmNBDtTBkLzaroY0KkThyVKKsdgxUxI4oxc9Lder8b5GSAjrj9XI1xRaVhVSNBIqauozZ3ElVYxT2fXL1NtkGkSqxQz2frfkY42YGZBiql4m4Iecgsv4l78uJgqK3lpAnEy7vd4rrpTg8uXtFFm9F/FWwjK31xFCAJ/5AcI= X-MS-TrafficTypeDiagnostic: BN6PR04MB0387: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0387; 20:rfudvA5wzilxViipICg0nNMF7PHDDwfQThOko66eV6IvNW2Tz6GFVc3knWl8rECiPViabCGJ9PbvvKdioEq/upt8D6rdbKrRZ8kEq1IXx+jTo7lX87STaG00feVUft5fLv2QozaYHI7rI22EQ590BobZgXPE6j052awbEkH3Xm7itlSDZrNiF9R0LbClXPFs/bCMXltzOPn1HdGrcpcmtlH5PRpcf0r9MZNSZ+i74vMhSDCdcBvUolF9HSmI1cL3ikQl8CyB0rfeEXiO7qo2nckgxYHZP07ZytJzeXQlC1rrKnwF9i+0FrIsyLrtBeb1qetWIQd9NXgJ31glrjeLTCNsSD705mkN/jTUy937Bb/ksjImna3crhfUAV06m+beZBRCnswFLFpmOHBR3ZmiUoi3ZFvEoqCgnGcYkW6ue2bN6+4WbKM4RmIi6TJjnhJrXFyp/P0AgvLXlY9qu8yB07Dg9Srz7egGmxrhB6aIJNS7YZKQfCJb0y6szeuEkj7/; 4:ImUow/YuJ5fWe3wJQKkPJBk3lUh55J9vfhthHbZbfdFFIhEwP1wd7/AoSMwB3zp0wImSYYdmL/F8YpTIOYpincWSBgZGaeT9iRFeWhEDuCEkF6BDNRnYN9G33PxaDIGbZWfNcZMuAZx+ZgG5ZQVKLgSkseC2Lsc1T8dVj7pakI/jpQYVHiI8lbUAUptoC7r+bN6U3a7/FroX1Dc+Igg/Mcl28qzFmlp5rCkEsQvwPpGwy8hWjv/U9xLRwaSSCQzHWA2CuXrKcLMhoAj8PUrWQA== 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)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:BN6PR04MB0387; BCL:0; PCL:0; RULEID:; SRVR:BN6PR04MB0387; X-Forefront-PRVS: 0722981D2A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(366004)(376002)(136003)(396003)(199004)(189003)(44832011)(50466002)(39060400002)(446003)(956004)(476003)(36756003)(6116002)(25786009)(5660300001)(53936002)(86362001)(3846002)(7736002)(486006)(50226002)(316002)(68736007)(14444005)(2616005)(6512007)(6486002)(11346002)(305945005)(4326008)(8936002)(1076002)(16526019)(26005)(106356001)(186003)(81166006)(8676002)(47776003)(81156014)(66066001)(6666003)(97736004)(2870700001)(6506007)(23676004)(52116002)(2906002)(76176011)(386003)(72206003)(478600001)(105586002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR04MB0387; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjA0TUIwMzg3OzIzOmFzWHFDT0xjVytxNDI1SmJJK3Rha2NNTEJZ?= =?utf-8?B?cWphOU1vbVI3eG9IYnJPUHlZb3c2L2pWSXoxajJUOS9VRHgya2FLbC9tVWxY?= =?utf-8?B?MjRNekw3VCs0VHRrMUxQY0Y2eTdYRzhEMnhoM2hWK1gzcWwyVklXVkZqc1hB?= =?utf-8?B?R2R3ZEZCbFhSdmZYWG1Mc0g3akxBT3U5MjNBdEM5ekp2cEpjeHlBdXBZTW1v?= =?utf-8?B?dElUeDBhVU5KVzBHcERZOUZRd3VUd1kzNzN4L1NyNWE4M1RNdWMreHNuckN5?= =?utf-8?B?OTI5YUFrTXdYRDY3WTFmd1VKbWpGR0s4a2VmYkNiVCtkTGZQazdIdHlrZGhF?= =?utf-8?B?U2d6dXhQWEVGZk9xNUhSMjNkYk5hdU40MzRmOXhDRmRqVHpVbkNZRlVlOFds?= =?utf-8?B?N2hhUEl1UldlYkF4S2RiMzQvMnprRHpNVGJUbXpKWUlOTmU5UklzdDdCTm5s?= =?utf-8?B?OUppWXpTNlJhclNUVEN6S2FWOFFycWhGTWo2bmtncVpOZ2szTEtEaHVyYXdC?= =?utf-8?B?dnorRlNSZWtXZUh6L3VBbkpQL1ZnVnBWZkVydWprSUNVRDRUenoxM2VmdFBl?= =?utf-8?B?azhQdHNjd2xsaGJ0MmhqUFRTTDVCcjZTVEYvanZmWUNBZ1lEWXg0ZThqbTVB?= =?utf-8?B?RWdCYWM3WUNIRUgzdW9UUHZpZjFkcWhqbHRZR25YRTcrcEJIVWVGeXVoYmps?= =?utf-8?B?MjExUGw5NkViWUYrQlZDempYWnIvd0hEajE4cG5xMTNEeWFsTHFPOHZ4aGJO?= =?utf-8?B?Y3d3MStnSWNjSHRtSDI1bzcxUG1uQlZabUIyd0pkVlBMcGkvc0UzbjRFa1VR?= =?utf-8?B?dUFTKzVpUW1NVmJlZWxQVHRnM1NrZkVQait6T2c4NXl4RkxmRXAzU3hHQjBK?= =?utf-8?B?eWVMU0pkQ255T2MrcjZuZUpXdFNqdWcxdWhiUmxKWk9RU3lvU1MxdUlqbC9s?= =?utf-8?B?VUVGWjh5SXc4TGlVT1NhcXIvM3UwUGNjUXdrVFBXZUZiY3hMMEl5L0xubCtY?= =?utf-8?B?WUxPaFZnLzlrNGxDTzdXMnpQTUVDRnEvY25TOWEya25NRTg3VU40YVFWM0FC?= =?utf-8?B?TTZqbWZTVEpXcGl0QTFFZlhsbVZHeFJndDZMSEkrY2VmMDhvV2xaQWZIWUtk?= =?utf-8?B?NGQwekt1eExkVGp6TVM4U2c2OTBIRmZaa1VpSjUwRjJSM2hhdHErUVo3WXJZ?= =?utf-8?B?eDFjbDRKRytVYVlaaEJVS3hyeUwvU003dHNFdWxzdGlTTEl0STJ5R0lnTDlP?= =?utf-8?B?SVVYeDQ0YWRrZzBvSUJSVDFlYTRuZzh0REx5RHJBSmFrWWhXL3RVbHJzTHZ4?= =?utf-8?B?alJkZ0R0K1cvWGszbDF0U3gzWnFUbTRPMG1RMDRReVhKcTJOaFZOSFhlL2Iv?= =?utf-8?B?SmJVNTBBNldaV0VrMU51a2ozOGllTXRuQTBDUEVsMzlFYUcrTi9qOHBKS3pk?= =?utf-8?B?ZlBSVTJQY20zOGlabSs1NzBJemxvT0Q0QzFtOEwzb1FjMXpkSzQ1c1ZVZDIx?= =?utf-8?B?YVJtOGljUFphaC9iWDlKQXpPaWZYZ2ZOdFkwL3VmRHFOL1kwemZ6UFVQZzNt?= =?utf-8?B?Q2ZOQzR2a3E5VVRXRHVOeWVSMCttVHdVK0k2R25rL2RKNEVSNzRwTDhPSkdD?= =?utf-8?B?VUZJRVE4SXhWcS96dy9rS2YxV1crV256UGpQbllkS1BQWkYxZDNRWXl3dDZU?= =?utf-8?Q?CZuInkhRCZw58TfMCk=3D?= X-Microsoft-Antispam-Message-Info: L3FYZP4O5xQCkj1hRoOyjkWdwVI8NsCAFVTDDn5a6r2+79Qtws+k8+uaWodbErvS86Jh3yvIM8g/QJDVjucK/pCrbAgk7ThJ+Wc9CZm9/f5WQi9v/0/EM7MG/Mj10HTLxf85qEiWaR+Qv+K7ruWRvQjjCCsc2WvvVrb2bZdPKDZmXH9Qx4V81K2oU78xVpaQ8EMXAOU5sRvkjaIQlcUGq4mXOm45fwYmcUHeqEVd/RwjSG48D+9VghozK05ZCFhAKau4Yr6Op1vqYG8dUAybqkKZshW12B5l+HIoF8NiVESpsBE4bkvff4j0x1Q5DKrPTSL95uPToBGSTG8LSsHA8hrVkCo5C5dT+iWJAR8OklQ= X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0387; 6:+4cviOQKnLZhggThWXoqYvoAZmvnxUNrk4coZYu4ffevuhSMmjFW7SHC5DJ0rH5TGuW7U1Sry/7Ks1VBiDZbeW3KXenEk2b2ae9SvVuhwhFccPmNTMktg08e6JFlOCg7nnWmOiEobm486rOtacxfg+xWd2tMD8OJq5drVaUa+Jd7tvTD5OKuHDTeT5Cuu9yRurp4oYBc/073I6ooja0RyDDFOcWh/40XjIqonB/sXCeUfK5y7M4T3Bc2a88BlLu12KxSCvNzR1juzTbqWkU4o65feZ3huOj25EqASvaHk8ijKUrjFGRifQm/MoRq0aWK7zlft1YxR2ur6gYc11yZflO2I/rulScQFYNd7H3Zjk/gg7zG0pG0Y/rPSuF9stLcG4gHwwrWsWU+rNDmpR5GGzo9Q16QX+Upi9sOGL0ZjXBqaDXuFZ0zXuCtD6qudTta9rx3TAZQUfqrv/bUbOdC8Q==; 5:C/t/nQYaafTEhhPRTc3XquB/3cHC/PooslddgemvnlkjvhDYgnMbLMibd6eorN/J0tlmYQWMPILY+/ODL3GMYdwu6N6HAikW1AO+dC+ain/CnI0nT7RucF5nix/smYX62hGhvFxaihVSwyDrrGScg4hH0lUqmrrVt6rsRTiGUss=; 24:m7vQX4OiwlApM3EAoxnMGJ9wEum742BtFIy2SVjL/A8zc5h60NyWZ75wrVTbP+0+6AkBfBk6gwoU7d3qA3Uj/fX0Rlx/K+KaZtbNTLlUmhI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0387; 7:ugVSVEVpAYYeuTLdl020Md2eh9nuR297eTrMot6xjbS1qo6rS9j2bvyHbdknYIipRYUfAddjBFQbaq3l2YtHwsTxQKNaUSjpOwHFbPFmXBtV5sG+hkE+IgRYM/UKGdnmK2ahG7Mff8hNTehbSVCcDW/0bwSLvr4SM2GGz0FOre9h1lHvecbHjjONBrShmQaCl/92VpKu2QzLi/bLFYjyqMA/tvoZNeFyxOd+NtNe4MtNcaBM1P9i8s7WxNgEagNX; 20:F1z0z/LAsLgcQ4kZP1TgFf1C315LnjUxHvws5Y2KzkPVplwrauze7mn23GwuXtKWO8PS2aALg0ss9O28zo1eOB0MP4ZehsHm+4iSforTFmQ661Yv53P8xgCsPYChMwemz/Edq5TOHFkk0Dt4GFIK51FjLeYvdqWfKXMbH2wcwvE= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2018 16:35:02.4403 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 062eb85c-8139-44ad-b5a9-08d5e102ed6a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB0387 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.45 Subject: [Qemu-devel] [PULL 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, Alistair Francis , f4bug@amsat.org 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 34d48993a2..aeada2498d 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -380,11 +380,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.1