From patchwork Wed Jun 27 17:44:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10492319 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0577360375 for ; Wed, 27 Jun 2018 17:47:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2037F29954 for ; Wed, 27 Jun 2018 17:47:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 114D629960; Wed, 27 Jun 2018 17:47:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4CC3029954 for ; Wed, 27 Jun 2018 17:47:07 +0000 (UTC) Received: from localhost ([::1]:60688 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYEX4-0005H4-Gw for patchwork-qemu-devel@patchwork.kernel.org; Wed, 27 Jun 2018 13:47:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49340) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYEVP-00046R-1m for qemu-devel@nongnu.org; Wed, 27 Jun 2018 13:45:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYEVL-0000iv-R9 for qemu-devel@nongnu.org; Wed, 27 Jun 2018 13:45:23 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:22602) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1fYEVL-0000fX-0u for qemu-devel@nongnu.org; Wed, 27 Jun 2018 13:45:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1530121520; x=1561657520; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8gEMhHVLsIjyP0oUHEoQEjmB+hcyyBtXjII8vdb1Ltg=; b=WNt1vrdOkF1HRkndtxXuZ/eGfg0auAwnG6dWZj6PMIvMbA1kPkneL/YY wL9GEY5zbYisYx3WL0OCiiQJqDNq94vCW58QDxt2ft7cl+xJ2IT9AoLEx tRydqHetkd5GXn23zmYWSb33U3y/wyAwgBoFmsgBv94U42NLfwHvMGTeA yQKKTvYGcxafTNTbJK0At40BRXr1/Uq19hHOYoga0/9xhT4DEdCJG93pX l3RHV/Oe1y6hgJ+BH6mHYxqiwMTJaMCnb9pqKJlcZWtrPczVeV5UsKQex 3PLZc/SYRn72gAvdq449uUQLRDPEDkJmw8fX7qCfTywpGhGFP6tJ9QD4z g==; X-IronPort-AV: E=Sophos;i="5.51,279,1526313600"; d="scan'208";a="84764274" Received: from mail-co1nam03lp0022.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) ([216.32.181.22]) by ob1.hgst.iphmx.com with ESMTP; 28 Jun 2018 01:45:18 +0800 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=qpe8ck9xUXL2arfH/FEMhjmzmIXfBZAt74s7lxGSEAY=; b=WQXHENyEz7vj1pcQZ6R9v4GumEYHIeS+cjUxvFLb36RiJJSAWfA2S/8VvsxzrUvPE+Zb/Us1DKmS/FDRtvvLKnr/8+2q7LWszbHYsQO47BfBkyHgPfMjLH1BPYwIe+77kP1hoHB5qfVRQLM3XmdlCP8Et6tui3V7WzeWrw0B8F4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; Received: from risc6-mainframe.int.fusionio.com (199.255.44.171) by DM5PR04MB0396.namprd04.prod.outlook.com (2603:10b6:3:9d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.23; Wed, 27 Jun 2018 17:45:13 +0000 From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org, mjc@sifive.com Date: Wed, 27 Jun 2018 10:44:31 -0700 Message-Id: <20180627174435.31800-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180627174435.31800-1-alistair.francis@wdc.com> References: <20180627174435.31800-1-alistair.francis@wdc.com> MIME-Version: 1.0 X-Originating-IP: [199.255.44.171] X-ClientProxiedBy: SG2PR06CA0125.apcprd06.prod.outlook.com (2603:1096:1:1d::27) To DM5PR04MB0396.namprd04.prod.outlook.com (2603:10b6:3:9d::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f74f3f20-ddcb-4f4a-e102-08d5dc55be10 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(48565401081)(2017052603328)(7153060)(7193020); SRVR:DM5PR04MB0396; X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0396; 3:eZFO257ubPaU/XL7EfIF00cpkooitfLSJdBoi2bcWUkjq2Ti4OK2pdtx/ztDIHYFuFxemMHeGDwBos7u4sYNvzqmZBrzNW+pnoRe5ED1D+RLvMK5/t+bwl2DCj0JCb+Rojrsx3C4hYeAEmibkoXQiny1PP3ZHkegu1y/l88rk9kaGojTkZh0Cgjk3w2LzeXHeeLDdh4LOs6RzXITSu/hArH7e8qb7ejORjqA4T5yN7u7nfo+UMnQ8KyK6vleGL4R; 25:PX7nBXuAj5MxlkJCAgnoyGjvtzwHdnUPaKJil13qMUPxeHW5s3H/6XUPcW1QXbeWT2ErIxjGTyh5IvPExORAtRQsTd2M6QrMJlfBxyb7NyQev7xEL7K4/aCvIBjLodnYYPcn6D5hXuHRz9Brt9xza1lD1eJlM11n1jiX+/J/j4mk4nt7311oopctT7ycsV48wg4H4V0qTAUGuiOLZuxz2mLQnf+eLpaljc/oVMEBV4TZHw0sI99DE3W999eck4chrbL7/EtHRvFkBzW2rhpE2KTV4xLJW1znpVjsTUHRHELyTvOVdzyDcNVQn0fhtQHkpZWF6rhKfIbU3Q8oQBCwsg==; 31:xHuMu24kd9ZZCgxIZ9HzRr5vEQpcdnZVo3c07NhZ4Eu/Vc1ZCRi2RBh3HFAgSWl6UoLRLAsM3Y1fsTv9/VL+Uch/0LYDf/fp/21NjXz2WpZantJa0HqCsOPQ7ha72O+dSLJPMjl9tikjN8yGF0zOY9vIBb05m7KIiBOpNhMcSzElRwkD2e651kK1wybQV8VpIerz2KK5XKLFV7t0+1as1hNQlOE8mmKYEYG4i+9BAek= X-MS-TrafficTypeDiagnostic: DM5PR04MB0396: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0396; 20:18Dd9UFQj12wHJTk/oCRxbY9w+DoI8+an3rMOorOqF0aD+e73zNh6oYcmTJkblktqm5F7PWJYV4oTqNHx93obY9anM22wpL6VPrCsAHwpfiBNAY6e0BLN9IBxD7xC+fptLMjOwdlTmWhdSCuhgBZW8KNjrhLN/+zMaOsUzHn6SyPPsACxc+h0NdMiJvV0HFCeYhKyTEj6GeBZIGIU3LQRK1HLjF8rdKjY0f15TFRPPPerTQNygtjEml1nj0seaosUKWFcRbym1WeS8q9ZQc96Uf7uV1EYrknyKfN8Zt1wJLe5YiTbsSJtv6MbIMBnlrA74HLVSbLmtO08/Rh5/2IDqXuwlcu6+1gBKPcahvKifQjVumgvdTnC2fAQQ+oCoHv7erL5BrPkIOYaHf9CzQZmNvRscei5Ko0Qg/NssoWOeUBCAG7IqQ6khfSk2HV+4QHaE3IkF5TD2gXWrRkFWcCF3IpJbwFmTkqx5LxblzgGt/yzfko/9WX23LBrEbYkEIB; 4:XLlZYxQ6hZMVFM5hX+3/7e1CZcUAAVJFaSpmDcq0wr3bVTLbaXiw0XfKp3p3fW289iqwMoZHye2sbQJt2ppApRkHb3RRvB7gJWPqeLufEp/CBGQZiaMxUP6XsJYoCMxnFiRrpW13n5IfVFkZ7RjfhKVhNmGLSV4+3y1fPLxSEGZR9xiSVk2r/I52E9InFRlnfFYv63ik16THbTKxnIulxOSjsakQZI5qZj+I0A8P24TrNHrnmMTDgKxbTZ92Wm01fDCL1Fb25D7onAxqFtisfg== 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)(10201501046)(3002001)(3231254)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:DM5PR04MB0396; BCL:0; PCL:0; RULEID:; SRVR:DM5PR04MB0396; X-Forefront-PRVS: 0716E70AB6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(39860400002)(136003)(366004)(346002)(376002)(396003)(199004)(189003)(14444005)(6116002)(5660300001)(575784001)(2870700001)(105586002)(44832011)(316002)(86362001)(50466002)(446003)(476003)(11346002)(2616005)(486006)(956004)(1076002)(478600001)(6666003)(53936002)(305945005)(7736002)(106356001)(2906002)(8676002)(76176011)(36756003)(8936002)(52116002)(6506007)(386003)(6512007)(3846002)(72206003)(68736007)(66066001)(97736004)(26005)(81166006)(25786009)(81156014)(186003)(4326008)(50226002)(39060400002)(16526019)(47776003)(6486002)(23676004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR04MB0396; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjA0TUIwMzk2OzIzOmVxZS83OWRmMFV2NUxIUm1BeHJMeHJJREdy?= =?utf-8?B?NHk4Q0pxRWlTOVlEQ1JBeTlLN3E2T1hkUVp6OUxrM1A3bzUrTUFBL3ltRDZj?= =?utf-8?B?WUdIMHpTTCtKc0FBMW5mcVN5Y0VtZGo5cllSUXMyQk9uZGxLOFI4SjArZnpz?= =?utf-8?B?aEhCVkdwN1poSEU2UkZZTEtWWGF1RTRyc1B6eVZwazBuWUdWZVpyNWY2V2Rl?= =?utf-8?B?bVZWVS9hdmgrZFZMODJoY1luSlk2ZFBJUHZEejBZZjdYaDZMVnl6dEhpVWtw?= =?utf-8?B?Vk9sc2c1WHlFbk0xU3JXdmtCOHBTeXllVktEaFFiQUxFZ1h1bjFiMlpyOTJ5?= =?utf-8?B?aGxIWE9QdGlUeWpLSnpSNzExbGxjZll3UGFabmJjNFZueEtuUStMbkhpQ2pX?= =?utf-8?B?eEtNTUVKb1NvVmh0SGVZTXJjLzNxT0cxc3llakROT1lGU0dZemZvWXZoalEr?= =?utf-8?B?cHozcDJQaTJlcUtmdjJhYm41NS9RTHZMWU9kczU0V3J1MWlvZmxmWDBINzJm?= =?utf-8?B?WFBQWHJwQm9UN3V3cUpnVkM0cVVzdVB0bytGTTQzRS9veDZ3VHhBZ2tlOVU4?= =?utf-8?B?cmZpZGNUN0dSOFVpUUp2b0Y5VWJZZzhRRURzS1crVUMyVlJqMEt0Yks1K3Qw?= =?utf-8?B?OWV4QS9PbDdLbkwra0doME1URHMySmFvcjFQYWZ5dHlVTmVCc2pWTWxONG9V?= =?utf-8?B?Vk5DcDE0SStIY3N1TDNzNjNaS21QMm5yMk83TXkyb2VDV0txbTAxRldFNTlY?= =?utf-8?B?ZXVrQWhlaG5SeWU2M1pXYmFKdm45RGRvbFJ4a0ZVV3RPVEhrUGZNQjJBYjlk?= =?utf-8?B?TXNidkx1cnRCWGdURmg3emlZcENPd2NIN3gvSFg1MGVnNTNkK2dhNmVVckVP?= =?utf-8?B?U2I0MlQraXZrZDFzWkZ5WTlEdlllMkJqOEs0cVJ3S3gvOVBhd0M1RmxMWDBz?= =?utf-8?B?UjJIS2k1dWZYcWRuRlN3VFh4RGUrUWV2Wk5YcGhwVjM0eFlya0xlc0crclNP?= =?utf-8?B?ZDZZV3VwMDdMaklBMmV0NUNEK1p6N203cmNTZytoOHZnRHpsRkVYZ3Uyb1Fv?= =?utf-8?B?bHlkNmtQOHllRmtmVlpDa2VVNHhkQ0VoQ3BlMUUzRVpSeTREMmdrWXIxdFYx?= =?utf-8?B?eDBtZUoyWmZySlhDZjdLSGNwSGF6YVBneXpnVC9Ca1JkbVdPOEkvdnVnRmlC?= =?utf-8?B?c2JUbkdMdXVrYWlTaG9xK2dkSVJSREt6Ulp2dzNlLzgwVEU1Nmd1U3hPM2x2?= =?utf-8?B?bkNxdjl0ck9tNmxmYkgxQUNscG1hWnpVdlRVc0Y1cnFIWDQrQTBiOWRTZ1BZ?= =?utf-8?B?azM4WCtobHI3bGM5NmVNQVAzZlZZSUdzc25rS1Vya0owMVlLR0I1cHR1Rldz?= =?utf-8?B?OHk3NzlhS0V1T0YxY2l6ajN0Rnc5ZWd3K1JjRWVhNzZZdkthQy9vdzI2UEJT?= =?utf-8?B?WWJkQXVKTnhyMlYyUnUvR25uMEdMOFJncnhCVytNejdTWW0zOXM5VnJ6alRr?= =?utf-8?B?MzgvLzhKaE4vNS9LelZab3dWbEdzQWJFT0xxZWJTQjZkZGlxaHRhK3RvRGM1?= =?utf-8?B?UHA2dFJsbjh6MXd3MzZwNGtxaVh2Y3ZXSmZmd3V5dkhRUE5EYWN6SGgxaUJ1?= =?utf-8?B?cERhL3pLb0xYZE1hQ25ycjZhNnkyUzZXWUxtZktaQWRyTmtVc25ubk1aSEp3?= =?utf-8?B?NVR4K3BrS3VYZERVeWcxREh1SzQrS2dhRWdlNERjaDFDdU84SkFjeW9uQk40?= =?utf-8?B?ai9lYWpoSDl0SjA0VURYTmdRckVKWTArWjJSMlVERmdHd0xZb3RndXBGTXA5?= =?utf-8?B?dGRtTW8xMTN2WEdQQklmYUl0NW5NZ0hTSFhvMEcxcTBxK1E9PQ==?= X-Microsoft-Antispam-Message-Info: TGy6pBnbxXf0imoaGtfUgBDnxMRBdsBJZbYZbEcRrL4JclGM/3eNifjZIbz5vPp3hHs9Y7MU+dChD6Cfa37CzZzcM9Qc/mNjwqeQRDj93sCoIAfKY+Catj7/OzTQjebWhlFp3eqo/ECCtVIihkLQI1T9CSV2JIEvkgzsOtJo3xi4CYj0n9Y9/AU7dzMZeGL8KTFm0aKF4pVnJGRKqyTiVB8tBNTP0nbMs2G2GVoh/6bHT4x/Np1mj7ZEFqicV1H9PQ6I5SQ6Lv0EEUGTCgVUnJ1VFCqHdA/Yepcec3QnYpdPtIiwqdyJTdczs7EjuMfBE/F03BUEReFYi7C6aNXTlsLmK5YH6D80SSfaUSEkpGQ= X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0396; 6:gGP1oN8J6B2GdH6EfVWL/+m+FrAEGMmFRmQqRe1+RGE78F9K9VbTWm+Lo0rES3ah2WsMAr5tb6k2nmH1wx+aM6AsoJTg2U0wpHq/hesXKeTPtlgiNmpE4vsn6KBOvy1sb/2VyFm9Gnqc3lJmTYiGBb1ttz0QqZRh/WVK4zRDsr5x7RbFz2DXohnbIRmS0x8ooJf68wzqWG69omFrkPjTegB87UXdRxTzqyYk0GsdoqBztJth1kaSY7uJ7BJ0FeKSkuSQDaNriWxohxx+AUbbrqDQMY+vqUMXkGQVm7QRFGrcsKjx+6nI1NPe3mgW8m5uxJAxG4XP/hUIh9s/Fv5Z2xVC21V6ymzxq63dGUbwktIKBD/m3Kv4nTVVq5n61IfQ9AlhipKHjBF76sC4l/uxFsMyIAU5CMDXzdBrIneMdEHaCIfi2KvhSwvDW1VH8ldtktZAx8IvS1VTVkYS2Gvp2Q==; 5:P4aS+Ig08HervbzsyjEGz3h+zFaU+kLqfRpX3E0KRhx/JFASsI2RPPC1Jx1xZ7FARkesGKGQOI5kP7YmLMMFm1m5518ZInsfwMk1ffQw3o6XLUqvlPAw6Q7RPG/yazvMXRMrZ4trCKao0+6m9o9f0E0g3ew/xcnVKoAGjUP/1nc=; 24:7jlZKEJ3ffRJafMgaPLOGwxoqgk5rcOKRC8PeOJp1q2B2Y9K9qWdzpwhlrRohj/+IFDgPJdJu/Zv6XXdWnV81lBS9ISK5NxYEtXsLQqOwz8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0396; 7:lEfisVpm+BDP5QOFYfKN/9FRpCGkd8+Y5HfNBFghAwBHJrUJXJdWEsSkl6ZcyxkQYY7+Fxzsis8xqcaOCUvczw7bnMXSWx6xGkx+eTqzfMh5a2shVqhGwvtMq/SvSKS+/6lQOOvE0ukMDde7eHb7ttVLw4pwTL+thrkm99nEEa2cSLkFvn5fo5DJhlEfJOwULXk1QE6LI7x1Okl6DgP+QTyufFw8gzOBlwn1XcEkvOzbBmnTNfAkrSWMVNrCHxWp; 20:yz14pmmfv65fijvkNkV64raRi5Mjlv7fJoi5PX2A0xXAYu2Gmkt9WZdzj82dfrZlXjcwVqY1meK7G1CAPZn1LwIqlhZ4v5YDzsqmcx9h9zIW6GazNTNVpkkIxiSmh6fUvYz26mSOPZrfMeZQNjVC+gPeP4AYw38qAoPWszzSruU= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 17:45:13.0182 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f74f3f20-ddcb-4f4a-e102-08d5dc55be10 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR04MB0396 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.153.141 Subject: [Qemu-devel] [PULL 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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é Reviewed-by: Philippe Mathieu-Daudé 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 *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 irq, int level) static void sifive_plic_realize(DeviceState *dev, Error **errp) { SiFivePLICState *plic = SIFIVE_PLIC(dev); - int i; 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, Error **errp) plic->claimed = g_new0(uint32_t, plic->bitfield_words); plic->enable = g_new0(uint32_t, plic->bitfield_words * plic->num_addrs); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &plic->mmio); - plic->irqs = g_new0(qemu_irq, plic->num_sources + 1); - for (i = 0; i <= plic->num_sources; i++) { - plic->irqs[i] = qemu_allocate_irq(sifive_plic_irq_request, plic, i); - } + qdev_init_gpio_in(dev, sifive_plic_irq_request, plic->num_sources); } 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 *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 *machine) for (i = 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)); } 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); } 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; /* config */ char *hart_config;