From patchwork Thu Dec 16 04:54:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568888 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=Zs40abjs; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=ZqJs7pBl; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0DN6NTPz9s3q for ; Thu, 16 Dec 2021 15:55:31 +1100 (AEDT) Received: from localhost ([::1]:39608 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxine-0002Oi-Ca for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:55:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51834) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxin3-0002Kv-TX for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:54:50 -0500 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:18119) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxin1-0003oX-Mx for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:54:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630487; x=1671166487; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3lLEZM4gScoF01+Fu+KXzGB/NfgDsTqudT14Hm+pxMs=; b=Zs40abjsA5SS2YGiLEn4HfQGC7UVet1sqHY8HRRDKYGdTilvVGEFur1I RjBO+rGHUdR3lZgInyyQTieaU3ybqvz96RVS3Cf6fFbo+7vp0DlhkokMh hZuvMge4AFe3+OA/pF11UddZEslJQmL+tRd1gy7+2Ie53S8fC9YOdd3kV zvpWdTu96E2Mm8qzAXr8tCMo1VzEogp+L6R3KC/T0uF88yvg5kGvP7jLt rMWsHgu1tCoRuh3LhU3FWYdU3mXynWMrj8Ohe2K7fHbzV9SVtVE9QbNTg WfnSR4X1VUlsEa3fTQXMZLuWaiIyNlrrPWcok3SeG7djXIjJBcQvChJ/y Q==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="187354556" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:54:44 +0800 IronPort-SDR: xb9HgVsELOLBrdO2Q9SGGbOyCsTo29JNrALudJs/xa3sGkyQ7/O3um45RISGwkP7k3Ne+mfGQY eH9TMaaCbW9YifBxtQl9oMBeT6zDdCC14x7ji4yzepeHcuQ5EzmP3HVQ90PfG4SCRnCRn64Ig4 Ryj09Qxco4PlM5I2oZZQ+Lod9Ilgx6wOf7tqA20y9sV0/zfUAV3TLWT2+SgLz3UiKgaw8HzDoV 1MluVtLaVRi67cVPccYwX0028iBNs+Y+RuCQjgkJEmHytGDQ8crJ2E/DI2gVaTBoaH6SrrRSUM HQg+OW2xRF6zJKLGN+JcKska Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:27:38 -0800 IronPort-SDR: 6+NyfkelgTustt9iMALa2R9iksBtNdVcxCWUvafmEa23YoBl2XCYM1q/Zfg4cHJvDiceq8rmVe fneTqEoR1NBq2ishAJKwu8ct6Gdl1KcegbSLCh+5CeJi6XLaUpyRJe0pqnOqEzd/2THUQQ6UD0 CkG7QZGZL7c9ZwaUOC0dPUEDDV7D+1Nnhdwg02R9gNod3qRMatTkIrkFjXUkBAPT2y9c5QblDk JiyaH9czXIu1PX+qAB1ewD584w1E9rcc1WKLgJ3Zvg+/TL67QeLHXwLjcLVeGEyOICsxm83jnd ndg= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:54:45 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0CR6H67z1Rwvd for ; Wed, 15 Dec 2021 20:54:43 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630483; x=1642222484; bh=3lLEZM4gScoF01+Fu+ KXzGB/NfgDsTqudT14Hm+pxMs=; b=ZqJs7pBl+ppXh5r6N+asKBA/UtqKHGMx72 XTIWpwSdoi3dj3tSzoSG2Z0lBWdJfkv8meE0UZCITcmeFmhvVz/wWBpVurktwp00 sLpCFBIrD0AbdpTCBTOC15wi34YQSmlLROUxkritHTlSjG4l0mBHp4zezp6a+oRd luKuKeQo2wQ4TENd/z51Zujb4VUTCAlRfvEi+FOw7TFFUqugOfZ3/9NUlf5ZS9V7 8eHdqaKg7EdJ477ZaZp1bYGg0CFnKQdNdYtp2nNs/8DDCpQWSajbBR4Gir5iHWPH 0/GAkwRrwPzBzH/PcP2LrEERNzvYx9oVgOiPz5uKhmHQYmNZmmIg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 592qgeSKw3Hk for ; Wed, 15 Dec 2021 20:54:43 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0CL6BDLz1RtVG; Wed, 15 Dec 2021 20:54:38 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 1/9] hw/intc: sifive_plic: Add a reset function Date: Thu, 16 Dec 2021 14:54:19 +1000 Message-Id: <20211216045427.757779-2-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=216.71.154.42; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Bin Meng --- hw/intc/sifive_plic.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 877e76877c..a9f7a1bfb0 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -355,6 +355,23 @@ static const MemoryRegionOps sifive_plic_ops = { } }; +static void sifive_plic_reset(DeviceState *dev) +{ + SiFivePLICState *s = SIFIVE_PLIC(dev); + int i; + + memset(s->source_priority, 0, sizeof(uint32_t) * s->num_sources); + memset(s->target_priority, 0, sizeof(uint32_t) * s->num_addrs); + memset(s->pending, 0, sizeof(uint32_t) * s->bitfield_words); + memset(s->claimed, 0, sizeof(uint32_t) * s->bitfield_words); + memset(s->enable, 0, sizeof(uint32_t) * s->num_enables); + + for (i = 0; i < s->num_harts; i++) { + qemu_set_irq(s->m_external_irqs[i], 0); + qemu_set_irq(s->s_external_irqs[i], 0); + } +} + /* * parse PLIC hart/mode address offset config * @@ -501,6 +518,7 @@ static void sifive_plic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + dc->reset = sifive_plic_reset; device_class_set_props(dc, sifive_plic_properties); dc->realize = sifive_plic_realize; dc->vmsd = &vmstate_sifive_plic; From patchwork Thu Dec 16 04:54:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568893 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=pbw3Q+SE; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=OLxBPOcO; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0HN6N2Zz9sCD for ; Thu, 16 Dec 2021 15:58:08 +1100 (AEDT) Received: from localhost ([::1]:48478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxiqE-0008QA-EM for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:58:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxin8-0002SS-RR for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:54:56 -0500 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:6598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxin6-0003pX-8X for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:54:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630492; x=1671166492; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=P58rSH9FYVGMWJye9pB0DBdQcbydJZIVFxFrCQLsVdI=; b=pbw3Q+SEvjNOy2mkHqOpF0+eSkoMXM/18ARbxn60i3Bh3QbuFzmJ7yn3 f+4xtf/IfoV0B8WIR4R/iItf6FZNhU6xxgNnAmySjxyXP/N4sYbu62Uky zyyYV4DMcXFHaMZj+lgDBng1oMQpIFYXSM+UuicYUBdPdQEuD8W6/vlio +OwZUk6fbdPeUVtootOzDjraWdPlV4kUZuCj7zEQ7YWX3v32Ldae5PK9W xTZHOXPorK7pTNECm87CCtfmlFCU7hwN0wr/RIYHhc4vHbfsNp9TE7ebD YjBHyd6Duwol9sE7gVTtHqT1enOMioqFeDrcrWB6AmxrFfJeyBY3M9NMW A==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="300226942" Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:54:49 +0800 IronPort-SDR: oqd+GDcDY1345b8z/0HJWGm/KJ8d0BmKviKH8cMVyeFxknWViqRDUz5wPtyA35B/6edD1rfkwC vFFb15Z9UK+ZTuTlk4cVEBt9PU/EQ5x7plBQjlF8/t1Qhwe7x8nkkh+nOaicwsCFcNgaCGCQrf xAkOqD1RclpFzry4K/cK/Lqa+n3Tbdun2KvHXs47lfEnZMbFJwv+4Yy981Ol2Wu2uWMM5U3EQv GdJezuEZq9iKcGSk/C1w8UEDqxPxpfa6OZvRDkKlmQrxBm1GhPjOov5j7LvxLjMfoVUuhiXsjO pfK1O93MnZNXafnA9q/j/QG9 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:29:12 -0800 IronPort-SDR: gcuoD9aMUEpAMR7q4QwrQGENjgn0keduhWDGOoMPm3vDeo4qwUHfj2AdZ8wWy7HYAobmdIbyXP nrB/5TNzYSGOkAw1Esc4XdJjB6ldjtmWKCTRNTcQ28CFvJLpsnuuCcgUGRXIaIIte1y0Tqc7lF dXK+e3sIo/TjPkxfuFpgRU9neonWxv1ueG+tkjyqRhguuuGeut0HhToNdAOWlD3TYy3KMNTwkB 6b6AL30CSSpVIB/sNI7Lhd8RYdq3/L5By9qbpv7gzNW5Nk6DQ6XZidmWWC9EepvcvZHsg6H+9y mns= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:54:50 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0CY2HpMz1Rwnx for ; Wed, 15 Dec 2021 20:54:49 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630488; x=1642222489; bh=P58rSH9FYVGMWJye9p B0DBdQcbydJZIVFxFrCQLsVdI=; b=OLxBPOcOzjfpSmOwSGOYMq7qeVEzKoGUE0 F8Ha09sZ6GQq+Jj44h1Qc9glQfcDVei8WuW6i6N6otKpGJsMKdRW1IAvTf52yudk lN+yigAIQ09vrzExFrwbE4GISzBePLw0mcBs7S1Et7LRdvLMb39lPQmSCQg5gPKj EealKQp440kn7NeWxhHzwz7kuDtWuOYoF5Job2AZOVf33nbIJucD1CZmoCSYGCOQ CzLN63guoDQ43HfkBYvvo77pPIrCYmiFPBfgI25f1Ix94vlhQ+WcaGXg1/wJOjQg WTat6U7QUGXeqprbD9lbkkj6USHoa8+dFQ2G/WWHSILXQmIZiSEQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 8MTzOo93mBkp for ; Wed, 15 Dec 2021 20:54:48 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0CS0ntRz1RtVG; Wed, 15 Dec 2021 20:54:43 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 2/9] hw/intc: sifive_plic: Cleanup the write function Date: Thu, 16 Dec 2021 14:54:20 +1000 Message-Id: <20211216045427.757779-3-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- hw/intc/sifive_plic.c | 76 +++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index a9f7a1bfb0..698492ce77 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -33,6 +33,11 @@ #define RISCV_DEBUG_PLIC 0 +static bool addr_between(uint32_t addr, uint32_t base, uint32_t num) +{ + return addr >= base && addr - base < num; +} + static PLICMode char_to_mode(char c) { switch (c) { @@ -269,80 +274,53 @@ static void sifive_plic_write(void *opaque, hwaddr addr, uint64_t value, { SiFivePLICState *plic = opaque; - /* writes must be 4 byte words */ - if ((addr & 0x3) != 0) { - goto err; - } - - if (addr >= plic->priority_base && /* 4 bytes per source */ - addr < plic->priority_base + (plic->num_sources << 2)) - { + if (addr_between(addr, plic->priority_base, plic->num_sources << 2)) { uint32_t irq = ((addr - plic->priority_base) >> 2) + 1; + plic->source_priority[irq] = value & 7; - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: write priority: irq=%d priority=%d\n", - irq, plic->source_priority[irq]); - } sifive_plic_update(plic); - return; - } else if (addr >= plic->pending_base && /* 1 bit per source */ - addr < plic->pending_base + (plic->num_sources >> 3)) - { + } else if (addr_between(addr, plic->pending_base, + plic->num_sources >> 3)) { qemu_log_mask(LOG_GUEST_ERROR, "%s: invalid pending write: 0x%" HWADDR_PRIx "", __func__, addr); - return; - } else if (addr >= plic->enable_base && /* 1 bit per source */ - addr < plic->enable_base + plic->num_addrs * plic->enable_stride) - { + } else if (addr_between(addr, plic->enable_base, + plic->num_addrs * plic->enable_stride)) { uint32_t addrid = (addr - plic->enable_base) / plic->enable_stride; uint32_t wordid = (addr & (plic->enable_stride - 1)) >> 2; + if (wordid < plic->bitfield_words) { plic->enable[addrid * plic->bitfield_words + wordid] = value; - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: write enable: hart%d-%c word=%d value=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), wordid, - plic->enable[addrid * plic->bitfield_words + wordid]); - } - return; + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Invalid enable write 0x%" HWADDR_PRIx "\n", + __func__, addr); } - } else if (addr >= plic->context_base && /* 4 bytes per reg */ - addr < plic->context_base + plic->num_addrs * plic->context_stride) - { + } else if (addr_between(addr, plic->context_base, + plic->num_addrs * plic->context_stride)) { uint32_t addrid = (addr - plic->context_base) / plic->context_stride; uint32_t contextid = (addr & (plic->context_stride - 1)); + if (contextid == 0) { - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: write priority: hart%d-%c priority=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), - plic->target_priority[addrid]); - } if (value <= plic->num_priorities) { plic->target_priority[addrid] = value; sifive_plic_update(plic); } - return; } else if (contextid == 4) { - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: write claim: hart%d-%c irq=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), - (uint32_t)value); - } if (value < plic->num_sources) { sifive_plic_set_claimed(plic, value, false); sifive_plic_update(plic); } - return; + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Invalid context write 0x%" HWADDR_PRIx "\n", + __func__, addr); } + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Invalid register write 0x%" HWADDR_PRIx "\n", + __func__, addr); } - -err: - qemu_log_mask(LOG_GUEST_ERROR, - "%s: Invalid register write 0x%" HWADDR_PRIx "\n", - __func__, addr); } static const MemoryRegionOps sifive_plic_ops = { From patchwork Thu Dec 16 04:54:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568890 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=iYEgNsw4; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=mMt7yH/H; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0DR1m5lz9sRR for ; Thu, 16 Dec 2021 15:55:35 +1100 (AEDT) Received: from localhost ([::1]:40000 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxink-0002fH-R3 for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:55:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinF-0002Zu-B6 for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:01 -0500 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:6603) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinD-0003qf-LO for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630499; x=1671166499; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4IZx9WjGfYJOYFMc1NhfAQRWWd90/x/xUALrZMkCDMQ=; b=iYEgNsw4ZzmmZ1iNK2u2j5j/wTEM+uZLqBV2b/5mZ+gzw8zCqv9AP8NM HyIVRYrRNiNoJU8fnoxJMiXlUUjdwEyzdgS60noYW6O26GxvuyB6P06Mt LlFJgGq3MjjfpWvMhqf5WkXE46UANsrSbIGsA+tjCY0QyNHMI2vrL9hmw uQ1PLjOSMbZ+HZvVdjdYWPs2GP1tfY758dfKV+7TS1THsZCh1jAzWO63B Jh9IsTBvjBsBxdnaYWHsmi4n6p73u7UY3ZNqrMrwpU60slt1DEusgrkLE hUUiRc/MV/UsjHd3sqXcNvFOI7Bv3SnkG1HgQzWPLGGTjNIkwez7QJx5x g==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="300226945" Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:54:55 +0800 IronPort-SDR: 2eVY5WCzxMhgnW0b4P+tNw6CPljIf1yhDTWuWxCTvRneU8tSu8aS9f/Hn+bf5z5XiXAPARhDvH xmkiIlpxQs2jYOsmW5/ll0LQ7cpc0ziVgjjzdo0xLK2+iLdEP+dPBaG4z6vb8gMKs9PMbjDuuP adtfzarmScV1iWggPDaAGqrICLhnximKDpZdHAOS8lFHlRilTWIG/A9fI1Y2lZh2yqZg+Re7HJ amgEaTmiOkxvDRVU4TJsDpVvcgP3yqEEkFNIhZSHSuGXm8sXrNAWb3kpCNx9LNPc1YDFEYc7AK 7THuOpxbsjl4ulM2xAIymGft Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:29:17 -0800 IronPort-SDR: 4Yc3mBl3F6O0i0IX9KYjN7X+8sUER9B6EOkw/hOI4w3O505O6i3AkZr+nOkJVgplb2TCg7YoO9 hCVzKklRL8os0hHkVxyBPZIgv7qiUKTdMNV0eS7Zv/XLTiM89D1wYBFP1LB/WHanGS1Z4DcmBx mAu+Hc3erxRBPQopdVwxVH6x87H2xEfTjMca/25qiHDZKkjy5wXnhRedEQ9XrLAKHUnjeRGN1/ oy5Ki3+1fB0fDyaCQnLLnSlGRbPNsABsXza1bo66bDUTURryPc3tk3ghyCkTyJTOaMJCEAjkWo 92c= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:54:56 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0Cf5V3Pz1Rwvd for ; Wed, 15 Dec 2021 20:54:54 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630494; x=1642222495; bh=4IZx9WjGfYJOYFMc1N hfAQRWWd90/x/xUALrZMkCDMQ=; b=mMt7yH/HBgWZX5FJqQGmbpe8oBwPPe4ZN+ OOCVGcJghyFrWfijXkB9i/vshmn/NI6Tm4/Tgd04svTO+3HlhGlP+Sg0DIm40sga cqclispZcceknkI3l8zwFvSNZnlicoXKH50PCBJ+FA1+8R8OqihjpuHgbjCGKNhB urL5Ts5c1J9Or2CTH+Ge3njYx1N3+bXEhCi0UrB1ZOvvuTIReDEEi+Zk1asqyZ0R h+Q+NxBTO6IWF+UUYv4OipwBX0EJdv2ybG4m7X7AtXT8qT7J19DMqXUy/6RfUllm 7ShqYviNnBBZTe0YYTfOfiIMFCliAhv6PE7JEKwog/xS7m464J3Q== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id L3VfeIyg1rnc for ; Wed, 15 Dec 2021 20:54:54 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0CY3msGz1RtVG; Wed, 15 Dec 2021 20:54:49 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 3/9] hw/intc: sifive_plic: Cleanup the read function Date: Thu, 16 Dec 2021 14:54:21 +1000 Message-Id: <20211216045427.757779-4-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- hw/intc/sifive_plic.c | 55 +++++++++---------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 698492ce77..44d24b3c59 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -199,70 +199,37 @@ static uint64_t sifive_plic_read(void *opaque, hwaddr addr, unsigned size) { SiFivePLICState *plic = opaque; - /* writes must be 4 byte words */ - if ((addr & 0x3) != 0) { - goto err; - } - - if (addr >= plic->priority_base && /* 4 bytes per source */ - addr < plic->priority_base + (plic->num_sources << 2)) - { + if (addr_between(addr, plic->priority_base, plic->num_sources << 2)) { uint32_t irq = ((addr - plic->priority_base) >> 2) + 1; - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: read priority: irq=%d priority=%d\n", - irq, plic->source_priority[irq]); - } + return plic->source_priority[irq]; - } else if (addr >= plic->pending_base && /* 1 bit per source */ - addr < plic->pending_base + (plic->num_sources >> 3)) - { + } else if (addr_between(addr, plic->pending_base, plic->num_sources >> 3)) { uint32_t word = (addr - plic->pending_base) >> 2; - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: read pending: word=%d value=%d\n", - word, plic->pending[word]); - } + return plic->pending[word]; - } else if (addr >= plic->enable_base && /* 1 bit per source */ - addr < plic->enable_base + plic->num_addrs * plic->enable_stride) - { + } else if (addr_between(addr, plic->enable_base, + plic->num_addrs * plic->enable_stride)) { uint32_t addrid = (addr - plic->enable_base) / plic->enable_stride; uint32_t wordid = (addr & (plic->enable_stride - 1)) >> 2; + if (wordid < plic->bitfield_words) { - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: read enable: hart%d-%c word=%d value=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), wordid, - plic->enable[addrid * plic->bitfield_words + wordid]); - } return plic->enable[addrid * plic->bitfield_words + wordid]; } - } else if (addr >= plic->context_base && /* 1 bit per source */ - addr < plic->context_base + plic->num_addrs * plic->context_stride) - { + } else if (addr_between(addr, plic->context_base, + plic->num_addrs * plic->context_stride)) { uint32_t addrid = (addr - plic->context_base) / plic->context_stride; uint32_t contextid = (addr & (plic->context_stride - 1)); + if (contextid == 0) { - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: read priority: hart%d-%c priority=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), - plic->target_priority[addrid]); - } return plic->target_priority[addrid]; } else if (contextid == 4) { uint32_t value = sifive_plic_claim(plic, addrid); - if (RISCV_DEBUG_PLIC) { - qemu_log("plic: read claim: hart%d-%c irq=%x\n", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode), - value); - } + sifive_plic_update(plic); return value; } } -err: qemu_log_mask(LOG_GUEST_ERROR, "%s: Invalid register read 0x%" HWADDR_PRIx "\n", __func__, addr); From patchwork Thu Dec 16 04:54:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568892 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=PYdwqREt; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=pz8tFgGB; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0HJ24GDz9sCD for ; Thu, 16 Dec 2021 15:58:04 +1100 (AEDT) Received: from localhost ([::1]:48032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxiqA-00085x-41 for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:58:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51986) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinH-0002iB-PY for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:03 -0500 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:18147) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinF-0003rR-Qx for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630501; x=1671166501; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CJtqDU6sPemWcmNX1wfyiQbcFiKIABpaeUjMPTCGpig=; b=PYdwqREtVgs6w6XyJgiDNEsQDZOA5rJh/Tpa6rTbZAMywJCPW75kEq1Q byKU1ZX5vWap2J+LejQbTY9adOnh48liD4bMNROkxd8yUKOybse2WCMJI OFWQdE0zJgVfgruBYWKXLNcErhl+L6H97h+oHp8n6oBeFEAlwFv+Uf0fR 1lfBg012zuq48/V40pO2VywZW7TVFwaXDe25Q4g1Go2sRXnrR9w8PywU8 SIFAICyVWLGvWLbtW2v8CI1dfR3DpwCABOAZHADcYI65DC1+sHEJykFvl vg7fEi1O5nwF4nTXnG8Ok8vuuO01JHvbSHR/aJ0k88LeJ6oHmxzwxyUAr Q==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="187354570" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:00 +0800 IronPort-SDR: VicPZ297aniNbfi8b0uMuJiEvTCs9dnKUNAjDwoNxhwSd0Y+NVm4oFkGeC84SrEGzMtKUzQBz5 eCfw+c1drkVcUFA9tmBEOqP+CtXRok/Oc2g43Pg+HEY/S0J89nGy2Kkj0Hye+3Q9osmG69GZ2R L790XJ+2aOr4x3+XcA2CVNCqk2LtLu1gzfhLDgbd1Y+e0jUq2Ibt9IdDLqZHwkUscqDyBIVxDO rsAjGE0nLq3kEgrX8Lytp7ZZKelKosETEMXfrQeM+Wo4FTA/Wow/cVj2GMjz7wmqxK6TL6K2rr TebKVtBqCT0um0A2I/9CCXtn Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:27:54 -0800 IronPort-SDR: bR7rhvI4tKx/foyjdnbRtBG1whcp/dKcuaD9ELQRBkuLxQtHDh/gD6ImXrY0V3yq5s9jGMyyve scMAWGXsNLNJdLrHzbVSEFx4nyEREDUgHuup+9yeXGJTKTHrwRtHx+pgy/B4pk1v/0XijORFI7 fS0I+J4Dwi7Kzt+md+8Oz1GoGiUKfIuDivU6AjM6FoRr0rza50ej7h78GhDI6kcb2a/iboQZky 4MvCUg3NfLmHTjF9jyyyBmDEIHURnEbqWNwWWluWSaRtWXadhWS8INvUYnoHM0XlXtnQwsnLFe 5yg= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:01 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0Cm3R51z1Rvlf for ; Wed, 15 Dec 2021 20:55:00 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630499; x=1642222500; bh=CJtqDU6sPemWcmNX1w fyiQbcFiKIABpaeUjMPTCGpig=; b=pz8tFgGBuNfAeHXB/riSMcbUOj9qGaG3Gp S2fLvxcyvDkYPyPKQOYP15FAfy/dbLZ/5P/DJRFVm/QwtzWsLyBWy6BJ3hFYLHV1 yHo4wEjMDw+70Y9q3orqTfn1OkcWn6IyMcZKXKwOq2FOr0vb//wVVs6Ce8dah6rs SJuDl0xdYxzFMw7rFMGhvJyG3sO4TNz2uqewb494roM3Uhtf/mcF02AagVSfJMFw nOfA+T3DxNzq2l5jMDqYP6vi4gv58/8Q6AnFV32wY8sDfBPG7HhmYDWpPcd1VrfX O3Ue27ci6PdQzugP+nLqa2HnBbcWd5PxKbm1H+dZcpwoSr2ze2IQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 3vhGI7UpsDB5 for ; Wed, 15 Dec 2021 20:54:59 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0Cg13Dxz1RtVG; Wed, 15 Dec 2021 20:54:54 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 4/9] hw/intc: sifive_plic: Cleanup remaining functions Date: Thu, 16 Dec 2021 14:54:22 +1000 Message-Id: <20211216045427.757779-5-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=216.71.154.42; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis We can remove the original sifive_plic_irqs_pending() function and instead just use the sifive_plic_claim() function (renamed to sifive_plic_claimed()) to determine if any interrupts are pending. This requires move the side effects outside of sifive_plic_claimed(), but as they are only invoked once that isn't a problem. We have also removed all of the old #ifdef debugging logs, so let's cleanup the last remaining debug function while we are here. Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- hw/intc/sifive_plic.c | 109 +++++++++--------------------------------- 1 file changed, 22 insertions(+), 87 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 44d24b3c59..746c0f0343 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -31,8 +31,6 @@ #include "migration/vmstate.h" #include "hw/irq.h" -#define RISCV_DEBUG_PLIC 0 - static bool addr_between(uint32_t addr, uint32_t base, uint32_t num) { return addr >= base && addr - base < num; @@ -51,47 +49,6 @@ static PLICMode char_to_mode(char c) } } -static char mode_to_char(PLICMode m) -{ - switch (m) { - case PLICMode_U: return 'U'; - case PLICMode_S: return 'S'; - case PLICMode_H: return 'H'; - case PLICMode_M: return 'M'; - default: return '?'; - } -} - -static void sifive_plic_print_state(SiFivePLICState *plic) -{ - int i; - int addrid; - - /* pending */ - qemu_log("pending : "); - for (i = plic->bitfield_words - 1; i >= 0; i--) { - qemu_log("%08x", plic->pending[i]); - } - qemu_log("\n"); - - /* pending */ - qemu_log("claimed : "); - for (i = plic->bitfield_words - 1; i >= 0; i--) { - qemu_log("%08x", plic->claimed[i]); - } - qemu_log("\n"); - - for (addrid = 0; addrid < plic->num_addrs; addrid++) { - qemu_log("hart%d-%c enable: ", - plic->addr_config[addrid].hartid, - mode_to_char(plic->addr_config[addrid].mode)); - for (i = plic->bitfield_words - 1; i >= 0; i--) { - qemu_log("%08x", plic->enable[addrid * plic->bitfield_words + i]); - } - qemu_log("\n"); - } -} - static uint32_t atomic_set_masked(uint32_t *a, uint32_t mask, uint32_t value) { uint32_t old, new, cmp = qatomic_read(a); @@ -115,26 +72,34 @@ static void sifive_plic_set_claimed(SiFivePLICState *plic, int irq, bool level) atomic_set_masked(&plic->claimed[irq >> 5], 1 << (irq & 31), -!!level); } -static int sifive_plic_irqs_pending(SiFivePLICState *plic, uint32_t addrid) +static uint32_t sifive_plic_claimed(SiFivePLICState *plic, uint32_t addrid) { + uint32_t max_irq = 0; + uint32_t max_prio = plic->target_priority[addrid]; int i, j; + for (i = 0; i < plic->bitfield_words; i++) { uint32_t pending_enabled_not_claimed = - (plic->pending[i] & ~plic->claimed[i]) & - plic->enable[addrid * plic->bitfield_words + i]; + (plic->pending[i] & ~plic->claimed[i]) & + plic->enable[addrid * plic->bitfield_words + i]; + if (!pending_enabled_not_claimed) { continue; } + for (j = 0; j < 32; j++) { int irq = (i << 5) + j; uint32_t prio = plic->source_priority[irq]; int enabled = pending_enabled_not_claimed & (1 << j); - if (enabled && prio > plic->target_priority[addrid]) { - return 1; + + if (enabled && prio > max_prio) { + max_irq = irq; + max_prio = prio; } } } - return 0; + + return max_irq; } static void sifive_plic_update(SiFivePLICState *plic) @@ -145,7 +110,7 @@ static void sifive_plic_update(SiFivePLICState *plic) for (addrid = 0; addrid < plic->num_addrs; addrid++) { uint32_t hartid = plic->addr_config[addrid].hartid; PLICMode mode = plic->addr_config[addrid].mode; - int level = sifive_plic_irqs_pending(plic, addrid); + bool level = !!sifive_plic_claimed(plic, addrid); switch (mode) { case PLICMode_M: @@ -158,41 +123,6 @@ static void sifive_plic_update(SiFivePLICState *plic) break; } } - - if (RISCV_DEBUG_PLIC) { - sifive_plic_print_state(plic); - } -} - -static uint32_t sifive_plic_claim(SiFivePLICState *plic, uint32_t addrid) -{ - int i, j; - uint32_t max_irq = 0; - uint32_t max_prio = plic->target_priority[addrid]; - - for (i = 0; i < plic->bitfield_words; i++) { - uint32_t pending_enabled_not_claimed = - (plic->pending[i] & ~plic->claimed[i]) & - plic->enable[addrid * plic->bitfield_words + i]; - if (!pending_enabled_not_claimed) { - continue; - } - for (j = 0; j < 32; j++) { - int irq = (i << 5) + j; - uint32_t prio = plic->source_priority[irq]; - int enabled = pending_enabled_not_claimed & (1 << j); - if (enabled && prio > max_prio) { - max_irq = irq; - max_prio = prio; - } - } - } - - if (max_irq) { - sifive_plic_set_pending(plic, max_irq, false); - sifive_plic_set_claimed(plic, max_irq, true); - } - return max_irq; } static uint64_t sifive_plic_read(void *opaque, hwaddr addr, unsigned size) @@ -223,10 +153,15 @@ static uint64_t sifive_plic_read(void *opaque, hwaddr addr, unsigned size) if (contextid == 0) { return plic->target_priority[addrid]; } else if (contextid == 4) { - uint32_t value = sifive_plic_claim(plic, addrid); + uint32_t max_irq = sifive_plic_claimed(plic, addrid); + + if (max_irq) { + sifive_plic_set_pending(plic, max_irq, false); + sifive_plic_set_claimed(plic, max_irq, true); + } sifive_plic_update(plic); - return value; + return max_irq; } } From patchwork Thu Dec 16 04:54:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568891 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=C8MRi5r7; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=i6Oxe4x0; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0Dh5XPSz9s3q for ; Thu, 16 Dec 2021 15:55:48 +1100 (AEDT) Received: from localhost ([::1]:40558 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxiny-00032G-Hx for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:55:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinM-0002vk-HG for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:08 -0500 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:18147) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinK-0003rR-IK for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630506; x=1671166506; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ayBTYXwSr3LpHDfXsatQL6OmSGThM5dBa3wy7BLUtaE=; b=C8MRi5r7AHuEmzD57iM5aPeWaEcTGmw9JMfTT7XxR0bxVvuDUYNbwU2n ZebMFVN4SlOkJujXFMn6RdLW1BTR1vbRIDC9FuKPZsuVXWhb8dCQNxnjr 5+/UACK13lxNEPAiG/oOwgPK+MIWaNh8u+3PLKNe8VvJddgYnzPd4ML2z MO03R5TmQPPctaKTeARjLwFZaZcoWZ29c6SK+2uc79H1hR2p952xml0ro tzPk+3/NUnoHBY/CfLIiSAsR7kTKvKxAZaQ4ucqineNeITN9oYuZAJIl7 5GWWndd9qRs2oKqJo0ZEmK8ZCJ1n1DRpawDF4hxpmifieXwVjSAtrXE3J g==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="187354576" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:05 +0800 IronPort-SDR: 2uaFq9qmy2VrlF7tm7CBpewfyJ47hWJnbxi+vPTBQ5loqDwQH0Oj3+LunFh2xCl+NOyErHSFtu 4F8uZ7/HNUS0hx7Fx++P/mx2dF5SilO16tu8RronKv0dY6M7f6Uf/kH4uBGhCUTz5jihzd/sEQ YZME3weYv7XT7nrw91pMoCx33aN+lDH+9CS7lXV7evUuW42dfIxqyxgJfR2bYXdRDLwzTmzE9V GpmVLAjCsa+n3Q1Q1M0jGnuLy1h6EBu01zwx9AG6kE2F4ApVGyynij8AWaxwxy2ixiq6ZegQgb jzXLyJf+TSqthPs/0REpvwK8 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:27:59 -0800 IronPort-SDR: gTxaejzAjUq2/z6jSrAqpYv+w9KKT0Aw0ye/Gtt7dml+s0zoNjxMx5b7kjDH1SEZ5MhFOSJmta 2il+XCNNqFLJCu36XU2gD8JCBZh/OTVv+7XqFXU3ZxmQlPFUUCLhQEuwgUOyYrLGf9se8t2wZf DFkVWCdBmM78rMZXUJFm6Po5x4JjUO40WvVMAQI4a/e+jrQO3X5ZS+NbvfqH8n7utUw/Paog0u p/BVhBENVYqNiJ4Q+UbVmc9ftH0vWfizv5t0uyNbjVs7DCnwnCCyb1KbELy+YTEKaTuA0tz2Va dvg= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:06 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0Cs3pnCz1Rwnx for ; Wed, 15 Dec 2021 20:55:05 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630505; x=1642222506; bh=ayBTYXwSr3LpHDfXsa tQL6OmSGThM5dBa3wy7BLUtaE=; b=i6Oxe4x0hZqPYWqMoKJnO6vc6wcPapDJfV 7dK+iK2Q1q6xlmhfZV5pIfvNL8G3tLskNM6o6tW6cvCmVPR6MbGlvdspx01b8IGo YU3VybzAS573Ox6BbXTLNoTPJjc5Gp7UOtBJPweJOB2oXifZODhQgKdwBJ65qfDr ziunGRppeeu/EO8i2hiz5bRmtyeW24h++xZMqQ+Mic3UeadIqQjdjlvb9xPGfH6O Fxc01AnXaibRgmYWBVlJrSKmpypJRMGAHgmoBBabc3fulXU0rAl1O+sotivUgZFb osNSswvWQyEN09/WDGshpYT9qDyLrnlCyDht9AvUhovv4otHC88Q== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id haSqCZjMPmsK for ; Wed, 15 Dec 2021 20:55:05 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0Cm4Hrdz1RtVG; Wed, 15 Dec 2021 20:55:00 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 5/9] target/riscv: Mark the Hypervisor extension as non experimental Date: Thu, 16 Dec 2021 14:54:23 +1000 Message-Id: <20211216045427.757779-6-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=216.71.154.42; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis The Hypervisor spec is now frozen, so remove the experimental tag. Signed-off-by: Alistair Francis Reviewed-by: Anup Patel Reviewed-by: Bin Meng --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index f812998123..1edb2771b4 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -626,6 +626,7 @@ static Property riscv_cpu_properties[] = { DEFINE_PROP_BOOL("c", RISCVCPU, cfg.ext_c, true), DEFINE_PROP_BOOL("s", RISCVCPU, cfg.ext_s, true), DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true), + DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, false), DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), @@ -639,7 +640,6 @@ static Property riscv_cpu_properties[] = { DEFINE_PROP_BOOL("x-zbb", RISCVCPU, cfg.ext_zbb, false), DEFINE_PROP_BOOL("x-zbc", RISCVCPU, cfg.ext_zbc, false), DEFINE_PROP_BOOL("x-zbs", RISCVCPU, cfg.ext_zbs, false), - DEFINE_PROP_BOOL("x-h", RISCVCPU, cfg.ext_h, false), DEFINE_PROP_BOOL("x-j", RISCVCPU, cfg.ext_j, false), DEFINE_PROP_BOOL("x-v", RISCVCPU, cfg.ext_v, false), DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec), From patchwork Thu Dec 16 04:54:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568894 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=lenHX9z/; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=bmRm9JlP; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0Hy09g4z9sCD for ; Thu, 16 Dec 2021 15:58:38 +1100 (AEDT) Received: from localhost ([::1]:49804 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxiqh-0000sm-Q4 for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:58:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52102) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinS-0003IG-Kh for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:14 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:63333) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinQ-0003uZ-SZ for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630512; x=1671166512; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SPZIA74TJTVMJ/EW0ChuA+m3vlMDh9qmBIfXrpPLqp8=; b=lenHX9z/f8MXBVj2g5ZXKSh4IrbRIawdCdKZ2BRGjAEHi2niV+YLpzy1 hLaxa1gWQzw7o+nZK6GJc2e2bk4yWs19MCyhO2T/H+IVZAzj99fqvyeYP odRl/HSTBHYoFUMBHNXjT0jckgpi9X+C2qLcovpjFI8yM+XKZ7gMWTIxN Hlk+1G493K2nyxIHLE72he3bXwhNifzhdPd54DQ0NwiCmbB4HV9AVn/h+ jC/5Gt4QmQqCHq35HEIm9t39RiUvAi7BDTIxcq2I6+tJky1MwsDcgk4+H GPvkYRkovjAyI3053xvVL+BtkIqzKDTIUMC9qoNXnWmKref8gmXckSCSI g==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="292375155" Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:11 +0800 IronPort-SDR: m6oWUgVERFMGpZasgftgcNdzz2GzOO+v5EI5Sn6uHMhoZZ8mbVF8QbefqA434Q6DYH4G8+YsQU Hjzjegw3CjPSr6MUPY57ctocfNr3KrxWEOYLIADbu5P+5QYzQDO6Pa7tq3Z3+MUllZtW2l4Tbq F0gPkuKZqUq8mGfMSWAXT3iHUnT8xvMu70kTmdQNH89vzl90NZVXtjDDPqDpz6znIgBlM8V+xE 1dmAWp37FBKyN1LY7ZJ5oUx/jEDic73e7VbrP6vpTFpp02xlY3bgmh1ZZ/dXIwVJou0WyhX0q9 RJl99kQwaFWsah0AsEgAkjJs Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:28:05 -0800 IronPort-SDR: tp/B32USnrTSQJ/WNDEYhGLzxnIuLSP57TfvwbeP63HRYKxAXSfd3nFwzCO1Gz5AoeiiAMGKK4 fPX2fQsBSB7e11v5IoSIsyk80ajzJaeMDmF0Dlp8S2vxVbNWdh7bxAMeH1KhR+cRkaY/CX0189 /Pj43bFG6gr7LiLzcwkqNmCUT5cjLKQhiBg6GUsWEy+t4WCkqcubz16RkDfCW4YzWrY9OxorwS 1/RXzJvZXV5GmzMNXsHNX5jw7K23EtwiLQ+hQhcqEeV7r/YDymSGKixL9zgxANmygstdIU1eSQ BCQ= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:12 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0Cz0ljdz1RwFN for ; Wed, 15 Dec 2021 20:55:11 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630510; x=1642222511; bh=SPZIA74TJTVMJ/EW0C huA+m3vlMDh9qmBIfXrpPLqp8=; b=bmRm9JlPdOT5BoSsP9M15mYKN4MWF+6rg+ 0sHrOxZI7h49AYRBP5Kof+9w/zo+yuAHBP9FnIshetKGFYbYqtc8IYRzTLVKmhFj RXEEgrUinJpePGFDxiWUuTt/pPeDs6XssoBwJacsVM1Y7/pz5cY/sZa11FOlbwxH 0mJxxBocsVo4djjZMM3WLlSbC9uouxKlwonNSqS2pdF6yeYOfan4zCFIlseQym2r gIYmWd63eQcAJ4dT8n1zvFJdhBOSw3syqGBA8S2sbNET9oub0STXOsf5jdTPoG5Q hvbwnqu12eqvSOZpd0enIcKhE9BktOnsz4cznkj7YAMYB9fV60Rg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id n3c7QymB-q7v for ; Wed, 15 Dec 2021 20:55:10 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0Cs6XGkz1RtVG; Wed, 15 Dec 2021 20:55:05 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 6/9] target/riscv: Enable the Hypervisor extension by default Date: Thu, 16 Dec 2021 14:54:24 +1000 Message-Id: <20211216045427.757779-7-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=68.232.143.124; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Let's enable the Hypervisor extension by default. This doesn't affect named CPUs (such as lowrisc-ibex or sifive-u54) but does enable the Hypervisor extensions by default for the virt machine. Signed-off-by: Alistair Francis Reviewed-by: Anup Patel Reviewed-by: Bin Meng --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 1edb2771b4..013a8760b5 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -626,7 +626,7 @@ static Property riscv_cpu_properties[] = { DEFINE_PROP_BOOL("c", RISCVCPU, cfg.ext_c, true), DEFINE_PROP_BOOL("s", RISCVCPU, cfg.ext_s, true), DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true), - DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, false), + DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, true), DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), From patchwork Thu Dec 16 04:54:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568896 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=TrltC2Qe; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=QErgPZXw; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0M100G0z9sCD for ; Thu, 16 Dec 2021 16:01:15 +1100 (AEDT) Received: from localhost ([::1]:58472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxitD-0006aT-TL for incoming@patchwork.ozlabs.org; Thu, 16 Dec 2021 00:01:11 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinb-0003oE-3n for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:23 -0500 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:6632) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinZ-0003vx-Bl for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630521; x=1671166521; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=MnhhwwWUBIbanfdWHL+OfAzPVNg/HXqFMlEvvWVDFQU=; b=TrltC2QepPF0cY/nxv/TaZK3+x5IhD4Y7nG6vTh9pGavJ1HXuAOKSZf1 Xv5b+aEJ2JQw/RUXhkSxO3nbxnHYDsej/jOaD7VBIf885bP3Fq6MOEs8X 6dKM/zn+F6egeQlNtzuX30wKymSVCij+RV1k67qhTLFHU0S7sPhAibezA p0RPN8pg9MoQZqOFpU5wwduG2OSRMumBGW3InZJnkikGTUz7Ms1ZxfS1Q hbE/+gW1Nr+d3FJ4gdiiAnSRdzhOmEu1Dub6d18tnlrRvIuVzHmchWapB NXr2eMOq7ESThroqxu/03JJVFnPaamsUa01n8kZr93r6KGmyuayUS9JQ6 A==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="300226972" Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:17 +0800 IronPort-SDR: amIP/pA5lclc7vesAe4opMQakKIGnzF37dKcpWKg7ulLeZMciWg6VmomSN5NsN3Pmw770pMxkW OjZ8AV+k9enT8/NHBuCwZLFPlC3ONtQrgmhmblCxjyj7+kttEHlk0esc46mVPdjMARYxtgJGjb pkHeijDY0XOSOMiEjI5lh066xzi87hcfTHY9nwHfKGrBqWBUjNdRSx9VEIkPXaiBNYIthHfmpM +Bp1qFXhWDfOPd9Sdea14dcX5/m5ffZ6zQEqc45EOdDrUHt0aeqO0WrP6ZlO0mx1jVXNNVjnI8 wi/2SUqxKi39b1iZj+8NeO96 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:29:40 -0800 IronPort-SDR: WYJzi0kHVnPAId2ttfrg4gEwCrH8rz+tMUOPu4N0EM1s9rKxvTCbGYQrtUfzQ1k5bG0ijYEqGQ oKRgJJpPgPl5J+zpBABON1JNkiY0y0ZJdJ4AUavBY7eyL1kVOnAVv4G0bCti+a3RIzN4bvZ2zo qpeTgUWgkbfzc+cK4jrgsFChtF+HSR27FufjIUi6kuWUgPNzXYD8TXEAM7GJV/nKisioRKeOZT 01b7RTqZeeZhOpekt5KNo19t6mBxFkbxrjKE7gkKaQ4kPGf7XvxCQd5zwMMCfiwbi5nRvrzLs9 5XU= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:19 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0D55NDGz1RwFN for ; Wed, 15 Dec 2021 20:55:17 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1639630517; x=1642222518; bh=MnhhwwW UBIbanfdWHL+OfAzPVNg/HXqFMlEvvWVDFQU=; b=QErgPZXwJvdLGUlB1yhjnY3 jeyAD4nso5di+mVh+aqUT05Xr9tL20iCI6+s1iIkCfMyMKdgl5JuQdkdmrfZqosI HRmoVaZyFsYnZwhEByB7aWU7voN0THi7pzUrTl6UPVf1iNOkhg911wEM6cjSMYgh 3IS15nIX883WWwajC8RntyZ3Yn+6eyJmizWTqt08jfQ2dCpm3NnhA9HlAMy2+T1h 7pvCOinjjGlEt6HwQWx7ffFOj9u1Wjm2k+Y8UTthR10dg7wu6XeZWjz0g1lQHfAT /L2skqtsFVKyHX9rJZtrm2aRT9fRANcjOhTqe7YXdvuaC+LmX2CaB88nLex1wug= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Z_1ZY3cBqfVR for ; Wed, 15 Dec 2021 20:55:17 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0Cz4VRxz1RtVG; Wed, 15 Dec 2021 20:55:11 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com, Markus Armbruster , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PATCH v2 7/9] hw/riscv: Use error_fatal for SoC realisation Date: Thu, 16 Dec 2021 14:54:25 +1000 Message-Id: <20211216045427.757779-8-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis When realising the SoC use error_fatal instead of error_abort as the process can fail and report useful information to the user. Currently a user can see this: $ ../qemu/bld/qemu-system-riscv64 -M sifive_u -S -monitor stdio -display none -drive if=pflash QEMU 6.1.93 monitor - type 'help' for more information (qemu) Unexpected error in sifive_u_otp_realize() at ../hw/misc/sifive_u_otp.c:229: qemu-system-riscv64: OTP drive size < 16K Aborted (core dumped) Which this patch addresses Signed-off-by: Alistair Francis Reported-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Markus Armbruster Reviewed-by: Bin Meng Tested-by: Bin Meng --- hw/riscv/microchip_pfsoc.c | 2 +- hw/riscv/opentitan.c | 2 +- hw/riscv/sifive_e.c | 2 +- hw/riscv/sifive_u.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/riscv/microchip_pfsoc.c b/hw/riscv/microchip_pfsoc.c index 57d779fb55..f16e4d10eb 100644 --- a/hw/riscv/microchip_pfsoc.c +++ b/hw/riscv/microchip_pfsoc.c @@ -471,7 +471,7 @@ static void microchip_icicle_kit_machine_init(MachineState *machine) /* Initialize SoC */ object_initialize_child(OBJECT(machine), "soc", &s->soc, TYPE_MICROCHIP_PFSOC); - qdev_realize(DEVICE(&s->soc), NULL, &error_abort); + qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); /* Split RAM into low and high regions using aliases to machine->ram */ mem_low_size = memmap[MICROCHIP_PFSOC_DRAM_LO].size; diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index c531450b9f..0856c347e8 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -80,7 +80,7 @@ static void opentitan_board_init(MachineState *machine) /* Initialize SoC */ object_initialize_child(OBJECT(machine), "soc", &s->soc, TYPE_RISCV_IBEX_SOC); - qdev_realize(DEVICE(&s->soc), NULL, &error_abort); + qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); memory_region_add_subregion(sys_mem, memmap[IBEX_DEV_RAM].base, machine->ram); diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c index 9b206407a6..dcb87b6cfd 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -88,7 +88,7 @@ static void sifive_e_machine_init(MachineState *machine) /* Initialize SoC */ object_initialize_child(OBJECT(machine), "soc", &s->soc, TYPE_RISCV_E_SOC); - qdev_realize(DEVICE(&s->soc), NULL, &error_abort); + qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); /* Data Tightly Integrated Memory */ memory_region_add_subregion(sys_mem, diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 589ae72a59..d576484851 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -545,7 +545,7 @@ static void sifive_u_machine_init(MachineState *machine) &error_abort); object_property_set_str(OBJECT(&s->soc), "cpu-type", machine->cpu_type, &error_abort); - qdev_realize(DEVICE(&s->soc), NULL, &error_abort); + qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); /* register RAM */ memory_region_add_subregion(system_memory, memmap[SIFIVE_U_DEV_DRAM].base, From patchwork Thu Dec 16 04:54:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568895 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=oV7HIM9f; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=bwJWt5oP; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0J41Lpkz9sCD for ; Thu, 16 Dec 2021 15:58:44 +1100 (AEDT) Received: from localhost ([::1]:50512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxiqn-0001LY-WF for incoming@patchwork.ozlabs.org; Wed, 15 Dec 2021 23:58:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxini-0004BF-Li for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:30 -0500 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:38482) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxinf-0003z2-AN for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630526; x=1671166526; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uBcLXAbG1yKoczNut+L+D8darkQ7DNCwu/vsbiKvvKk=; b=oV7HIM9fIB3cqGPbyKkUPptgIyUkiqf5FOfbU9WnB9SZI+9SxkcpwWL8 vSGjqbTYe+36kujQDHQWQGWUw7OYntvPnq5hlz2tOINAdTggfQwQzxOjO L3xOgVvTiYC4z5iCsMrdBdxw9mPUi/LwW+AGddJ4MT65D0lcOe18+oBKv FHI4C5mFQ5S6sdop2JYTPW3S/AA/UEZfF/3rRTw2J4SfenigOCwOYArtk ZLh3LUCjJwbL6PMoiqC3TmQwYoloNph/wcFmvrZJnsDey7jEFwetVp2+e PBo//SMXN4Wujew4fj3u6DMkTVE/jm1zBOOB9mrsnDsbhKvoxH2FDUrFB Q==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="188374236" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:23 +0800 IronPort-SDR: +1cU+R3ySSzBO9gnHYrgCmA0VXLWmdyDkrTzEiyAov1wtW8Kk/cTAUHfEBxy49WIPK8Y1uhcGF VOEB9MRsUXplI+dwoeDr5JLgpMhZXVOMkSMewkt9TMQyd8OdwlcKxIdGMoloLv2JXs1URL6mtb kUv8vh1YaafgyAL0n4x8dRcPqJGdlPs1Sdc2kyc1hftWQBcq6NX5WhGRHGUaNYpnV/ycO9YL3X 2hj58dpdlZG2iWX1GASJHL324SMzdTVEO8NatTT93p+CoyZ1ol+fOyn+uSkVNT8sM3m/HBMUt3 2naaAvwacGzKaZwa5/G8J0IY Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:29:46 -0800 IronPort-SDR: z20upkGqUWxMHYALIoD7QqjsD6tMYaGJ01MMrv8QebkypPHNFQC6YWYOgjcpFiPWvhRKbvAtr8 dwAgfRDeTxA09dwQVABcyLNINOly0knc3dUO0wmgzS8tfUCGdMfRepgbpA4B0b2Qc3Ehqg8ivz 2aOoE5MN67Ttr+OKYEsF3I7B1VsLAjS5EIQEf3VpmIZgH8gWORDNvZSqdcnV2LLWjcKYT6hs/L L+2KTLHRjg8Lu4mpBUJMWFYVgOUqeTKO+Z4q76YKmWw7m81rGerLdh/Slp1YTkD99FBbLsVGSJ Qtk= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:24 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0DC2wZCz1RwFN for ; Wed, 15 Dec 2021 20:55:23 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630522; x=1642222523; bh=uBcLXAbG1yKoczNut+ L+D8darkQ7DNCwu/vsbiKvvKk=; b=bwJWt5oPndFm2xmYJythkPjEhpcjb31Rhd ijcBcNO6XSDsKqRpVH44xB3c9amsZ/sFp9WlEVslLluX3xc/L7NLM1jzif2EPHZm 9A0us7smKX8ylumIYTe1skmM29OckHB+K5JlwuiOmiCakH+7MVwtEOw8kTwRnnYO 2TpedwPfhrShuo1pynxwsdhQpFyhds8S3Q88mrCGP1kp2roKcehUNHNwVu63WIK3 k32P55ZHUtJZX8NvYE3RDOjt+uelSWXQh0vte+c36bsGddb/C1upwvdSkYw47Q+b cwQipe8xn2A7ftDsZZKgTYK53FWduQHnace8cnL5BSKrowmqWgzQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Fook4lKghiYM for ; Wed, 15 Dec 2021 20:55:22 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0D55pMjz1Rwvf; Wed, 15 Dec 2021 20:55:17 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 8/9] hw/riscv: virt: Allow support for 32 cores Date: Thu, 16 Dec 2021 14:54:26 +1000 Message-Id: <20211216045427.757779-9-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=216.71.153.144; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa5.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Linux supports up to 32 cores for both 32-bit and 64-bit RISC-V, so let's set that as the maximum for the virt board. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/435 Signed-off-by: Alistair Francis Reviewed-by: Anup Patel Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Bin Meng --- 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 b8ef99f348..6e9f61ccd9 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -24,7 +24,7 @@ #include "hw/block/flash.h" #include "qom/object.h" -#define VIRT_CPUS_MAX 8 +#define VIRT_CPUS_MAX 32 #define VIRT_SOCKETS_MAX 8 #define TYPE_RISCV_VIRT_MACHINE MACHINE_TYPE_NAME("virt") From patchwork Thu Dec 16 04:54:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1568897 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=qJ8CrUBV; dkim=pass (2048-bit key; unprotected) header.d=opensource.wdc.com header.i=@opensource.wdc.com header.a=rsa-sha256 header.s=dkim header.b=Ieoa19D+; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JF0MT58d3z9sCD for ; Thu, 16 Dec 2021 16:01:41 +1100 (AEDT) Received: from localhost ([::1]:59150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxitf-00071F-Hq for incoming@patchwork.ozlabs.org; Thu, 16 Dec 2021 00:01:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52250) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxink-0004JL-Ux for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:33 -0500 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:18178) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxini-00041i-Pf for qemu-devel@nongnu.org; Wed, 15 Dec 2021 23:55:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1639630530; x=1671166530; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3X15HcUvQRy3KpgAj7UNFaQ0IIYxsE7ynJ42gJyEVqg=; b=qJ8CrUBV/bWd3/p+0FOVWB9s23cknHd50IRn5ImohineYpmQUm5g3LgX aVdQvLh3CgFm0zWY3H7tqQZfgaV+9K2Pn6ZbChvYkWTjmXljRq0VQ2VXx nfR7jZleePU9KvuRCyR5ho1+4qQ5gvO3iyomvDPFppd9rN00bMsRl57sa Q3HHZYBGVdahYZpfAgGWo/bFtdffW1Mia8Na3Tw9/Bu1yza7kj6zwFpAg fNqt9Zwr7PE1zBQF2eKsCytzaxCC4YZfU+ihSEBG7RpePZzyKdvS9uGIo BNXth3I4fFakM/LlWPHWxgMkJPzNjuWqOcfz7k9i+kOnE8wd0qRc05ewG g==; X-IronPort-AV: E=Sophos;i="5.88,210,1635177600"; d="scan'208";a="187354603" Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 16 Dec 2021 12:55:29 +0800 IronPort-SDR: VkfRVdamu+S/qXWK6U+dl8k5QRYFxp9Hi+IdSTNmSitH2I5Gg93n90srWPdiAWvBW7wC1WIvF9 4pAJEJ8vDSAmIpFRMb+SUAchv8dU5IkJLngohsxrnftsVHiMe9ZX2Ryn/1pliP98wMqtoY2Yoj FdnyBvELX1jXFZmZ7l/D/5JstpxW+16cqHh4x7vFI96beWCPkpBidY4AwPj+Yyy9xfiB3CMgoo wjt4IQhtB2kuuBl8bLCFoTPkWevyz+7HRAb4vRy1d2IQMNT22kIaQWnPovNlMnsPoc2Q0DZXOW 2v+GDW9c6orvppYqdNFaILY1 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:29:51 -0800 IronPort-SDR: J3ob3WqUp8hsExXydjMXpl8VfrSZ9dLeMcXinsZ4Z5aCKeEftDWPdswON95h97fTikgb6T8v23 rEHsgPrvd/wpEcW72S13XYnKCu6ZD8GdFsC/QbbFejR3sebbzm2C3EjAAg/Us41trOlppkXWJk 7l7vhqkvc6jM4n7a+empgR8t44LmkOm0/351fFYloG0tWpZILni6PfPxwAdmSZAXS6L/vZsbCi jCDt5XGaDulOOr4EuRl61g+Sn2wOsodNTwVxxgaaBsjwhWyiSZT5JZ9I0aj6jxCf55LiyTpqVa Iac= WDCIronportException: Internal Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 20:55:30 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4JF0DJ6R1Sz1Rwns for ; Wed, 15 Dec 2021 20:55:28 -0800 (PST) Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1639630528; x=1642222529; bh=3X15HcUvQRy3KpgAj7 UNFaQ0IIYxsE7ynJ42gJyEVqg=; b=Ieoa19D+IXxSdKlUIz63VrlHuR/7Auulnt A/wgMtB2Nu4vX06xI1gMQMEx8sD+apV9tSOGPGkhWhjStTS+2woaX+6Y7PLzC2pB RtFmzOGUfHgE3gcAKktJTtsIFWq34P5iyQknjrh7BRdZx+6BwapyM6uGF6qd75dT Gx+8IwguvLWwEP6RhE4Pp5Bp38Vk/gFvPM80aJvxapiSVECOX6xfIae0s+IvyJPW ZMKalVH6+HDTyzeV9i7PpVIEBdcCA7VyZt83CcIpGl1IaY9goVFawVCmlZWgydDK Fc2Zy7Ztnmp/pcAlvJFLCLKN9qQYVza34BYL3Rgq0O8yAWpAV6Mg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 44rSkG2u-oaU for ; Wed, 15 Dec 2021 20:55:28 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.165.66]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4JF0DC5rj7z1RtVG; Wed, 15 Dec 2021 20:55:23 -0800 (PST) From: Alistair Francis To: qemu-riscv@nongnu.org, qemu-devel@nongnu.org Cc: Bin Meng , alistair23@gmail.com, Alistair Francis , Palmer Dabbelt , Alistair Francis , bmeng.cn@gmail.com Subject: [PATCH v2 9/9] hw/riscv: virt: Set the clock-frequency Date: Thu, 16 Dec 2021 14:54:27 +1000 Message-Id: <20211216045427.757779-10-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> References: <20211216045427.757779-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Received-SPF: pass client-ip=216.71.154.42; envelope-from=prvs=977d27bfe=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis As per the device tree specification let's set the clock-frequency for the virt CPUs. QEMU doesn't really have an exact clock, so let's just 1000000 as it's a nice round number and matches the sifive_u CLINT_TIMEBASE_FREQ. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/472 (RISC-V virt) Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 3af074148e..41a85cfc60 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -202,6 +202,7 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket, qemu_fdt_setprop_cell(mc->fdt, cpu_name, "reg", s->soc[socket].hartid_base + cpu); qemu_fdt_setprop_string(mc->fdt, cpu_name, "device_type", "cpu"); + qemu_fdt_setprop_cell(mc->fdt, cpu_name, "clock-frequency", 1000000); riscv_socket_fdt_write_id(mc, mc->fdt, cpu_name, socket); qemu_fdt_setprop_cell(mc->fdt, cpu_name, "phandle", cpu_phandle);