From patchwork Thu Oct 11 20:31:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637391 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 78CE5157A for ; Thu, 11 Oct 2018 20:33:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6752327CEA for ; Thu, 11 Oct 2018 20:33:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B30E2C05E; Thu, 11 Oct 2018 20:33:35 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 EAE0627CEA for ; Thu, 11 Oct 2018 20:33:34 +0000 (UTC) Received: from localhost ([::1]:36987 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAheI-0007pQ-3P for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:33:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhcd-0006cf-4G for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcY-0006U9-4i for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:51 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:7100) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcX-0006TI-Lf for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:46 -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=1539289906; x=1570825906; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=s7fAOvqvJRALxt+HiNB2WYZm6og0X7Mv/wxbTOlVJww=; b=HE5Xgc2m/OH6iJNqyHFiIShOb4bu8xaJNR12fc+to7Zecjzv7rehS98J dLXUU5/YXtL5/r1Vav8JMwIhpIZKtxkfpGOAA6SzUX0TZMTxslNbDYOfw 09d1Urw1vPJd0kYY1x7Hoypodhrz5TGQa0n+gSnDL47dhN3fFNCErdXW/ XKjYpzkXolwKq+tdKqovTeoqhIUD1NyBz1/GN7uDKqKu5T8YOX6CTOAJF kCMDhnnXHDWhvf+6oOrfC1x5+Z0lFcZ4U2yxnJ0K1RMcSpVBcil4YoHwL /RLhPbwV+ve6p6cO/flfG/eHdnUUIdGMR02jWC9A70IGiQa4YMjXfyxLJ A==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="96368067" Received: from mail-by2nam03lp0048.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) ([216.32.180.48]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:44 +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=XKIlOOotXlT03n+KVesT385SDPRZOtGAgI1D+6risiE=; b=LoXotKbj0FLmQ6NZVNyR3Y50N12pOPbtxvFMyevd1pxJbhCFzjHF7pq+kkR/k/pkVZzkv4h7T4n4OtvTdiNl1XJuwmE6K/VfG59yTNmRZ44Bs3xDMG3TIwhd+5/Sk1pR5Yi88Nrh0jA5xZ8cYC7TGpy+4V2StDW/8TVrZwgNItI= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB0647.namprd04.prod.outlook.com (10.172.136.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.24; Thu, 11 Oct 2018 20:31:41 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:41 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 01/10] hw/riscv/virt: Increase the number of interrupts Thread-Index: AQHUYaFqsOLsKk6cIkq6Zam27Oj4Lw== Date: Thu, 11 Oct 2018 20:31:41 +0000 Message-ID: <20181011203115.18666-2-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB0647; 6:OQiIUbADO8CuznPvfq9vDHAVomIZamhQ5u7kOMJj53JlngNh9QjUIdM6VUzLESGXw0/qHWpmRb/5+kAz+akcGVWuF1t15NB7T0OtlJ5vp9+WKuHHQZRbwf6/m9ni7zL4p/i7cjSpvu4gMkUI3QE7bTlgBsx6Y33O02EXHWjC4X6tTzv5hjkAiYegCtY3PSKyX+Wrkaq1F+fOFIWVnqYmYlpQWrevVkEKrWSjY6jc3CytywLGlSt7QohF6NUe4PWveYQhBJfv0vxa5yswW5E5SdL2vaNk2vcnvjCP+Df4owRTiwMvioHCHUNKaRNlq4vdYJEOoHM8oB6GHt8wygp2CZyUneyUW1puBoq2E1GNEs4fqWrytI2Op/8iU9ojv+O+XorIChyPSb/7rcJ7dEH+lrmLO6IBl6peBkry1CQnvzhRpDxSNEJExBaEcE1IYQ7QBjFVfuWqKXl5JrW7uezTKw==; 5:mARxqQwW9qDMtGt0LyUt0K5trmXb3obUGkhosv/uwar66ZBckvQhxRUhjGttvTgtFVC+42XTD1ZtcTuuDOUp8/kOvYjH9Zc8LqfZKC9VwHaN88tNxuoNm8t0leCZls/xBGAL240P4IihxrLxlP0ii4D6yMStA7O9bbO8VzgFQyo=; 7:tXUe6el8Xqq0lcV5MDr/UJ89dXzlzWXFHDTO4h7VIdNXf41WHrjwi5dkyHLirfgRhRqY1sm3GGJCuw/D2CNsFrkoUC5lyJbKwtRW+hcZl1fBDWCIp2+KBh+2puXoL1YGVo/acCiuZ18Y8/MhkTsLBGSXoeDQBgojrVbPHFaQ4kpPOiMphJT2OHfaD8rOVWZbW+9Am8Zn0j5ZywFsOWukusMCekum+B1VC/bXXkJIg8D0lqC4/8uNij2ECkzJwaeO x-ms-office365-filtering-correlation-id: 171df358-975c-4eea-f463-08d62fb88cf2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB0647; x-ms-traffictypediagnostic: CY4PR04MB0647: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231355)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(149066)(150057)(6041310)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699051)(76991062); SRVR:CY4PR04MB0647; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB0647; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(346002)(376002)(396003)(366004)(136003)(199004)(189003)(6436002)(2906002)(14444005)(2501003)(2900100001)(25786009)(5660300001)(53936002)(5250100002)(6512007)(5640700003)(6506007)(14454004)(2351001)(105586002)(72206003)(316002)(4326008)(386003)(106356001)(7736002)(305945005)(256004)(1076002)(8936002)(8676002)(81166006)(81156014)(54906003)(6116002)(68736007)(50226002)(44832011)(36756003)(76176011)(52116002)(478600001)(26005)(3846002)(99286004)(102836004)(446003)(11346002)(2616005)(476003)(97736004)(486006)(186003)(86362001)(6916009)(6486002)(66066001)(71200400001)(71190400001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB0647; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: 89sp+zyWhEb83Y8Rm8etkqpmftgZJZHkT37fFFelVbSn6lUfu6iDtrQyNKICcMRbkVm40m8z/KfsiOOlNvQfpxffzxAP35l6edSTLnf/fPhIZthnga6uQewBX8o4LJZAf0zXj6ooQdXgGMvIxmeQGFZlMc6XhO0oRhqAMG1SZykp34/vF8lOTTARTrr/V2Jn92EWNxOKX1yEjjkH1/olw+fmkigcgzBPB1/27Sht2FQKKTM87uy/V6Bc+eVGwKZvgKqnfm56ntcpBmc4B1fCDV1RiXF8TZQkR9IpKt6CeffQMJPrKM/MOox4/bHMzLTInXl1M97iTUGlNXXQ7gsglTF66BqJAx8csy3WRvcG8Lg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 171df358-975c-4eea-f463-08d62fb88cf2 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:41.1059 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB0647 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 01/10] hw/riscv/virt: Increase the number of interrupts 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: Alistair Francis , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Increase the number of interrupts to match the HiFive Unleashed board. Signed-off-by: Alistair Francis --- include/hw/riscv/virt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index 91163d6cbf..7cb2742070 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -45,7 +45,7 @@ enum { UART0_IRQ = 10, VIRTIO_IRQ = 1, /* 1 to 8 */ VIRTIO_COUNT = 8, - VIRTIO_NDEV = 10 + VIRTIO_NDEV = 0x35 }; enum { From patchwork Thu Oct 11 20:31:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637399 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3A160157A for ; Thu, 11 Oct 2018 20:36:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 281EC2C0BE for ; Thu, 11 Oct 2018 20:36:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1B8B32C12B; Thu, 11 Oct 2018 20:36:37 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 7F0D32C0BE for ; Thu, 11 Oct 2018 20:36:36 +0000 (UTC) Received: from localhost ([::1]:37005 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhhD-0001cs-NX for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:36:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39635) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhcg-0006dw-I9 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcb-0006XR-I9 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:54 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29171) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcb-0006Un-9L for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:49 -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=1539289909; x=1570825909; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=rmyP7lC/3WWN17yldvR9N3TXffRoD+BWhqhhJHHx924=; b=ctgqEMrFUUVzv79DnNNrYAYA7vH2+m9XUPp/t+bqfDBLxVpNc5g9Me4D wdEJMSSNZdxSVPt0HjEp7Q4SNtCF4EEnZVDcryNXj7HxIIkEpmPmpQA17 ICXkTwLHyDCnO9gv5hyoPSuQktwtKYzs9dSJkaiv/FWHKe/1XoJLH/CoF vcxU2hWXiTWo05wPuk9P1eemu31gL+cQnjLr5eQw3wrlj3GU32xWXVygj 18EblnROLRLwTyUZ2Akhwbb+t+lc0JdubgIr1eGuB/wpdzOxx16j4aHeC n2VFCT/cKU6JKaDzsti8watERMXGoRpDrbuof1T6LLaDA+PsJ07KMdTFh w==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781670" Received: from mail-bl2nam02lp0081.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.81]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:47 +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=Rwxme/cgtNzRgFkqS6szo2qPGZz1Khr09O0xEjf27Tk=; b=CdxCu5bbPUH/SQ8z678YnDw0RnLSz9hiymsoISfl9ivzg9YPLil5l+IDyKNbweauydveT13GqRQMlndZpfHKm6+0TI+arz5IWaV8m1oYcy0Sf+YHboI+cj6iO5wRRK4k5Atqtz+7QL1atHo2PUiY5OyRPJAaia+H+ZUeVyNFze8= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:31:44 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:44 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 02/10] hw/riscv/virt: Connect the gpex PCIe Thread-Index: AQHUYaFsS0KgJgQ3gUS6GYyGmqKj7A== Date: Thu, 11 Oct 2018 20:31:43 +0000 Message-ID: <20181011203115.18666-3-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:I0LVz/XOoEkf0Lk6lmiGnFL/diGFJMHTWepVpaKfTEGtaCUWaFnZi6F8y8qE7ZvDcpQxL5XOuHinEdUMJSofve172Pozvt+m3DhojjUgcMeo/jGtR67UCPizaM+oO7VdI/kUg6V2O9u8cxpoqgdTdxDycVwvqqRPhGR5sjQ+UfaagyiTLbjzPSH3tCe2+QXvMzZ+LI51Js2DRGB+K2OiTWGExkVfy8RecdP6hfExEZgocSpEhI6hVVEGKGNOdUd1i5JDslg+xdmDG17j143u7rqoVWc9Fu8lboWy+B0BAwhySics6jsQn4USSUv1doXuTERcLVT5znMImN6nNWoqQ2x2kj/SZgI3oJSuyF6SqrEvO1n9q321VyVs79dhYrlJbQdhIzaGe7pliG6CdL3YNrL6RorRQN486Luo0nGAgtn44aArBMEDz9aRq3MQNYG0JuwZ2BaHB0+V7mV7H0BFCQ==; 5:/eeMwZ4z8vNjDZEG4okLhg2WwFWAR0uMb1JdRdb8OjspSkDIKcMMj2RYr1TMng51IX3jU3/8FqNX2vXhodZ+9p8VcvNGs4PGJQuNkLC5QEBAj/bPPkrEu5XAv4rigLfF2JWvknDX4RvJW7N0QKkXzKtHI/3/BC2MQ32/DmXw6tA=; 7:OdizJyVM9Nqf4LHqZF8+3MVMKRYqgOzCKr23haqgGpTMsOupBfeeaQjK7RIAKnNxMbv44P+oaCeddQVwGXCOl4jK7BgHuhcEwHU8hIlknsGvbqAMKEyTUC9t2gkGZ1o2vKbgmcpfHPtwpJAc2bv/cAGMXE1N+bfCpZ2tAendvLHW7AYuK7ZEfoTqDzaMQ9E+xkfjWGFDgpsvCPdEBwBa2u+uQlAZojGJGpG4bqYrnAs2M1HeN2iJaLBDB/3ekvuH x-ms-office365-filtering-correlation-id: ca147c75-3033-463e-2ba7-08d62fb88eb3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(21532816269658); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(6506007)(86362001)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: c1arToNNiYbsPT3P/UZoZQFF5kXDmA/w8u7inrXyOrFTfuUzjvOBGlqgZ3zWvJy4gd+Sm+Zg1eGbMapArMwp8ymc/uTXC0cF6CU5TOHEeRKMo5DSjRPM7sZe28iyrJaG5fIFLB9IAj5Yz3tG+vocBM8ry/mFzP3uFcNHqQwg/2Bpmrbe8/+50j4bPIM4C0JXxfAeQwQfQt+6G4BgSTMlSh9W7NWl0+ZCxuX2XxjoOj3+jNT9+jBXH80QoLYeMsW35RkVwLNfzJgYKHgQYjiVGatWf3yau3uCTRKVX4ktpK1gNQWG/yndPSDpqneG1zUXX0ZbJpkgK4/zRLC9bDjojH3Sp3Ku/O+lnagng7HvWWc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca147c75-3033-463e-2ba7-08d62fb88eb3 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:43.9372 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 02/10] hw/riscv/virt: Connect the gpex PCIe 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: Alistair Francis , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Connect the gpex PCIe device based on the device tree included in the HiFive Unleashed ROM. Signed-off-by: Alistair Francis --- default-configs/riscv32-softmmu.mak | 6 ++- default-configs/riscv64-softmmu.mak | 6 ++- hw/riscv/virt.c | 58 +++++++++++++++++++++++++++++ include/hw/riscv/virt.h | 4 +- 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak index 7937c69e22..3e3d195f37 100644 --- a/default-configs/riscv32-softmmu.mak +++ b/default-configs/riscv32-softmmu.mak @@ -1,7 +1,11 @@ # Default configuration for riscv-softmmu +include pci.mak + CONFIG_SERIAL=y CONFIG_VIRTIO_MMIO=y -include virtio.mak CONFIG_CADENCE=y + +CONFIG_PCI_GENERIC=y +CONFIG_PCI_XILINX=y diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak index 7937c69e22..3e3d195f37 100644 --- a/default-configs/riscv64-softmmu.mak +++ b/default-configs/riscv64-softmmu.mak @@ -1,7 +1,11 @@ # Default configuration for riscv-softmmu +include pci.mak + CONFIG_SERIAL=y CONFIG_VIRTIO_MMIO=y -include virtio.mak CONFIG_CADENCE=y + +CONFIG_PCI_GENERIC=y +CONFIG_PCI_XILINX=y diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 005169eabc..9bd2c10581 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -39,6 +39,8 @@ #include "sysemu/arch_init.h" #include "sysemu/device_tree.h" #include "exec/address-spaces.h" +#include "hw/pci/pci.h" +#include "hw/pci-host/gpex.h" #include "elf.h" #include @@ -55,6 +57,7 @@ static const struct MemmapEntry { [VIRT_UART0] = { 0x10000000, 0x100 }, [VIRT_VIRTIO] = { 0x10001000, 0x1000 }, [VIRT_DRAM] = { 0x80000000, 0x0 }, + [VIRT_PCIE] = { 0x2000000000, 0x4000000 }, }; static uint64_t load_kernel(const char *kernel_filename) @@ -233,6 +236,32 @@ static void *create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap, g_free(nodename); } + nodename = g_strdup_printf("/pci@%lx", + (long) memmap[VIRT_PCIE].base); + qemu_fdt_add_subnode(fdt, nodename); + qemu_fdt_setprop_cells(fdt, nodename, "#address-cells", 0x3); + qemu_fdt_setprop_cells(fdt, nodename, "#interrupt-cells", 0x1); + qemu_fdt_setprop_cells(fdt, nodename, "#size-cells", 0x2); + qemu_fdt_setprop_string(fdt, nodename, "compatible", + "pci-host-ecam-generic"); + qemu_fdt_setprop_string(fdt, nodename, "device_type", "pci"); + qemu_fdt_setprop_cells(fdt, nodename, "reg", 0x20, 0x0, 0x0, + memmap[VIRT_PCIE].size); + qemu_fdt_setprop_string(fdt, nodename, "reg-names", "control"); + qemu_fdt_setprop_cells(fdt, nodename, "ranges", 0x2000000, 0x0, + 0x40000000, 0x0, 0x40000000, 0x0, 0x20000000); + qemu_fdt_setprop_cells(fdt, nodename, "interrupt-parent", plic_phandle); + qemu_fdt_setprop_cells(fdt, nodename, "interrupts", PCIE_IRQ); + g_free(nodename); + + nodename = g_strdup_printf("/pci@%lx/interrupt-controller", + (long) memmap[VIRT_PCIE].base); + qemu_fdt_add_subnode(fdt, nodename); + qemu_fdt_setprop_cells(fdt, nodename, "#address-cells", 0x00); + qemu_fdt_setprop_cells(fdt, nodename, "#interrupt-cells", 0x1); + qemu_fdt_setprop(fdt, nodename, "interrupt-controller", NULL, 0); + g_free(nodename); + nodename = g_strdup_printf("/test@%lx", (long)memmap[VIRT_TEST].base); qemu_fdt_add_subnode(fdt, nodename); @@ -260,6 +289,31 @@ static void *create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap, return fdt; } + +static inline DeviceState * +gpex_pcie_init(MemoryRegion *sys_mem, uint32_t bus_nr, + hwaddr cfg_base, uint64_t cfg_size, + hwaddr mmio_base, uint64_t mmio_size, + qemu_irq irq, bool link_up) +{ + DeviceState *dev; + MemoryRegion *cfg, *mmio; + + dev = qdev_create(NULL, TYPE_GPEX_HOST); + + qdev_init_nofail(dev); + + cfg = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0); + memory_region_add_subregion_overlap(sys_mem, cfg_base, cfg, 0); + + mmio = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 1); + memory_region_add_subregion_overlap(sys_mem, 0, mmio, 0); + + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq); + + return dev; +} + static void riscv_virt_board_init(MachineState *machine) { const struct MemmapEntry *memmap = virt_memmap; @@ -382,6 +436,10 @@ static void riscv_virt_board_init(MachineState *machine) qdev_get_gpio_in(DEVICE(s->plic), VIRTIO_IRQ + i)); } + gpex_pcie_init(system_memory, 0, memmap[VIRT_PCIE].base, + memmap[VIRT_PCIE].size, 0x40000000, 0x20000000, + qdev_get_gpio_in(DEVICE(s->plic), PCIE_IRQ), true); + serial_mm_init(system_memory, memmap[VIRT_UART0].base, 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193, serial_hd(0), DEVICE_LITTLE_ENDIAN); diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index 7cb2742070..d0129c2ca5 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -38,13 +38,15 @@ enum { VIRT_PLIC, VIRT_UART0, VIRT_VIRTIO, - VIRT_DRAM + VIRT_DRAM, + VIRT_PCIE }; enum { UART0_IRQ = 10, VIRTIO_IRQ = 1, /* 1 to 8 */ VIRTIO_COUNT = 8, + PCIE_IRQ = 0x20, VIRTIO_NDEV = 0x35 }; From patchwork Thu Oct 11 20:31:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637393 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DFBA3157A for ; Thu, 11 Oct 2018 20:33:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CC74927CEA for ; Thu, 11 Oct 2018 20:33:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C00832C05E; Thu, 11 Oct 2018 20:33:39 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 5242927CEA for ; Thu, 11 Oct 2018 20:33:39 +0000 (UTC) Received: from localhost ([::1]:36988 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAheM-0007tG-JQ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:33:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhcg-0006dv-HZ for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcc-0006Yu-2b for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:54 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29171) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcb-0006Un-Oj for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:49 -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=1539289910; x=1570825910; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=OR8cSTg43u2HRif36r8UliYJO6prM1ZjTuaJBzXo+0Y=; b=U0gvNc+970OUw4eLDMyte2NV50YwS4eGEINS+/YtfUW8eerwrPprmqqF BmFWxZJiwezrvxT25Mz6DwzQyq0KouwqVl9DCdJB0bC1a+U9fJa7MMYQq TGMDRq2IKfND/J42GmuKjr7q+cXi39s/e0WRJDkGcBh6DBFY622XkKY5Z JUYgE1bofQf9t72QrqavX6kSbaClscB+lnU5wRsTv1Mdt6xrehQfY2JaE W4aBtv+IVucgN45VsqgsxzbX39rXXY3lQgR/lqQQ4VaPfLSZBY8dzXMXV 0JtJ9jxJM9EANEXWDjm/ppBLBMx7WeBr4BU19K8tk1CPQm3ORnHd7C3v7 g==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781671" Received: from mail-bl2nam02lp0081.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.81]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:48 +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=lCPxjArDC0q7bLR1+dbtO/MmxIZMlo2oxoHhelxWxuE=; b=izkMMD0wPKFL9IJbfP4mBwZFlJHc8hHJgr1/G+Qhdy3J0pBMVGznntrNAWoIGhhgtnz8iEGUyqDBO8qP/h3uXfkyw7/s6+eMkadSUQxCJPDXeVWRd2APzIY3gv7bdd8dFAkOTwh7ZCcr0uCHG4MtChzzn9fhKaOrTWKcPTtj5Os= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:31:46 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:46 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 03/10] riscv: Enable VGA and PCIE_VGA Thread-Index: AQHUYaFuZj16WC1r4UeUGZudZxl0Pg== Date: Thu, 11 Oct 2018 20:31:46 +0000 Message-ID: <20181011203115.18666-4-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:eR2h7mz/+REoXdnd6RBD/zU7z8TWRUruQ9bozrrmCuKIE6KVC62ZDO3ZRf05pZaa3fxUppR9KKlcZePBVBP77YhCFRqMhN7Y7cYQqXiUykTuo0Kqbzpj4w6jLeVxt0TmJMj48pCRmwtbF/C6Ia3nEY8DcaMLrrx9Nm/6PRWTrecAGkcu/Hz5tg8DwLH2WHRkS012NpR6p0+SB7E3PKuyrLa6Jt3H/xxOCH1F3avcc/RkNHm4N6K/npOGWnLrBe7JxLoOItu6Ct5DudIavDkeXvsUFOHL2o1ntzu5A6Cbw82pqm1/x7ncONt5w8yYUS9msHsIoRH+KUjP+x1muz0iH+6HF1+w92F1A+2JdQ3P5R/9DAXG7rOdtSAy4z8IM+NpbcbeKEoY8IWWO3FKXWtxH/aEdHPXzNvOfKu6EekYMsxcJUSAU8M7Z5hr9Oxg4Tl21DaGmy6e2lsTAUSN5RNX8g==; 5:Je6ziMOvPN6KA+vg4KW79VB5/NdB5xO202YoaNQnQ5EhVCo59yxbFO+aH9MamaJIrvwYyCoNtrrItNcXdC7Xl6RQR7XK+q3stbFoyfUbePD3XSvqCYAuccMc7m08z8tQvJEI81MMIOBauBtBB+EBjrA6Y1mXe/ZOgVt4zHicFOM=; 7:pp8ekzXaX9BgxyN5Z5iHhAj1Wqp46bXpeQlwF+J3hoNwktbFBHDzUmIKvZcNnVMTejtmFkM2uwH69tAcPIyJz17/KBbfFNDmnrKoDKdrH0JS9+ffrPX9nBw2zon2VgCSyGWVOWRKEUREz9kwwElZhqK0Klvyj7mnfzy7RXFRpR7uQp+1drwFWEXP9inOrHoNKwC3+qlB5599/7R/OiOwUasMXcPGk2mGWyctDLTRZuPuRos6S9aINyLebfMTgNMQ x-ms-office365-filtering-correlation-id: a3d40299-2995-4cf0-fa50-08d62fb89061 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(6506007)(86362001)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: lPLbwV/qHiBC0kLN8CnQ2uI/Jpx7yqt4V+GdUOK0zpi8zMvTD5nmdpNI/95id6yIGlAqkEoB+LfGocJ7PZb0fvpvqPAXoT4tOx/LVui8Q0nQ2lk7q4oVwF5TcGTzLwvGAuI21rPz9ieSjIScG+1v5urgPFtG5f/A07THZPKt5YWJyti6ngmZJ3fR6t6aiOSUIq9llzmYK/9lLeaIi1otAXIs0cJ6Lnvwn+iIgzVxuwaSes3QZKuU36byZdPsMrexVQE1YGEci90Cx1cdflu8COQYTFudFfUkmfaeJZaTzsW3f0VKib2rSvv9jZvuBYBpQ9WKY1grTQkodFLxka+wXVtAI/eJvC19PYYWMVlRbh0= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3d40299-2995-4cf0-fa50-08d62fb89061 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:46.6415 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 03/10] riscv: Enable VGA and PCIE_VGA 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: Alistair Francis , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Enable compile support for VGA devices. This allows the user to conenct a display by adding '-device bochs-display -display sdl' to their command line argument. Signed-off-by: Alistair Francis --- default-configs/riscv32-softmmu.mak | 3 +++ default-configs/riscv64-softmmu.mak | 3 +++ hw/riscv/virt.c | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak index 3e3d195f37..05fae82f1b 100644 --- a/default-configs/riscv32-softmmu.mak +++ b/default-configs/riscv32-softmmu.mak @@ -9,3 +9,6 @@ CONFIG_CADENCE=y CONFIG_PCI_GENERIC=y CONFIG_PCI_XILINX=y + +CONFIG_VGA=y +CONFIG_VGA_PCI=y diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak index 3e3d195f37..05fae82f1b 100644 --- a/default-configs/riscv64-softmmu.mak +++ b/default-configs/riscv64-softmmu.mak @@ -9,3 +9,6 @@ CONFIG_CADENCE=y CONFIG_PCI_GENERIC=y CONFIG_PCI_XILINX=y + +CONFIG_VGA=y +CONFIG_VGA_PCI=y diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 9bd2c10581..62a953aa2b 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -437,8 +437,8 @@ static void riscv_virt_board_init(MachineState *machine) } gpex_pcie_init(system_memory, 0, memmap[VIRT_PCIE].base, - memmap[VIRT_PCIE].size, 0x40000000, 0x20000000, - qdev_get_gpio_in(DEVICE(s->plic), PCIE_IRQ), true); + memmap[VIRT_PCIE].size, 0x40000000, 0x20000000, + qdev_get_gpio_in(DEVICE(s->plic), PCIE_IRQ), true); serial_mm_init(system_memory, memmap[VIRT_UART0].base, 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193, From patchwork Thu Oct 11 20:31:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637395 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5E17F112B for ; Thu, 11 Oct 2018 20:34:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B4142C068 for ; Thu, 11 Oct 2018 20:34:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3FFD62C074; Thu, 11 Oct 2018 20:34:14 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 A557B2C06B for ; Thu, 11 Oct 2018 20:34:13 +0000 (UTC) Received: from localhost ([::1]:36989 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhev-0008HC-0o for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:34:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhd9-0006ub-RY for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhd4-0006rM-0H for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:23 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:7470) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcz-0006kR-6s for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:15 -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=1539289933; x=1570825933; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GoMgZcH2fHlR9h1e6MoxF07+0WD+6N850VNnILVqeTk=; b=ir3WcYjr4edvpMdikR5WcxdgHJONSDhSJtePpoGLtrItL8PlcE1uUt8D 6mp6/2TxDPgnGqGLGEckgHY26iejHLZ6j2fR/4V8AYSNw0Q+huVKPO0OM 5yNt7aaGUeFj+eGc/ceJ9EVkhmV7dXpaZcqxvLvfQcfN67g/1fds6LnmJ uQxvDDr72YcPBbDuKorPXRby+QP6k/ebK87ZdoE6H0O6sJ0x94cKSphu2 3MnNX67ghPrJmq9J77PrYmZDpmNHwnzG2AgPkAx8wE9k+s6RgaFAQspAN X3+P7PyW55KXjEFtR/utNSDG6ZDUEteyqwMbW4u2nftJ9jyjEvn06AmxO Q==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="196107748" Received: from mail-sn1nam02lp0016.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) ([216.32.180.16]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:50 +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=sa9N/nMvQqT/g492ukwBhR5czzHLMcaYl1fHmL5HhnQ=; b=TyAi3ZI0ND4eR6PWSPn4649i9EnAVtQwF49BGdn9jTIwb/Hg2xrezASB2rV+a+EkWFXQNs3mXnXyMSNzpGVRYjwnnE1xjU1dSi2Y8JYD9F4F39/xbvOvTxkI4VeX+EonseR/g+hBL9mKBxr/GUdB74Bx3qerYOYDhlwTAHHMBPw= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB0454.namprd04.prod.outlook.com (10.173.189.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.23; Thu, 11 Oct 2018 20:31:49 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:49 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 04/10] hw/riscv/sifive_u: Connect the Xilinx PCIe Thread-Index: AQHUYaFv+VjXMORuOEuO8wlcUTgcXA== Date: Thu, 11 Oct 2018 20:31:49 +0000 Message-ID: <20181011203115.18666-5-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB0454; 6:imXGoCNyrDzKyvSvFJ9P0+0o0wkHJswZepmTHx2vITDm8Twt/QLCdCVnKfcuTqO63/HYLVS4Ug+hRIcKS2EJHGwPnhL4YNw8/1UrLvleUBy1ayG6R9h+gYGn9JR8gBaIbDB8tXh6zUvXRR2qQk2xLGuBix+zAMoTy6yeCxFeAczQ6mRSR6Tn1V7SYaih9Z6mROGIsjxL9VRd/JdHg63KPauv1/u9MVnhmINMKMiWbNWh7zcsFml8Z9RIjsxFCRWJcCgU8Qc53Am4Cg1pXftJeshViXLWpY+XWbzwD/OmMYgd91EGRXvnwscKoNkUUsw7jr8NryjGNcA9IaMW/GnTqduxwvD/A+PqDplULmxHuxfQ5uHQMJsJF/yQFe6iSdpqBZaE91nmT8WOwa26XHvRutPNHVbJ7uFqQdki7w+J9ZTi2dTfF9Ty14slk8d4eRYWaE9b465PVUJ3ObLjfLxRwg==; 5:Jp8RsGb27wD+YXxLiisi5RQ9ISoqGDpE7X3+a2ebQZtryBBbXFwqF6kdvaRwW5U43wxA8pOvR9vhgJFzGDKjy/Rb1mns4iV+tswDAtcuuQVBC9WY2l6jd7bW8ydtLy3ZtowxEOQ0sLoEh9n8oWhsJ/a/DullSkAS+Aydv9YoCzg=; 7:W1KU/TkxfjmDWlZcLgQSYe00Nn6cNI73bx0rNjtGy+icRJfD5OrKbyg6p/l2HSUnNlN/Xk2UO+znQ0T7CqwGbeGmNl/4ic6l/THTxKnUOTZtbeGFtERNt0XKEdvpplAM/wHvBoR17+mkUeshVavoD/FKTTSO1mzr99zL2DuR72vcRhThbVJNHyLLd+PUL7HvD9j25LtkZPsQl2Kb/4e2DWHaD+s5jsB0PjGv1WhQR92tiDCZMTMRIOJ1NYiFfQQK x-ms-office365-filtering-correlation-id: 9149dfc1-a43a-464b-6de0-08d62fb89202 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB0454; x-ms-traffictypediagnostic: CY4PR04MB0454: wdcipoutbound: EOP-TRUE x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(21532816269658); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051); SRVR:CY4PR04MB0454; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB0454; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(346002)(39860400002)(376002)(366004)(396003)(199004)(189003)(71190400001)(71200400001)(2906002)(26005)(76176011)(2900100001)(316002)(478600001)(6436002)(54906003)(14454004)(36756003)(53936002)(6512007)(5640700003)(6486002)(66066001)(81156014)(2351001)(8936002)(476003)(7736002)(72206003)(8676002)(50226002)(105586002)(446003)(86362001)(106356001)(11346002)(99286004)(14444005)(2616005)(186003)(1076002)(3846002)(6116002)(5250100002)(2501003)(52116002)(6916009)(256004)(97736004)(25786009)(4326008)(68736007)(386003)(486006)(44832011)(5660300001)(102836004)(305945005)(81166006)(6506007); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB0454; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: t3saycSb0yDlCKHAtvDf+qV/JwBNueVT8e4oGdlv5a8dGc6QhZjl8fLOwQVopRzv0jzz1oa65nqQ56fta/W5iiCVkuDlL4Q1gtNj6XNKFKxEBPmM4x0+Hsq5ocCGcm+PGr0nKI92RkdA/FUzktAtaWaKDQZRHeZBxxeE9IdkXOs/ChkHL1IkS2GsUdluEDt48qMeobK3uqA2SeVmOCmNAQ5gpLeB0E2N+mFz01gqwYYLs6htnEfJlQ0nBmfvAtMVPy27Eo8wFyOkf8mg+8FOMq1YwRCZLC26vWlQKEVH6QkvC7lvNmpODAeZMJ/GKI/Vf9FytRx2MfU4+MKu33HpmKMXIdguA1K3pqL3a9TVIX0= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9149dfc1-a43a-464b-6de0-08d62fb89202 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:49.4368 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB0454 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 68.232.141.245 Subject: [Qemu-devel] [PULL 04/10] hw/riscv/sifive_u: Connect the Xilinx PCIe 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: Alistair Francis , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Connect the Xilinx PCIe device based on the information in the device tree stored in the ROM of the HiFish Unleashed board. Signed-off-by: Alistair Francis --- hw/riscv/sifive_u.c | 64 +++++++++++++++++++++++++++++++++++++ include/hw/riscv/sifive_u.h | 4 ++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 862f8ff5f7..4e273119c3 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -45,6 +45,8 @@ #include "sysemu/arch_init.h" #include "sysemu/device_tree.h" #include "exec/address-spaces.h" +#include "hw/pci/pci.h" +#include "hw/pci-host/xilinx-pcie.h" #include "elf.h" #include @@ -61,6 +63,7 @@ static const struct MemmapEntry { [SIFIVE_U_UART1] = { 0x10023000, 0x1000 }, [SIFIVE_U_DRAM] = { 0x80000000, 0x0 }, [SIFIVE_U_GEM] = { 0x100900FC, 0x2000 }, + [SIFIVE_U_PCIE] = { 0x2000000000, 0x4000000 }, }; #define GEM_REVISION 0x10070109 @@ -218,6 +221,32 @@ static void create_fdt(SiFiveUState *s, const struct MemmapEntry *memmap, qemu_fdt_setprop_cells(fdt, nodename, "reg", 0x0); g_free(nodename); + nodename = g_strdup_printf("/pci@%lx", + (long) memmap[SIFIVE_U_PCIE].base); + qemu_fdt_add_subnode(fdt, nodename); + qemu_fdt_setprop_cells(fdt, nodename, "#address-cells", 0x3); + qemu_fdt_setprop_cells(fdt, nodename, "#interrupt-cells", 0x1); + qemu_fdt_setprop_cells(fdt, nodename, "#size-cells", 0x2); + qemu_fdt_setprop_string(fdt, nodename, "compatible", + "xlnx,axi-pcie-host-1.00.a"); + qemu_fdt_setprop_string(fdt, nodename, "device_type", "pci"); + qemu_fdt_setprop_cells(fdt, nodename, "reg", 0x20, 0x0, 0x0, + memmap[SIFIVE_U_PCIE].size); + qemu_fdt_setprop_string(fdt, nodename, "reg-names", "control"); + qemu_fdt_setprop_cells(fdt, nodename, "ranges", 0x2000000, 0x0, + 0x40000000, 0x0, 0x40000000, 0x0, 0x20000000); + qemu_fdt_setprop_cells(fdt, nodename, "interrupt-parent", plic_phandle); + qemu_fdt_setprop_cells(fdt, nodename, "interrupts", SIFIVE_U_PCIE_IRQ); + g_free(nodename); + + nodename = g_strdup_printf("/pci@%lx/interrupt-controller", + (long) memmap[SIFIVE_U_PCIE].base); + qemu_fdt_add_subnode(fdt, nodename); + qemu_fdt_setprop_cells(fdt, nodename, "#address-cells", 0x00); + qemu_fdt_setprop_cells(fdt, nodename, "#interrupt-cells", 0x1); + qemu_fdt_setprop(fdt, nodename, "interrupt-controller", NULL, 0); + g_free(nodename); + nodename = g_strdup_printf("/soc/uart@%lx", (long)memmap[SIFIVE_U_UART0].base); qemu_fdt_add_subnode(fdt, nodename); @@ -234,6 +263,37 @@ static void create_fdt(SiFiveUState *s, const struct MemmapEntry *memmap, g_free(nodename); } +static inline DeviceState * +xilinx_pcie_init(MemoryRegion *sys_mem, uint32_t bus_nr, + hwaddr cfg_base, uint64_t cfg_size, + hwaddr mmio_base, uint64_t mmio_size, + qemu_irq irq, bool link_up) +{ + DeviceState *dev; + MemoryRegion *cfg, *mmio; + + dev = qdev_create(NULL, TYPE_XILINX_PCIE_HOST); + + qdev_prop_set_uint32(dev, "bus_nr", bus_nr); + qdev_prop_set_uint64(dev, "cfg_base", cfg_base); + qdev_prop_set_uint64(dev, "cfg_size", cfg_size); + qdev_prop_set_uint64(dev, "mmio_base", mmio_base); + qdev_prop_set_uint64(dev, "mmio_size", mmio_size); + qdev_prop_set_bit(dev, "link_up", link_up); + + qdev_init_nofail(dev); + + cfg = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0); + memory_region_add_subregion_overlap(sys_mem, cfg_base, cfg, 0); + + mmio = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 1); + memory_region_add_subregion_overlap(sys_mem, 0, mmio, 0); + + qdev_connect_gpio_out_named(dev, "interrupt_out", 0, irq); + + return dev; +} + static void riscv_sifive_u_init(MachineState *machine) { const struct MemmapEntry *memmap = sifive_u_memmap; @@ -373,6 +433,10 @@ static void riscv_sifive_u_soc_realize(DeviceState *dev, Error **errp) sysbus_mmio_map(SYS_BUS_DEVICE(&s->gem), 0, memmap[SIFIVE_U_GEM].base); sysbus_connect_irq(SYS_BUS_DEVICE(&s->gem), 0, plic_gpios[SIFIVE_U_GEM_IRQ]); + + xilinx_pcie_init(system_memory, 0, memmap[SIFIVE_U_PCIE].base, + memmap[SIFIVE_U_PCIE].size, 0x40000000, 0x20000000, + qdev_get_gpio_in(DEVICE(s->plic), SIFIVE_U_PCIE_IRQ), true); } static void riscv_sifive_u_machine_init(MachineClass *mc) diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h index e8b4d9ffa3..e7292ea83b 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -53,12 +53,14 @@ enum { SIFIVE_U_UART0, SIFIVE_U_UART1, SIFIVE_U_DRAM, - SIFIVE_U_GEM + SIFIVE_U_GEM, + SIFIVE_U_PCIE }; enum { SIFIVE_U_UART0_IRQ = 3, SIFIVE_U_UART1_IRQ = 4, + SIFIVE_U_PCIE_IRQ = 0x20, SIFIVE_U_GEM_IRQ = 0x35 }; From patchwork Thu Oct 11 20:31:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637397 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98A0E112B for ; Thu, 11 Oct 2018 20:36:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 868952C126 for ; Thu, 11 Oct 2018 20:36:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 798B52C12E; Thu, 11 Oct 2018 20:36:31 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 DF3FD2C12B for ; Thu, 11 Oct 2018 20:36:30 +0000 (UTC) Received: from localhost ([::1]:37004 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhh8-0001aE-3z for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:36:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39659) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhcn-0006gx-C8 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhci-0006c1-13 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:01 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:65506) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhch-0006bQ-OV for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:31:55 -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=1539289915; x=1570825915; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Vw4Fsqzk+YkUm4jzsF0x6Vpt5HInTFzQJwWXqmVmc6o=; b=FzHOWE8kUe0CSBstd45hnq7r8jfykaknc5oNv/OtCb5fbslZkmdKOQPx /JbwJX8gcEfJjur8/y7qWNEka+bjnzRPx6KOKTie5nyVXe3QRMAEHn9wk TLfNBG9HfEcir6qa6s4I6miTUh3ssOa92JW8xRJC2qnEV/DgRkDtI45OK pv5LRHOkkGbNMMcngwdBoT4LhalJLjD5Ag822tOiGki+lsHe6G5Y0NBDd dFVlGBVJDy+1Ffb8WINOh+5gPnCMuOVl2TP4NaQKiq1XFH/chOLUSD00u UCPeyy0nQti3vkONSlqGuRQAzsJZbUF8O7rKY7ZmCd+73dBGmL2szLV57 g==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="92863297" Received: from mail-sn1nam01lp0111.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) ([207.46.163.111]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:54 +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=DCRBadwsCIv6rwi1pCyX+MITT5R9E2bGo9Te2FwIqxI=; b=MwEEYtXeSBTwnwpsvRzc4a5MAIBY/uhHR/di3NcdKrZQPA1JC1dBz5r22FnUbDU+DwqTdYBVEbFuVVtlNQyD2OatmtL+PoojPRfKy8MysHPIpqyegNOPZcJMJ1nEkVokZ8+jJtIJ18Iq6N1Me7jt2uXdYHEWUn1/Za32F4TPYtY= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB0454.namprd04.prod.outlook.com (10.173.189.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.23; Thu, 11 Oct 2018 20:31:52 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:52 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 05/10] hw/riscv/virt: Connect a VirtIO net PCIe device Thread-Index: AQHUYaFxTykQjGoez0ymPFpyGWZ5gg== Date: Thu, 11 Oct 2018 20:31:52 +0000 Message-ID: <20181011203115.18666-6-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB0454; 6:iLtKHSK81nR/xK2AQVjb4BbPCnRWA2Pb2LkD+1q3jENOusTHSfds6Ex9p+FfUcY0oFKie+1fvl6VP96gzbBCvIsb3N3e7Y13fumlwsfKB+5O+eBXQWLinvXqbkTvGrRS+Cz3RfrvCtfaf5wjfKlEpcRdBHqo3kablsbsmid6bI+jRN+KQkQVOOBczBlkEPpQwSmzEc/v0SYKypLtl+TL5XU3y3WO/blf2wj3XBqk9zQDR/ELMnNM9Px5zuGx1T3V/zbYqjCVawJwHv041lgd60JELFgNz1P7ass5MCJiwTnHt8EZYL+b0AXoZA/f4zs7pIYoUAygRiBMd9LBwuerlusQwFt5V55X3zc5mD7udgn6MxzgqDPRyPCjLU0dpH6NxVi15q/RfrKc/yyGxKjMr1FXIz7SdzxVr3lxUKh5BeeohUp4zELqqhyxNc7SGFkqrTGdcak7xLEGqfvY41cNFQ==; 5:QkMrZlgHd28Pp1GVxk9E4OnZtP1djYTeLtFoOePPwKKc+NPO6mVfngrRLNr7GGarM4XYoKV4j+7OtVGy2ImgpKTftJH5QlUgd0YPPtO6mIGA5DPjGA53YklzRKGT8QsWOZKDkgW/vLbhpPge92gwJZlCGTM5AO7Q/MHOFuut4lc=; 7:jTfKM6A5dBe3nL9D5RS7kBGZJkR6sfmOLS4vnpNm/C5pF1jWLzY6+0tFpMT02mLZBh0htRDoGcxj8SE7mSipqKQmULvCg/JcdxQZh7rmPDNN7I8BGU9gPPYeM7f45CMEJJCHmPrdns77dS4TZXGdN+X3QJnlyXtQBAgMo1tGymtDPhTRcX7dgJnwkmtmdK5Mwr5TQfuAioIb9RK7dLWB74/+mj2dTBKT3jElR7ssjx1ixl6bEAo+gbU0Pigl3Wjv x-ms-office365-filtering-correlation-id: 42416d7d-c03c-4577-7277-08d62fb893a9 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB0454; x-ms-traffictypediagnostic: CY4PR04MB0454: wdcipoutbound: EOP-TRUE x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(21532816269658); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051); SRVR:CY4PR04MB0454; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB0454; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(346002)(39860400002)(376002)(366004)(396003)(199004)(189003)(71190400001)(71200400001)(2906002)(26005)(76176011)(2900100001)(316002)(478600001)(6436002)(54906003)(14454004)(36756003)(53936002)(6512007)(5640700003)(6486002)(66066001)(81156014)(2351001)(8936002)(476003)(7736002)(72206003)(8676002)(50226002)(105586002)(446003)(86362001)(106356001)(11346002)(99286004)(2616005)(186003)(1076002)(3846002)(6116002)(5250100002)(2501003)(52116002)(6916009)(256004)(97736004)(25786009)(4326008)(68736007)(386003)(486006)(44832011)(5660300001)(102836004)(305945005)(81166006)(6506007); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB0454; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: FP+k8Bx3jZdDn3M1ePGMPk44przGrIZ6mGIThj8NNRTiDh8ViNNh/fXmzw5ZhXmQLyZ/DbiNaVv5VW1NMoqlC9yph0spcZVwUNxuGOlnTppP6vRoA+V6DS3OkiOXzjsvVejU/lien1iyVDT/Ja0whLNt7DdtwUj6tYRIyADqlZl8ON/XclFIuoXQcsDH8Yb6Vzf7kNhJySvAtTBzNe8OQJi4/Da5YXycqU8VjVVAGq24+sCx9AFRYCxBxcrkqAAqQTlkcrUStsAVjrc9aVP0G/2VehEMt14QambQS17yTfHT0BqNu9jbDq+SfM7vu1ov2hXNr19oSJKhLCbhjvyFifxFw2sMLGUOsXcLdvYVfwE= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42416d7d-c03c-4577-7277-08d62fb893a9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:52.2661 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB0454 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.153.144 Subject: [Qemu-devel] [PULL 05/10] hw/riscv/virt: Connect a VirtIO net PCIe device 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: Alistair Francis , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Alistair Francis --- default-configs/riscv32-softmmu.mak | 1 + default-configs/riscv64-softmmu.mak | 1 + hw/riscv/virt.c | 20 +++++++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-softmmu.mak index 05fae82f1b..bb3dd34606 100644 --- a/default-configs/riscv32-softmmu.mak +++ b/default-configs/riscv32-softmmu.mak @@ -9,6 +9,7 @@ CONFIG_CADENCE=y CONFIG_PCI_GENERIC=y CONFIG_PCI_XILINX=y +CONFIG_VIRTIO_PCI=y CONFIG_VGA=y CONFIG_VGA_PCI=y diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-softmmu.mak index 05fae82f1b..bb3dd34606 100644 --- a/default-configs/riscv64-softmmu.mak +++ b/default-configs/riscv64-softmmu.mak @@ -9,6 +9,7 @@ CONFIG_CADENCE=y CONFIG_PCI_GENERIC=y CONFIG_PCI_XILINX=y +CONFIG_VIRTIO_PCI=y CONFIG_VGA=y CONFIG_VGA_PCI=y diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 62a953aa2b..6d91810bcf 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -36,6 +36,7 @@ #include "hw/riscv/sifive_test.h" #include "hw/riscv/virt.h" #include "chardev/char.h" +#include "net/net.h" #include "sysemu/arch_init.h" #include "sysemu/device_tree.h" #include "exec/address-spaces.h" @@ -322,6 +323,8 @@ static void riscv_virt_board_init(MachineState *machine) MemoryRegion *system_memory = get_system_memory(); MemoryRegion *main_mem = g_new(MemoryRegion, 1); MemoryRegion *mask_rom = g_new(MemoryRegion, 1); + DeviceState *dev; + PCIBus *pci_bus; char *plic_hart_config; size_t plic_hart_config_len; int i; @@ -436,9 +439,20 @@ static void riscv_virt_board_init(MachineState *machine) qdev_get_gpio_in(DEVICE(s->plic), VIRTIO_IRQ + i)); } - gpex_pcie_init(system_memory, 0, memmap[VIRT_PCIE].base, - memmap[VIRT_PCIE].size, 0x40000000, 0x20000000, - qdev_get_gpio_in(DEVICE(s->plic), PCIE_IRQ), true); + dev = gpex_pcie_init(system_memory, 0, memmap[VIRT_PCIE].base, + memmap[VIRT_PCIE].size, 0x40000000, 0x20000000, + qdev_get_gpio_in(DEVICE(s->plic), PCIE_IRQ), true); + pci_bus = PCI_HOST_BRIDGE(dev)->bus; + + for (i = 0; i < nb_nics; i++) { + NICInfo *nd = &nd_table[i]; + + if (!nd->model) { + nd->model = g_strdup("virtio"); + } + + pci_nic_init_nofail(nd, pci_bus, nd->model, NULL); + } serial_mm_init(system_memory, memmap[VIRT_UART0].base, 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193, From patchwork Thu Oct 11 20:31:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637401 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DB2DA112B for ; Thu, 11 Oct 2018 20:36:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C73752C12B for ; Thu, 11 Oct 2018 20:36:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BB6892C12E; Thu, 11 Oct 2018 20:36:40 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 D4A802C0BE for ; Thu, 11 Oct 2018 20:36:39 +0000 (UTC) Received: from localhost ([::1]:37006 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhhH-0001ez-4v for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:36:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhcs-0006jY-Bt for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcn-0006h1-9l for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:06 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29185) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcm-0006dE-H8 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:00 -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=1539289920; x=1570825920; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tmuJh4dPjfMR4X5JCi0mqUEVAYrAQXsdcptMyYwe8Yo=; b=L0pz1jPCFQSmha9O4QQ8wqiiNA9fjcizPYPfLEcoHGZj5DW72bUsASph fPvSerUY1BrhnzvE30Tffqqm4JrkiarU897rDxoYODuC6wNCBjeZggrrp 3kKJCE0CQaRMCqKk6EhZ9FvSn+Ng9lJGbBA3/u7KL2TZ83ptStRlmx5KG v2YJ5laluwjYt6eyFL89Kc8zFWHwSDSczMxx0rOa96DO9qA79YAsq5tlG I6Eoeh3P5Qnxj+g2YPYw1xU1j2s6D64Yw6ntFHeH39aN2t77bgl3YCTdh hYw0YZv0c3jNsvc6bwNSxd1Fo8XGpd66JkaC6DqIGqP63ift8B30L9uOJ g==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781676" Received: from mail-bl2nam02lp0088.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.88]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:31:59 +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=WYf7kfZIsitKxFSVjtO2wLk1sUWD+eEJfYZKo+9nmec=; b=T4rOqagHI9WDTH2Kh65ePp3T3z3/tf/cWh5uIiqwj0SWoGSVLc9v646nb4x+fo9ANF/qog0+QcdNJaNC7xw7iB8MwTkl4ATiHOx+D3oizQyhgt+6Rj03La6BgkA4quv7aT5F7ZL1ZQmmVP0j0pKDyueMCTh7Rji3oCkfxgmqwCM= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:31:57 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:31:57 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 06/10] RISC-V: Allow setting and clearing multiple irqs Thread-Index: AQHUYaF0gZE+NDNYZkCMZ1cslkKjqw== Date: Thu, 11 Oct 2018 20:31:56 +0000 Message-ID: <20181011203115.18666-7-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:cmTQ6+4DzTQjQ8fQMoLtvHWZ9iO7mg1hmguj3vEqlLuNPi7ifFkF9jHHjrZDgbQhmbndWquQ+KBW/mM8fTDdax0pDw8mDNHUDq38SRb/06E0cwSdntArke+pR5DSGixTimBAVb1GtqjTYaut/5RO2b1jx9+Rkg/aBMtJMiFwFQhuaA6LIxwV5UpHZj+q5cH7979Cu7nAc42hSEprSfK5Lbk4WTXYfmWme4TkBD3YH6G0ossACh0oUYfdn2HUs/9MuYsCmxu0GMjme1xa0WHE2aShaHGneeOjnDZO6rtQNdckZxFhzQMfnf5oNLfmTEitLYQuAbwAi2pBaZV441JuuI7NZOTUPwV8xcR2tAKBmQILsgE7t5o1srs2ZgnN16IL2IsGTAmadr4DwfK+ek2CoRB2gH9Bk9++WguPaoYKd0EoFpvS9RXhNSvoJiC8KCssm+QXbu/tdqVHQ/t7IbrU8Q==; 5:ypdPhxW08bTKdwNqvNPscd8l2cSalmy+QsFr/nC8s9aFK0oiQXuj+zDcH2nE+Vm9Vb6cstumzEWXHK350jR5c/cz2CVOCePWvP2Grji7Kv9ZmU7j+ebAGHeaqxdKSjmwChVvlP+NvDDuzTNuwkIYSt1CN6V2pW85nRB1oeUIu5k=; 7:MNuGC8n7kDsP3Om+IBuVFyKRW2ufNcpr8FONSVz3bHgW7z4OmJ/WM8qaJ5UE6OZL/2/Mml3CGtRItn8oigOJbJut7cV6gwRBvicVL7ySqX4m2o0wuB7w+KGhSU6uqxBozX1ZA8mG9TUiHgdcWrcMpQk3dZpuU/ehTZLrlbxeHw5Zwyjn3/mDthzxeIV8J7eq1CesDPJuJn3rENJ7PqTyhvAcxTLuq/15PGhcTh/nswtsyNJ0os5f5dxjrT+pAkWJ x-ms-office365-filtering-correlation-id: e2bf52dd-2747-4d21-f3bb-08d62fb89679 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(6506007)(86362001)(14444005)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: OaROawiOmkfxN01EImnIbX0epgYEFF0BT6MXBoytFHuNEWJ2oOAmmCSBwkTBbxy4M1EKArUkZAgYMmmBfPsoYWkIitER3ZORDSr3tfjSlLIANZQjQi7Lh4mNfL8okgY12pUZnfT8xJ8Ki36FZZjZBt3zZZUYhsOei9fJ3m+D8enqerl7jP6hOVFhONDd5Gpjjqy5xGUJq7CH6IA68AWd4mbt4R4sQxJSAuSJiTBlnNAxNa8kUt2P4W3r2Fjwg590b7NQnTbn5W/SpRXiQDuS8onmbx5oIqDX9cqUr/lX/gMP0go9qTfJ5SKfyhoM6pzicmOmY+R1SqboDJn5g0RqMZ71UfXbaLVIG1v3SsvXJv8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2bf52dd-2747-4d21-f3bb-08d62fb89679 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:31:56.9370 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 06/10] RISC-V: Allow setting and clearing multiple 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: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , "qemu-devel@nongnu.org" , Michael Clark , Alistair Francis Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Clark Change the API of riscv_set_local_interrupt to take a write mask and value to allow setting and clearing of multiple local interrupts atomically in a single call. Rename the new function to riscv_cpu_update_mip. Cc: Sagar Karandikar Cc: Bastian Koppelmann Cc: Palmer Dabbelt Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Alistair Francis Reviewed-by: Palmer Dabbelt Signed-off-by: Alistair Francis --- hw/riscv/sifive_clint.c | 8 ++++---- hw/riscv/sifive_plic.c | 4 ++-- target/riscv/cpu.h | 22 +++++++++++++--------- target/riscv/op_helper.c | 24 +++++++++++++++--------- 4 files changed, 34 insertions(+), 24 deletions(-) diff --git a/hw/riscv/sifive_clint.c b/hw/riscv/sifive_clint.c index 7cc606e065..0d2fd52487 100644 --- a/hw/riscv/sifive_clint.c +++ b/hw/riscv/sifive_clint.c @@ -47,12 +47,12 @@ static void sifive_clint_write_timecmp(RISCVCPU *cpu, uint64_t value) if (cpu->env.timecmp <= rtc_r) { /* if we're setting an MTIMECMP value in the "past", immediately raise the timer interrupt */ - riscv_set_local_interrupt(cpu, MIP_MTIP, 1); + riscv_cpu_update_mip(cpu, MIP_MTIP, BOOL_TO_MASK(1)); return; } /* otherwise, set up the future timer interrupt */ - riscv_set_local_interrupt(cpu, MIP_MTIP, 0); + riscv_cpu_update_mip(cpu, MIP_MTIP, BOOL_TO_MASK(0)); diff = cpu->env.timecmp - rtc_r; /* back to ns (note args switched in muldiv64) */ next = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + @@ -67,7 +67,7 @@ static void sifive_clint_write_timecmp(RISCVCPU *cpu, uint64_t value) static void sifive_clint_timer_cb(void *opaque) { RISCVCPU *cpu = opaque; - riscv_set_local_interrupt(cpu, MIP_MTIP, 1); + riscv_cpu_update_mip(cpu, MIP_MTIP, BOOL_TO_MASK(1)); } /* CPU wants to read rtc or timecmp register */ @@ -132,7 +132,7 @@ static void sifive_clint_write(void *opaque, hwaddr addr, uint64_t value, if (!env) { error_report("clint: invalid timecmp hartid: %zu", hartid); } else if ((addr & 0x3) == 0) { - riscv_set_local_interrupt(RISCV_CPU(cpu), MIP_MSIP, value != 0); + riscv_cpu_update_mip(RISCV_CPU(cpu), MIP_MSIP, BOOL_TO_MASK(value)); } else { error_report("clint: invalid sip write: %08x", (uint32_t)addr); } diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c index f635e6ff67..9cf9a1f986 100644 --- a/hw/riscv/sifive_plic.c +++ b/hw/riscv/sifive_plic.c @@ -142,10 +142,10 @@ static void sifive_plic_update(SiFivePLICState *plic) int level = sifive_plic_irqs_pending(plic, addrid); switch (mode) { case PLICMode_M: - riscv_set_local_interrupt(RISCV_CPU(cpu), MIP_MEIP, level); + riscv_cpu_update_mip(RISCV_CPU(cpu), MIP_MEIP, BOOL_TO_MASK(level)); break; case PLICMode_S: - riscv_set_local_interrupt(RISCV_CPU(cpu), MIP_SEIP, level); + riscv_cpu_update_mip(RISCV_CPU(cpu), MIP_SEIP, BOOL_TO_MASK(level)); break; default: break; diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index d4f36295f0..4ee09b9cff 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -126,13 +126,18 @@ struct CPURISCVState { target_ulong mhartid; target_ulong mstatus; + /* * CAUTION! Unlike the rest of this struct, mip is accessed asynchonously - * by I/O threads and other vCPUs, so hold the iothread mutex before - * operating on it. CPU_INTERRUPT_HARD should be in effect iff this is - * non-zero. Use riscv_cpu_set_local_interrupt. + * by I/O threads. It should be read with atomic_read. It should be updated + * using riscv_cpu_update_mip with the iothread mutex held. The iothread + * mutex must be held because mip must be consistent with the CPU inturrept + * state. riscv_cpu_update_mip calls cpu_interrupt or cpu_reset_interrupt + * wuth the invariant that CPU_INTERRUPT_HARD is set iff mip is non-zero. + * mip is 32-bits to allow atomic_read on 32-bit hosts. */ - uint32_t mip; /* allow atomic_read for >= 32-bit hosts */ + uint32_t mip; + target_ulong mie; target_ulong mideleg; @@ -247,7 +252,6 @@ void riscv_cpu_do_unaligned_access(CPUState *cs, vaddr addr, uintptr_t retaddr); int riscv_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int size, int rw, int mmu_idx); - char *riscv_isa_string(RISCVCPU *cpu); void riscv_cpu_list(FILE *f, fprintf_function cpu_fprintf); @@ -255,6 +259,10 @@ void riscv_cpu_list(FILE *f, fprintf_function cpu_fprintf); #define cpu_list riscv_cpu_list #define cpu_mmu_index riscv_cpu_mmu_index +#ifndef CONFIG_USER_ONLY +uint32_t riscv_cpu_update_mip(RISCVCPU *cpu, uint32_t mask, uint32_t value); +#define BOOL_TO_MASK(x) (-!!(x)) /* helper for riscv_cpu_update_mip value */ +#endif void riscv_set_mode(CPURISCVState *env, target_ulong newpriv); void riscv_translate_init(void); @@ -285,10 +293,6 @@ void csr_write_helper(CPURISCVState *env, target_ulong val_to_write, target_ulong csrno); target_ulong csr_read_helper(CPURISCVState *env, target_ulong csrno); -#ifndef CONFIG_USER_ONLY -void riscv_set_local_interrupt(RISCVCPU *cpu, target_ulong mask, int value); -#endif - #include "exec/cpu-all.h" #endif /* RISCV_CPU_H */ diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index aec7558e1b..d0883d329b 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -171,10 +171,8 @@ void csr_write_helper(CPURISCVState *env, target_ulong val_to_write, */ qemu_mutex_lock_iothread(); RISCVCPU *cpu = riscv_env_get_cpu(env); - riscv_set_local_interrupt(cpu, MIP_SSIP, - (val_to_write & MIP_SSIP) != 0); - riscv_set_local_interrupt(cpu, MIP_STIP, - (val_to_write & MIP_STIP) != 0); + riscv_cpu_update_mip(cpu, MIP_SSIP | MIP_STIP, + (val_to_write & (MIP_SSIP | MIP_STIP))); /* * csrs, csrc on mip.SEIP is not decomposable into separate read and * write steps, so a different implementation is needed @@ -657,16 +655,24 @@ target_ulong helper_csrrc(CPURISCVState *env, target_ulong src, #ifndef CONFIG_USER_ONLY /* iothread_mutex must be held */ -void riscv_set_local_interrupt(RISCVCPU *cpu, target_ulong mask, int value) +uint32_t riscv_cpu_update_mip(RISCVCPU *cpu, uint32_t mask, uint32_t value) { - target_ulong old_mip = cpu->env.mip; - cpu->env.mip = (old_mip & ~mask) | (value ? mask : 0); + CPURISCVState *env = &cpu->env; + uint32_t old, new, cmp = atomic_read(&env->mip); - if (cpu->env.mip && !old_mip) { + do { + old = cmp; + new = (old & ~mask) | (value & mask); + cmp = atomic_cmpxchg(&env->mip, old, new); + } while (old != cmp); + + if (new && !old) { cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); - } else if (!cpu->env.mip && old_mip) { + } else if (!new && old) { cpu_reset_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); } + + return old; } void riscv_set_mode(CPURISCVState *env, target_ulong newpriv) From patchwork Thu Oct 11 20:32:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637403 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BE0D7112B for ; Thu, 11 Oct 2018 20:38:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9F74D2C111 for ; Thu, 11 Oct 2018 20:38:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9375A2C115; Thu, 11 Oct 2018 20:38:58 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 EC4AE2C111 for ; Thu, 11 Oct 2018 20:38:57 +0000 (UTC) Received: from localhost ([::1]:37016 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhjV-0003KF-06 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:38:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39711) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhd3-0006tA-W3 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcw-0006jy-5t for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:15 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29185) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcs-0006dE-CE for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:08 -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=1539289926; x=1570825926; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=VvQPYZu0+9THdTrOuQqbqUtLtGJ24OhETy/v1CVbi1Y=; b=CcABWS2WUZYg+SpLVs5XmQeMKVwF9Ll17aYlq/Cme0LSfblOc5ff4nht QzO947VzA7FsLU0VgqUEc/BBa8Duj9C429jkPvWo4NfrInB+ESx7Kd3Vy gc8zaI1Rqco7kQ9TdvO3uae2kPgz/fM2w6wVyFpW6AotsN8Mqjj8mVXfk kx9wnWPi2hQCKZS6Ak+ZAc0mnU9X29+a23vHy70jSANFYS4HxZRaw2fJP XWyCXy66nDBcSjZXXqNpKTk7Jv/l8VdhkdAV+JjcCBYpX7rk1QOgqMRcr 2romc1p65WjDY4aY+AUDXiSFH2rW8dwpgjqL1kjL2Zc3bShjLIE5mAVUO Q==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781679" Received: from mail-bl2nam02lp0080.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.80]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:32:03 +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=VvQPYZu0+9THdTrOuQqbqUtLtGJ24OhETy/v1CVbi1Y=; b=iEB4+Sy/sJ9b+xNXT4mLOuPh+oWZsNmpWRW3yDksWrdrTX7NER6dZ8q2Up8j+ceVf8eobfj78NQwVUQhxM7fnrWcV2qptDWjE8rGMXdAR6oPwpilxfIOh2N7J7JJyva9aT4Gl332hf2EeLmbMpXcg1hSIPSvPgOduzXGw9ZKWMY= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:32:01 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:32:01 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 07/10] RISC-V: Move non-ops from op_helper to cpu_helper Thread-Index: AQHUYaF38jKt3mieUUiTUPFngtFv+A== Date: Thu, 11 Oct 2018 20:32:01 +0000 Message-ID: <20181011203115.18666-8-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:gBmmP2XSUAqm+2225Xe6d+m0X4i+Jkq8Y5cDhGAE2mj0HOhZBdSbe9FUqOHZ8T55aGvsqYhYhKQjVu0PfT+NL9uidG84ryRhNDjsGbdykHL2Bo0JRiSEQgdnHgzJq3ejxveJyMQZFmJKyOUte/Tc2lP8hR63LbUDNeH6Ihu1b3zBdauWY9E7JK85qAyJiO+VRrm0dY1YlHgfvos97lXUlFtKRhCwEv69AOwy8pAt08vEwzgFPzWZZeJIZ+5KgYdvru63oseXyGWlb8N7NKtIehCYYof5pQGSdRevG+fGSW8bdwm0dmqy/YxCCuWlVqQUxBwekfPWOLPMA4hx/cdmCbIDvO9AFOefTaK9ol19cB3YOvD9XBBdbWF4vsV2W+jcz+Qphp4iHJ98RamaacSgA7ahZqD/uqef/XBbArSseQnk/nc+nS92TglHg+FGgP2rrl58gTDf+Umlsty+UBdoAg==; 5:KoIePT4BS+r9h7VhqhzzQIkmmMeXXqfglA3nAoGUHXgSa7i+nVxn2oux9sXHOvXj5qwo6qgPn7R4dJWweJQoKXDh1M1W6SmYvbj9exopMqcb7jnItz/BIEeidz+kpgZx192WJ7LQKBeJihYkq1bgVyX5A/GXXb0f/4ItKZ9hJ94=; 7:SS8fmiopGWfRRLjRss4tnRakbJaA1KoOst+79di6M9IhdAtAC07QUkySCsrVbhESofwxlPdBbf4oSiIKcf6/ibG69DZdLbKrSowsxOPpUWZZkA3XDk0OEnO94XpJxa+mIiRzvO54rcLbcQk8szhbbsLOUWeyBhJmyoF10tXQFLI5a6iPz9Fjx+E+Ouw0yhP0zBeHJLyY8iw0K9lVVeZ2bxz/SuaUxJRDqtmxsNrSLxyi0EkyfuEmQ+gW4tbTSE/T x-ms-office365-filtering-correlation-id: a39a5547-50a8-4189-7270-08d62fb89941 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(979002)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(575784001)(6506007)(86362001)(14444005)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: 8C4fp81+6F0cqkb/TO/42Aonyp8rq241kDFIu4SrrW9Or4GhwPnXEIyND1lnEIs6+8AhRBcGJbdqMBRJvUjEsQVbJkX0qir/vlXOtm5W3UJCD1T/oJvQrpU0PSpPXR9WVjYU6/W+QiGW+sA6kAJ7vUo3cw0BGiVC8cbAxkLwO8p0PyJPr4T4jHjyXB49UvtBLW4RfOzLYfCJ8JQurHg3byVBCGdEtkHWQJ27uT6SGZ29QIjUZ/1Ikpo/ijYXqRK+zQEqf80eX9plcREv1E6FxmEN1vokidHaQvwz8xjIxk1tOTSjquHvW9pI9AprJ3psixMGgdcM6S0BtbmVQL7nzFLKDfKk4c1HUEcOHa2rLWg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <95DF030B253B324994C2EB395FCE8B05@namprd04.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: a39a5547-50a8-4189-7270-08d62fb89941 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:32:01.6018 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 07/10] RISC-V: Move non-ops from op_helper to cpu_helper 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: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , "qemu-devel@nongnu.org" , Michael Clark , Alistair Francis Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Clark This patch makes op_helper.c contain only instruction operation helpers used by translate.c and moves any unrelated cpu helpers into cpu_helper.c. No logic is changed by this patch. Cc: Sagar Karandikar Cc: Bastian Koppelmann Cc: Palmer Dabbelt Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Palmer Dabbelt Signed-off-by: Alistair Francis --- target/riscv/Makefile.objs | 2 +- target/riscv/{helper.c => cpu_helper.c} | 35 ++++++++++++++++++++++++- target/riscv/op_helper.c | 34 ------------------------ 3 files changed, 35 insertions(+), 36 deletions(-) rename target/riscv/{helper.c => cpu_helper.c} (95%) diff --git a/target/riscv/Makefile.objs b/target/riscv/Makefile.objs index abd0a7cde3..fcc5d34c1f 100644 --- a/target/riscv/Makefile.objs +++ b/target/riscv/Makefile.objs @@ -1 +1 @@ -obj-y += translate.o op_helper.o helper.o cpu.o fpu_helper.o gdbstub.o pmp.o +obj-y += translate.o op_helper.o cpu_helper.o cpu.o fpu_helper.o gdbstub.o pmp.o diff --git a/target/riscv/helper.c b/target/riscv/cpu_helper.c similarity index 95% rename from target/riscv/helper.c rename to target/riscv/cpu_helper.c index 63b3386b76..86f9f4730c 100644 --- a/target/riscv/helper.c +++ b/target/riscv/cpu_helper.c @@ -1,5 +1,5 @@ /* - * RISC-V emulation helpers for qemu. + * RISC-V CPU helpers for qemu. * * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu * Copyright (c) 2017-2018 SiFive, Inc. @@ -72,6 +72,39 @@ bool riscv_cpu_exec_interrupt(CPUState *cs, int interrupt_request) #if !defined(CONFIG_USER_ONLY) +/* iothread_mutex must be held */ +uint32_t riscv_cpu_update_mip(RISCVCPU *cpu, uint32_t mask, uint32_t value) +{ + CPURISCVState *env = &cpu->env; + uint32_t old, new, cmp = atomic_read(&env->mip); + + do { + old = cmp; + new = (old & ~mask) | (value & mask); + cmp = atomic_cmpxchg(&env->mip, old, new); + } while (old != cmp); + + if (new && !old) { + cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); + } else if (!new && old) { + cpu_reset_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); + } + + return old; +} + +void riscv_set_mode(CPURISCVState *env, target_ulong newpriv) +{ + if (newpriv > PRV_M) { + g_assert_not_reached(); + } + if (newpriv == PRV_H) { + newpriv = PRV_U; + } + /* tlb_flush is unnecessary as mode is contained in mmu_idx */ + env->priv = newpriv; +} + /* get_physical_address - get the physical address for this virtual address * * Do a page table walk to obtain the physical address corresponding to a diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index d0883d329b..495390ab1c 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -654,39 +654,6 @@ target_ulong helper_csrrc(CPURISCVState *env, target_ulong src, #ifndef CONFIG_USER_ONLY -/* iothread_mutex must be held */ -uint32_t riscv_cpu_update_mip(RISCVCPU *cpu, uint32_t mask, uint32_t value) -{ - CPURISCVState *env = &cpu->env; - uint32_t old, new, cmp = atomic_read(&env->mip); - - do { - old = cmp; - new = (old & ~mask) | (value & mask); - cmp = atomic_cmpxchg(&env->mip, old, new); - } while (old != cmp); - - if (new && !old) { - cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); - } else if (!new && old) { - cpu_reset_interrupt(CPU(cpu), CPU_INTERRUPT_HARD); - } - - return old; -} - -void riscv_set_mode(CPURISCVState *env, target_ulong newpriv) -{ - if (newpriv > PRV_M) { - g_assert_not_reached(); - } - if (newpriv == PRV_H) { - newpriv = PRV_U; - } - /* tlb_flush is unnecessary as mode is contained in mmu_idx */ - env->priv = newpriv; -} - target_ulong helper_sret(CPURISCVState *env, target_ulong cpu_pc_deb) { if (!(env->priv >= PRV_S)) { @@ -737,7 +704,6 @@ target_ulong helper_mret(CPURISCVState *env, target_ulong cpu_pc_deb) return retpc; } - void helper_wfi(CPURISCVState *env) { CPUState *cs = CPU(riscv_env_get_cpu(env)); From patchwork Thu Oct 11 20:32:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637407 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 887FE157A for ; Thu, 11 Oct 2018 20:39:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7191F2C111 for ; Thu, 11 Oct 2018 20:39:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6537D2C114; Thu, 11 Oct 2018 20:39:07 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 B1C552C111 for ; Thu, 11 Oct 2018 20:39:05 +0000 (UTC) Received: from localhost ([::1]:37017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhjd-0003OQ-2F for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:39:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39714) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhd4-0006tE-1G for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhcy-0006kU-4S for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:17 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29185) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhcw-0006dE-Fh for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:11 -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=1539289930; x=1570825930; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=HZL37V/RrVgRYERXGu/255d2ODnMtShLRpRrSSp69fg=; b=KDndy2s31vREY7VkM4v/UU7MEmU0ZeE190USh9Ydth5wl4V4/+A/U4tB wVsA1SzteEM6lVwx2IEAfr7Xaa7tBKWyZ0aPaI7WEwm66h9UOo+xqGFWk Zd5YEnDumpiF/K90RmxP/GcAFAbUX7vMhqtd+icygxMQIVeh3g8G7kxL3 v4E15h8pxvElCOIRQpAuGpwIqyzfcqD6bpTFfTdRvKnjPv4nkaTbBgv88 l7rBBpYOgofsk0v0kSa27SN8f3NZS3SQo/oTZFYqTaWRqS2heoVA3mq+B k6rAJl3JIT0CDsGhC1LNyPasglLa7dqbPoUJgi62bMFH6LLGwhXJEAXxH A==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781685" Received: from mail-bl2nam02lp0084.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.84]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:32:08 +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=PFtWwCvKc785xR3STy22ysFA8HopdwCKzmY0KLQKCr4=; b=mGSw/TtXs82mDEHnjCJVOPUo9GqGXL9n+BytQiQyF97yhKo2luMmeIn8rtzX70yLcDULiRxPv0kUIOWUZCAOiQWmP78tkY4u9H9OC922O5bewLY4Gh9C6jFPJfZrczUuvJqvq4J1RIfIrOHErS89D5k+PgxdcuA0/Qo7fFp4kr8= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:32:06 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:32:06 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 08/10] RISC-V: Update CSR and interrupt definitions Thread-Index: AQHUYaF5Y5u8CBjmSk6GICpulMX6Og== Date: Thu, 11 Oct 2018 20:32:06 +0000 Message-ID: <20181011203115.18666-9-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:vQ+wu6aBa+RB13XNejhnmfgTowP4ydIiJQTWqBhocz60ub/Sw+5vOwEu8wpF4+AR7vIiuBc4d4v7aweq5mE9GEBqKLRRVL8yjbLnOwyr7R2TlqZXMQZvJF23Ynna0xK9WJdb96TM8cngqhn1+Yxnd0nXfJiAcr+87uachoYmztXBfa7jnvzhGzashnfC8nO6gOOSkaTDAbHmqieJqlWyBmojEX4xHgJC0M1pbn8m9G3k1CZIiq9BHFpNNVHjDJndPaYQQKFSBRkO4ErZ8plhGG+pJyfeAwbUm9tf76IroF5jjdLQLwiu3/zWUG+di4j3DeoZAmY9JptCXb6SeKmMExAdSrzzCpp32SIzs/LYq8z20Ort3g1IpRRybIP8yoUugcaJ9KDOP5ftLySVlg8P6qygym3BZGra2iYEjt5MhP/7n33s5HV6UrjRew9hu0cOfQowUnUrMxLscjHUaE+jsg==; 5:+Ryo9VZCHNao2zoIJUN2vSsYE2FMj4q0ocQFhUHFHFXV0qUvq6dfmJfeYwkKONqOePPOGk/8z8JICTzfDf+aEHKkNK+ykZNSLbPV9qN/LL1IuguzfZKbwnT6DL16FXTv14M2N3p3x/FVmd+5rKoSh3wtLp2cSzSP3QjnTYdsuv0=; 7:9SvAQD/oBrOGKT+lMAcTNztgflER5IMJVHLVzw0FepAp/ubPFTyvcqOHzRnWt0nafDPLwYnLuDk3j0xHus983nwv+5zJ4bbn/wZINRx1jikDwN1G9UvM3vSiAKbyJvqEdbpX2l5Aau8xUlKgPxJAYnHX3VE+b85onxCvfKFJBW6ENZQuz5pxcBwbQQBjl8PzVnHYyHtS5v1Bfx0Vw03LrCu8tuD4nWwUwp2xOYU78SzCgZTuuwLNqoB1kgz7iJ7D x-ms-office365-filtering-correlation-id: 622a1561-f0ee-4e6c-864a-08d62fb89c0d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(4744004)(68736007)(36756003)(575784001)(6506007)(86362001)(14444005)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002)(53946003)(559001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: YlEcrVLvBS6qF7LhnRj93ptH5w7D65RiqH7A+BUZdHeFx0kAOCOzreBuTme4+4Rl0/XUtEQq46f6yCkGxDldpb9pjkePTZqilLgr4gUyvVjdE9m1RAis9tMflsmYNdIh6+s34rCEwlZUJyhviGgQ+9SkHalNTNe2pFMoAo3q6Ty3StYhMSkPc+/CTjoH9torPWGaFrIOj8iKnIJ8W/eTofODeElcC+FZaipwTV7vQu4t2MsTvMF0q0WOa63fGkNJk5VcYWhD/MLfsnoRk38gk0nxj/yoxGdwXv6Qf5o1Fu2tNfYRG9C3sSi+on9Fu18v19EgcUkhE3EUlHq8lu191Xt2yHIx1A0S9WQ1aKKZIR8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 622a1561-f0ee-4e6c-864a-08d62fb89c0d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:32:06.5439 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 08/10] RISC-V: Update CSR and interrupt definitions 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: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , "qemu-devel@nongnu.org" , Michael Clark , Alistair Francis Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Clark * Add user-mode CSR defininitions. * Reorder CSR definitions to match the specification. * Change H mode interrupt comment to 'reserved'. * Remove unused X_COP interrupt. * Add user-mode interrupts. * Remove erroneous until comments on machine mode interrupts. * Move together paging mode and page table bit definitions. * Move together interrupt and exception cause definitions. Cc: Sagar Karandikar Cc: Bastian Koppelmann Cc: Palmer Dabbelt Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Alistair Francis Reviewed-by: Palmer Dabbelt Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 6 +- target/riscv/cpu_bits.h | 683 +++++++++++++++++++++------------------ target/riscv/op_helper.c | 2 +- 3 files changed, 370 insertions(+), 321 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d630e8fd6c..a025a0a3ba 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -74,8 +74,10 @@ const char * const riscv_intr_names[] = { "s_external", "h_external", "m_external", - "coprocessor", - "host" + "reserved", + "reserved", + "reserved", + "reserved" }; typedef struct RISCVCPUInfo { diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 12b4757088..5439f4719e 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -6,242 +6,283 @@ (((target_ulong)(val) * ((mask) & ~((mask) << 1))) & \ (target_ulong)(mask))) -#define PGSHIFT 12 - -#define FSR_RD_SHIFT 5 -#define FSR_RD (0x7 << FSR_RD_SHIFT) - -#define FPEXC_NX 0x01 -#define FPEXC_UF 0x02 -#define FPEXC_OF 0x04 -#define FPEXC_DZ 0x08 -#define FPEXC_NV 0x10 - -#define FSR_AEXC_SHIFT 0 -#define FSR_NVA (FPEXC_NV << FSR_AEXC_SHIFT) -#define FSR_OFA (FPEXC_OF << FSR_AEXC_SHIFT) -#define FSR_UFA (FPEXC_UF << FSR_AEXC_SHIFT) -#define FSR_DZA (FPEXC_DZ << FSR_AEXC_SHIFT) -#define FSR_NXA (FPEXC_NX << FSR_AEXC_SHIFT) -#define FSR_AEXC (FSR_NVA | FSR_OFA | FSR_UFA | FSR_DZA | FSR_NXA) - -/* CSR numbers */ -#define CSR_FFLAGS 0x1 -#define CSR_FRM 0x2 -#define CSR_FCSR 0x3 -#define CSR_CYCLE 0xc00 -#define CSR_TIME 0xc01 -#define CSR_INSTRET 0xc02 -#define CSR_HPMCOUNTER3 0xc03 -#define CSR_HPMCOUNTER4 0xc04 -#define CSR_HPMCOUNTER5 0xc05 -#define CSR_HPMCOUNTER6 0xc06 -#define CSR_HPMCOUNTER7 0xc07 -#define CSR_HPMCOUNTER8 0xc08 -#define CSR_HPMCOUNTER9 0xc09 -#define CSR_HPMCOUNTER10 0xc0a -#define CSR_HPMCOUNTER11 0xc0b -#define CSR_HPMCOUNTER12 0xc0c -#define CSR_HPMCOUNTER13 0xc0d -#define CSR_HPMCOUNTER14 0xc0e -#define CSR_HPMCOUNTER15 0xc0f -#define CSR_HPMCOUNTER16 0xc10 -#define CSR_HPMCOUNTER17 0xc11 -#define CSR_HPMCOUNTER18 0xc12 -#define CSR_HPMCOUNTER19 0xc13 -#define CSR_HPMCOUNTER20 0xc14 -#define CSR_HPMCOUNTER21 0xc15 -#define CSR_HPMCOUNTER22 0xc16 -#define CSR_HPMCOUNTER23 0xc17 -#define CSR_HPMCOUNTER24 0xc18 -#define CSR_HPMCOUNTER25 0xc19 -#define CSR_HPMCOUNTER26 0xc1a -#define CSR_HPMCOUNTER27 0xc1b -#define CSR_HPMCOUNTER28 0xc1c -#define CSR_HPMCOUNTER29 0xc1d -#define CSR_HPMCOUNTER30 0xc1e -#define CSR_HPMCOUNTER31 0xc1f -#define CSR_SSTATUS 0x100 -#define CSR_SIE 0x104 -#define CSR_STVEC 0x105 -#define CSR_SCOUNTEREN 0x106 -#define CSR_SSCRATCH 0x140 -#define CSR_SEPC 0x141 -#define CSR_SCAUSE 0x142 -#define CSR_SBADADDR 0x143 -#define CSR_SIP 0x144 -#define CSR_SPTBR 0x180 -#define CSR_SATP 0x180 -#define CSR_MSTATUS 0x300 -#define CSR_MISA 0x301 -#define CSR_MEDELEG 0x302 -#define CSR_MIDELEG 0x303 -#define CSR_MIE 0x304 -#define CSR_MTVEC 0x305 -#define CSR_MCOUNTEREN 0x306 -#define CSR_MSCRATCH 0x340 -#define CSR_MEPC 0x341 -#define CSR_MCAUSE 0x342 -#define CSR_MBADADDR 0x343 -#define CSR_MIP 0x344 -#define CSR_PMPCFG0 0x3a0 -#define CSR_PMPCFG1 0x3a1 -#define CSR_PMPCFG2 0x3a2 -#define CSR_PMPCFG3 0x3a3 -#define CSR_PMPADDR0 0x3b0 -#define CSR_PMPADDR1 0x3b1 -#define CSR_PMPADDR2 0x3b2 -#define CSR_PMPADDR3 0x3b3 -#define CSR_PMPADDR4 0x3b4 -#define CSR_PMPADDR5 0x3b5 -#define CSR_PMPADDR6 0x3b6 -#define CSR_PMPADDR7 0x3b7 -#define CSR_PMPADDR8 0x3b8 -#define CSR_PMPADDR9 0x3b9 -#define CSR_PMPADDR10 0x3ba -#define CSR_PMPADDR11 0x3bb -#define CSR_PMPADDR12 0x3bc -#define CSR_PMPADDR13 0x3bd -#define CSR_PMPADDR14 0x3be -#define CSR_PMPADDR15 0x3bf -#define CSR_TSELECT 0x7a0 -#define CSR_TDATA1 0x7a1 -#define CSR_TDATA2 0x7a2 -#define CSR_TDATA3 0x7a3 -#define CSR_DCSR 0x7b0 -#define CSR_DPC 0x7b1 -#define CSR_DSCRATCH 0x7b2 -#define CSR_MCYCLE 0xb00 -#define CSR_MINSTRET 0xb02 -#define CSR_MHPMCOUNTER3 0xb03 -#define CSR_MHPMCOUNTER4 0xb04 -#define CSR_MHPMCOUNTER5 0xb05 -#define CSR_MHPMCOUNTER6 0xb06 -#define CSR_MHPMCOUNTER7 0xb07 -#define CSR_MHPMCOUNTER8 0xb08 -#define CSR_MHPMCOUNTER9 0xb09 -#define CSR_MHPMCOUNTER10 0xb0a -#define CSR_MHPMCOUNTER11 0xb0b -#define CSR_MHPMCOUNTER12 0xb0c -#define CSR_MHPMCOUNTER13 0xb0d -#define CSR_MHPMCOUNTER14 0xb0e -#define CSR_MHPMCOUNTER15 0xb0f -#define CSR_MHPMCOUNTER16 0xb10 -#define CSR_MHPMCOUNTER17 0xb11 -#define CSR_MHPMCOUNTER18 0xb12 -#define CSR_MHPMCOUNTER19 0xb13 -#define CSR_MHPMCOUNTER20 0xb14 -#define CSR_MHPMCOUNTER21 0xb15 -#define CSR_MHPMCOUNTER22 0xb16 -#define CSR_MHPMCOUNTER23 0xb17 -#define CSR_MHPMCOUNTER24 0xb18 -#define CSR_MHPMCOUNTER25 0xb19 -#define CSR_MHPMCOUNTER26 0xb1a -#define CSR_MHPMCOUNTER27 0xb1b -#define CSR_MHPMCOUNTER28 0xb1c -#define CSR_MHPMCOUNTER29 0xb1d -#define CSR_MHPMCOUNTER30 0xb1e -#define CSR_MHPMCOUNTER31 0xb1f -#define CSR_MUCOUNTEREN 0x320 -#define CSR_MSCOUNTEREN 0x321 -#define CSR_MHPMEVENT3 0x323 -#define CSR_MHPMEVENT4 0x324 -#define CSR_MHPMEVENT5 0x325 -#define CSR_MHPMEVENT6 0x326 -#define CSR_MHPMEVENT7 0x327 -#define CSR_MHPMEVENT8 0x328 -#define CSR_MHPMEVENT9 0x329 -#define CSR_MHPMEVENT10 0x32a -#define CSR_MHPMEVENT11 0x32b -#define CSR_MHPMEVENT12 0x32c -#define CSR_MHPMEVENT13 0x32d -#define CSR_MHPMEVENT14 0x32e -#define CSR_MHPMEVENT15 0x32f -#define CSR_MHPMEVENT16 0x330 -#define CSR_MHPMEVENT17 0x331 -#define CSR_MHPMEVENT18 0x332 -#define CSR_MHPMEVENT19 0x333 -#define CSR_MHPMEVENT20 0x334 -#define CSR_MHPMEVENT21 0x335 -#define CSR_MHPMEVENT22 0x336 -#define CSR_MHPMEVENT23 0x337 -#define CSR_MHPMEVENT24 0x338 -#define CSR_MHPMEVENT25 0x339 -#define CSR_MHPMEVENT26 0x33a -#define CSR_MHPMEVENT27 0x33b -#define CSR_MHPMEVENT28 0x33c -#define CSR_MHPMEVENT29 0x33d -#define CSR_MHPMEVENT30 0x33e -#define CSR_MHPMEVENT31 0x33f -#define CSR_MVENDORID 0xf11 -#define CSR_MARCHID 0xf12 -#define CSR_MIMPID 0xf13 -#define CSR_MHARTID 0xf14 -#define CSR_CYCLEH 0xc80 -#define CSR_TIMEH 0xc81 -#define CSR_INSTRETH 0xc82 -#define CSR_HPMCOUNTER3H 0xc83 -#define CSR_HPMCOUNTER4H 0xc84 -#define CSR_HPMCOUNTER5H 0xc85 -#define CSR_HPMCOUNTER6H 0xc86 -#define CSR_HPMCOUNTER7H 0xc87 -#define CSR_HPMCOUNTER8H 0xc88 -#define CSR_HPMCOUNTER9H 0xc89 -#define CSR_HPMCOUNTER10H 0xc8a -#define CSR_HPMCOUNTER11H 0xc8b -#define CSR_HPMCOUNTER12H 0xc8c -#define CSR_HPMCOUNTER13H 0xc8d -#define CSR_HPMCOUNTER14H 0xc8e -#define CSR_HPMCOUNTER15H 0xc8f -#define CSR_HPMCOUNTER16H 0xc90 -#define CSR_HPMCOUNTER17H 0xc91 -#define CSR_HPMCOUNTER18H 0xc92 -#define CSR_HPMCOUNTER19H 0xc93 -#define CSR_HPMCOUNTER20H 0xc94 -#define CSR_HPMCOUNTER21H 0xc95 -#define CSR_HPMCOUNTER22H 0xc96 -#define CSR_HPMCOUNTER23H 0xc97 -#define CSR_HPMCOUNTER24H 0xc98 -#define CSR_HPMCOUNTER25H 0xc99 -#define CSR_HPMCOUNTER26H 0xc9a -#define CSR_HPMCOUNTER27H 0xc9b -#define CSR_HPMCOUNTER28H 0xc9c -#define CSR_HPMCOUNTER29H 0xc9d -#define CSR_HPMCOUNTER30H 0xc9e -#define CSR_HPMCOUNTER31H 0xc9f -#define CSR_MCYCLEH 0xb80 -#define CSR_MINSTRETH 0xb82 -#define CSR_MHPMCOUNTER3H 0xb83 -#define CSR_MHPMCOUNTER4H 0xb84 -#define CSR_MHPMCOUNTER5H 0xb85 -#define CSR_MHPMCOUNTER6H 0xb86 -#define CSR_MHPMCOUNTER7H 0xb87 -#define CSR_MHPMCOUNTER8H 0xb88 -#define CSR_MHPMCOUNTER9H 0xb89 -#define CSR_MHPMCOUNTER10H 0xb8a -#define CSR_MHPMCOUNTER11H 0xb8b -#define CSR_MHPMCOUNTER12H 0xb8c -#define CSR_MHPMCOUNTER13H 0xb8d -#define CSR_MHPMCOUNTER14H 0xb8e -#define CSR_MHPMCOUNTER15H 0xb8f -#define CSR_MHPMCOUNTER16H 0xb90 -#define CSR_MHPMCOUNTER17H 0xb91 -#define CSR_MHPMCOUNTER18H 0xb92 -#define CSR_MHPMCOUNTER19H 0xb93 -#define CSR_MHPMCOUNTER20H 0xb94 -#define CSR_MHPMCOUNTER21H 0xb95 -#define CSR_MHPMCOUNTER22H 0xb96 -#define CSR_MHPMCOUNTER23H 0xb97 -#define CSR_MHPMCOUNTER24H 0xb98 -#define CSR_MHPMCOUNTER25H 0xb99 -#define CSR_MHPMCOUNTER26H 0xb9a -#define CSR_MHPMCOUNTER27H 0xb9b -#define CSR_MHPMCOUNTER28H 0xb9c -#define CSR_MHPMCOUNTER29H 0xb9d -#define CSR_MHPMCOUNTER30H 0xb9e -#define CSR_MHPMCOUNTER31H 0xb9f - -/* mstatus bits */ +/* Floating point round mode */ +#define FSR_RD_SHIFT 5 +#define FSR_RD (0x7 << FSR_RD_SHIFT) + +/* Floating point accrued exception flags */ +#define FPEXC_NX 0x01 +#define FPEXC_UF 0x02 +#define FPEXC_OF 0x04 +#define FPEXC_DZ 0x08 +#define FPEXC_NV 0x10 + +/* Floating point status register bits */ +#define FSR_AEXC_SHIFT 0 +#define FSR_NVA (FPEXC_NV << FSR_AEXC_SHIFT) +#define FSR_OFA (FPEXC_OF << FSR_AEXC_SHIFT) +#define FSR_UFA (FPEXC_UF << FSR_AEXC_SHIFT) +#define FSR_DZA (FPEXC_DZ << FSR_AEXC_SHIFT) +#define FSR_NXA (FPEXC_NX << FSR_AEXC_SHIFT) +#define FSR_AEXC (FSR_NVA | FSR_OFA | FSR_UFA | FSR_DZA | FSR_NXA) + +/* Control and Status Registers */ + +/* User Trap Setup */ +#define CSR_USTATUS 0x000 +#define CSR_UIE 0x004 +#define CSR_UTVEC 0x005 + +/* User Trap Handling */ +#define CSR_USCRATCH 0x040 +#define CSR_UEPC 0x041 +#define CSR_UCAUSE 0x042 +#define CSR_UTVAL 0x043 +#define CSR_UIP 0x044 + +/* User Floating-Point CSRs */ +#define CSR_FFLAGS 0x001 +#define CSR_FRM 0x002 +#define CSR_FCSR 0x003 + +/* User Timers and Counters */ +#define CSR_CYCLE 0xc00 +#define CSR_TIME 0xc01 +#define CSR_INSTRET 0xc02 +#define CSR_HPMCOUNTER3 0xc03 +#define CSR_HPMCOUNTER4 0xc04 +#define CSR_HPMCOUNTER5 0xc05 +#define CSR_HPMCOUNTER6 0xc06 +#define CSR_HPMCOUNTER7 0xc07 +#define CSR_HPMCOUNTER8 0xc08 +#define CSR_HPMCOUNTER9 0xc09 +#define CSR_HPMCOUNTER10 0xc0a +#define CSR_HPMCOUNTER11 0xc0b +#define CSR_HPMCOUNTER12 0xc0c +#define CSR_HPMCOUNTER13 0xc0d +#define CSR_HPMCOUNTER14 0xc0e +#define CSR_HPMCOUNTER15 0xc0f +#define CSR_HPMCOUNTER16 0xc10 +#define CSR_HPMCOUNTER17 0xc11 +#define CSR_HPMCOUNTER18 0xc12 +#define CSR_HPMCOUNTER19 0xc13 +#define CSR_HPMCOUNTER20 0xc14 +#define CSR_HPMCOUNTER21 0xc15 +#define CSR_HPMCOUNTER22 0xc16 +#define CSR_HPMCOUNTER23 0xc17 +#define CSR_HPMCOUNTER24 0xc18 +#define CSR_HPMCOUNTER25 0xc19 +#define CSR_HPMCOUNTER26 0xc1a +#define CSR_HPMCOUNTER27 0xc1b +#define CSR_HPMCOUNTER28 0xc1c +#define CSR_HPMCOUNTER29 0xc1d +#define CSR_HPMCOUNTER30 0xc1e +#define CSR_HPMCOUNTER31 0xc1f +#define CSR_CYCLEH 0xc80 +#define CSR_TIMEH 0xc81 +#define CSR_INSTRETH 0xc82 +#define CSR_HPMCOUNTER3H 0xc83 +#define CSR_HPMCOUNTER4H 0xc84 +#define CSR_HPMCOUNTER5H 0xc85 +#define CSR_HPMCOUNTER6H 0xc86 +#define CSR_HPMCOUNTER7H 0xc87 +#define CSR_HPMCOUNTER8H 0xc88 +#define CSR_HPMCOUNTER9H 0xc89 +#define CSR_HPMCOUNTER10H 0xc8a +#define CSR_HPMCOUNTER11H 0xc8b +#define CSR_HPMCOUNTER12H 0xc8c +#define CSR_HPMCOUNTER13H 0xc8d +#define CSR_HPMCOUNTER14H 0xc8e +#define CSR_HPMCOUNTER15H 0xc8f +#define CSR_HPMCOUNTER16H 0xc90 +#define CSR_HPMCOUNTER17H 0xc91 +#define CSR_HPMCOUNTER18H 0xc92 +#define CSR_HPMCOUNTER19H 0xc93 +#define CSR_HPMCOUNTER20H 0xc94 +#define CSR_HPMCOUNTER21H 0xc95 +#define CSR_HPMCOUNTER22H 0xc96 +#define CSR_HPMCOUNTER23H 0xc97 +#define CSR_HPMCOUNTER24H 0xc98 +#define CSR_HPMCOUNTER25H 0xc99 +#define CSR_HPMCOUNTER26H 0xc9a +#define CSR_HPMCOUNTER27H 0xc9b +#define CSR_HPMCOUNTER28H 0xc9c +#define CSR_HPMCOUNTER29H 0xc9d +#define CSR_HPMCOUNTER30H 0xc9e +#define CSR_HPMCOUNTER31H 0xc9f + +/* Machine Timers and Counters */ +#define CSR_MCYCLE 0xb00 +#define CSR_MINSTRET 0xb02 +#define CSR_MCYCLEH 0xb80 +#define CSR_MINSTRETH 0xb82 + +/* Machine Information Registers */ +#define CSR_MVENDORID 0xf11 +#define CSR_MARCHID 0xf12 +#define CSR_MIMPID 0xf13 +#define CSR_MHARTID 0xf14 + +/* Machine Trap Setup */ +#define CSR_MSTATUS 0x300 +#define CSR_MISA 0x301 +#define CSR_MEDELEG 0x302 +#define CSR_MIDELEG 0x303 +#define CSR_MIE 0x304 +#define CSR_MTVEC 0x305 +#define CSR_MCOUNTEREN 0x306 + +/* Legacy Counter Setup (priv v1.9.1) */ +#define CSR_MUCOUNTEREN 0x320 +#define CSR_MSCOUNTEREN 0x321 + +/* Machine Trap Handling */ +#define CSR_MSCRATCH 0x340 +#define CSR_MEPC 0x341 +#define CSR_MCAUSE 0x342 +#define CSR_MBADADDR 0x343 +#define CSR_MIP 0x344 + +/* Supervisor Trap Setup */ +#define CSR_SSTATUS 0x100 +#define CSR_SIE 0x104 +#define CSR_STVEC 0x105 +#define CSR_SCOUNTEREN 0x106 + +/* Supervisor Trap Handling */ +#define CSR_SSCRATCH 0x140 +#define CSR_SEPC 0x141 +#define CSR_SCAUSE 0x142 +#define CSR_SBADADDR 0x143 +#define CSR_SIP 0x144 + +/* Supervisor Protection and Translation */ +#define CSR_SPTBR 0x180 +#define CSR_SATP 0x180 + +/* Physical Memory Protection */ +#define CSR_PMPCFG0 0x3a0 +#define CSR_PMPCFG1 0x3a1 +#define CSR_PMPCFG2 0x3a2 +#define CSR_PMPCFG3 0x3a3 +#define CSR_PMPADDR0 0x3b0 +#define CSR_PMPADDR1 0x3b1 +#define CSR_PMPADDR2 0x3b2 +#define CSR_PMPADDR3 0x3b3 +#define CSR_PMPADDR4 0x3b4 +#define CSR_PMPADDR5 0x3b5 +#define CSR_PMPADDR6 0x3b6 +#define CSR_PMPADDR7 0x3b7 +#define CSR_PMPADDR8 0x3b8 +#define CSR_PMPADDR9 0x3b9 +#define CSR_PMPADDR10 0x3ba +#define CSR_PMPADDR11 0x3bb +#define CSR_PMPADDR12 0x3bc +#define CSR_PMPADDR13 0x3bd +#define CSR_PMPADDR14 0x3be +#define CSR_PMPADDR15 0x3bf + +/* Debug/Trace Registers (shared with Debug Mode) */ +#define CSR_TSELECT 0x7a0 +#define CSR_TDATA1 0x7a1 +#define CSR_TDATA2 0x7a2 +#define CSR_TDATA3 0x7a3 + +/* Debug Mode Registers */ +#define CSR_DCSR 0x7b0 +#define CSR_DPC 0x7b1 +#define CSR_DSCRATCH 0x7b2 + +/* Performance Counters */ +#define CSR_MHPMCOUNTER3 0xb03 +#define CSR_MHPMCOUNTER4 0xb04 +#define CSR_MHPMCOUNTER5 0xb05 +#define CSR_MHPMCOUNTER6 0xb06 +#define CSR_MHPMCOUNTER7 0xb07 +#define CSR_MHPMCOUNTER8 0xb08 +#define CSR_MHPMCOUNTER9 0xb09 +#define CSR_MHPMCOUNTER10 0xb0a +#define CSR_MHPMCOUNTER11 0xb0b +#define CSR_MHPMCOUNTER12 0xb0c +#define CSR_MHPMCOUNTER13 0xb0d +#define CSR_MHPMCOUNTER14 0xb0e +#define CSR_MHPMCOUNTER15 0xb0f +#define CSR_MHPMCOUNTER16 0xb10 +#define CSR_MHPMCOUNTER17 0xb11 +#define CSR_MHPMCOUNTER18 0xb12 +#define CSR_MHPMCOUNTER19 0xb13 +#define CSR_MHPMCOUNTER20 0xb14 +#define CSR_MHPMCOUNTER21 0xb15 +#define CSR_MHPMCOUNTER22 0xb16 +#define CSR_MHPMCOUNTER23 0xb17 +#define CSR_MHPMCOUNTER24 0xb18 +#define CSR_MHPMCOUNTER25 0xb19 +#define CSR_MHPMCOUNTER26 0xb1a +#define CSR_MHPMCOUNTER27 0xb1b +#define CSR_MHPMCOUNTER28 0xb1c +#define CSR_MHPMCOUNTER29 0xb1d +#define CSR_MHPMCOUNTER30 0xb1e +#define CSR_MHPMCOUNTER31 0xb1f +#define CSR_MHPMEVENT3 0x323 +#define CSR_MHPMEVENT4 0x324 +#define CSR_MHPMEVENT5 0x325 +#define CSR_MHPMEVENT6 0x326 +#define CSR_MHPMEVENT7 0x327 +#define CSR_MHPMEVENT8 0x328 +#define CSR_MHPMEVENT9 0x329 +#define CSR_MHPMEVENT10 0x32a +#define CSR_MHPMEVENT11 0x32b +#define CSR_MHPMEVENT12 0x32c +#define CSR_MHPMEVENT13 0x32d +#define CSR_MHPMEVENT14 0x32e +#define CSR_MHPMEVENT15 0x32f +#define CSR_MHPMEVENT16 0x330 +#define CSR_MHPMEVENT17 0x331 +#define CSR_MHPMEVENT18 0x332 +#define CSR_MHPMEVENT19 0x333 +#define CSR_MHPMEVENT20 0x334 +#define CSR_MHPMEVENT21 0x335 +#define CSR_MHPMEVENT22 0x336 +#define CSR_MHPMEVENT23 0x337 +#define CSR_MHPMEVENT24 0x338 +#define CSR_MHPMEVENT25 0x339 +#define CSR_MHPMEVENT26 0x33a +#define CSR_MHPMEVENT27 0x33b +#define CSR_MHPMEVENT28 0x33c +#define CSR_MHPMEVENT29 0x33d +#define CSR_MHPMEVENT30 0x33e +#define CSR_MHPMEVENT31 0x33f +#define CSR_MHPMCOUNTER3H 0xb83 +#define CSR_MHPMCOUNTER4H 0xb84 +#define CSR_MHPMCOUNTER5H 0xb85 +#define CSR_MHPMCOUNTER6H 0xb86 +#define CSR_MHPMCOUNTER7H 0xb87 +#define CSR_MHPMCOUNTER8H 0xb88 +#define CSR_MHPMCOUNTER9H 0xb89 +#define CSR_MHPMCOUNTER10H 0xb8a +#define CSR_MHPMCOUNTER11H 0xb8b +#define CSR_MHPMCOUNTER12H 0xb8c +#define CSR_MHPMCOUNTER13H 0xb8d +#define CSR_MHPMCOUNTER14H 0xb8e +#define CSR_MHPMCOUNTER15H 0xb8f +#define CSR_MHPMCOUNTER16H 0xb90 +#define CSR_MHPMCOUNTER17H 0xb91 +#define CSR_MHPMCOUNTER18H 0xb92 +#define CSR_MHPMCOUNTER19H 0xb93 +#define CSR_MHPMCOUNTER20H 0xb94 +#define CSR_MHPMCOUNTER21H 0xb95 +#define CSR_MHPMCOUNTER22H 0xb96 +#define CSR_MHPMCOUNTER23H 0xb97 +#define CSR_MHPMCOUNTER24H 0xb98 +#define CSR_MHPMCOUNTER25H 0xb99 +#define CSR_MHPMCOUNTER26H 0xb9a +#define CSR_MHPMCOUNTER27H 0xb9b +#define CSR_MHPMCOUNTER28H 0xb9c +#define CSR_MHPMCOUNTER29H 0xb9d +#define CSR_MHPMCOUNTER30H 0xb9e +#define CSR_MHPMCOUNTER31H 0xb9f + +/* mstatus CSR bits */ #define MSTATUS_UIE 0x00000001 #define MSTATUS_SIE 0x00000002 #define MSTATUS_HIE 0x00000004 @@ -276,7 +317,7 @@ #define MSTATUS_SD MSTATUS64_SD #endif -/* sstatus bits */ +/* sstatus CSR bits */ #define SSTATUS_UIE 0x00000001 #define SSTATUS_SIE 0x00000002 #define SSTATUS_UPIE 0x00000010 @@ -297,83 +338,71 @@ #define SSTATUS_SD SSTATUS64_SD #endif -/* irqs */ -#define MIP_SSIP (1 << IRQ_S_SOFT) -#define MIP_HSIP (1 << IRQ_H_SOFT) -#define MIP_MSIP (1 << IRQ_M_SOFT) -#define MIP_STIP (1 << IRQ_S_TIMER) -#define MIP_HTIP (1 << IRQ_H_TIMER) -#define MIP_MTIP (1 << IRQ_M_TIMER) -#define MIP_SEIP (1 << IRQ_S_EXT) -#define MIP_HEIP (1 << IRQ_H_EXT) -#define MIP_MEIP (1 << IRQ_M_EXT) - -#define SIP_SSIP MIP_SSIP -#define SIP_STIP MIP_STIP -#define SIP_SEIP MIP_SEIP - +/* Privilege modes */ #define PRV_U 0 #define PRV_S 1 #define PRV_H 2 #define PRV_M 3 -/* privileged ISA 1.9.1 VM modes (mstatus.vm) */ -#define VM_1_09_MBARE 0 -#define VM_1_09_MBB 1 -#define VM_1_09_MBBID 2 -#define VM_1_09_SV32 8 -#define VM_1_09_SV39 9 -#define VM_1_09_SV48 10 - -/* privileged ISA 1.10.0 VM modes (satp.mode) */ -#define VM_1_10_MBARE 0 -#define VM_1_10_SV32 1 -#define VM_1_10_SV39 8 -#define VM_1_10_SV48 9 -#define VM_1_10_SV57 10 -#define VM_1_10_SV64 11 - -/* privileged ISA interrupt causes */ -#define IRQ_U_SOFT 0 /* since: priv-1.10 */ -#define IRQ_S_SOFT 1 -#define IRQ_H_SOFT 2 /* until: priv-1.9.1 */ -#define IRQ_M_SOFT 3 /* until: priv-1.9.1 */ -#define IRQ_U_TIMER 4 /* since: priv-1.10 */ -#define IRQ_S_TIMER 5 -#define IRQ_H_TIMER 6 /* until: priv-1.9.1 */ -#define IRQ_M_TIMER 7 /* until: priv-1.9.1 */ -#define IRQ_U_EXT 8 /* since: priv-1.10 */ -#define IRQ_S_EXT 9 -#define IRQ_H_EXT 10 /* until: priv-1.9.1 */ -#define IRQ_M_EXT 11 /* until: priv-1.9.1 */ -#define IRQ_X_COP 12 /* non-standard */ - -/* Default addresses */ -#define DEFAULT_RSTVEC 0x00001000 - -/* RV32 satp field masks */ -#define SATP32_MODE 0x80000000 -#define SATP32_ASID 0x7fc00000 -#define SATP32_PPN 0x003fffff - -/* RV64 satp field masks */ -#define SATP64_MODE 0xF000000000000000ULL -#define SATP64_ASID 0x0FFFF00000000000ULL -#define SATP64_PPN 0x00000FFFFFFFFFFFULL +/* RV32 satp CSR field masks */ +#define SATP32_MODE 0x80000000 +#define SATP32_ASID 0x7fc00000 +#define SATP32_PPN 0x003fffff + +/* RV64 satp CSR field masks */ +#define SATP64_MODE 0xF000000000000000ULL +#define SATP64_ASID 0x0FFFF00000000000ULL +#define SATP64_PPN 0x00000FFFFFFFFFFFULL #if defined(TARGET_RISCV32) -#define SATP_MODE SATP32_MODE -#define SATP_ASID SATP32_ASID -#define SATP_PPN SATP32_PPN +#define SATP_MODE SATP32_MODE +#define SATP_ASID SATP32_ASID +#define SATP_PPN SATP32_PPN #endif #if defined(TARGET_RISCV64) -#define SATP_MODE SATP64_MODE -#define SATP_ASID SATP64_ASID -#define SATP_PPN SATP64_PPN +#define SATP_MODE SATP64_MODE +#define SATP_ASID SATP64_ASID +#define SATP_PPN SATP64_PPN #endif -/* RISCV Exception Codes */ -#define EXCP_NONE -1 /* not a real RISCV exception code */ +/* VM modes (mstatus.vm) privileged ISA 1.9.1 */ +#define VM_1_09_MBARE 0 +#define VM_1_09_MBB 1 +#define VM_1_09_MBBID 2 +#define VM_1_09_SV32 8 +#define VM_1_09_SV39 9 +#define VM_1_09_SV48 10 + +/* VM modes (satp.mode) privileged ISA 1.10 */ +#define VM_1_10_MBARE 0 +#define VM_1_10_SV32 1 +#define VM_1_10_SV39 8 +#define VM_1_10_SV48 9 +#define VM_1_10_SV57 10 +#define VM_1_10_SV64 11 + +/* Page table entry (PTE) fields */ +#define PTE_V 0x001 /* Valid */ +#define PTE_R 0x002 /* Read */ +#define PTE_W 0x004 /* Write */ +#define PTE_X 0x008 /* Execute */ +#define PTE_U 0x010 /* User */ +#define PTE_G 0x020 /* Global */ +#define PTE_A 0x040 /* Accessed */ +#define PTE_D 0x080 /* Dirty */ +#define PTE_SOFT 0x300 /* Reserved for Software */ + +/* Page table PPN shift amount */ +#define PTE_PPN_SHIFT 10 + +/* Leaf page shift amount */ +#define PGSHIFT 12 + +/* Default Reset Vector adress */ +#define DEFAULT_RSTVEC 0x1000 + +/* Exception causes */ +#define EXCP_NONE -1 /* sentinel value */ #define RISCV_EXCP_INST_ADDR_MIS 0x0 #define RISCV_EXCP_INST_ACCESS_FAULT 0x1 #define RISCV_EXCP_ILLEGAL_INST 0x2 @@ -382,9 +411,7 @@ #define RISCV_EXCP_LOAD_ACCESS_FAULT 0x5 #define RISCV_EXCP_STORE_AMO_ADDR_MIS 0x6 #define RISCV_EXCP_STORE_AMO_ACCESS_FAULT 0x7 -#define RISCV_EXCP_U_ECALL 0x8 /* for convenience, report all - ECALLs as this, handler - fixes */ +#define RISCV_EXCP_U_ECALL 0x8 #define RISCV_EXCP_S_ECALL 0x9 #define RISCV_EXCP_H_ECALL 0xa #define RISCV_EXCP_M_ECALL 0xb @@ -395,15 +422,35 @@ #define RISCV_EXCP_INT_FLAG 0x80000000 #define RISCV_EXCP_INT_MASK 0x7fffffff -/* page table entry (PTE) fields */ -#define PTE_V 0x001 /* Valid */ -#define PTE_R 0x002 /* Read */ -#define PTE_W 0x004 /* Write */ -#define PTE_X 0x008 /* Execute */ -#define PTE_U 0x010 /* User */ -#define PTE_G 0x020 /* Global */ -#define PTE_A 0x040 /* Accessed */ -#define PTE_D 0x080 /* Dirty */ -#define PTE_SOFT 0x300 /* Reserved for Software */ - -#define PTE_PPN_SHIFT 10 +/* Interrupt causes */ +#define IRQ_U_SOFT 0 +#define IRQ_S_SOFT 1 +#define IRQ_H_SOFT 2 /* reserved */ +#define IRQ_M_SOFT 3 +#define IRQ_U_TIMER 4 +#define IRQ_S_TIMER 5 +#define IRQ_H_TIMER 6 /* reserved */ +#define IRQ_M_TIMER 7 +#define IRQ_U_EXT 8 +#define IRQ_S_EXT 9 +#define IRQ_H_EXT 10 /* reserved */ +#define IRQ_M_EXT 11 + +/* mip masks */ +#define MIP_USIP (1 << IRQ_U_SOFT) +#define MIP_SSIP (1 << IRQ_S_SOFT) +#define MIP_HSIP (1 << IRQ_H_SOFT) +#define MIP_MSIP (1 << IRQ_M_SOFT) +#define MIP_UTIP (1 << IRQ_U_TIMER) +#define MIP_STIP (1 << IRQ_S_TIMER) +#define MIP_HTIP (1 << IRQ_H_TIMER) +#define MIP_MTIP (1 << IRQ_M_TIMER) +#define MIP_UEIP (1 << IRQ_U_EXT) +#define MIP_SEIP (1 << IRQ_S_EXT) +#define MIP_HEIP (1 << IRQ_H_EXT) +#define MIP_MEIP (1 << IRQ_M_EXT) + +/* sip masks */ +#define SIP_SSIP MIP_SSIP +#define SIP_STIP MIP_STIP +#define SIP_SEIP MIP_SEIP diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 495390ab1c..3726299d4a 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -90,7 +90,7 @@ void csr_write_helper(CPURISCVState *env, target_ulong val_to_write, target_ulong csrno) { #ifndef CONFIG_USER_ONLY - uint64_t delegable_ints = MIP_SSIP | MIP_STIP | MIP_SEIP | (1 << IRQ_X_COP); + uint64_t delegable_ints = MIP_SSIP | MIP_STIP | MIP_SEIP; uint64_t all_ints = delegable_ints | MIP_MSIP | MIP_MTIP; #endif From patchwork Thu Oct 11 20:32:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637405 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7FD5269B1 for ; Thu, 11 Oct 2018 20:38:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6BEF52C111 for ; Thu, 11 Oct 2018 20:38:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FD7F2C114; Thu, 11 Oct 2018 20:38:59 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 435782C113 for ; Thu, 11 Oct 2018 20:38:58 +0000 (UTC) Received: from localhost ([::1]:37015 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhjV-0003K3-IZ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:38:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39764) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhdC-0006wn-T4 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhd6-0006sY-Us for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:25 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29209) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhd4-0006me-3w for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32: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=1539289938; x=1570825938; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=FWFhlRipgVptiv8XyRTEYSxZ4yqNvS6tq0P7TnxVfR4=; b=FY8pGEiBRVj3DKvQH6QpSeGyYoL66NxhL6bfkAkpM7kQ1J6HQOo5W2XM l13OmJ9e42RNti0P8MJQ4LTtIVkiMtvog0mwobmTthoiHWKq+4VOEzd/O mgFR3DGCfZDp3q1rU+hmCmd6u/cCkUubvxy15biFpFnM1PYxMOi3l0zRq JF+yB3VaIj4zuLyMoIpdkTD2lmqjlF8oje2StGyuQFDan34SDnXoNPzRv Bbcw8e5NaM8UjE5OYovY1dDbq2Z2SXFb1jyjLVcQFp0huK6pDZ3waWrpX muVJHzVmqrP84e3s4jpv/XgCSdihcoIKR9ZfazWckAGTilAJ/ULUa7dL7 g==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781689" Received: from mail-by2nam03lp0049.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) ([216.32.180.49]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:32:13 +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=FWFhlRipgVptiv8XyRTEYSxZ4yqNvS6tq0P7TnxVfR4=; b=dEdWClvAA1MKW+Df7drl4Y/MFOCIk2WvYkiCqFzMmYRqca8ZYccGWJQ03pgx2ZD8Q7FFV2f0qIwYFPgU4mXWKgYXVhqxaFWReTZOFTL7Qy8/dktpWyKhYPIfYn2W5SRh+JdgkjKNnV1y+fueZxedImO+NoEzOg6FkFqw5NrxtvE= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:32:11 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:32:11 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 09/10] RISC-V: Add missing free for plic_hart_config Thread-Index: AQHUYaF859Ze9JttAU2NfL52fwiUpA== Date: Thu, 11 Oct 2018 20:32:11 +0000 Message-ID: <20181011203115.18666-10-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:agIvacvpC1mmofzXopXDKUfjbHFZXlQCPscb3op6i/bkoIqrWN8IbVjD1Qr3CApx0QATnxmcCxPJ72nKaPsAQh9/pz6AJXhSOO1MqgUGUxMyTB3O6HQU42qBt60I9BR4R4202WmsvwoyzkyBsHdQ7DcplBUY9U4mtkRYsXsixShg4wFIFyYLSXN87NK5HL0/k0qnyaII5tMamWyIUqeEXLavgzrGDpjFSIrY4TfaDdNyuoD12sNZuv1jgDcRqawmhDHNhNVAJDCvwTsFBF3e79WvCHTUglb+bcUV27AJ60irJ+Pghw1xXxjtiT+GlW8N5uz8wkwPViTOR4++4pQeN0fR1sDcMwgd9Hli0+vEUn0QWW5gg/pSPgLAC0w89znY66nvPOa29T/p3sJp6WYfBQDmBK2qm0TvWmjoSWqcNK+3cF3dff+dxpiU23xNCGoi2sYaDzZjO8FATfOVxQ41RA==; 5:qi+HfDTsqPK1eNiCRViHnDozorhxmfbahtWXJJPj1ORg+8a1MZMrWNwliPwuxrFUAiwDj/zdhgBVx/wsbD1QDwy0I54QggIBvnTOngXFBRnCpy6zcoGvpJdDby7wlp73KDZjfAdxPhcuGN1kcYmF1fu888Mh6yIB0Q1StaiOiew=; 7:8lgkyTwpY+aPDe3CbBS0Z8OKSoDX2OmVWju/pHbruDJVm2qyPdxjeocE67hrdxpC1ng8qpRoDy0nWZ1K/okt+3pMxxZ6s0Z9LcdNBXkIaRsrZQSYAHuEStCS40Zo2c2Jd4N1bmaZ4As7I/+hdvzV86Pk7DoSAfOwsHUPpTfbLZ4XoyowmhB5sawrvWMqE0hUQRiilmuKiRUPLB+RnVtr+x7YrrlvnB0fpbIuD9EY0kKeRShOWproSYqQccYzm5Kw x-ms-office365-filtering-correlation-id: 57c85703-9d5b-47e1-d928-08d62fb89f00 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(6506007)(86362001)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: k5LLW9sJBTtsF6BfkvOkG9kiKiGgylvemp0c2GC/Lvg7hf5UE8IoUC5O6qX+xWQJXWinWjicW7K8ZvI3GptzaqsVJioo6Xu5flqd9+QRBuBoWpolW4ZLqVIAvXHtOhty8Ej0IT0I4VZ+3BCbWqIPlTh9b83NyspHbAf0Bb+1oiBmJTiICKzp0rb4mh+vJWY3Jgi3dfWNMs0UOgfv5VGZUW66MRWPdHxZXVO/GNXFI9noHeHHQCjt3BVzsXLsnri8PuRGE2SiB33uojGnmcHJAUo6Ip2ykSAw9+VLf27mH7G3pmHx2sn6ephOIr24Krbz7ll6p9kXgkxq3Qsm38CE4YZDMlpQEUubxV08XaV7onI= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <6C72D3A98312064CB875AE9ED8314FB7@namprd04.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57c85703-9d5b-47e1-d928-08d62fb89f00 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:32:11.2789 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 09/10] RISC-V: Add missing free for plic_hart_config 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: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , "qemu-devel@nongnu.org" , Michael Clark , Alistair Francis Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Clark Cc: Palmer Dabbelt Cc: Sagar Karandikar Cc: Bastian Koppelmann Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Palmer Dabbelt Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 6d91810bcf..3f30eb74d2 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -457,6 +457,8 @@ static void riscv_virt_board_init(MachineState *machine) serial_mm_init(system_memory, memmap[VIRT_UART0].base, 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193, serial_hd(0), DEVICE_LITTLE_ENDIAN); + + g_free(plic_hart_config); } static void riscv_virt_board_machine_init(MachineClass *mc) From patchwork Thu Oct 11 20:32:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10637411 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 345431508 for ; Thu, 11 Oct 2018 20:41:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 21F7F2C130 for ; Thu, 11 Oct 2018 20:41:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 163032C132; Thu, 11 Oct 2018 20:41:07 +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.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 957DA2C130 for ; Thu, 11 Oct 2018 20:41:06 +0000 (UTC) Received: from localhost ([::1]:37029 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhlZ-0004od-VQ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 11 Oct 2018 16:41:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39782) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAhdE-000707-Ek for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAhd7-0006tC-S7 for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:26 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:29214) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAhd6-0006qy-GQ for qemu-devel@nongnu.org; Thu, 11 Oct 2018 16:32:20 -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=1539289940; x=1570825940; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=d3rTqeYi/h0aavquOaKu2RfMkTOOaLLF0UqTKU/vcKQ=; b=Pl0ep1V9bMeiIev4lGFGqFV4qygSnAngc/4YaDKg+Vf2FZJ0Mfgz/iXb 1ir0nmiLiYejzMHoGp7n5PqhFtoHDCMFgQRUxe6u9siY8mU25HyTiNN1Z OtJxQ37kzszlsWPGxs1v+Y2szuaG+BPW2zIxg1VP6tMrSccr5DzYJrE9w Vjy79qAyKxUXAbKitrSFa7pdrofx+vjVs+vQUnIWclWoU8WIfK1dS2EFC Sm/UrwOWcRDTPF5XqVx9wB9OF8Xcw8UGKOW79f/hyXXsfC+aXgN40DoNk NvfSeAdl35eks3hv0PwBnZj8vfflJhIAtpd4qpJ67TT6MHH2EmMymtov7 w==; X-IronPort-AV: E=Sophos;i="5.54,369,1534780800"; d="scan'208";a="91781692" Received: from mail-by2nam03lp0053.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) ([216.32.180.53]) by ob1.hgst.iphmx.com with ESMTP; 12 Oct 2018 04:32:16 +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=d3rTqeYi/h0aavquOaKu2RfMkTOOaLLF0UqTKU/vcKQ=; b=A/UehNiVB5AV5SsenEAGF1xX9ut9iMZ0CLWAgQwznP9JwsFvtf7tI5dglozrXtm0cojkczbLcFrPtNH+mNYXLbpTvCN37rajKT/NRxgCSwGLDd1LOcfHai/XZWaQZMYVc2LsGZTt7E2DbTvVt69h3Yh+EdibT+jykIGQ9JdPCYg= Received: from CY4PR04MB0392.namprd04.prod.outlook.com (10.173.188.145) by CY4PR04MB1224.namprd04.prod.outlook.com (10.173.193.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Thu, 11 Oct 2018 20:32:15 +0000 Received: from CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22]) by CY4PR04MB0392.namprd04.prod.outlook.com ([fe80::ddab:bdc2:6bc7:6d22%6]) with mapi id 15.20.1228.020; Thu, 11 Oct 2018 20:32:15 +0000 From: Alistair Francis To: "peter.maydell@linaro.org" Thread-Topic: [PULL 10/10] RISC-V: Don't add NULL bootargs to device-tree Thread-Index: AQHUYaF/unejNIr0yE+1H0XtMD3adg== Date: Thu, 11 Oct 2018 20:32:15 +0000 Message-ID: <20181011203115.18666-11-alistair.francis@wdc.com> References: <20181011203115.18666-1-alistair.francis@wdc.com> In-Reply-To: <20181011203115.18666-1-alistair.francis@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 x-clientproxiedby: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To CY4PR04MB0392.namprd04.prod.outlook.com (2603:10b6:903:b1::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR04MB1224; 6:VlGyeTn71lLSvEJQGQd3dYrC4GSr0GGtqytY6t2uzH6ausj1O/vju11E1WulHiIFG7dMjXGxqb6fQujklJg6HO+9XniERbVPmm/eB6LZwgF8DMDcSr/6gnLsy9BcBkKZzyFIXsTl5xTB8/7xhXZr4uOcGlWx65dzh03Q8HYdLQO9jDnWmCwjVxz1m5xSfGIhPeTEZ+Yjziw8FFnLTNtfrdXINBYpmPPpPY0Qcna4Y9En4f/D40qFf1xXgUbc1yLmi/hWpHghZKNVFKYr4hnRLdZDOueenSKKaaIDPiFdjevaaA/8PDCZoxgLEshUQIK7ylrN/8xXFAvzm4HL35q7hKvwKuczNJbpZ50mpLPreGPwkGiyYgTSrCXfQqawLYhYyk6cQ+2klye8YroaEmOZm/lkhUx7SpCNW4/uyItBqVgBfRURpPW5t8CIRQEt8g7LS6DMOFMAetEr2YPlkbCZIw==; 5:k7rk+VdTTQkjXLJuvjA9pTH+1DMQbIye9pNi5gjZd3GZshLbhNxRNAUuVwqrgloi0bF02NPntQ9ZT8RJfvPFHcxnKbgH7Eg8/IsAANvH2jUx/gYfp15bI/nPGl1VecYy7Omgr1tnnrmxCddxvUAXdIQBvU/OUrk9ABZKlsRSLNw=; 7:x/8NWDvY8LyKXvVzAFBn2qQ03Ck2eppefHydBp4mgP8Thu6iizJtKWVvCIZ7Vv1G1SEQEbsGL32/mkGnA791v+iQbbsyZiZqJHH3k4WN7t491e1fVLvV0cHD29+1usEQvVz3ZGt/BzHAUu/ycvFeFiL/vW6hYesDtw2KxyF1CibxR8PndFS00876d+Qj16LYQ3DBjEjWUAPsVgBkgHHTcwd9mqymlQPRB1nTTQmsn2sJzP2a0znh+htJ2SV2WWQ3 x-ms-office365-filtering-correlation-id: 4060b6bb-e239-46ae-aa3e-08d62fb8a15e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR04MB1224; x-ms-traffictypediagnostic: CY4PR04MB1224: wdcipoutbound: EOP-TRUE 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:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR04MB1224; BCL:0; PCL:0; RULEID:; SRVR:CY4PR04MB1224; x-forefront-prvs: 08220FA8D6 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(81156014)(8936002)(68736007)(36756003)(6506007)(86362001)(7736002)(6916009)(8676002)(105586002)(76176011)(2906002)(256004)(81166006)(50226002)(54906003)(5660300001)(5640700003)(6486002)(1076002)(4326008)(52116002)(486006)(11346002)(2900100001)(102836004)(2501003)(99286004)(2616005)(6436002)(478600001)(72206003)(44832011)(476003)(186003)(97736004)(2351001)(25786009)(71190400001)(53936002)(3846002)(14454004)(386003)(106356001)(316002)(6512007)(446003)(305945005)(71200400001)(26005)(66066001)(6116002)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR04MB1224; H:CY4PR04MB0392.namprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: G9Uw3pOXglqfAoajfkmk2qOq6Se4S5PCwGWnBkqh/TwWhjGKvvNOGIfVfA0ELgnVmhWx7Y0Ep4lsJH054p7xUUopRG80ibkf06UB47jaIGQfEQE5gJvkqhuuMG1MzTojjR+p5qloz1BAQeQsd+Gka8YYWOGKEkijAsF+VY5YXryyPwg5r7Vu1aMwgW0SEraTo8AHWKEGzxTCx+K5R+4taSoHikcQuvn7OLFWV/Vks9Xl2EV+3nK93diSxoZI8BAOESeWKwD6uSH/5uxWv+xkeUiYeWCv+ciZKEB8UVhlFbemjMTztmRqHldY5351KrBaGdyp924RL/E8onfyzHsQeqKbHBAIsb+R/PAHs49paDM= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4060b6bb-e239-46ae-aa3e-08d62fb8a15e X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2018 20:32:15.2361 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB1224 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 Subject: [Qemu-devel] [PULL 10/10] RISC-V: Don't add NULL bootargs to device-tree 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: Alistair Francis , Michael Clark , Palmer Dabbelt , "qemu-devel@nongnu.org" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Clark Cc: Palmer Dabbelt Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Palmer Dabbelt Signed-off-by: Alistair Francis --- hw/riscv/sifive_u.c | 4 +++- hw/riscv/spike.c | 6 ++++-- hw/riscv/virt.c | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 4e273119c3..0c51c61082 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -259,7 +259,9 @@ static void create_fdt(SiFiveUState *s, const struct MemmapEntry *memmap, qemu_fdt_add_subnode(fdt, "/chosen"); qemu_fdt_setprop_string(fdt, "/chosen", "stdout-path", nodename); - qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + if (cmdline) { + qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + } g_free(nodename); } diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index be5ef85e81..8a712ed490 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -156,8 +156,10 @@ static void create_fdt(SpikeState *s, const struct MemmapEntry *memmap, g_free(cells); g_free(nodename); - qemu_fdt_add_subnode(fdt, "/chosen"); - qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + if (cmdline) { + qemu_fdt_add_subnode(fdt, "/chosen"); + qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + } } static void spike_v1_10_0_board_init(MachineState *machine) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 3f30eb74d2..62add47667 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -284,7 +284,9 @@ static void *create_fdt(RISCVVirtState *s, const struct MemmapEntry *memmap, qemu_fdt_add_subnode(fdt, "/chosen"); qemu_fdt_setprop_string(fdt, "/chosen", "stdout-path", nodename); - qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + if (cmdline) { + qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); + } g_free(nodename); return fdt;