From nobody Thu Oct 30 05:00:00 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1525470694046295.59293868599525; Fri, 4 May 2018 14:51:34 -0700 (PDT) Received: from localhost ([::1]:36571 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fEic0-0000zq-3l for importer@patchew.org; Fri, 04 May 2018 17:51:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44465) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fEh5U-0006iB-2E for qemu-devel@nongnu.org; Fri, 04 May 2018 16:13:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fEh5Q-0006or-Mj for qemu-devel@nongnu.org; Fri, 04 May 2018 16:13:51 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:20893) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1fEh5Q-0006nd-5A for qemu-devel@nongnu.org; Fri, 04 May 2018 16:13:48 -0400 Received: from mail-bl2nam02lp0085.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) ([207.46.163.85]) by ob1.hgst.iphmx.com with ESMTP; 05 May 2018 04:13:46 +0800 Received: from risc6-mainframe.int.fusionio.com (199.255.44.175) by BN6PR04MB0405.namprd04.prod.outlook.com (2603:10b6:404:91::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.735.16; Fri, 4 May 2018 20:13:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1525464828; x=1557000828; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=+DAyqI4bW6GafgrR+GdZNxcMiHSIw6Ki1JGXg8VWjsw=; b=rS6/rMGNQZQyqkeexXatKiaX0kIqK2FgrX7JP7Fa2uTolD6Jr520jMn9 156HTqNfNjyS/n8YJoGCyYDk6t1Bd31il1JQZ7u+YG/CLRnWDOVIeoi/a 7+XZGWHDhEVJX1seBpy4YeDCgQSMAXZtHR/b67myPDt9zaV3xSEPgAauw Tfk/4iLr8FqZfSHSy/lZRG6jGq+lxlcqlRAYcc2STQsjcHg4c6hMuFvKa Rh5vkbf64KAYg5SxlMDg3D0MXZVyFuxhZ8tFjB2U5F1j3dWyM7IEs7gyv rGrsdhmoJtyWpOQerC+nYtHqLOG/WuvN7MzR8paeiWbj31pEaa+qOllqW Q==; X-IronPort-AV: E=Sophos;i="5.49,363,1520870400"; d="scan'208";a="77264930" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oPeX2DBz0J6pgyalRUxR7ulszNwoBzpk42GAPGg0b+U=; b=NBfyHCChAKqBMmfw18mB3jFAcoz2lh/mgeYe4lB3ZVDmE5buSGadKT4u/h9ILRrUJ7xV+lNwT7+femS+hgN/aakH9OglYYp8f0x6W0WDrmcKVlfQ/fmALZ7KAhguKGwb8hqf50+5PBKsQpzHsp3BSPZRlS2sd7ujPUt2d7Pn1H0= From: Alistair Francis To: qemu-devel@nongnu.org Date: Fri, 4 May 2018 13:13:30 -0700 Message-Id: <5655a2ca4e77ca8a0ac7b83b011449989e013981.1525464177.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [199.255.44.175] X-ClientProxiedBy: CY4PR1201CA0008.namprd12.prod.outlook.com (2603:10b6:910:16::18) To BN6PR04MB0405.namprd04.prod.outlook.com (2603:10b6:404:91::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BN6PR04MB0405; X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0405; 3:Qj6KjgHNjpsi5oJjP7tb/ZscEli38nhUiWv0oD1IAqDlbtDR65/pKy7LLaf3YE7YDkQOzVZYHGCucdJ4s/BqW14C+CTNwlKoQ5SbtQyIJnvYb0ey44LyMevQJeZnTnr7bUFtYYNy0kkHSW0sxmI/MENlBSVfmBhRic0qBMWZOLttQtIJRa75p3r73S93lXR52d3BuY5tOimo/t5HMOaX4MlvZ2mP1igerWmxM/v+Vtyv5Ou7kvKRBuYNpbMfJiKd; 25:5fCEb1oDblOE1WuIbpaNu5AnB5kUuJGZF0R7KxZTNTyaoiDlNIn7nD6is8WiU6yVP5oLmaTHwerBY2VqtuYz3YoP+pxW408/Rg8oMPRmUpcTLlVWs6WBiCg4AnKcsyuq+AmTmcbgywNkJTIjOK4gXVJY9v7VAYLOfpxy7S2VoUtK4YdhKTaqD1Kha9Zh3bcrwAF30WoNgBqAuOEovu51APTfThy1u4naivqHCBRUC9QTafs3pqSBuYao3dtv6G5UOGNH2VAIBMgcvfJsRiF4DaCAqd7Sb1PAzkF1m7Q/7nLwekKSlY5ie0bN+wAEb1dRoRtKGO8Fjt4UiLnRqcMubw==; 31:nb2atnpYlXNudGujE4P/pXWVrGw0s7B+1RLgpgOT50zlPCC0JBEeTNQlpTyGheJJvta1/O5dkD52712w3StehGGp8DfY2w+FBlweXM8YKYyKZLTcxZziFrwxIubPHjebW18htPHr3eJsH/sSjljYhvv7jbSIDZWr+7YUKJ3JH8iFWHm3FhsD1WaGL83ntq3L+b2h2xRaFKjmECpRKE6uNmMU4FI/ThgVPwWXDb6vQzI= X-MS-TrafficTypeDiagnostic: BN6PR04MB0405: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0405; 20:6teIEdPovuwuxg2FRkKu5tKomKd0p6Cs4v9nQBs0O1xNrjLMLk6K2viIWqnlP0nrwRAZo+zFLOTYr/AK81TdR4KgISJNM5Y5Ch2NE6zExg2iq9uY9IInlIMdKNNGIj8l4O7rXiIAo6+5CUmtdq6x3sWoPkpWoioG6EA3nsA4dEv3tdtCQHnaNZ595EGEwqJJGQqf1i89SWOHstzZQCkPmpnGvXX9ZvWVx8Ykz/V+NUWow/T+1oGCotd2Sq638F/iEVWNtyayVSg5BUK3A98+rsZ5gCQKtQApluvWfa1Xk/DA0Ue0dYw74XZIBym8y6zwYOIM/fWFV3DycxypZloN4Cpcv/nUOb042O7j7nJt44CsvoH0yg1K9Z3SujyTJTSXLw3GuoHKOcTMJ5nSVClxastN3aGzlP/VDObGRD+dPeNvfgCsra8FZDd/Klef+G95S39eZpM9GZExqqBPW/u9qJfxXS9lhDE7V6BoyYavUCQJw59fPKWmSDw/cAJF6lYx; 4:Rn2cPRIyy+Z0171AHo7jwGFYcsyT713R1ZWlYVtcW0kf+1QxE4tuYXhKoiejAwWzKK4JgqSz/aXFncie9dKdVpRBvlmxu0EkuyMnxR88UzQR8JtYj4wksX5eF/X5BboLKGTNFNNJ65WeIgvHfKkZIDBIqj8yS+iPBZS+VuWIUbpu5zok2bKiN9/1X5Mh6A2FOGDo/Q9tWSozexf42Y7HmGF5nWsTvk2wFdv5VsfnXCzNBuwXQTMO8990Op+APfJwGXgWpVwOA7QAzsqjnLqBBYjw0/d9Uo0mEC+1+6kmDS9AVWSihKA85kv+qUY4nfav X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(21532816269658); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:BN6PR04MB0405; BCL:0; PCL:0; RULEID:; SRVR:BN6PR04MB0405; X-Forefront-PRVS: 06628F7CA4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(376002)(39380400002)(366004)(346002)(39860400002)(189003)(199004)(50466002)(105586002)(6916009)(68736007)(16586007)(2906002)(5660300001)(316002)(39060400002)(53936002)(4326008)(25786009)(48376002)(6512007)(106356001)(72206003)(2351001)(478600001)(2361001)(118296001)(36756003)(6486002)(8936002)(66066001)(26005)(97736004)(52116002)(51416003)(2616005)(6116002)(956004)(8676002)(3846002)(486006)(44832011)(476003)(81166006)(446003)(81156014)(11346002)(7736002)(6666003)(50226002)(186003)(6346003)(16526019)(86362001)(6506007)(76176011)(47776003)(386003)(59450400001)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR04MB0405; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR04MB0405; 23:qWgtE/mU9TBZDKQpPNJF6n2l8zNzeznCE8+y7vi8n?= =?us-ascii?Q?qiVxX6Pvv2WJRHkwV3UHm2BFgZ4DLs41TvpUvsBXdCyHiQ8mcyW59bQd9CxE?= =?us-ascii?Q?JBMtyfslXo+tjx6kpjJm6UOWdHHmr6y8NeM9YlQpQR7TER6t4QhWARk/lvfp?= =?us-ascii?Q?/A7c0dxzKqFDoHDt/h7RgiOTc7BQUNaZRSDZFcgw605ZfRm6oLhg9URNzZz1?= =?us-ascii?Q?EnGnYnjt3c2737sDGacyKk4WaKS5QkhP9K5TXaXN1lymysIRJsKO5jquiVSL?= =?us-ascii?Q?miGmkEn63i6BMKi0OMc7lNzup8R6n0OxcfdRUQcm3ijjmtLASYrpll/k96es?= =?us-ascii?Q?WJ4oGp78UR1Q3r+RW+RJ+QjvvVWxjeenRm67AplsYKh/9Su3xTTk92D9yR3s?= =?us-ascii?Q?7wBxxlpRXelpdsPeTanvhKjM42dSIvghLTeUhcORZ/x1yDeQebvp61joON+Q?= =?us-ascii?Q?qHDS8L9KfYJ5Ta4FTrGfj39zaA6G8xL3npTdx7drxEVBIMwXJGSQbhI/mX7a?= =?us-ascii?Q?N9e/733WiemsRZ/qZIRd0VZPu+g1Vea70AHFdxFQDVdqwtNX6NU2XP84E9NH?= =?us-ascii?Q?f9zsdsJ4aCJGSGshISTZ2kNidL4EkvsDwSINKSgzYg4cdMMmLz4Msie3GwfT?= =?us-ascii?Q?zO9ab2ApNhwMXkptywpBMS+yvTsUpX2UOFtRtc7H7eVMZzF1AV8TN9mCoWxp?= =?us-ascii?Q?MNIGHkIAsX3RjN+nBrnmFm5VOTsvQEPLIT6JjdxAoShM5VkdB4dkqKIsDJPq?= =?us-ascii?Q?rk/hJRQEfWK4CiIUQvjq6cjySiZ2nq9BE8fReZzFUjGuatQciuGMLaDANCH5?= =?us-ascii?Q?rKvVM6yOf/go4BD2kZOO7R0wzmstCwTDXjWmC5ljFONeKhFXwqKdF00u44Tc?= =?us-ascii?Q?JwscrAxj5swJi/yUimAJknW5lN+WbaMnZaHgNSg1nHeKt8ghKqHsEFaoVv8G?= =?us-ascii?Q?m0LHvopNo6LOskKEHJJCSmABQ/PpXUkRDc2FTQBRoXYzX9wNzOmfrZpRhPtc?= =?us-ascii?Q?bTnkKqrdcJCeXP1HBcwhgQhWCy7245GWoxZA82vCRHS9phCSTh9LXSWPmJ5F?= =?us-ascii?Q?9cySG0LmfizZ0kt4/eH5NHduTWcrov9MozXYD1zqplEREgHrGbFRXvznp9hZ?= =?us-ascii?Q?62DhDUu2anJTtL777eJdyqmpVO4Ss7qdml8LFkcq5CUkZpDsMGcI5gVayyYI?= =?us-ascii?Q?4MTA2FnU7qLNthl6aXxIijuMz8geqkxqIjozsL0jWqs9Vm3XE7rD0yqT9WEK?= =?us-ascii?Q?FcBVPXVrwgf3WhOeocrpw3NZf2XNwMOH8GAfV3GpxzPx5DeDAfw55/6Ei3Wp?= =?us-ascii?Q?tMT8Mb8s5wZTq7sc+VFlTtmkqErz4o4A0tpT3ANm6HHVpoF6DrBfHnfv55k/?= =?us-ascii?Q?S5yCw=3D=3D?= X-Microsoft-Antispam-Message-Info: wGWlRtLRK8ZSTVRErmR516TngBweu5w9MmVtbZ4tIul4XnAPgoV43c+HcMvIdaBp3HPc/7mUmi5y5bSe/8poGGYRJxZR5pftNJSWykni+A4Ig+ZXtu6nH2M/pn/TuetVL/xx8VDgHfi+rcJrNXcPJpRr/vjqfsRh4+mTvFuplgl5BSXA1SsZAgKhtYEGdiKH X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0405; 6:uKrrrxCPw7gh9o1ea6gF9PyVOblOk9DX9YoISmbmXenfLJXEYYqmDt0AJPFEyLEj4qCAXtOoL/94eOQvajtzPC0VSbT1+FHxrbGk5NEMVdYUfAcrkNqHv85mx6C853BYdQ54LhXcZSrgoFh4XpoMvmXbDfXov5BWzKZdzj1tokTyVG5dtFbYxNPrzLHOhfl+ezOnZ+SrnCXbJnxycom7bJTEOjavogK74Rq1crA0CGmgL5Cp/3TnVQQTS8yex9whv625s+FWKi9PxlcTEgqhCD/cbxMCkcLf1opos0WnbTz96xbFzpjqmSp2NUTR6fOe4uGzz7AfhH6QWryI7XCB1Cm+PcE44m06D/A1+uGVsyTFjQKl9PrGs1a6ksRCJqkeL8jOKhhs0LY277ins/IqhwP5EKiqBWi9xt/cHkPJRCo/G30jP8cZYDXVp2kb6fgoki8t3Fix0wZSpmeXTQsiPQ==; 5:Ok04Z/2xzAOzN5QGWcY2/Pbldkfc/Dv6iBssIomWXwKPpMW+lNxvADG9YF2mvz9CTa+d1ukTaRGGA/wuiTddMQ/uS/4kDmdECKrbUinR7RWa9rMV4kgmbFs9YCLF4UdzbdvkMzvsqVoTTJ1GrqSkdheJ9XuQUx6oHhZg0YS76IU=; 24:8MDxFypucR2uSvNMP1e6XoJSYfFFRKjztW5LtF34tHH/xsMcGU50/8uyQSoeijelZxzw0sjQ6TySM1MYiNMr4mW+F5IOtE3T9QZV6FexJvM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0405; 7:pQZoYmTfQkILXEZ5mS7iK2MISvHd3UXXqRwjPN3sxRgItJofr7FjmSE5iNn/e32fVE03wDryZm6ziw5yzHs4OIcquknUJg/WSUk76Hi2bwFPrf88n42gKipZ2k4NDkwVye5arF2N8viskqwK0CtTTrM77MIvm869tIk5k9mtdenkhsFWiqvcM/AKb5uPF0uQP+J2FCuIyUYMOtSDaymVyWK3zaOq4mVO3xmTZZlYU+zpludBS9fL2bkhmxckJkou; 20:1/flGrA+URGyqX/GgKVsoDgEJCsKBcJNqAJkf9BOgN9d5igTaRROzF9DKdNbXWPnJ9u19MtIiYuAgsZAKuNlk1OVl6jS7OvXXY7hkQ8S7qm9xP33VN826ELPaQtEFCsHbOnUMJs+Cg2LXM2nZ4waQc52+1vj1KFO/ek5jHN17AA= X-MS-Office365-Filtering-Correlation-Id: 68f1a44d-b83a-49e5-b8ac-08d5b1fb89a2 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2018 20:13:44.0738 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 68f1a44d-b83a-49e5-b8ac-08d5b1fb89a2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB0405 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 216.71.154.42 X-Mailman-Approved-At: Fri, 04 May 2018 17:46:56 -0400 Subject: [Qemu-devel] [PATCH v1 3/4] hw/riscv/sifive_u: Connect the Cadence GEM Ethernet 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: alistair23@gmail.com, mjc@sifive.com, palmer@sifive.com, alistair.francis@wdc.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Connect the Cadence GEM ethernet device. This also requires us to expose the plic interrupt lines. Signed-off-by: Alistair Francis --- default-configs/riscv32-softmmu.mak | 1 + default-configs/riscv64-softmmu.mak | 1 + hw/riscv/sifive_u.c | 29 +++++++++++++++++++++++++++++ include/hw/riscv/sifive_u.h | 6 +++++- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/default-configs/riscv32-softmmu.mak b/default-configs/riscv32-= softmmu.mak index f9e742120c..9a1c42e8b2 100644 --- a/default-configs/riscv32-softmmu.mak +++ b/default-configs/riscv32-softmmu.mak @@ -2,3 +2,4 @@ =20 CONFIG_SERIAL=3Dy CONFIG_VIRTIO=3Dy +CONFIG_CADENCE=3Dy diff --git a/default-configs/riscv64-softmmu.mak b/default-configs/riscv64-= softmmu.mak index f9e742120c..9a1c42e8b2 100644 --- a/default-configs/riscv64-softmmu.mak +++ b/default-configs/riscv64-softmmu.mak @@ -2,3 +2,4 @@ =20 CONFIG_SERIAL=3Dy CONFIG_VIRTIO=3Dy +CONFIG_CADENCE=3Dy diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 4924f92262..e4c7539b89 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -58,8 +58,11 @@ static const struct MemmapEntry { [SIFIVE_U_UART0] =3D { 0x10013000, 0x1000 }, [SIFIVE_U_UART1] =3D { 0x10023000, 0x1000 }, [SIFIVE_U_DRAM] =3D { 0x80000000, 0x0 }, + [SIFIVE_U_GEM] =3D { 0x100900FC, 0x1000 }, }; =20 +#define GEM_REVISION 0x10070109 + static uint64_t load_kernel(const char *kernel_filename) { uint64_t kernel_entry, kernel_high; @@ -294,6 +297,9 @@ static void riscv_sifive_u54_init(Object *obj) memmap[SIFIVE_U_MROM].size, &error_fatal); memory_region_add_subregion(system_memory, memmap[SIFIVE_U_MROM].base, mask_rom); + + object_initialize(&s->gem, sizeof(s->gem), TYPE_CADENCE_GEM); + qdev_set_parent_bus(DEVICE(&s->gem), sysbus_get_default()); } =20 static void riscv_sifive_u54_realize(DeviceState *dev, Error **errp) @@ -301,6 +307,10 @@ static void riscv_sifive_u54_realize(DeviceState *dev,= Error **errp) SiFiveU54State *s =3D RISCV_U54_SOC(dev); const struct MemmapEntry *memmap =3D sifive_u_memmap; MemoryRegion *system_memory =3D get_system_memory(); + qemu_irq plic_gpios[SIFIVE_U_PLIC_NUM_SOURCES]; + int i; + Error *err =3D NULL; + NICInfo *nd =3D &nd_table[0]; =20 object_property_set_bool(OBJECT(&s->cpus), true, "realized", &error_abort); @@ -324,6 +334,25 @@ static void riscv_sifive_u54_realize(DeviceState *dev,= Error **errp) sifive_clint_create(memmap[SIFIVE_U_CLINT].base, memmap[SIFIVE_U_CLINT].size, smp_cpus, SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE); + + for (i =3D 0; i < SIFIVE_U_PLIC_NUM_SOURCES; i++) { + plic_gpios[i] =3D qdev_get_gpio_in(DEVICE(s->plic), i); + } + + if (nd->used) { + qemu_check_nic_model(nd, TYPE_CADENCE_GEM); + qdev_set_nic_properties(DEVICE(&s->gem), nd); + } + object_property_set_int(OBJECT(&s->gem), GEM_REVISION, "revision", + &error_abort); + object_property_set_bool(OBJECT(&s->gem), true, "realized", &err); + if (err) { + error_propagate(errp, err); + return; + } + 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[53]); } =20 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 0f8bdd8fab..d40d851999 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -19,6 +19,8 @@ #ifndef HW_SIFIVE_U_H #define HW_SIFIVE_U_H =20 +#include "hw/net/cadence_gem.h" + #define TYPE_RISCV_U54_SOC "riscv.sifive.u54" #define RISCV_U54_SOC(obj) \ OBJECT_CHECK(SiFiveU54State, (obj), TYPE_RISCV_U54_SOC) @@ -30,6 +32,7 @@ typedef struct SiFiveU54State { /*< public >*/ RISCVHartArrayState cpus; DeviceState *plic; + CadenceGEMState gem; } SiFiveU54State; =20 typedef struct SiFiveUState { @@ -49,7 +52,8 @@ enum { SIFIVE_U_PLIC, SIFIVE_U_UART0, SIFIVE_U_UART1, - SIFIVE_U_DRAM + SIFIVE_U_DRAM, + SIFIVE_U_GEM }; =20 enum { --=20 2.17.0