From patchwork Tue Oct 20 09:39:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384751 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=yzi2REf6; 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=Q4TLU1TR; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=YrauYWQP; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpf55WqZz9ryj for ; Tue, 20 Oct 2020 20:45:49 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=TSPa502dZrscjT++YzLy8p/t+66PEFRgoKnitXCUe+M=; b=yzi2REf61tmerAQDhMpomdiDH qZw9ot6ZtLL65RY7vAfRrcDYS/k7drlH+njOvhr2lyE8/f6mR/9MjrlJO1r7IYp7Zsw8Ycebo37hP 2Ie+6Kq9XsXVBSh34CMIFP29Ypx43wuMSB02PpM2NNZxxNABAkj9n0xFu9GfT13pV8ZwlJYAVE1hm i6+DA1bB5puxSPCdUoj1AxqNvyb/YUqv2+9fvgHzjpaZWNP9e+hHItRsjv3vsMfmBjQZeTrYzuIN7 F9USVSmvHKOarW7SYymauD4R29bg8x60dNRJC4oKtbLv/J+PycB6EgO0w8PAeVVPfbgpXSazPnf0I LYKRpdmFg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoD9-0002jU-KZ; Tue, 20 Oct 2020 09:45:43 +0000 Received: from esa4.hgst.iphmx.com ([216.71.154.42]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoD5-0002iD-WA for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:41 +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=1603187139; x=1634723139; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=SoEyVz0r1iGL+LaFXC+1ijM8kkT1XiB2w2VJzMCK754=; b=Q4TLU1TR4wuZ10RvDQlgvOlLNizQaEiWd7hiMa6ugRHycDuRUpK7V895 W2N5Qr8OCerweCGY3+W9X7aKN36+Y/7PMjXj+hIr68zBP2j7KqYDsax0S CqoufwpY3c4y+5jfqrdXVUiE2nwSPCZHFkSIz9XuOEiy/RpioW1sjHXg8 3W/4BrnGr9PEpIrWgknyqMCb/9gXmUTCPOY9KxRDzgB74FIoApvnckoHz j+1FsflI0nHrhJPZH985ntpBwEo3ODndxKNWHU7DYVwgib87KvQFGYwyQ Rbrb2ZWe+JR64SmgfqvCH9pp+4TQxM21/pzeo0bXAcWmOaZE6xgSxEWwJ Q==; IronPort-SDR: POOb1E5qt2b7T9URIQDZq7qs/tpzd2wRq2dToT90ECxfqv+ZOgyRjOyxtt79DBwLI0X+skAzBX Z/c64z8plTSAFoIUf+9icrord2wCkY4q36vpOhZmAcjeXF3JNHDwgcAu5v6cvS9k5ron8uBfdl Wlsl7ycJi1LJeQnLOQ9HqfcrJdOg6zvclym2EhN/YE7M1SHOKFeS7t5krKb6AT3L3qimZCbk22 o7bTE07RE4XPEh48iuga2c0BvLQZRq6QbRZHK0eqcvbGVDTjjofAJ4rpcYPmNTTZJ0JDBnGbXq BXE= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="150329676" Received: from mail-mw2nam10lp2103.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.103]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:45:38 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OxL7NZuyqFsRiM4YoD4WXU2D7p+yQKH1AT8cYTPTX5WfWYGcc0ng7M6frEjFI1RMQNU5ECXPVouFbWt9Y5gA5+e+6iusQV5B3D+ODA4Y50pq2d92NMCCbr2ZX78gQdVATNgV7lxWx0G8t/rEWegxEftCiiXjbZk1s2/DG7+E/ssGxwk59+FahqpO18Mt7hcuJ2zDSQxg7GXtAy7xb8dCULhLRJhPqlNuYLPGFaXo9awngFlI5nvrg/pXvi2q0MhHhOKawxXXOaPufvRwygog5+AmN14DzMWIFrxgVZVySm4GODp5grOCzHMBbbwqEtPbxoLwbl4e7CKOCz8XV2N0MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ts6zMx/kl0ICe/gy9riLQhTD9UuWwZZvAYlcJvZ/lDg=; b=hGJ7z8DlA3tHK/8ZRNuz+kfWM4tyEeLHkgdmNIuvG/enzdFIFjErSXmy20Po+iIYM5FqVZUeozuJFmJhrWob/5pyfkiFZKck6VQnptIfJdvZ0fWAmldfixq7M9hWORSNSvJe7Kh+lYD7OFJxvq5BA32szBvrkBJZLaQHqtHXMNRgMJm2mW+X4EOVwg3zQKN5TwQz7dOQNyisJVAwA1/szzVUMt+1rQyQbmREaV4yaL+Z/idNuvHEMxs66+j3SXBV990KC9TO5V386/ie8nJmhqnoapwIuRJil5KIINXz55ZbK39BuITKWnsPMz5IrETsGKejLzqChEAzkpIjLMTJMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ts6zMx/kl0ICe/gy9riLQhTD9UuWwZZvAYlcJvZ/lDg=; b=YrauYWQPU6wLaST6PXB140HOmlwHMwygkPU5mdw0Q+U+1YNUMAogBu2HUJv88ob57/EzwHR1ZvLM+clN+4wlk2VzgMoToeaW9p758t1MH1y/uOsJJLcpZxjVBVXQ+HRG3kfWPMpmkDtqwm9FyD+tpWP9eDHVv0/j9Hh/R7cLAkM= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:37 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:37 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 01/16] include: sbi: Remove redundant includes from sbi_platform.h Date: Tue, 20 Oct 2020 15:09:15 +0530 Message-Id: <20201020093930.2551352-2-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c887c5aa-5c83-4d81-dc5b-08d874dce5d1 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GNS2bCq/vEASm7cT71z9Ue9IRseqBHXLWSpacUmqpYU3d18FSnOISpyQFGx3+X+mu1xlDtVD5d/i29aB7hDJJQm7LQa8pynKJb65g4nOma/dJN5pD7F1ysqHlyIvWpliZqeLv0fR4smBRWDY1XZLABKAisk6ArJUvleBgyTZjrCxTkGDrN+PwugXNIQ275t7tHw53cyA6Zj6wE6xOYc4Uv/ejO7pXXMSOEQl7hJDyIdHr/djO8FzcEqhjIPxRFojgk0KRYg3Toff1h+Fg7Wp1Ut8rOgf0asiBp1bSTEJPfKvaTiHSk2xnQ6QHKZYuuXin5K9a/2M1PPPAE6LIK1tHw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: yxBsryoKFKq3G+e+ZbVZOhYdUBbfwdYwhzPZoM3LLFYHSNWEjG3AjBXGMJQPJLNvfrp0BkYOQPHkFJJZx8NfSlDinr/3dqBoOIYqojPdHLXqnFJeUnKFJSSti0XO3NwZE/SxKQTr+Tyjh0ZrVVJx1PuqhqER+FcU0oCKKKE7/AaxlzLgayi1kZDgFvmU/VAb1Bqc3aqTYalDbuAwoTWXY0gx3mGyXY+sOAMlsH8fPU0KFV7LHgCbef8nKYxtMI9A3Az7JEiPfanqXvGFDJCm7VZdXDuH0IV24+OdRtLFoE29/sTlS944xhtxu1djKCHEISEK2p8qSD4RM+6lMa/DehAad+NQ6K6/vZHQUndm5VS83Zy99qpqflIQPvmK88FefHfyPKmdhBE8XUPfoQ/6hYcab71vjpvhaV52lgaJUmZVG8anbze3SPf+Zs8ZjLWItLziIRqGy6uIhO+9Gp6aRO94e3/OPk8d2+ejvn7wLQjTcFcTU8ZBmSo3mCzVTvK4kje26+2gNHzvOUk/Nh/mjT+Pd2d1UOjeFAkY8X2tpTK1q2QJyb7lnRxN9HpGxIpncnDJX4AB++MxxIVhhvSV90JwjlEQlI4MYlealI4CGSAa9FFhMsqjVMsdsxLkpIQEUqGPw++ME/LTB3IDfdZF3w== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: c887c5aa-5c83-4d81-dc5b-08d874dce5d1 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:37.5644 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Jz9StC2f6UDKZ3ndW2CQTuCZUUE2d8lqjeAMyT6+Y/OguQSKGzOTC2Q+acg/u/0lmNtbw1Yl2NwVGuD1LPrCzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054540_154917_61EF14C3 X-CRM114-Status: GOOD ( 13.90 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.42 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_ecall.h and sbi_trap.h are not required to be included in sbi_platform.h hence we remove it. This way sources requiring these headers will have to explicitly include it thereby reducing implicit includes. Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Alistair Francis --- include/sbi/sbi_platform.h | 4 ++-- lib/sbi/sbi_hart.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 8087148..f51e36a 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -40,12 +40,12 @@ #ifndef __ASSEMBLY__ -#include #include #include -#include #include +struct sbi_trap_info; + /** Possible feature flags of a platform */ enum sbi_platform_features { /** Platform has timer value */ diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 6413194..55a04da 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -19,6 +19,7 @@ #include #include #include +#include extern void __sbi_expected_trap(void); extern void __sbi_expected_trap_hext(void); From patchwork Tue Oct 20 09:39:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384752 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=Ni8tJS6Y; 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=gtX7Gem7; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=fbrETcRZ; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpf70qs9z9sRR for ; Tue, 20 Oct 2020 20:45:51 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Ll0yqVlylFRTNFXyWs2M6yo1vuseklpKx0mAjH2A00g=; b=Ni8tJS6YPjKAyMMC0syz5WYPl dawUTYI68+WfuaamqkkLdh39tYoz4KKLy3hqx1cP74q3cjHV+GlcbkKt/TpqlC03Sr7ZSjWjTGE2U MAJVmG+m9zthvk5hGT+ynRcUSVxSBDeQ1+gJEwFNR4LpcMK9X+lcKx51Ng7yT8dcZDIRaP1McCMwU vuy1eOmYbVpXjPXMTcvs1G/JUkjAks+RStmbfA0qudmuQ2wMjjXOYEfRjmpO7cj1jNh3TY4gp0TnW zau0e858isqu8O/NzKpfypFSbhKO4zPAKrSuFpu7v60yCQK3FVhIN0bfzbLU2/LYUnpaAk2MBbXJ4 412t+dmDw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDB-0002kE-U8; Tue, 20 Oct 2020 09:45:45 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoD8-0002iv-Jn for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:43 +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=1603187188; x=1634723188; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=rOwONRIdOzNSvuiO+1CcEbzXQ8vartgu6+4WIIxnEIw=; b=gtX7Gem7Vfu1RyEEkB38WwAZ/8XuV3dv6inPqWrPXuCzMHR5983Tq2Ir oJOL+PwbSjYVGqya8Bd8EQQpfq2JJ91kyTMtE7/h66KMfA1TCZM81iRXq qGfmgFlMo98idOwBj6X6sbBNaRuIk9e2/i2z0S3T/Zny6ilSQC4ykBq5K NVnSR4A9k1Vfi4mhsyXtwl9vq+jT7vUfKAr7MXVnMeK1VPnUY3Wj/xvPl BN9RcxUn1ZomaYeJLImGZrfjqxxMxTDXCswCoIljNgMBFUzaPnCreraN1 cPUct4NdnRXbuHccf7jFDr6ZyPQU7ZmmP2rWxRBBG8eRQwwjF+aEJJl70 g==; IronPort-SDR: +oaobJ1RgXDAoCK8yn6wiI+JmJoDh/jO2NIpdRffssZSEIUDAgSO6qNedDZI8Ms6djLqKjDvTX TPVcMoTag/nf0B7lP5WGfMQU0d5voRow01GBpiIFkx987RbA4cZ3BwFV3S78nC8FopizrDbR6z 4s0QigLmpxgi5sI+OL1bz0U22sOO3ntA0CBCT84YszVMo4lTPugHikPtU+L4jQSxEV/of9mHbt Hp5+2nqKy5xw4O70DYbdX9RuMNRvdxRf1rp0ixKA1LBLdCLD1aIlYTBVqQiZ3mUTqJja+uSYne hqg= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896129" Received: from mail-mw2nam10lp2100.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.100]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:26 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ngHMfB9hm8ZwybmuPNMUOtKrHXniR34BuIjgrvR6/EK0Ic6tbNcXArhgmKzyu3d6Q6sdKMBAwL4Q7ym50EPj38uXRAeRoC2T22EHRA4H44tYV/XgF654QtT14/vGKUxccXJE5yxKYj5Ehw0S2SkBPjA1UZL/d3DXLtgK7p3Cf4qJiTeLQHmb0pthTkDAKU6wXPcUtbV/ZaErcRSAAP/zVeGASbCFWPn76yzVgNbRS8hlHSue9xYMMQDMMQhW5l6sclYtUosIEHxp+NZQAI99VkE+9jIxJWcpD4D8k8myHbHOaZLF3A4RusFlc/g0is6tariJClsKI3bfJ+4z69J1wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WdqND45w17mP35HDTDTcCl2nsKLAxGtE1JnP5YJQkv8=; b=CxL1bDNvnkIyCMv22EBX2/TJlpFbI+E/NLJpBF5HxmCHPUI2ZAc4jhDcdwtHu4DPtO51EBc0GCEJurP8gkONWPI/2KUtzDxfVA+GOd1WYZbAEcRZE7Ntms0c4DqVymi+LjpToJeLVFjGNGDvh05oWdNJPFRkaoPOKKMGWBewm3xNYP50u0OI6L3k0qIN9qjowYj/6Ga0ULVGYAZ2vUXrYYm7pICg50JrPXRhUpdckHF5rNFZ4iiCYx4vBoq++ZC/g3FAlY7bhZODdGVUuBeo+GhbAflcw7Q/UZUQArUkCcJa1LzT8NI5NgcZw9pUbH76oeOdMMGMLZFnwX5fyy355g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WdqND45w17mP35HDTDTcCl2nsKLAxGtE1JnP5YJQkv8=; b=fbrETcRZaCjPRwe+OdQtO8uZvq0ofCdhsi9MsNTCjbUrBokGlTNDDWe/x2PoIv78pk3tF0jn19RsVGVb7Kdji8cSw0TUYy3ru+27WeqayBxP4Fbl+M7Dk6AAJCU3LOPwd3kA+Q1fvFJvKuDiKqklHH3MK29otCzxH+nRtUiLRX8= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:40 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:40 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 02/16] include: sbi: Remove pmp_region callbacks from sbi_platform_operations Date: Tue, 20 Oct 2020 15:09:16 +0530 Message-Id: <20201020093930.2551352-3-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:37 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 29d804d3-d87f-477e-6735-08d874dce788 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:1060; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2/IPJf6CmlHMSqUYcsQK100tBhLZdxrleU5RCuqvbtTeBeXve9DvRYKOQ7/bmsJ41py8/Evjm+LtVvngY4YQEGp2WcA4DzV/vdRkt3Kd9dS1mdNxK2KDJmkI/ixflHUwXTu5XVDcC9KOI+xrIbsifWNodoEZqV4Ydlazvhm8WMYY1Dm1N0SPQdBZzCahyFkcdih+9zbuiLkLLREXBi0pumEMHihDHirpAMKUNHtXYqOymdRzZ95OYu+5hAQcW5PhQ1Lx+/sl+ihjwg9DTdAcOjm3pdlPg6XxCyo533mtWTfBm6YXinfkKVwLBNDQ99KQsBhhrhCKbR3XNccZTDkB0A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: vkWqSPlcUv29MGvO/N28ZVStZmmPBt834WPwODvHt9jPXe9MUVMSdmSvgMQ6S8Vzf7c1IjDunsdddSw2jcdE0H5BBDh+CAx3ibY/JyP/HiBk8VEqbDvZYLdTdKbP/4N4st30Ey7hJkfrK6zkAcFyz2xYq7DOz9/Xypv1wLWeAD+QfwyYwMEdOwLKh4mJU/TVhh+qTADVbzWM6j3+PGZT9crzs0l3yz2+zq7uY6177jbzRrKBYdNxWnWELJIKylCS7jKOzptTDUnxrSpIxGco/XLK0zRxzw46cx8JJFirDQF3ZvzPOU9s3G2rVU5pNf1edOY9VAybUWPp3czbB2HYz08rV397juoKYHweBPtaQV5oWR1rK4jC4sp5R8+hoaHSu+QCNM2iMxOpb7T+l2K+ULc2f8FZwKX8ekWt8u7rZCV3SAV6BIeHreN7WvXuq9mpVQAdM+kPZumnAJCnpow3X20E9kk+RvxqvHLpgoxZb4DOq3P0NciEq0h9hVAmVRPKYBiGVhD2PJvzXZFwyOWT51Zird9nSXg2pYiMXe7Q05lY7Hv8KCQjq/1lUk0oLew3+N+S8OrjGpXmt4+1F/lRFU+p9qcVR86xrhGwbAlMyVex90R7kboMcKCuUgeJiIHXasjxDlrLdFxGH0/vgwX1eA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29d804d3-d87f-477e-6735-08d874dce788 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:40.2166 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1L16f2wr3ZfrdQCAfQOzhY3J2U4atMSsGeK48uBZVsPXkIlW4IXL2Jr22IGowpT7qtkVdulCKIYdeyQlB/O0Cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054542_780959_3C760CEB X-CRM114-Status: GOOD ( 18.17 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The pmp_region_xyz() callbacks are not required in sbi_platform_operations because we will be using OpenSBI domain memory regions to program the PMP CSRs. Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Alistair Francis --- include/sbi/sbi_platform.h | 50 -------------------------------------- lib/sbi/sbi_hart.c | 14 +---------- 2 files changed, 1 insertion(+), 63 deletions(-) diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index f51e36a..f2c3237 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -89,15 +89,6 @@ struct sbi_platform_operations { */ int (*misa_get_xlen)(void); - /** Get number of PMP regions for given HART */ - u32 (*pmp_region_count)(u32 hartid); - /** - * Get PMP regions details (namely: protection, base address, - * and size) for given HART - */ - int (*pmp_region_info)(u32 hartid, u32 index, ulong *prot, ulong *addr, - ulong *log2size); - /** Write a character to the platform console output */ void (*console_putc)(char ch); /** Read a character from the platform console input */ @@ -456,47 +447,6 @@ static inline int sbi_platform_misa_xlen(const struct sbi_platform *plat) return -1; } -/** - * Get the number of PMP regions of a HART - * - * @param plat pointer to struct sbi_platform - * @param hartid HART ID - * - * @return number of PMP regions - */ -static inline u32 sbi_platform_pmp_region_count(const struct sbi_platform *plat, - u32 hartid) -{ - if (plat && sbi_platform_ops(plat)->pmp_region_count) - return sbi_platform_ops(plat)->pmp_region_count(hartid); - return 0; -} - -/** - * Get PMP regions details (namely: protection, base address, - * and size) of a HART - * - * @param plat pointer to struct sbi_platform - * @param hartid HART ID - * @param index index of PMP region for which we want details - * @param prot output pointer for PMP region protection - * @param addr output pointer for PMP region base address - * @param log2size output pointer for log-of-2 PMP region size - * - * @return 0 on success and negative error code on failure - */ -static inline int sbi_platform_pmp_region_info(const struct sbi_platform *plat, - u32 hartid, u32 index, - ulong *prot, ulong *addr, - ulong *log2size) -{ - if (plat && sbi_platform_ops(plat)->pmp_region_info) - return sbi_platform_ops(plat)->pmp_region_info(hartid, index, - prot, addr, - log2size); - return 0; -} - /** * Write a character to the platform console output * diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 55a04da..edf79b7 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -226,10 +226,8 @@ int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, static int pmp_init(struct sbi_scratch *scratch, u32 hartid) { - u32 i, pmp_idx = 0, pmp_count, count; + u32 pmp_idx = 0; unsigned long fw_start, fw_size_log2; - ulong prot, addr, log2size; - const struct sbi_platform *plat = sbi_platform_ptr(scratch); if (!sbi_hart_pmp_count(scratch)) return 0; @@ -239,16 +237,6 @@ static int pmp_init(struct sbi_scratch *scratch, u32 hartid) fw_start = scratch->fw_start & ~((1UL << fw_size_log2) - 1UL); pmp_set(pmp_idx++, 0, fw_start, fw_size_log2); - /* Platform specific PMP regions */ - count = sbi_platform_pmp_region_count(plat, hartid); - pmp_count = sbi_hart_pmp_count(scratch); - for (i = 0; i < count && pmp_idx < (pmp_count - 1); i++) { - if (sbi_platform_pmp_region_info(plat, hartid, i, &prot, &addr, - &log2size)) - continue; - pmp_set(pmp_idx++, prot, addr, log2size); - } - /* * Default PMP region for allowing S-mode and U-mode access to * memory not covered by: From patchwork Tue Oct 20 09:39:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384754 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=Gvy1h3H2; 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=HT8qFq64; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=taqdBs5P; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpf94jBBz9ryj for ; Tue, 20 Oct 2020 20:45:53 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=z2xsdPZRIqhoOSv86ysle0mWU5NJOwLC0e6AA+DSaYw=; b=Gvy1h3H2sHm8+agZG5Gh/Z5OC uDsI5yukYAGmVJFwgnvdRLp/tppXHAse4t/96pX4Wop3QHVlZKeERiIuCY31edlW+/2GC4PHR2n0T TJ5kiySj+ZpNaFbIPTKzHR3E4xC0yVfLCP6bkIjiF9Phba/eCidd3MDvY4kx5VmcchN42NpwUD3DG qX4d1zi/LOmwqPBoaJ5MsA1JBWK/60ollSTwMjuZ3+6utgMdmrKkbrD6ka5R/ZBFsUqhGE4iK+/R8 vu7YmlZpDMbFn5fZhTOZaveF89EL1HqNqhGZSYH+G8dy+HNtkPB+KhxrPjStCF3y/2/0WZxq4TSss 4Yyv96h1Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDE-0002lW-Kd; Tue, 20 Oct 2020 09:45:48 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDB-0002iv-PA for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:46 +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=1603187192; x=1634723192; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=j0jcyGA7c/cBK9/8HpR1I9Vue6WPhl32Mu8D400LzIQ=; b=HT8qFq64/7kUyaq/+izpRthyM0JVAkNgE5OKHXPcWshqaWrAQZWHc+1e ZNP4iOEjN0BD7mD99K4hGk1k6zX/WsXefnNNq+ntvDER4nvlHQa0PN/bA l4N1qbkZLqPiCy9uYU+egwvTvUg4ykc1wX7vdI1tBfB4IHcaaCmOA9GTr LV06tVN13qNSZgbUE9EgjsBV9Tp4gx/JQDFH44ZO4cgo31u7oi+Jd3pPM XibtOBtmkfkrprh3TwRGh9D9JKylTlhNEYv2i78wamiCZ1NUDb6ZGDSwR 8y2aEa3FmfcrHTyKFleioGoPywYM3Fy0JZrJEz7WQW9TCkey+qJG7RwM0 A==; IronPort-SDR: sxq+k1qCA+Pmd4x7B8tukEPB5Kbn290W4S/TYCqGw0euzVzVu0mz0byA1djM6CS+3CDzdNm0Ip R4jl4+ZHKEwLuZNwgpFwlPfpJwzoT3FXHcHgGDo9iAtKcFJUOVmf0VDzNxQUlSalOadhSFZ4aY KqwahYCcoxp9Vf9cersr0huXlSFp1+mO9kwN5i7Na/zqQhUekmQi+JiQbuPodPWZOLdI/1BZRb 3QEOxvw6g7Sb/DFMG48wnfrnZ7Vw477iKZ05813kTFPyAWtsxBgL6cS7pix0NWtpqGFaH+1gWU xp4= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896134" Received: from mail-mw2nam10lp2102.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.102]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:30 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ViypH7DnKQLES8hRhibsxBpLh0XtMFxig2oWdNOAggZCYp9bGZQBAZvYw4fKOJqYSNwnNOcZNdPiWjpEX1kMVGQmh5l9wA8TXScSZfUTiS3ZyfePoltrC/SUqyQJfNnCsC4hTqbm2izdpAoI8S9tXSqHdametqMRth2WC2v9qji9gpKS/5B8Zfryp4WzizLqrDfAqBf0BB39Fhbd7lmlNLm8qPUdqxHW14DmM4HQLjfEGpVxE2KB44Sbrtz1CTxeTemF9qk3JB5IB9EALXFBzYC35S4TVSe2/rCuoKinPtGNgiILVREStbHD1c3Thnyvxf2pcZ9Vz53Q/yFmbt8Ojw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7GSUPCrQwCZfWrE/3xWdlA+sb7ncFy7oX29MDg1GdPg=; b=iJnHLPSDrbHfAaM48Vlg5b8gjYzKWl49ZuPn4otvPIEoLCh1qd3Q/IdNyQIf9+7usiMGWWDa4V6C4CLJianRR4nMoKsbUVAJ7a4o1YyIiavnQuM7h/TXZCQ3dzgL9LOcfC6jLyv1rj7gd/aITUu63ZhuObCF94eEMMg1gnOVakxDXHdMfNm6oq9kbxGHWmt39u/op+e6wzYWJkYJsg1hFvgoo6u4ZEOaZd5Yp/nxMIf170jvdWTR3vH4oFwNLxCKtY1AwCftu6SootULIOvUMQ3jIKmsCVqNV1E38OFMFy66VcccmKD3veYOQb5/gs+W/4AXWHtej3K9ax88KkMryw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7GSUPCrQwCZfWrE/3xWdlA+sb7ncFy7oX29MDg1GdPg=; b=taqdBs5P030AEER49xIp0U58tPKXb9p4R0BCr3SOmfgMtX5/O83tWvRuIszTPf8qdsNM0qgUTfTQRc1xTE5MqeMgNM8wqYLPgspcXSt+abwEIDcukb4CRVuMFNSnAd4En7vIzNeI56MRHIHM6lXvPUqnFuPurnOOnT6ZOteYPSI= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:42 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:42 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 03/16] lib: sbi: Configure PMP late in coldboot and warmboot path Date: Tue, 20 Oct 2020 15:09:17 +0530 Message-Id: <20201020093930.2551352-4-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:40 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1fc782a4-3b62-4fb5-148a-08d874dce916 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h/Jk3DgECw7VX3TIjReJe6EypbAk+fxyp7fDoWim5pW3nilKA4Lg2Hnx2GpeuoxdQz+3geUlbrn78xR64QmD+TaiA1SO0X1KWz/QQnD5cHLUDyoEw6pdhz9BtwfnkpAe+ZxUS0zv6vp1duy/WGvpYD+Bz316h18wz+MfHqvAw3UYafZ65wAgiVb1WUZtfTrd2Ixthfh0SpovWt9qsPgu41LKoSDIF7xz5ci+yPg6ElIdiMKIWAi9rYqGKjVNJyyrhpkBq5Irc3CeAYL+Pjwo33DbKVBOuwOGLvQeRK/bBQO6A3HSuw1k2f3/XNSWqnCWhEMujmckD+TUkMbMJEAIVA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: YZCt2eK1tL9hiwcHNqv6S4qrUMl9D4M4ZsmWPQK6FvsSVu+E1Zr9qDTZitPxLBCUvigw0IxssMs+fyDAUGYoEGDGpbifB7HFOcdGHnCjlka4xyRk0YbdCalQqHyml9wBYVoje7pmgqYDplhkqrh2TO5N21kP3zyZhz79/ljzSoBsqeJyhmL0mkluE2v8kjIGxrS4/kDOc01jOIracZDvZWaKSW7KZN01wKSca/McZdKgWILROGGV6CgELFZz/+wSgwoYFc9XB6I/p5YoAy2Sn6+Pl6mOAnKSGeFApc1BDPZqyPd32Q7SZ5XafKO8efkosDQ2QN1AHMwDQcHyc1GtGsNh5EZdGBSqO4W8MIyZntmY8Hhf9QVjF9ApedPj0sim3wuAVpQYZXiL1wwhQyH1oCmEdLiEW6392gm7upqTIHG3+2JgJbIY3xokizZRGvF6Bx5BwrYf+zD3xoc8nABrG58+qtviwN/S/5JNqRMt4PswGJURbSMZc87iRO3uE0Yxz84UC3aag0yI3GSwLH2HeprD0YV+b0f/+gja9XrMn7yVKCO6RgS4lLuQtxAJluBqYE9sbHlI9tul6bSQDjiX+FbxZhgjpf28xq0MTIoiORy2EGw+TNNEHBwmnlTP+X+5WSO6tCusHzDoN2oAJZXmsQ== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fc782a4-3b62-4fb5-148a-08d874dce916 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:42.8408 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: liL15pGswDoUOd5Y4C9Qx6rGCds/NYwu8zy41myHH1JPryRy5U3yw6ZMPwYtobEFkwIRz6NBjqs1X4BEUkjBzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054546_014940_04A8A239 X-CRM114-Status: GOOD ( 15.84 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org We factor-out PMP configuration from sbi_hart_init() as a separate sbi_hart_pmp_configure() function and do the PMP configuration very late in coldboot and warmboot path just before platform_final_init(). Eventually, this enable us to configure PMP totally based on OpenSBI domain where OpenSBI domains can be parsed from device-tree in any of the platform operations except platform_final_init(). Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Alistair Francis --- include/sbi/sbi_hart.h | 1 + lib/sbi/sbi_hart.c | 4 ++-- lib/sbi/sbi_init.c | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 0ba68f0..9207f4c 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -45,6 +45,7 @@ void sbi_hart_pmp_dump(struct sbi_scratch *scratch); int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, unsigned long daddr, unsigned long mode, unsigned long attr); +int sbi_hart_pmp_configure(struct sbi_scratch *scratch); bool sbi_hart_has_feature(struct sbi_scratch *scratch, unsigned long feature); void sbi_hart_get_features_str(struct sbi_scratch *scratch, char *features_str, int nfstr); diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index edf79b7..7244f1c 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -224,7 +224,7 @@ int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, return SBI_OK; } -static int pmp_init(struct sbi_scratch *scratch, u32 hartid) +int sbi_hart_pmp_configure(struct sbi_scratch *scratch) { u32 pmp_idx = 0; unsigned long fw_start, fw_size_log2; @@ -462,7 +462,7 @@ int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot) if (rc) return rc; - return pmp_init(scratch, hartid); + return 0; } void __attribute__((noreturn)) sbi_hart_hang(void) diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 65d81ba..85a5f13 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -210,6 +210,10 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); + rc = sbi_hart_pmp_configure(scratch); + if (rc) + sbi_hart_hang(); + rc = sbi_platform_final_init(plat, TRUE); if (rc) sbi_hart_hang(); @@ -266,6 +270,10 @@ static void __noreturn init_warmboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); + rc = sbi_hart_pmp_configure(scratch); + if (rc) + sbi_hart_hang(); + rc = sbi_platform_final_init(plat, FALSE); if (rc) sbi_hart_hang(); From patchwork Tue Oct 20 09:39:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384755 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=dPBZYifk; 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=LFlcvJl4; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=jI50KGSE; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfC5WK4z9ryj for ; Tue, 20 Oct 2020 20:45:55 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=KCxTXYr9+eKSiuFEVioQnlzUIZunnTyfRTr65r5L/p4=; b=dPBZYifkyVNbWRULH7nsLZ9Ji Uy50xLgThlYjBx/c/f5aE80I3pnnWl4WdBLaLKwr+h+/DKkNwNyX/trxfl3/Uq4XwYjqe2g0KYS4W yLEKBF7aZbjjNvx7DL8tns1/ffj0M6TOhXLkOUm5U8uyKpKO7gUaObP4MqAeyi+7wR+lnREsEsT20 XJdh44AL2EDbhT0bnhx0qOIvuKR+bYIW3AToMKqPS7zv1X+mE8oGx8syW/V4rFAE2uDEUmU/GlKGd wJ6dQgfSJlQuGgG5S+i7yggbsypC+I3ogz0SgDyLY+FJijQICPjLf/2MNvH2Prt74r2OBhziOJxsQ niUwCZ9OQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDG-0002mZ-QS; Tue, 20 Oct 2020 09:45:50 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDD-0002iv-Gm for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:48 +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=1603187195; x=1634723195; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=b2kX72qOkvK4jRJzcrj23g1t0wnalNcdWJqwxtm9Kbc=; b=LFlcvJl4tsgrYkMtPoMZkflrgpDlOcOHYQ3DFZzBtUmR57xUiQc0KxqI JAjyTUdYpkpa3C6ihHmkmXk6BiIv84o2zsdUH2w2cVzA0Bv86afRcWhHM WBQ8jGj93O7EEDyJkuXO9MYNnvRV8RS4mULOjNCBkMpSQxcfz7C3a2tf7 G2+3oH2dZMX7A7DrwTe+KYT2jPU6W+Y/aLR3iWMwr7VmOZRre4Nl8b3Iz 6d5+LXqpiAbgGkho5n3BkMQqrHFa3go1XEqhsPuBhtjrPiGI6uOU0SKax oVsTzfypWLiSte9MKrPIwMFa5f0Vgt9JZy5x9c4q5tDpM8mguiZHoJglh g==; IronPort-SDR: aUNIuou2ZZkF9YtVYE+M4+uNGgLDVxvAJD+0r2BzcsApDBOU8GfVDJ2n96daMGmiUL3fNIcr/O yc/qBqBQOCfvz1essoziOsN2OApNn5RhCnskYIFFkt5woB8SbEAdADRXXSz6UjYNQpYWljDWFu hQqjF3aNZWsdspU6WLstSfF8Y7wRwtKRI1Rxr+9YGoDc0kpEVfJkI0IjcjcE/eUVsd+SdGvtku xnMcRBIsOos4ZkHdBzl8xNBg3Ud4rdMe6sFMe0HQg/VSQIRg8KYMxVUExsE3gdXmjo4Bpv27+C /3Q= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896137" Received: from mail-mw2nam10lp2106.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.106]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:34 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PLxzhhFYrbxe2AEsuwviQSUQX/0mhbBXEpDRNk1piTDjKycIBtFi4ky3WzatW6mAYVO/QEHGFOMlcKjqGTuyscib97gFzE7GKrndrIsMp1K43HEIYdhTSjbuCj1QQGQnxyKStrRxaKYWZxnVEP91aRI+4BxpW9qaQ00eSyNuOyVZhWCRw4mKX8Q4Djkt/yZOVwvYQeQWQiwWOQACvaBmd7GfJX8S4r+9GCZSuVM7Sve9W/g5Cphncdy6Sfb2lIIc9JpygfsDMaIclAU5aRf0OOf/kH3SEdXZk95tVCqNYlJAmsYRoD/MDSfZFKrQpJBw9lUG4dF+qncOCOd6uaawyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RvmyFJzyG9DcKQ95XfHsfYzmVWYqNfkLGVblEcLMLVw=; b=UZgGc/FxlOG758snMBvkEzCMjj9X4NwdOYBR7mN14OIM/QHaed84MFLe4NDDPwoFhrfTYqfdApegWJsjQ9bFSHp+hythQ6A0hoBQ1Jh/0N0FC2PSw40eQ1MHUCr0bxUIdJlOwdzMqJvCB5TGGf4gPs/uxq7lMN01KmqQL/gEcPWBIZU7nhe7/gScHK8rkFefAeC4PovnfKel9TYvxlpL+eitTs1fD1MyYNs8GkkPsm/e5/bAIRelzUbbakk019KrPKbNHagtGM/2tFJokKXGdvf+1iUvqw4RLfNx4PdQlEfvcsMkQa2D3DOjJo9SceR+2+EAxJVUDh3IGA3R6dkOWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RvmyFJzyG9DcKQ95XfHsfYzmVWYqNfkLGVblEcLMLVw=; b=jI50KGSESrgwFfLdWqcOmZeAhBYJImUdB23k+t3fHvMEAv1n9DBLfwd8udC8iaiVoEtgZRZak+MftO0TGLzAtiAaM50T4+HlKfDdgdFGWJlZjOsdJHHAtLab9DWWkHowfk+obKyqwfs7YlofhPnLKk1ezGkA5Hjb4jN4hDomX3k= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:45 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:45 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 04/16] lib: sbi: Remove redundant hartid parameter from sbi_hart_init() Date: Tue, 20 Oct 2020 15:09:18 +0530 Message-Id: <20201020093930.2551352-5-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:43 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 425cc8e4-12bc-4f71-93b6-08d874dceac0 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:2512; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fJ+/1uup0iAxunzjuoKoxd59i2AhpruLwJ8lY1CkvaK0ycr43G1pmxciR7ao7udZRepOLsBD6NrKx/KOu8854Qc8hvLlKuEaBHezytXEUw5kNzcxavoFqVxaecSp41QL8eMfA0DN18Wp3wR4ui+KHe9GnPmYdcWuA1z6qE5IQcUBQAzK49FCQ86Uqvdm+UaSnJZwyitePvfpMAydBbizTlmW2EBCiPg1K569WbQBNGHECZ2poMdzUc+Q5aEGYe2yT3nESWphXhQWP/rYIrPc69nFHL24pJsztxEm3qSC86sVbkz2ER1OzH5cW080OU/G98r7qbpuwjdgnj6cmPKzyQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: JfVVwSs7IAWgoF5qQKnDo99a4bT6AkuZDHCrHIijqlVlQDNUAtr6bJOYbONkNB+ebSuSBhsJ3zr5rt6I/5zGjb553kBjZOgdl8XK9po6SxyqaqdJ4BpDi3hDgp3B86XiO4d/5a/pNCY502MwlTwuuV0Y7Us8w5KUSYx6/Ihy0dozdJrNUerFQIoAJHl53xY93RKTBpxj89lvXRpB5YN2MbpKy9PgE7jwrYdDGuv0n9vkITIT2moR5bN+k31fYwaIJhc1sFIXlw4fw8RPvIzs3GXMjPJOH8iB88/ExR4t7t80fJybhbxFTYi0QpCReJD3c98jMrbuWNx2LylCJi7TMNTSTh/V5i0k9XUkIvkABTQKqd0Tocx33pe4NivRqs2zKUyMhRxeTl1YlzVWbea6nW8Xb4NQ8141dojijaQ8sda4zE1guR+ms/V/jYStqAaYquAZ7hhMfgeTgC2dHaDFiXPZApe30REoJvItPC1Wtc4ASQMVVFKQga2w5mlH8Ho3tGS3itZnxC9Zplqad6wKwQo8dXzywZRkG1jIyidltZ6lrc7SgoRFLBXaGosRwVQu6R6xGaEXP9zyqs0zKRWgcvqWuFFmp25AMxlPycI/xDd+W8k97wYisL3l+Rip9p0H6TvRR2nCTcSsxnBynOp7hA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 425cc8e4-12bc-4f71-93b6-08d874dceac0 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:45.7178 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8bOJPtmIEx2OlhB1emvYLqHlfmGkVuY1vBk5U+sE//DfnomFWyfkni2iI0GjNelQmV/SCqpyK4s+C0JAi3cXVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054547_721332_DCA5CCE1 X-CRM114-Status: GOOD ( 15.08 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The hartid parameter of sbi_hart_init() is not used anywhere in sbi_hart_init() implementation so let's remove it. Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Alistair Francis --- include/sbi/sbi_hart.h | 2 +- lib/sbi/sbi_hart.c | 14 +++++++------- lib/sbi/sbi_init.c | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 9207f4c..2efe44d 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -27,7 +27,7 @@ enum sbi_hart_features { struct sbi_scratch; -int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot); +int sbi_hart_init(struct sbi_scratch *scratch, bool cold_boot); extern void (*sbi_hart_expected_trap)(void); static inline ulong sbi_hart_expected_trap_addr(void) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 7244f1c..88ffab0 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -33,7 +33,7 @@ struct hart_features { }; static unsigned long hart_features_offset; -static void mstatus_init(struct sbi_scratch *scratch, u32 hartid) +static void mstatus_init(struct sbi_scratch *scratch) { unsigned long mstatus_val = 0; @@ -62,7 +62,7 @@ static void mstatus_init(struct sbi_scratch *scratch, u32 hartid) csr_write(CSR_SATP, 0); } -static int fp_init(u32 hartid) +static int fp_init(struct sbi_scratch *scratch) { #ifdef __riscv_flen int i; @@ -83,7 +83,7 @@ static int fp_init(u32 hartid) return 0; } -static int delegate_traps(struct sbi_scratch *scratch, u32 hartid) +static int delegate_traps(struct sbi_scratch *scratch) { const struct sbi_platform *plat = sbi_platform_ptr(scratch); unsigned long interrupts, exceptions; @@ -435,7 +435,7 @@ __mhpm_skip: hfeatures->features |= SBI_HART_HAS_TIME; } -int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot) +int sbi_hart_init(struct sbi_scratch *scratch, bool cold_boot) { int rc; @@ -452,13 +452,13 @@ int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot) hart_detect_features(scratch); - mstatus_init(scratch, hartid); + mstatus_init(scratch); - rc = fp_init(hartid); + rc = fp_init(scratch); if (rc) return rc; - rc = delegate_traps(scratch, hartid); + rc = delegate_traps(scratch); if (rc) return rc; diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 85a5f13..5cedb15 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -182,7 +182,7 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_hart_init(scratch, hartid, TRUE); + rc = sbi_hart_init(scratch, TRUE); if (rc) sbi_hart_hang(); @@ -250,7 +250,7 @@ static void __noreturn init_warmboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_hart_init(scratch, hartid, FALSE); + rc = sbi_hart_init(scratch, FALSE); if (rc) sbi_hart_hang(); From patchwork Tue Oct 20 09:39:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384756 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=WVt82Zdz; 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=ChIHUc5P; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=qv+Jvf1c; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfH45KZz9ryj for ; Tue, 20 Oct 2020 20:45:59 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9kKrp64qNemmQ6eXD/mzJVXr5YXB2yqA40sb1aWBk78=; b=WVt82ZdzBi48JXnhPFGk2ArfN U9nEPpVxetxPq/miy44Ept1BVOglI94qJwRVDuoX1ENDGpNUm45kkIANDCvunZwlj4itiF/YR2aBH 24w+NvAVR1uhmPD7qdpfFtjbxyQVYJ9gjo2VYKjfnx7nYn7gw2KJojbi3Sm5DnQHF+ZHhYZONNCT8 81pfOT67bpYya16RRJMRd4E058NIHuVj25Pfm2W7TKWkuchIbIedBwujDx8G118a8PTn9wzjEOgbo 9dkxiapiPKpzMQM39gv19GqpxeRwiwtJCK/9KmrOP7GNwMvPY8L/kXuHwGdTZvLyhuiJPmiWNZlKi VeJ/brkBw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDK-0002p5-GZ; Tue, 20 Oct 2020 09:45:54 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDH-0002iv-Ms for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:52 +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=1603187201; x=1634723201; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=maOimL4rDVBNQakNDRrFsLMBgp5WDFwCm5tlpzYHWPM=; b=ChIHUc5PycGoKo53+pAqs5zl8l2qHRNKe0az6UHRwZN9/Azj8otarXAk 3yrPG1v/nIjXGI48YxP/43EHvPwHipgaLRgd559nnI5k1YfA4QSlNgngN QJacoH75Sqp9ranYBe/IDN3U85FlNW/hG/iC8GlxrRoCJySqILi4YGQKU QRqPdyp2y97OG7/eTDXlqoDFbBvP7q+apum3Ii9zh8gf7N4mRVJymNNM2 ncTLc8rGzyRvM+wmQUQaXoy8RWGzt86x9EubbRBgEXB20OdhEk5j+gEGv Iakv/5sZWD103KFaUFqrYaA2iPD8WywnwClyxecVByJKMJj8Lg/EeFCHp g==; IronPort-SDR: HXO4dM6GdKhoCA6qTp6huwZxhYGCjyttkyInlTALM/bxeENtwh5cJ5auZlRVjJqbgTbZP1dNeu nWp9Li4ghxtzI3e+2lEMQuN07gAb/zTGXyk+gsUW4yiuHt5v3khuIG6jKGkT/vz5RwBIjXWQWh lXfQN1JnBTptGKY6oY2FnptupMLPJUnQahAbNwbTCLIgey8DHT1l3M+DHIr2V90QGdc3f3mGOj tzIAVfR5Qy0LU3zwpsW7TwVheebq5p+7CWhj19YqWowxDPuIrtv5tR/oW0w8wlDR6wcS50qBCn UBE= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896140" Received: from mail-mw2nam10lp2104.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.104]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:39 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fLDYPeiN2JQE0ie2ev2GP6OOd+EQCIAvhdOxHof+sxBlMR2yK2WQ/d9KOxzlQhMEeilULHheY4OpnwRcK3EkJ6vLW4bsbukIHoop0A3Bltc0FdrMFyZXuAy/s+rgvmbMaFi94n3GFT63HHapZRjs8la+FFeaiia2p5j75qOwKJQSDwSUb5LYI6fmepoWszrcL/2ujUKA4LY0nKU/OdL21HxuaeIXRqqLofS2dGXCo0vVt3Yx8br3PpSUVu3VqSLl7s1tnG0K5fQGYBwosq2FiB/XMoxhmqmUPIK9KOhCfM1dLwx7LXkLR8Egk7CLcIx1Y8hbEDdupuQOO4RHNh2aig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CAiFPF+Bwgr+5uZ2xQeibJhIp3EJG38ywZ0TP2+pPTo=; b=YkPBdEG/Ct9qVo9py0siLMU83sT9NwNsKqoKxvVq+Zcm5kb4Jal2fKXQWbU1MLp0M1MACZP4iwbn0H+5nniLlCviD8hdNt/xYHFUQ6jzjzUapS/RZKmxipq0sm/sKUdx0LRdb4vX9BC15s41GL0lsO3Bk3Cmw+0gRpZqQOGTEO4N8UYL/kBNYPr0ZYAv2FVYU2Y5BlDggTf1ruYdXTFRN2UrwdhQFObr3Cxjs8mXQkByrutTp9DuFCqqmiWolHvgkZgTu+hzD7d2NKXV18lpOfyyR9WqXTkcpY6eLGxwPDPuGs0hOfmRIkE/mwEk2YdwAARog5rXk/C3PmIXFiJg7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CAiFPF+Bwgr+5uZ2xQeibJhIp3EJG38ywZ0TP2+pPTo=; b=qv+Jvf1cVVRTMOz9p0IHqSqowIbVRV6U2poxkfL7n9femwzarpUthxgGL5+Favooqro48sOT5xvofcX/UDfibUdDoD7HsAZhUZFEdsa4e43MZSIRB4nrqBL5aG7se5j6FywP4+IkzfE30bhTiWxsT62tv/PRzVL5Yfl79/ePbQQ= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:48 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:48 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 05/16] include: sbi: Make hartmask pointer const in sbi_hartmask_test_hart() Date: Tue, 20 Oct 2020 15:09:19 +0530 Message-Id: <20201020093930.2551352-6-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:46 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 794de37b-e71b-44ba-2e16-08d874dcec5f X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:2803; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jdGbMXt6a7Ey4vSMf9htlbsTo7QBrAUqyrBnviDYaVyFpgf9JTqA7trtUADYCTYKL0yEXH/Mk0xyB8X2IQ6Rv2saLYnJyFQxnPFr7ZPjfE1rpancauBysyDWBVq+ODHnvBIBa3BgctfC6QZGANId3Pjgz9vLzpS/kfuDrtBegV4WUq+JhQLbVG/8JAPrl7vtY7ZpeVtJueMpEGZ/J4dTbSkaw5DLoQUoBq2BeoY5/TPO6/Kt4p/6ahnY/roQ5yJTtvtjUTfDee+6T0SaW7dbOiwb7g45pYf7dHHNcXdjEVPmKwqdf0GGTdFVYGJq5p/qka+4TQz8OwnXXAiRwKQzIQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(4744005)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: bHls04HdUi6ic0gX5yXIrzTtrgzwVTw3IEqrXSRKoDFztwXgs05WHaoPUmFH63c7Y8v7cZO3OOr/9GUjbBiUeLALMyQUXopBMXLv1af2ieSPgC5hMbGeFC8hO1eJZ0kno5TR4K9YJrlw2KK/zCIwWL+uQRu6S/eKvFK/VcFtExtTjMk+K1FzAXsJUko4WZOKmnC7kcFjlAqk9Fk/GqPeCDnZGARwJR+UhoUt9NlSyFgm3XCuhoNw2HLuS1UfxwBBj27wE3L7w2JsWOsidJ5tJPdq4rYNLjSrEveNeMyLx3bqoO3kKplG7Z+Bqa7TbzihpkU0r7np+vQM+pmtW4WxP2HEokLC6KxYzOsJnftPCh5+sQ0kdEC8XEBHXv7wMITADiM2tkqCxZFFGjm2zY97+3tHkViO3kNjJyCZnJlgBR7DzCT8jH1TRrf9it9UsdmVATInlckAbVvK55MU0HT+vVNzjeB+TSiZvXtdS2XNTVe6aGwm2odcQtuBoyRX9igPfqF6IaipEhyPfuLHiDKbgMmx01ZFA41vJJMEAtOIObobTMfqMSjJeC0j98gK8Penyr8aXGdA1gcpQNlb1TJd/TRvDlvS7QFYtcJUeO+sNIZrv8s+s5KXUauFumSyyuTKZheNtNVO3JgwCCxiGkMWbw== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 794de37b-e71b-44ba-2e16-08d874dcec5f X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:48.5219 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YpAJI7BVlPNkChXvaL5cBlXEL0RaEVeTSsVf3eii59C0zK5mzZMFilCAp8kUgn/5rDw6nxS4gd8zJPC0Q09rrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054551_967892_6C3A10DE X-CRM114-Status: GOOD ( 14.80 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_hartmask_test_hart() does not modify hartmask so the hartmask pointer parameter should be declared const. Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Alistair Francis --- include/sbi/sbi_hartmask.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sbi/sbi_hartmask.h b/include/sbi/sbi_hartmask.h index 77e42cb..f1cef0c 100644 --- a/include/sbi/sbi_hartmask.h +++ b/include/sbi/sbi_hartmask.h @@ -67,7 +67,7 @@ static inline void sbi_hartmask_clear_hart(u32 h, struct sbi_hartmask *m) * @param h HART id to test * @param m the hartmask pointer */ -static inline int sbi_hartmask_test_hart(u32 h, struct sbi_hartmask *m) +static inline int sbi_hartmask_test_hart(u32 h, const struct sbi_hartmask *m) { if (h < SBI_HARTMASK_MAX_BITS) return __test_bit(h, m->bits); From patchwork Tue Oct 20 09:39:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384757 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=hjSq1sDs; 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=KkJpd5sa; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=YnPs328k; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfM0hkXz9ryj for ; Tue, 20 Oct 2020 20:46:03 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3iLGENY9c5yWFrYgg2lLjoAdapk7vc3bZzxVinFbqcw=; b=hjSq1sDsT725HNMbFw/EshnJr IWxueN3eKdMDqt2eDaIhviRh8wsfztnWhbmpPVkjcKIiaYu7aNokwW8k9YIhl1ka6S1Md4F3sO+q8 IDq08K1j3DG/zwQAfeiyclovNwkmOFb+RodOSRALrP5+BQGWoB522mX8WYjWO+iOU/vfAcSV9Udue OdSyeH2nIyX6waxhrYyMil8KzTtW7pqp/ihJXGOUVtgO7BHKlnvqac/8LTAPFa6z2t4pZo9JT3nLF NzySO/g+e9fwLzW5i/2GvjOAT3dHUNYlK+d+wwutAAjFPTr5yiOiv9Ncz9ImW9upqHzEMU+0JJn/S +wCPfc12g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDN-0002qd-I9; Tue, 20 Oct 2020 09:45:57 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDJ-0002iv-LO for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:56 +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=1603187204; x=1634723204; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=K4lAXh1Qs72XSLbtdXATXJ8b41oGb6g19cKpK4zihPo=; b=KkJpd5saa0WDuQR5a8Q57sDK23kTd7Rg2fAxcqXcZIyQGoCQLM+VlZ/Z HRDSQhn+uoXp1fyMp3/y8yrqudUwJuiigV8Tx2tsro6jNmBwclofId5ur CK09Bx3y9SiN7c6tIgG3s1NFj8+FnJVBtGG0ZcJHq9cyRIeM/1g9A4r9F Pccl8Mb9KF0CXI+ASrGI7ciBTGl1Ds/0/c69c8F2wQFUOKAyFOD6GfJ3f GW0g/An9XWgp5h0jjL6lcmByA6S+qHtCo0ZkbSyulJzt94vtA6A68Vwx8 Hajwm+fPvvv5zoiESld3pdPqKJMp+YOYoNXq1/5JbQkskQ6ncPf6LFOfu w==; IronPort-SDR: WoATw/h1n2UlJB21tIZ0sVwyu0EjhnjZDZg3UscBLcgHytLTPczNnr7odL8wzNYnfElxG38CL7 Mp1pFVuG06aMx64yt77cUamZvFGtH9vZxV37+Ur39FsMM0U2aOazLyVKjp/Ax0o2JrVDBTG/HJ J8N1o4OZGVdrpDHjlf4c7lxK2BNRfobVveKiY0WFu9IlBDLELJr7G0wPr4KOOK+XR37/KV20MD phURvaVkhztM0WAZ6c4jBy8gXPn28Nheqn41OxxHXzuSk26+CNQZ3JUpEdOHKyiGU/0r8qaO39 Low= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896144" Received: from mail-mw2nam10lp2101.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.101]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:43 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aiOWKulE8omLub+yaOgXOMwB6RRQ69Bu/i7SpCs7hAWeykjCqI2xQ0f2eflX50IN7OrxOa7aVP4p8lARvIsq7ZtxL6o5nIfqZ2PtxhsYRza1VXieTM+ftnA/XIt37228ZoPk//1z7cugv/R9pzL4MtXrQqkvh+/hJ2pL8XItFNPdeOJNVQ1jpZeQo9Nc/MAksRzO+x8vC+a2fo3Ekga0NJSI2IM02JBsdHFzpZ4PajuRGYvVkQiga8p6jDZQhL5660qEKgZ+ks8tXsu6wW8NI2ax8KOVO7iDyJATctUPw82XJ2o8zXjaPpni11NBCDf77cMb/J5XPuj7QcxjVsExRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=drGjs92J71xtWH5NoRBNXL1HLcPQmByvFT7KOBOgOeU=; b=lPNaq/4jOamm+C3xzELy15NwhlMJhdOTtGBPbIYON4EzOCpYa0cicIWKJLCSFSXJpHuwbUVykxpoerfsrO06ciXMPx5kTw+IgvJ8FyWxAFYCkX7ZxZE2CxNDDhvOdhJqls/T1Js76t2GsFgFZawdcZSzs/G+wEMttxdqaQCMkvWJa0/OGkaoOdiBNnvAp7iwq983f/EtzPSjV931k+rypfqSz981AObfuVjoDMbtrZ2a0MxZ+aGI7LkD0S+NBcekM+WZzzFk795hzRgLXbqmb0cUvJYaqT+76q+pcNNvwI2yTRXSoeJdcMM634VHqrL6dc1vkUuD+Wry2wEGzOP0yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=drGjs92J71xtWH5NoRBNXL1HLcPQmByvFT7KOBOgOeU=; b=YnPs328kqJglp9KvYN43DvJJxc6I/Vwq+OjpymVRvZ82TdQSBG2c1PS/HArWusXAoEpJMuFZRQGcRAcDxvcCPnpB0kRYCnO7aNne2RhU09oUnjWWIoUBQS2bPub5zkXjz1EnZ5kYIw3IoMDG8aD8QJgwe0ZY0qtweiv/MCRLMjI= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:51 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:51 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 06/16] lib: sbi: Add initial domain support Date: Tue, 20 Oct 2020 15:09:20 +0530 Message-Id: <20201020093930.2551352-7-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:49 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6f1360b7-920a-486b-9df7-08d874dcee21 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wgFox9fpYHCAQe/foIw9ECk5gicGL5/Syw99Qh5Ux2HpPrYD8I+eG8oGX4m2D+OcnJE3Pseh2LHKfnKrTNIKgDj3nr9s3xN5xNnJCoSrpd9hzfH/sy+vCo7b2A9+S5EoAj9hCYValwhVYxQu2OUF7hWK9gb7hVcEMqvJOUhmj10zbdM4RjmJviWjqhS+6Jg/ldvLCMaKXz0olOiEzYxrW0Fls6+SwmEzK10KVilapB77BqoqBlFscqa/7RT81ma5p1mtnGTKjEa+HF940zRjXN/wi//0LKhxU7ZoFriWQAYefInkfiMEkb8Y8QNroGaZVWx1ITkEhWy2FRjqAih0ww== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(30864003)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: Mb/ekFN/UoHJPYz0LPKZvAXda3Iy8Ll78LTPtZraOxCercdCSRoGdBrqw/QtETJp7KjtQ6A6Pyo8UPBhsWZ2f+c85bKFqgJAu7f0dzNDg7JYFp0X9KunDkdS1WnBYGeKwyCKvByAXrFa/s8ZtMA8QLZ7jty80m6IpGtq5wQ7D5BTToXteiPqGr5hfVcHMtZFrst1vfVpJrbrNPEFWWskhXoss4ZXEPIZ745jrpI9ZGuY99ZYai1+/BahPZ+fJ/Y6t1kbn92b+OMmV6rnjt0bIjms9ug17QwTnoV2C/SZZR7j9zDCsAwIjeGBGlMFovHxmNJEglwtA6CzpVZ9wbgoC51ysPvTjAgCOyCEU4JW4LHeNSMnaO/QFFTG8Bw53+vNj4wHiE+6hbUZu8WFkO1rH6M82o8vDblNH2VUH+1pvNCb4SxnvDWqDVN6uvE/SL6vngzr6l1emjsq2scRPi/J6cXB7idCQLi7XAOy8HA/CQbRTawojqGvFCmzSf0zTzVI317EhnZpXD0CMwPshJ87hMyc9PPAFeEOCQ5lhHeKzp/a96ouaaoqTDkuoRklOrwefqycykj58cIVW7ARdpSH6V16U2a6lujjJ1CIaEBo5MsxlsTb/O7oBTDv/PjA34gue7ZOLz1Lz1AJF7LQXNiemg== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f1360b7-920a-486b-9df7-08d874dcee21 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:51.4359 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /CahURGThSOHC/oHRpnJcRq9YnU8SK3wXRQ/EzOQ6J2ad8k/zIhWLv44p5Slwyyn1abkTe05uBZCbsC7DudLJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054554_066950_4689F882 X-CRM114-Status: GOOD ( 28.26 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org An OpenSBI domain is a logical entity representing a set of HARTs and a set of memory regions for these HARTs. The OpenSBI domains support will allow OpenSBI platforms and previous booting stage (i.e. U-Boot SPL, Coreboot, etc) to partition a system into multiple domains where each domain will run it's own software. For inter-domain isolation, OpenSBI will eventually use various HW features such as PMP, ePMP, IOPMP, SiFive shield, etc but initial implementation only use HW PMP support. This patch provides initial implementation of OpenSBI domains where we have a root/default domain and OpenSBI platforms can provide non-root/custom domains using domain_get() callback. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Reviewed-by: Atish Patra --- include/sbi/sbi_domain.h | 147 ++++++++++++++ include/sbi/sbi_platform.h | 20 ++ lib/sbi/objects.mk | 1 + lib/sbi/sbi_domain.c | 380 +++++++++++++++++++++++++++++++++++++ lib/sbi/sbi_init.c | 20 ++ 5 files changed, 568 insertions(+) create mode 100644 include/sbi/sbi_domain.h create mode 100644 lib/sbi/sbi_domain.c diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h new file mode 100644 index 0000000..4bb08dc --- /dev/null +++ b/include/sbi/sbi_domain.h @@ -0,0 +1,147 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Western Digital Corporation or its affiliates. + * + * Authors: + * Anup Patel + */ + +#ifndef __SBI_DOMAIN_H__ +#define __SBI_DOMAIN_H__ + +#include +#include + +struct sbi_scratch; + +/** Domain access types */ +enum sbi_domain_access { + SBI_DOMAIN_READ = (1UL << 0), + SBI_DOMAIN_WRITE = (1UL << 1), + SBI_DOMAIN_EXECUTE = (1UL << 2), + SBI_DOMAIN_MMIO = (1UL << 3) +}; + +/** Representation of OpenSBI domain memory region */ +struct sbi_domain_memregion { + /** + * Size of memory region as power of 2 + * It has to be minimum 3 and maximum __riscv_xlen + */ + unsigned long order; + /** + * Base address of memory region + * It must be 2^order aligned address + */ + unsigned long base; + /** Flags representing memory region attributes */ +#define SBI_DOMAIN_MEMREGION_READABLE (1UL << 0) +#define SBI_DOMAIN_MEMREGION_WRITEABLE (1UL << 1) +#define SBI_DOMAIN_MEMREGION_EXECUTABLE (1UL << 2) +#define SBI_DOMAIN_MEMREGION_MMIO (1UL << 3) +#define SBI_DOMAIN_MEMREGION_MMODE (1UL << 4) + unsigned long flags; +}; + +/** Maximum number of domains */ +#define SBI_DOMAIN_MAX_INDEX 32 + +/** Representation of OpenSBI domain */ +struct sbi_domain { + /** + * Logical index of this domain + * Note: This set by sbi_domain_finalize() in the coldboot path + */ + u32 index; + /** + * HARTs assigned to this domain + * Note: This set by sbi_domain_init() and sbi_domain_finalize() + * in the coldboot path + */ + struct sbi_hartmask assigned_harts; + /** Name of this domain */ + char name[64]; + /** Possible HARTs in this domain */ + const struct sbi_hartmask *possible_harts; + /** Array of memory regions terminated by a region with order zero */ + struct sbi_domain_memregion *regions; + /** HART id of the HART booting this domain */ + u32 boot_hartid; + /** Arg1 (or 'a1' register) of next booting stage for this domain */ + unsigned long next_arg1; + /** Address of next booting stage for this domain */ + unsigned long next_addr; + /** Privilege mode of next booting stage for this domain */ + unsigned long next_mode; + /** Is domain allowed to reset the system */ + bool system_reset_allowed; +}; + +/** HART id to domain table */ +extern struct sbi_domain *hartid_to_domain_table[]; + +/** Get pointer to sbi_domain from HART id */ +#define sbi_hartid_to_domain(__hartid) \ + hartid_to_domain_table[__hartid] + +/** Get pointer to sbi_domain for current HART */ +#define sbi_domain_thishart_ptr() \ + sbi_hartid_to_domain(current_hartid()) + +/** Index to domain table */ +extern struct sbi_domain *domidx_to_domain_table[]; + +/** Get pointer to sbi_domain from index */ +#define sbi_index_to_domain(__index) \ + domidx_to_domain_table[__index] + +/** Iterate over each domain */ +#define sbi_domain_for_each(__i, __d) \ + for ((__i) = 0; ((__d) = sbi_index_to_domain(__i)); (__i)++) + +/** Iterate over each memory region of a domain */ +#define sbi_domain_for_each_memregion(__d, __r) \ + for ((__r) = (__d)->regions; (__r)->order; (__r)++) + +/** + * Check whether given HART is assigned to specified domain + * @param dom pointer to domain + * @param hartid the HART ID + * @return TRUE if HART is assigned to domain otherwise FALSE + */ +bool sbi_domain_is_assigned_hart(const struct sbi_domain *dom, u32 hartid); + +/** + * Get ulong assigned HART mask for given domain and HART base ID + * @param dom pointer to domain + * @param hbase the HART base ID + * @return ulong possible HART mask + * Note: the return ulong mask will be set to zero on failure. + */ +ulong sbi_domain_get_assigned_hartmask(const struct sbi_domain *dom, + ulong hbase); + +/** Initialize a domain memory region as firmware region */ +void sbi_domain_memregion_initfw(struct sbi_domain_memregion *reg); + +/** + * Check whether we can access specified address for given mode and + * memory region flags under a domain + * @param dom pointer to domain + * @param addr the address to be checked + * @param mode the privilege mode of access + * @param access_flags bitmask of domain access types (enum sbi_domain_access) + * @return TRUE if access allowed otherwise FALSE + */ +bool sbi_domain_check_addr(const struct sbi_domain *dom, + unsigned long addr, unsigned long mode, + unsigned long access_flags); + +/** Finalize domain tables and startup non-root domains */ +int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid); + +/** Initialize domains */ +int sbi_domain_init(struct sbi_scratch *scratch, u32 cold_hartid); + +#endif diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index f2c3237..e1355d8 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -44,6 +44,7 @@ #include #include +struct sbi_domain; struct sbi_trap_info; /** Possible feature flags of a platform */ @@ -89,6 +90,9 @@ struct sbi_platform_operations { */ int (*misa_get_xlen)(void); + /** Get domain pointer for given HART id */ + struct sbi_domain *(*domain_get)(u32 hartid); + /** Write a character to the platform console output */ void (*console_putc)(char ch); /** Read a character from the platform console input */ @@ -447,6 +451,22 @@ static inline int sbi_platform_misa_xlen(const struct sbi_platform *plat) return -1; } +/** + * Get domain pointer for given HART + * + * @param plat pointer to struct sbi_platform + * @param hartid shorthand letter for CPU extensions + * + * @return non-NULL domain pointer on success and NULL on failure + */ +static inline struct sbi_domain *sbi_platform_domain_get( + const struct sbi_platform *plat, u32 hartid) +{ + if (plat && sbi_platform_ops(plat)->domain_get) + return sbi_platform_ops(plat)->domain_get(hartid); + return NULL; +} + /** * Write a character to the platform console output * diff --git a/lib/sbi/objects.mk b/lib/sbi/objects.mk index fa808a0..6f2c06f 100644 --- a/lib/sbi/objects.mk +++ b/lib/sbi/objects.mk @@ -15,6 +15,7 @@ libsbi-objs-y += riscv_locks.o libsbi-objs-y += sbi_bitmap.o libsbi-objs-y += sbi_bitops.o libsbi-objs-y += sbi_console.o +libsbi-objs-y += sbi_domain.o libsbi-objs-y += sbi_ecall.o libsbi-objs-y += sbi_ecall_base.o libsbi-objs-y += sbi_ecall_hsm.o diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c new file mode 100644 index 0000000..86dfefd --- /dev/null +++ b/lib/sbi/sbi_domain.c @@ -0,0 +1,380 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Western Digital Corporation or its affiliates. + * + * Authors: + * Anup Patel + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +struct sbi_domain *hartid_to_domain_table[SBI_HARTMASK_MAX_BITS] = { 0 }; +struct sbi_domain *domidx_to_domain_table[SBI_DOMAIN_MAX_INDEX] = { 0 }; + +static u32 domain_count = 0; + +static struct sbi_hartmask root_hmask = { 0 }; + +#define ROOT_FW_REGION 0 +#define ROOT_ALL_REGION 1 +#define ROOT_END_REGION 2 +static struct sbi_domain_memregion root_memregs[ROOT_END_REGION + 1] = { 0 }; + +static struct sbi_domain root = { + .name = "root", + .possible_harts = &root_hmask, + .regions = root_memregs, + .system_reset_allowed = TRUE, +}; + +bool sbi_domain_is_assigned_hart(const struct sbi_domain *dom, u32 hartid) +{ + if (dom) + return sbi_hartmask_test_hart(hartid, &dom->assigned_harts); + + return FALSE; +} + +ulong sbi_domain_get_assigned_hartmask(const struct sbi_domain *dom, + ulong hbase) +{ + ulong ret, bword, boff; + + if (!dom) + return 0; + + bword = BIT_WORD(hbase); + boff = BIT_WORD_OFFSET(hbase); + + ret = sbi_hartmask_bits(&dom->assigned_harts)[bword++] >> boff; + if (boff && bword < BIT_WORD(SBI_HARTMASK_MAX_BITS)) { + ret |= (sbi_hartmask_bits(&dom->assigned_harts)[bword] & + (BIT(boff) - 1UL)) << (BITS_PER_LONG - boff); + } + + return ret; +} + +void sbi_domain_memregion_initfw(struct sbi_domain_memregion *reg) +{ + if (!reg) + return; + + sbi_memcpy(reg, &root_memregs[ROOT_FW_REGION], sizeof(*reg)); +} + +bool sbi_domain_check_addr(const struct sbi_domain *dom, + unsigned long addr, unsigned long mode, + unsigned long access_flags) +{ + bool mmio = FALSE; + struct sbi_domain_memregion *reg; + unsigned long rstart, rend, rflags, rwx = 0; + + if (!dom) + return FALSE; + + if (access_flags & SBI_DOMAIN_READ) + rwx |= SBI_DOMAIN_MEMREGION_READABLE; + if (access_flags & SBI_DOMAIN_WRITE) + rwx |= SBI_DOMAIN_MEMREGION_WRITEABLE; + if (access_flags & SBI_DOMAIN_EXECUTE) + rwx |= SBI_DOMAIN_MEMREGION_EXECUTABLE; + if (access_flags & SBI_DOMAIN_MMIO) + mmio = TRUE; + + sbi_domain_for_each_memregion(dom, reg) { + rflags = reg->flags; + if (mode == PRV_M && !(rflags & SBI_DOMAIN_MEMREGION_MMODE)) + continue; + + rstart = reg->base; + rend = (reg->order < __riscv_xlen) ? + rstart + ((1UL << reg->order) - 1) : -1UL; + if (rstart <= addr && addr <= rend) { + if ((mmio && !(rflags & SBI_DOMAIN_MEMREGION_MMIO)) || + (!mmio && (rflags & SBI_DOMAIN_MEMREGION_MMIO))) + return FALSE; + return ((rflags & rwx) == rwx) ? TRUE : FALSE; + } + } + + return (mode == PRV_M) ? TRUE : FALSE; +} + +/* Check if region complies with constraints */ +static bool is_region_valid(const struct sbi_domain_memregion *reg) +{ + if (reg->order < 3 || __riscv_xlen < reg->order) + return FALSE; + + if (reg->base & (BIT(reg->order) - 1)) + return FALSE; + + return TRUE; +} + +/** Check if regionA is sub-region of regionB */ +static bool is_region_subset(const struct sbi_domain_memregion *regA, + const struct sbi_domain_memregion *regB) +{ + ulong regA_start = regA->base; + ulong regA_end = regA->base + (BIT(regA->order) - 1); + ulong regB_start = regB->base; + ulong regB_end = regB->base + (BIT(regA->order) - 1); + + if ((regB_start <= regA_start) && + (regA_start < regB_end) && + (regB_start < regA_end) && + (regA_end <= regB_end)) + return TRUE; + + return FALSE; +} + +/** Check if regionA conflicts regionB */ +static bool is_region_conflict(const struct sbi_domain_memregion *regA, + const struct sbi_domain_memregion *regB) +{ + if ((is_region_subset(regA, regB) || is_region_subset(regB, regA)) && + regA->flags == regB->flags) + return TRUE; + + return FALSE; +} + +/** Check if regionA should be placed before regionB */ +static bool is_region_before(const struct sbi_domain_memregion *regA, + const struct sbi_domain_memregion *regB) +{ + if (regA->order < regB->order) + return TRUE; + + if ((regA->order == regB->order) && + (regA->base < regB->base)) + return TRUE; + + return FALSE; +} + +static int sanitize_domain(const struct sbi_platform *plat, + struct sbi_domain *dom) +{ + u32 i, j, count; + bool have_fw_reg; + struct sbi_domain_memregion treg, *reg, *reg1; + + /* Check possible HARTs */ + if (!dom->possible_harts) + return SBI_EINVAL; + sbi_hartmask_for_each_hart(i, dom->possible_harts) { + if (sbi_platform_hart_invalid(plat, i)) + return SBI_EINVAL; + }; + + /* Check memory regions */ + if (!dom->regions) + return SBI_EINVAL; + sbi_domain_for_each_memregion(dom, reg) { + if (!is_region_valid(reg)) + return SBI_EINVAL; + } + + /* Count memory regions and check presence of firmware region */ + count = 0; + have_fw_reg = FALSE; + sbi_domain_for_each_memregion(dom, reg) { + if (reg->order == root_memregs[ROOT_FW_REGION].order && + reg->base == root_memregs[ROOT_FW_REGION].base && + reg->flags == root_memregs[ROOT_FW_REGION].flags) + have_fw_reg = TRUE; + count++; + } + if (!have_fw_reg) + return SBI_EINVAL; + + /* Sort the memory regions */ + for (i = 0; i < (count - 1); i++) { + reg = &dom->regions[i]; + for (j = i + 1; j < count; j++) { + reg1 = &dom->regions[j]; + + if (is_region_conflict(reg1, reg)) + return SBI_EINVAL; + + if (!is_region_before(reg1, reg)) + continue; + + sbi_memcpy(&treg, reg1, sizeof(treg)); + sbi_memcpy(reg1, reg, sizeof(treg)); + sbi_memcpy(reg, &treg, sizeof(treg)); + } + } + + /* + * We don't need to check boot HART id of domain because if boot + * HART id is not possible/assigned to this domain then it won't + * be started at boot-time by sbi_domain_finalize(). + */ + + /* + * Check next mode + * + * We only allow next mode to be S-mode or U-mode.so that we can + * protect M-mode context and enforce checks on memory accesses. + */ + if (dom->next_mode != PRV_S && + dom->next_mode != PRV_U) + return SBI_EINVAL; + + /* Check next address and next mode*/ + if (!sbi_domain_check_addr(dom, dom->next_addr, dom->next_mode, + SBI_DOMAIN_EXECUTE)) + return SBI_EINVAL; + + return 0; +} + +int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid) +{ + int rc; + u32 i, j, dhart; + bool dom_exists; + struct sbi_domain *dom, *tdom; + const struct sbi_platform *plat = sbi_platform_ptr(scratch); + + /* Discover domains */ + for (i = 0; i < SBI_HARTMASK_MAX_BITS; i++) { + /* Ignore invalid HART */ + if (sbi_platform_hart_invalid(plat, i)) + continue; + + /* Get domain assigned to HART */ + dom = sbi_platform_domain_get(plat, i); + if (!dom) + continue; + + /* Check if domain already discovered */ + dom_exists = FALSE; + sbi_domain_for_each(j, tdom) { + if (tdom == dom) { + dom_exists = TRUE; + break; + } + } + + /* Newly discovered domain */ + if (!dom_exists) { + /* + * Ensure that we have room for Domain Index to + * HART ID mapping + */ + if (domain_count <= SBI_DOMAIN_MAX_INDEX) + return SBI_ENOSPC; + + /* Sanitize discovered domain */ + rc = sanitize_domain(plat, dom); + if (rc) + return rc; + + /* Assign index to domain */ + dom->index = domain_count++; + domidx_to_domain_table[dom->index] = dom; + + /* Clear assigned HARTs of domain */ + sbi_hartmask_clear_all(&dom->assigned_harts); + } + + /* Assign domain to HART if HART is a possible HART */ + if (sbi_hartmask_test_hart(i, dom->possible_harts)) { + tdom = hartid_to_domain_table[i]; + if (tdom) + sbi_hartmask_clear_hart(i, + &tdom->assigned_harts); + hartid_to_domain_table[i] = dom; + sbi_hartmask_set_hart(i, &dom->assigned_harts); + } + } + + /* Startup boot HART of domains */ + sbi_domain_for_each(i, dom) { + /* Domain boot HART */ + dhart = dom->boot_hartid; + + /* Ignore if boot HART not possible for this domain */ + if (!sbi_hartmask_test_hart(i, dom->possible_harts)) + continue; + + /* Ignore if boot HART assigned different domain */ + if (sbi_hartid_to_domain(dhart) != dom || + !sbi_hartmask_test_hart(i, &dom->assigned_harts)) + continue; + + /* Startup boot HART of domain */ + if (dhart == cold_hartid) { + scratch->next_addr = dom->next_addr; + scratch->next_mode = dom->next_mode; + scratch->next_arg1 = dom->next_arg1; + } else { + rc = sbi_hsm_hart_start(scratch, dhart, dom->next_addr, + dom->next_mode, dom->next_arg1); + if (rc) + return rc; + } + } + + return 0; +} + +int sbi_domain_init(struct sbi_scratch *scratch, u32 cold_hartid) +{ + u32 i; + const struct sbi_platform *plat = sbi_platform_ptr(scratch); + + /* Root domain firmware memory region */ + root_memregs[ROOT_FW_REGION].order = log2roundup(scratch->fw_size); + root_memregs[ROOT_FW_REGION].base = scratch->fw_start & + ~((1UL << root_memregs[0].order) - 1UL); + root_memregs[ROOT_FW_REGION].flags = 0; + + /* Root domain allow everything memory region */ + root_memregs[ROOT_ALL_REGION].order = __riscv_xlen; + root_memregs[ROOT_ALL_REGION].base = 0; + root_memregs[ROOT_ALL_REGION].flags = (SBI_DOMAIN_MEMREGION_READABLE | + SBI_DOMAIN_MEMREGION_WRITEABLE | + SBI_DOMAIN_MEMREGION_EXECUTABLE); + + /* Root domain memory region end */ + root_memregs[ROOT_END_REGION].order = 0; + + /* Root domain boot HART id is same as coldboot HART id */ + root.boot_hartid = cold_hartid; + + /* Root domain next booting stage details */ + root.next_arg1 = scratch->next_arg1; + root.next_addr = scratch->next_addr; + root.next_mode = scratch->next_mode; + + /* Select root domain for all valid HARTs */ + for (i = 0; i < SBI_HARTMASK_MAX_BITS; i++) { + if (sbi_platform_hart_invalid(plat, i)) + continue; + sbi_hartmask_set_hart(i, &root_hmask); + hartid_to_domain_table[i] = &root; + sbi_hartmask_set_hart(i, &root.assigned_harts); + } + + /* Set root domain index */ + root.index = domain_count++; + domidx_to_domain_table[root.index] = &root; + + return 0; +} diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 5cedb15..406cb3f 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -169,6 +170,11 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); + /* Note: This has to be second thing in coldboot init sequence */ + rc = sbi_domain_init(scratch, hartid); + if (rc) + sbi_hart_hang(); + init_count_offset = sbi_scratch_alloc_offset(__SIZEOF_POINTER__, "INIT_COUNT"); if (!init_count_offset) @@ -210,10 +216,24 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); + /* + * Note: Finalize domains after HSM initialization so that we + * can startup non-root domains. + * Note: Finalize domains before HART PMP configuration so + * that we use correct domain for configuring PMP. + */ + rc = sbi_domain_finalize(scratch, hartid); + if (rc) + sbi_hart_hang(); + rc = sbi_hart_pmp_configure(scratch); if (rc) sbi_hart_hang(); + /* + * Note: Platform final initialization should be last so that + * it sees correct domain assignment and PMP configuration. + */ rc = sbi_platform_final_init(plat, TRUE); if (rc) sbi_hart_hang(); From patchwork Tue Oct 20 09:39:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384758 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=BwB+36rv; 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=f/M+fAlm; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=vg7kLIfO; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfQ04ZKz9ryj for ; Tue, 20 Oct 2020 20:46:06 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vKdFGsKy4Wure6Y4qnIQVBJ1PE5mJq102qI/Qa2R3s0=; b=BwB+36rvs+xwQR0xSft/KpLFV mf2APzGqr9OnmwBGTV83UMxJdgA4E7yMcs9JQ8fZLdDwJk0Pzl1nRAnck0uQjBX6pZYN87URyhDo4 olWbSic7kOrqkzrHNZjWwCPn3jEzMnjzgQIFcROx1crRFATwDlC9MjCAnjz+479Z6eSdcr09hGKYo 43tUyxSr1BKa1eg2xKnLBT4jXNYffwFszFcV/8hNedDUVkzBhwKUQXNeHipq6wTagSffPLspFShlb yahEDwiJCJGJvofhYJ2xakNkqnMolnpJqSrKzk9wCpxazrD6Y/f1FSdicjRZ3040NSOxwF/FXLjRe 9LJhfmxIw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDQ-0002rm-7J; Tue, 20 Oct 2020 09:46:00 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDM-0002po-No for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:58 +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=1603187209; x=1634723209; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=D3LMoeEsd4V2BNGASW/zB6TCeCnhpDzX87stHBWbR0Q=; b=f/M+fAlmUuoXA6fo0mGMmAbtFK8xXlQlJmp5rtfF1s0ItGedAJdetF3c leXm0qNwSJMIGMa0x/mjLnIhAVr8JpuJ4ndygPHBIS6MklFOlY6Q0q/a1 v2xTgFrpLjeysbgEy3dmUSJTxrd8AFwXYDowWP6DF3eM353et2CPk6Q1r GlKNRN54jpo4Qo766aLE+a8++Lx3+lqKe5j5ctmqbAwUtWEtUm7u6A7LH M6NDhpLXKEVs2ofyAyy475wQZqjJHQEOgqD9aA16PA19HPU7FymN2ts9M qsFcYRLPYXEK0cDVL4GKXR3QvkgDb8vzENnUUXw53z7AddxeTLmTi9kkF A==; IronPort-SDR: QCrlVyf0++1N22hX7hSoPLhpv4PNRav5mlzVRA1yHeRKIqrO6aFy9uIC+AC9rwI39qkmwiPtn6 IQTRTsuG2jBxPWiyGnB6EZr12XdMGmUwmLvb6SjRBvVrqeS/33ZLPxY6aK9kS+5YjLfPd1I1qV 6BhlGEeMsEcHQmdgvjnx7N/tyyIdrrUFLLDgUr+wYWksEScDa0u/qBe7yRFdtjZEdpP+DGLJZP yj2uE7ry9RHJ4fFqw/6Tw8gWvPbrUZov0CSC4Xe0s247UzMgf5yzyL0s/fgaI0mxz21plbzVBj PhM= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896150" Received: from mail-mw2nam10lp2107.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.107]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:47 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JXqJBw0fkwzQLLYngxprDgeqIZcPf3AtxDmT7SWwxJFu5bwgeH/c7FY8hPF9E63UkXafdHl0AGcpuOcq9PCfC+o0Jaci2q7g7/snvcdz5kPTQ+yHnx0qE25YIczVgJvqsDLHQbTJ06KD26Y4R2vd1l/IorKdTG7yLUeCyeZdixwrqymOnteW666UJYh2FXY8WPiaCkAlv53mKToujtzuckBL/r5X6Q2XTwdCkjxD1agKCGcs5MA8q/2sZgIMKPS78zblihKBkwgOgK/iBR51LSv8gZDurcuh4JF5fR51yecf8oTtl03UxcAVEDGKsaMKNEKgibcK3e7Tm014Q51j7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6us353oeN2Vvef9g1aXhpDhX/FU/Gdjk5qXFnfMiCVc=; b=FYzm71qNbL2b+VaEbgsCIjcrezEdJhB5OsoUr8jnx1XruI5+vptSNX1GFUkumvAQL8Ln3wgD4bdeVmvQyzamjPVRva8+iG8ANIS5hLChe02h39jbPsSq0WO3yKSJwBtKOv+ECZS+q5twSoSjMJs8SeIIPPrk/msu0tDUT3UdLArefi50Pg+DGpaw/JZ9Eps1wf089aDQa1JxxSwgNjs9tLwReaaE040Lih+w7yS9V6aMBXkrFAMUPQ5Z/Vui5PJPvZIsfqjJSfQumeun9hkugDcq9OOJKiqRd8zQ/v18akBZ52BweEzGdlvMPxRUktrkNNukHCCLbMZJwCYt6TNjfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6us353oeN2Vvef9g1aXhpDhX/FU/Gdjk5qXFnfMiCVc=; b=vg7kLIfOYm4jwIRjthmxXHjnF7oHPTKpVNQGqd6FT2AFXLRgCzom1vCcUUXaoxXAttnIseKmkEw5U0QRJb00l5CSjUQvwbuGCYW7u1DTjdJ8GINehFo5jVqCF2GdtGH75xSRvMym8eanttPN4qLb3W18ZVupIPKvAY8+Ov3Xidk= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:54 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:54 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 07/16] lib: sbi: Extend sbi_hsm_hart_started_mask() for domains Date: Tue, 20 Oct 2020 15:09:21 +0530 Message-Id: <20201020093930.2551352-8-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d90f229d-a880-406a-47f0-08d874dcefd3 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:1284; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2PJaEyl8rszrWQhFmZGdH0fb2/z4OSrT8+hGVNeLPgme3SKit86RNW5RDiebTfVJE3z62IuY9rPfENkaU3uI5htC41NX3R9rxO1V7lG7iHS2ssdVOFte0ivhIriLkIX+pN554h1M6d/YneEK3X2UO81Mel/kVISH9uve7QYfdRxIDyvtVu7h781yFiEirJ+CSeE4J1VXRjlCqVbsAkf7e7SUE5yI38UCAhrilI0zNHEwexikHASa6BTH+oAXDsqTpQKdkwfa3lQn0Fsa4cN6Uofd4lwCaR6Qj1OWyxwpirAT7WrJwZY1HkTXvIr04HUfMGsgo2uJKGsHjrclJdh9kA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: gIe62yLAtmBqbhcxwU3bMxUwaHiIITB1L0U07z+KrhsWFDSEZzXJG0sPoTygQYFSG3y/RTDarzRR5Cf/OaWA/X5WbLsqMlnWTWHu1LuSIClf3WzIvCZvdYQLF76VDOFmD3/sX6c/zdSLGPkxNYgD9eFg6CHtX0Ygj5guO69gPPV7FRWM6/XZ8EyW/k/+i2+Ccrg1VOp0IvVhyg1xR0Ge7yBo8IC7xg2dJSvDv5xzgNOB96drn8WBhIcLDQv6gZ5C4bGsVcim7MTHI8L7o27s38CdJhBhOZoE6uJC3M3nV7E9EVFR3kad83NXDIFHARRJHBF2MB+lk6uevPxNZU/M+tTbqCCkFsA6KN4b6b68n9yItuSXjeCcYQE1Dd2eDdTzuHhzgxNDMuM/pcOlqPSafqouJNYR18BzAIJWw/zn3myGX8afM9SnCY9RBoKMRNY43MYK55AVaHnuLJZfNIiD+MYrAw2xn2+OezPBWTyCZYvMEulJCHbCDHW2fCkENPn0nTqxufhfw5tdxXf8O1IMBwF4vbyxAcAOKihfAq4PgIeJvoDtyxKX0Am4ZtVENmMim+WRoa+hxHMOCHPkM7IcayCXO5gd28nIvuLYMW+t5mKTTN2z0GSJ9JlpTibnTVU3/LB+1t6uUUXbcbEdgy50Xw== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: d90f229d-a880-406a-47f0-08d874dcefd3 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:54.2200 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F268ZifNMWKXsYDtw2dlE4UcwAeqCTLgslpWQJLjtOnlNhzBfGJD6lorqAq1bi1eA8QBM2LRb5By4JLRmZ6JXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054557_012752_17185D8C X-CRM114-Status: GOOD ( 20.08 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , Alistair Francis , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_hsm_hart_started_mask() API should take one more parameter to allow caller specify domain under which started_mask is being generated. Further, the sbi_hsm_hart_started_mask() depends on sbi_hsm_hart_get_state() which also should return HART state under specified domain. This patch updates both sbi_hsm_hart_started_mask() and sbi_hsm_hart_get_state() as-per above. Signed-off-by: Anup Patel Reviewed-by: Alistair Francis --- include/sbi/sbi_hsm.h | 7 ++++--- lib/sbi/sbi_ecall_hsm.c | 4 +++- lib/sbi/sbi_ecall_legacy.c | 4 +++- lib/sbi/sbi_hsm.c | 17 ++++++++++------- lib/sbi/sbi_ipi.c | 6 ++++-- lib/sbi/sbi_system.c | 4 +++- 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/include/sbi/sbi_hsm.h b/include/sbi/sbi_hsm.h index 18d129b..296b267 100644 --- a/include/sbi/sbi_hsm.h +++ b/include/sbi/sbi_hsm.h @@ -19,6 +19,7 @@ #define SBI_HART_STARTED 3 #define SBI_HART_UNKNOWN 4 +struct sbi_domain; struct sbi_scratch; int sbi_hsm_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot); @@ -27,10 +28,10 @@ void __noreturn sbi_hsm_exit(struct sbi_scratch *scratch); int sbi_hsm_hart_start(struct sbi_scratch *scratch, u32 hartid, ulong saddr, ulong smode, ulong priv); int sbi_hsm_hart_stop(struct sbi_scratch *scratch, bool exitnow); -int sbi_hsm_hart_get_state(u32 hartid); +int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid); int sbi_hsm_hart_state_to_status(int state); -bool sbi_hsm_hart_started(u32 hartid); -int sbi_hsm_hart_started_mask(ulong hbase, ulong *out_hmask); +int sbi_hsm_hart_started_mask(const struct sbi_domain *dom, + ulong hbase, ulong *out_hmask); void sbi_hsm_prepare_next_jump(struct sbi_scratch *scratch, u32 hartid); #endif diff --git a/lib/sbi/sbi_ecall_hsm.c b/lib/sbi/sbi_ecall_hsm.c index 992c93a..3698a41 100644 --- a/lib/sbi/sbi_ecall_hsm.c +++ b/lib/sbi/sbi_ecall_hsm.c @@ -7,6 +7,7 @@ * Atish Patra */ +#include #include #include #include @@ -34,7 +35,8 @@ static int sbi_ecall_hsm_handler(unsigned long extid, unsigned long funcid, ret = sbi_hsm_hart_stop(scratch, TRUE); break; case SBI_EXT_HSM_HART_GET_STATUS: - hstate = sbi_hsm_hart_get_state(args[0]); + hstate = sbi_hsm_hart_get_state(sbi_domain_thishart_ptr(), + args[0]); ret = sbi_hsm_hart_state_to_status(hstate); break; default: diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c index 3bfe749..909cbe3 100644 --- a/lib/sbi/sbi_ecall_legacy.c +++ b/lib/sbi/sbi_ecall_legacy.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -33,7 +34,8 @@ static int sbi_load_hart_mask_unpriv(ulong *pmask, ulong *hmask, if (uptrap->cause) return SBI_ETRAP; } else { - sbi_hsm_hart_started_mask(0, &mask); + sbi_hsm_hart_started_mask(sbi_domain_thishart_ptr(), + 0, &mask); } *hmask = mask; diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c index 8c1b7b0..65e7f3d 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -56,13 +57,13 @@ int sbi_hsm_hart_state_to_status(int state) return ret; } -int sbi_hsm_hart_get_state(u32 hartid) +int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid) { struct sbi_hsm_data *hdata; struct sbi_scratch *scratch; scratch = sbi_hartid_to_scratch(hartid); - if (!scratch) + if (!scratch || !sbi_domain_is_assigned_hart(dom, hartid)) return SBI_HART_UNKNOWN; hdata = sbi_scratch_offset_ptr(scratch, hart_data_offset); @@ -70,9 +71,9 @@ int sbi_hsm_hart_get_state(u32 hartid) return atomic_read(&hdata->state); } -bool sbi_hsm_hart_started(u32 hartid) +static bool sbi_hsm_hart_started(const struct sbi_domain *dom, u32 hartid) { - if (sbi_hsm_hart_get_state(hartid) == SBI_HART_STARTED) + if (sbi_hsm_hart_get_state(dom, hartid) == SBI_HART_STARTED) return TRUE; else return FALSE; @@ -80,12 +81,14 @@ bool sbi_hsm_hart_started(u32 hartid) /** * Get ulong HART mask for given HART base ID + * @param dom the domain to be used for output HART mask * @param hbase the HART base ID * @param out_hmask the output ulong HART mask * @return 0 on success and SBI_Exxx (< 0) on failure * Note: the output HART mask will be set to zero on failure as well. */ -int sbi_hsm_hart_started_mask(ulong hbase, ulong *out_hmask) +int sbi_hsm_hart_started_mask(const struct sbi_domain *dom, + ulong hbase, ulong *out_hmask) { ulong i; ulong hcount = sbi_scratch_last_hartid() + 1; @@ -97,7 +100,7 @@ int sbi_hsm_hart_started_mask(ulong hbase, ulong *out_hmask) hcount = BITS_PER_LONG; for (i = hbase; i < hcount; i++) { - if (sbi_hsm_hart_get_state(i) == SBI_HART_STARTED) + if (sbi_hsm_hart_get_state(dom, i) == SBI_HART_STARTED) *out_hmask |= 1UL << (i - hbase); } @@ -259,7 +262,7 @@ int sbi_hsm_hart_stop(struct sbi_scratch *scratch, bool exitnow) struct sbi_hsm_data *hdata = sbi_scratch_offset_ptr(scratch, hart_data_offset); - if (!sbi_hsm_hart_started(hartid)) + if (!sbi_hsm_hart_started(sbi_domain_thishart_ptr(), hartid)) return SBI_EINVAL; oldstate = atomic_cmpxchg(&hdata->state, SBI_HART_STARTED, diff --git a/lib/sbi/sbi_ipi.c b/lib/sbi/sbi_ipi.c index a27dea0..4347832 100644 --- a/lib/sbi/sbi_ipi.c +++ b/lib/sbi/sbi_ipi.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -77,10 +78,11 @@ int sbi_ipi_send_many(ulong hmask, ulong hbase, u32 event, void *data) { int rc; ulong i, m; + struct sbi_domain *dom = sbi_domain_thishart_ptr(); struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); if (hbase != -1UL) { - rc = sbi_hsm_hart_started_mask(hbase, &m); + rc = sbi_hsm_hart_started_mask(dom, hbase, &m); if (rc) return rc; m &= hmask; @@ -92,7 +94,7 @@ int sbi_ipi_send_many(ulong hmask, ulong hbase, u32 event, void *data) } } else { hbase = 0; - while (!sbi_hsm_hart_started_mask(hbase, &m)) { + while (!sbi_hsm_hart_started_mask(dom, hbase, &m)) { /* Send IPIs */ for (i = hbase; m; i++, m >>= 1) { if (m & 1UL) diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c index 6f7be14..a938003 100644 --- a/lib/sbi/sbi_system.c +++ b/lib/sbi/sbi_system.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -21,10 +22,11 @@ void __noreturn sbi_system_reset(u32 platform_reset_type) { ulong hbase = 0, hmask; u32 cur_hartid = current_hartid(); + struct sbi_domain *dom = sbi_domain_thishart_ptr(); struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); /* Send HALT IPI to every hart other than the current hart */ - while (!sbi_hsm_hart_started_mask(hbase, &hmask)) { + while (!sbi_hsm_hart_started_mask(dom, hbase, &hmask)) { if (hbase <= cur_hartid) hmask &= ~(1UL << (cur_hartid - hbase)); if (hmask) From patchwork Tue Oct 20 09:39:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384760 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=UoLFVumg; 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=MNdFLLKk; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=rZwAUx3W; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfT4gwvz9sRR for ; Tue, 20 Oct 2020 20:46:09 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gEhioty5nIVIlC6G9/HBZLyk2+bY0lXw9ff2i2bAvns=; b=UoLFVumgkpg6qpmh5b7ig59qF fzcfwZGDmfKd7a+rsuZjY+eyrWpdyfUD3y9/BNb8vanIVMLk1uMXwS4j8Q3q1NOQ1O4GbNrKqKiou Q+bg2YuTfBnQ4RilbGl8AGA1wLgiNXiindQoCOgECxhW1es0ru/zU/3fTxFhtKKipMICWOLE1bCOJ BMOealqUM3POknXUD0S5NfxDRQqRIiKQbHQRJ88ob5KjHN2/dylegjcsB+c1tbCeFap/8p6aLAzoh ohx0J7SKk5Hx5KEySOaYlWYB5mg0hv+OSyKBOGRDHXtWUP72zi/+36SthLmh7KijcBW/iDdV/3fp8 Phv5eg19Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDR-0002sm-Fb; Tue, 20 Oct 2020 09:46:01 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDN-0002iv-TN for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:45:59 +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=1603187211; x=1634723211; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=2S2DzfZPRvpSuVDMEPznkxjcJ+ksBVydMYGm3H7syIo=; b=MNdFLLKkmbbPDbOKpewNrJ4FVyBJIoKPNkgSG/WOSp+4E2oGD1cGfOBQ oeOeCA3HtsgxE23LeF0MhPGWYVMxi5zKeGJKDDDnP+cyYI7hkf6kslEFo xttq7brlGXoZAJBnQ3G6lx5jiX7tH5DkCni3MaFrXBkwyiJAOR9+mevhg XkNMsxn4hTOqor3CLmqxhzVKHP85bkOGGzsquwrPXaLDso6G2QDA9vSXF WYe99UOpYytewsGcj3+D4EDkk8Fr4WYtb/4iqbFLR+OQNIVWMSNoxrVZ7 cROCwGgMO11J/ios4RylnSdmB62snYdmpiDuO+7DQKhMYNvdkSp9gewOA A==; IronPort-SDR: t8jIEzESp4fiUnVNAQMU1usYGqUdBwm+vso6vFdZA0R+kX6D+D6u3nCqU7Hk1SeJIdvZUQTeY2 FCgn3oO7xiUPNeeDRZ5jEoWa0OHxSxlIUD5wlA7tjEb5yKqAbLzS+kd7o03Dykh4celGrRdL84 ARGCV9ugTKu3K7U1ER6jbw/SD99qUFm/5sn58TAVtUSG4+O+c+puQ6QzVFeN8E1BdXfFKBcmAd i97q91zoFZasRwF4YkyVXDKScDIXEQKEi3WDCO1GZVn2NjypLNWip6wye7gp3+bFX+M5VxUPuH Dvs= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896154" Received: from mail-mw2nam10lp2106.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.106]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:50 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=INIfs6vhTkqO1TEPWirBZJpBB13o+KTyxxxLeQWpJlU7q3my08bRYYc2JcVRrYMy2rSWBOfEW7/ZU/0dwOcDJJ8bqcE595oVMmqv7MjR4zmmTEU/4SUoq3a8mjTRUgwZFgmfmcKsH42GzdswsqWQM96v0Bzdfi12BQCJcfzszz6bhN9JdAGwh4YTH+C9T3bCsAcVqPAOTtR9BpM5XjSN6V+g0/tL2hLPR5jp3cxbaClIAgyYOKLePVBwD/ZGQd3Q2EQ/sxlcLzDe9NJ+TC1J+Nx9B6J0VzdYrisx4S7a1bxP5ZrFn8pEKmfzCNcWAr1En0C/hCrTrMHbnfJL5YaD5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q2dCAnHc3vyxCd3wrMD9QrNtkRSY/AEHBNhZ75kc8HU=; b=bBcbO/eQCvbXQqMmS9cy/2x+68gN3+SOM2xh2TdEpHfnplL/E+pD95UvIjX/4NJzZSy2tmL9nY0fxFfGTKR53aFyudRv41LjINSSuIysOQAMvqHZ8jyujDmRo+J7jx0KhEA9eTsiMjxInU6LSLl2mwBFuFso/aMwvO0YwKX0Po99HBiFdyDSXW/l2W3w8FsqQiDp88jMFuSOyrgrUQhbVoFVTbKhKJmA2xFvHUygyu5BX5tlr7EpeIDZrt9NTMYWu5SXyof8y44QcVclID5ftcyD2wjbBGVkKHj+OuBL1QRZlIPEblSpr7L+SmaueEFazB3wGze7mkZqVapb1dbEJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q2dCAnHc3vyxCd3wrMD9QrNtkRSY/AEHBNhZ75kc8HU=; b=rZwAUx3Wupvq/6xm8G8FyfAXqPOdVkBBZ9Y2ViJFbTkSBPNbIU7qx+/GRJGNFxc6pnaJMSIuv+EnDO5x+KFt4Q9KqIb57R8OPEedNqf2SqsBtBaIXTSiBE+8jhvc8I5AV6gOOP2wBrN5q9z5UDaxL1q921F8VeuCrXw1ucdpPIY= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:56 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:56 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 08/16] lib: sbi: Extend sbi_hsm_hart_start() for domains Date: Tue, 20 Oct 2020 15:09:22 +0530 Message-Id: <20201020093930.2551352-9-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 128d43ef-f307-4a1f-6430-08d874dcf14a X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:3044; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GXRKJVknrkYEmPfsWXxsYGqqRSkwlNBNnqRdHB1LA78mIbxEqxTwaqEFK6BnQYtXKlUbxGH/H/jCTx6YkvlGZFAO8P/h8Oow28CR/NQmG7+GkOUCGHYckZ9eiInIDf7lK1cF7GGmoXbniGM98BlxXOW7gVLxHRDnrUfYe8pc+N+Bq9u3BpKNpUB47uk6UjpN/yYW3FlcYJ4xUyLBzkt4FwIBM4nywc9RYXsQSjfzjTai3ONQb3NopJ+hGhnBuuoMIo2CHm/kQ/mCdOlo6SXwqORgY9k16bFwISQkSLcwB9+0Rrs5kE82P7tGs6N8nzlVAuwl63AB5g4663yucH0t3w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: 82HmobQ2XrIDb8V2POyMyq9IJSWbKEkG3Fsewy2i+L6MxYZBISuYdgNxwlvXoroGKKuE5uPmUGN5i8WNx/cEYbhu/5P6ZJufkms511XFY1A9EGNSUtH167+BzegVbo40IqQL2cflX6OmU61BtCPbwQY1F0WDo1jtwCsfn3CB2ZYwpz7zbRfPI8WxnR5z18Up0bFG9FaGPpVsol8zblyRLMRvy9t1TduJBY8DbYMjxZwkEn5PKyjKd7rUE67o3WG7rciPg+bHNCOWF9xWbIMR5tUxBtJo5WT6GV8M55luXVdaFZzN52P7H84bkCLsLdr0CTzhIRABWWT9/A7cNeZTgrlEz0zZV7YYsmpBbx1jlr1p+le6fVrCX3O+UbIIFSUyqKbA0z20x+Ej2gO4sCG2nE7PFTinE5p3pie9hjj24r2L7vW9jKmxgBfwtitki2AhPHh/+Y7rkAAVbomm1jHPgbfKzsHMYNo7nx/HjnNUp4EKeWO3X9PQWzX6/eyQwCl5EIbTv1FO2lKBY/ujcbe2zrYohlklK6BEPbE3oSLQMJgZws4AZcxwl9kcu7Ldpi1a+Szs6nwWoLiAWN0ZZTOTka/j8VWdXgFrbEFzTFdoX9EM7jc+MNUHB3DWsTLz+ACHE7pOrRqJBM7b0qBkPtH0mQ== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 128d43ef-f307-4a1f-6430-08d874dcf14a X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:56.4625 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +iNHiigwoKjQFP9BeX5kmzCxadwu7isAAmSnR9vKkUJZ2HVllQmPgf6YsWl0WW1nqhWylnlISHkE8g4AjRPM+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054558_199835_F5B9A108 X-CRM114-Status: GOOD ( 18.67 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_hsm_hart_start() should consider the domain under which we are trying to start the HART. This will help ensure that HART A can start HART B only if both HARTs A and B belong to the same domain. We also have a special case when we bring-up boot HART of non-root domains in sbi_domain_finalize() where we should skip domain checks in sbi_hsm_hart_start(). To achieve this, sbi_hsm_hart_start() should do domain checks only when domain parameter is non-NULL. This patch extends sbi_hsm_hart_start() as-per above. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- include/sbi/sbi_hsm.h | 5 +++-- lib/sbi/sbi_domain.c | 6 ++++-- lib/sbi/sbi_ecall_hsm.c | 4 ++-- lib/sbi/sbi_hsm.c | 19 ++++++++++--------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/include/sbi/sbi_hsm.h b/include/sbi/sbi_hsm.h index 296b267..4823383 100644 --- a/include/sbi/sbi_hsm.h +++ b/include/sbi/sbi_hsm.h @@ -25,8 +25,9 @@ struct sbi_scratch; int sbi_hsm_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot); void __noreturn sbi_hsm_exit(struct sbi_scratch *scratch); -int sbi_hsm_hart_start(struct sbi_scratch *scratch, u32 hartid, - ulong saddr, ulong smode, ulong priv); +int sbi_hsm_hart_start(struct sbi_scratch *scratch, + const struct sbi_domain *dom, + u32 hartid, ulong saddr, ulong smode, ulong priv); int sbi_hsm_hart_stop(struct sbi_scratch *scratch, bool exitnow); int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid); int sbi_hsm_hart_state_to_status(int state); diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c index 86dfefd..9bde5fb 100644 --- a/lib/sbi/sbi_domain.c +++ b/lib/sbi/sbi_domain.c @@ -324,8 +324,10 @@ int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid) scratch->next_mode = dom->next_mode; scratch->next_arg1 = dom->next_arg1; } else { - rc = sbi_hsm_hart_start(scratch, dhart, dom->next_addr, - dom->next_mode, dom->next_arg1); + rc = sbi_hsm_hart_start(scratch, NULL, dhart, + dom->next_addr, + dom->next_mode, + dom->next_arg1); if (rc) return rc; } diff --git a/lib/sbi/sbi_ecall_hsm.c b/lib/sbi/sbi_ecall_hsm.c index 3698a41..376740c 100644 --- a/lib/sbi/sbi_ecall_hsm.c +++ b/lib/sbi/sbi_ecall_hsm.c @@ -28,8 +28,8 @@ static int sbi_ecall_hsm_handler(unsigned long extid, unsigned long funcid, case SBI_EXT_HSM_HART_START: smode = csr_read(CSR_MSTATUS); smode = (smode & MSTATUS_MPP) >> MSTATUS_MPP_SHIFT; - ret = sbi_hsm_hart_start(scratch, args[0], args[1], - smode, args[2]); + ret = sbi_hsm_hart_start(scratch, sbi_domain_thishart_ptr(), + args[0], args[1], smode, args[2]); break; case SBI_EXT_HSM_HART_STOP: ret = sbi_hsm_hart_stop(scratch, TRUE); diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c index 65e7f3d..8121efb 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -205,17 +205,23 @@ fail_exit: sbi_hart_hang(); } -int sbi_hsm_hart_start(struct sbi_scratch *scratch, u32 hartid, - ulong saddr, ulong smode, ulong priv) +int sbi_hsm_hart_start(struct sbi_scratch *scratch, + const struct sbi_domain *dom, + u32 hartid, ulong saddr, ulong smode, ulong priv) { - int rc; unsigned long init_count; unsigned int hstate; struct sbi_scratch *rscratch; struct sbi_hsm_data *hdata; const struct sbi_platform *plat = sbi_platform_ptr(scratch); - if (smode != PRV_M && smode != PRV_S && smode != PRV_U) + /* For now, we only allow start mode to be S-mode or U-mode. */ + if (smode != PRV_S && smode != PRV_U) + return SBI_EINVAL; + if (dom && !sbi_domain_is_assigned_hart(dom, hartid)) + return SBI_EINVAL; + if (dom && !sbi_domain_check_addr(dom, saddr, smode, + SBI_DOMAIN_EXECUTE)) return SBI_EINVAL; rscratch = sbi_hartid_to_scratch(hartid); @@ -234,11 +240,6 @@ int sbi_hsm_hart_start(struct sbi_scratch *scratch, u32 hartid, if (hstate != SBI_HART_STOPPED) return SBI_EINVAL; - rc = sbi_hart_pmp_check_addr(scratch, saddr, smode, PMP_X); - if (rc) - return rc; - //TODO: We also need to check saddr for valid physical address as well. - init_count = sbi_init_count(hartid); rscratch->next_arg1 = priv; rscratch->next_addr = saddr; From patchwork Tue Oct 20 09:39:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384759 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=hESnrPzl; 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=OdhucuNg; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=bP7wL5kF; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfT0W3Xz9ryj for ; Tue, 20 Oct 2020 20:46:09 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2BE7Ghtaz5W9BXzytueHxCIEd+8hR1BDEu1xssG46H4=; b=hESnrPzlKeXNlydOeqolX1eiE CTuI8aAlKGQc3aIzUPlfdFrMgJNHr/Ego0KtJVtwSOnpavk5RamefaswUR5aUMghys1PR88Y3i58k l4WMeVvjgarXBBuVdsEGHVSlmLHS+VadBFLz8tTZolEmyo8O3isdIRv2Boiw8SWkFkeOMdpkvhBjQ uN366rqdtzoXpwjIQssYt0nuIf7cAzaV0pcin+DB8DKp7IbvtI5ri6UQ1iOJr8t9ffFp6d8TmJrGn uXSgYmLYeGb+x256RE1VV+8V6lmXwmBHScn84hVbqAhl2JgyB8HRHLpozfGroh3hUeMBHRtGpzjyJ 2JZ7i4v+Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDT-0002tu-KG; Tue, 20 Oct 2020 09:46:03 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDQ-0002rk-Be for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:01 +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=1603187214; x=1634723214; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=dJh9Tjyg/M6stsfBwSLTi8gI1IUS6gwp5TdkK4hzkZg=; b=OdhucuNgBYVIGhj4rSKfVek/x2sNEWyesmQt5P8FsoYS+hqe91cWyLbo 6IUSDJUgDYlOgetZ+8uJK5gdqV4ANCz9+8rFHaA0ER3VQAb9R832Rrfe2 ji9AMVLFfAe2W9e1NExKwViFjKkbq2S2hb+hTWOYI2uMmX9y3mBsomgc3 CmucfyegL3Bja1/bvGNC0/2IhsW6UmUWByKHb4pWOnaTrmtGmelijuZ7c zMpqU7x8W2JLmb3/UhsI+wPjbSg+uHcGCFHbEXbLPP9aApv83mcxWty8L L/WJTKgF6byVjFDnZLBL9f4oZWwuQ/Lq+hRbzt+lQv5IoCISFjA05rpMy Q==; IronPort-SDR: C6FR1JSmkhfInZCnBC42eWSJPay/foXew6vKNvwc6bvuwqUIrdeVoS9MN8indwFNyia2JSd1jS u9jyRfxxG4bpNrO6w3hhHZCuszKbysSDpP3tasYpIpmOPR2V+NtPfFv290t7qu8bhQCDLUWifR DlmctyatRUAK74Q5wxSSoeMAjGdxIJJKa1DA1+YmLptQgKaMfkA0hFkKAHOZxl25kpXZY3UJGg yXh94onmvDaZRwKJ6rLe2XWwBb4fa8wPGlMTzJ0jgENQ6NfdyYQQMGwrzYyY6m9w43mha7BJVZ HC0= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896157" Received: from mail-mw2nam10lp2109.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.109]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:53 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P+f61Nq1FerIonBxfitmkyi6xAJYiKam5s9gNxFQ4qfdUSpCh2o8WkKdYjphRO9RrcQJdrKlW1a+ZbPmLm3cnBmhj+EyNiB8MQ8qoB1Xbh0L83oJOK5PS5Wbl9xTft9CNnKZBPbHN94f0XXeh+x1w6JDVsYIoiFojYBUwv7edt+nE/N0BL2bjuQI/g5J086PXgvvR2f4CHeWUqkPUaQo0UBol9rmJS50sG7j9ihBm4MqTT2s6C/FP7lZ9TOlyHMVn3Uz+XvqjyLMWAJcgRcDbEkby3cCcafM9xPxZBPRJ7oM1EXds2sGTJxFy03Ss5n0jLgBOubOLk+aPXsV2ZzDag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/LARvd1Ey63xUpzXP/He1Wav1chjLfw4sJh/54yKiQ8=; b=JKCym5IG0nCA+HJFPfjqb5haDwJO09mhojWDeueBNMZtTmd854E5GAgjxZJTaEe3zmSAT4+99lkRm2cBdIayOvpj0rnJKZ/G5WUZQc9amNNuj811RIV7y0JKgeVQGFlQEdMQ5MjzkYspgxgHRmqrbFJwjJW4L46DMBDFCXpLPtSzYF+oOe/t+f5aPXtUoO5uvnqbnpPSV3n6QOHvG9RvNPr7yapZFCEZlRpQSM/jMUAI9mF0V48sODjpiJBfNPTYw1BlrX0JWr/L/vAHTiSHjgnC8ckR5RHWJDwfYiT/6g9gAbHq5oX1Rpz2WXh7ovVFUSPraoNfEN/siOLUZpoiEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/LARvd1Ey63xUpzXP/He1Wav1chjLfw4sJh/54yKiQ8=; b=bP7wL5kF3q2CNpcEyyfwAsx4vJTvvRCS5OlOC+xooa91HdNN08FaLUMmEAtMk4vmhSZ56MhS458C5HbsbPLeHdn9DRdhHp2W+OqzhZ30om0EipM9HPQrcTx/2onr7/QQk7Xi8Z+Mw0/Uk9SH3uRuOQqG6gG0OxqiASI698VYz6w= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:45:58 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:45:58 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 09/16] lib: sbi: Optimize sbi_hsm_hart_started_mask() implementation Date: Tue, 20 Oct 2020 15:09:23 +0530 Message-Id: <20201020093930.2551352-10-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:56 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 35720a83-0843-4754-c8fa-08d874dcf2a1 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:1850; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p7AJuzQEEZVkH7uYkH9w/6gdCoiPVUUrR5ZrHBBLGBWPLhrKQF2Ac5l7uGxN1CZkooaX+pebXlID3qq5izOA49m3iQ6ittpR9+bylgRhhVPofDK8AEu///Jm5XNSdE2ZHQmSpC10SwLpjcvAQHELIz499Yoaw7iZNHOZGmji5IcBqIRbrYwxNTSRuI6oTG6FhX4SSImgCAzlnE8nY5MXF0iOYXAslXhncEHD5oO3zos+He2qZOiWL0tNpw0UtcvloCBa3R3X/aU7OUAq4EgAA0cU7HIJHLdo0hNhaVSVkabosGKM31e7wHifxIJ75luKkIj6NB6B/qOrKwqqLrXt9Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: d5O7nvtATrrLKCKjiJMiKHUmBgvH5P38N5bG/1HWVcsgTe/0Xz7H+wRnq0zYSeiVwJUqv9TXq3tyouAx6mM3W9E0rY4MMWWnfGb3Yw0AZYYfO9ELoZqw1Rpa7ZVjbh3Jh0D02hXUK42e6B4I6qxyPuq+oSMixdkNkk8dVwP/UWNCGTHAKCiM5UuRdfD5daS7iWsqbbXUW3/t8wR2uuiLHGUSwc0+ulVfANDLcOdJvt5B4eleyWFfggEO5Sh24nyhxTYIkrfx6OxE3PyNRfjgUyzRI3t2azAzJcL/uJytgmTqCX4M45kMLjmm+mVoJaYzAefMSvgvudUR4Cmm55tcuofddHVDunO32pyigq2c8mxi56psklKCLOmR0ltxkBoYxFBMzr3sLQCYu/f8zXQdUz+WXQcOFCf76LSMegX0QeoV62Zeyhaf0njwTBRWpNQAlEE447/sIDy4ZEFUvFyjHNJu0DwLdvv6m7xrxwwOKOafJrYGtkkF0aifct50QsgQvAsar5JYSiRyqrS55MaUQA3hadjrH+xImp4TVpZFeaPLjYTjUrvPQ0KDpYg3LIMuj4ZCMIgnBBmrXdsagQToduJ28ks0RAfVG4fcQrBu0HAJ4Xm2FKxQmQrQHIcQcN23naLrO0NnVxQbUvFC+nQETQ== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35720a83-0843-4754-c8fa-08d874dcf2a1 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:45:58.7150 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9o906LPggCu/yLeXMhhgIx+lNmvIcJDndVkNq+oUvQxgV1z1PA4pi96jexCSTQlIejoAj1O86a0B1dOeVP87Fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054600_559986_56EF8362 X-CRM114-Status: GOOD ( 14.86 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Instead of calling sbi_hsm_hart_get_state() in a loop, we can simply call a new inline __sbi_hsm_hart_get_state() which only takes "hartid" and enforce domain checks using sbi_domain_assigned_hartmask(). This patch optimizes sbi_hsm_hart_started_mask() as-per above. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- lib/sbi/sbi_hsm.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c index 8121efb..e1b2b2c 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -57,20 +57,27 @@ int sbi_hsm_hart_state_to_status(int state) return ret; } -int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid) +static inline int __sbi_hsm_hart_get_state(u32 hartid) { struct sbi_hsm_data *hdata; struct sbi_scratch *scratch; scratch = sbi_hartid_to_scratch(hartid); - if (!scratch || !sbi_domain_is_assigned_hart(dom, hartid)) + if (!scratch) return SBI_HART_UNKNOWN; hdata = sbi_scratch_offset_ptr(scratch, hart_data_offset); - return atomic_read(&hdata->state); } +int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid) +{ + if (!sbi_domain_is_assigned_hart(dom, hartid)) + return SBI_HART_UNKNOWN; + + return __sbi_hsm_hart_get_state(hartid); +} + static bool sbi_hsm_hart_started(const struct sbi_domain *dom, u32 hartid) { if (sbi_hsm_hart_get_state(dom, hartid) == SBI_HART_STARTED) @@ -90,18 +97,21 @@ static bool sbi_hsm_hart_started(const struct sbi_domain *dom, u32 hartid) int sbi_hsm_hart_started_mask(const struct sbi_domain *dom, ulong hbase, ulong *out_hmask) { - ulong i; - ulong hcount = sbi_scratch_last_hartid() + 1; + ulong i, hmask, dmask; + ulong hend = sbi_scratch_last_hartid() + 1; *out_hmask = 0; - if (hcount <= hbase) + if (hend <= hbase) return SBI_EINVAL; - if (BITS_PER_LONG < (hcount - hbase)) - hcount = BITS_PER_LONG; - - for (i = hbase; i < hcount; i++) { - if (sbi_hsm_hart_get_state(dom, i) == SBI_HART_STARTED) - *out_hmask |= 1UL << (i - hbase); + if (BITS_PER_LONG < (hend - hbase)) + hend = hbase + BITS_PER_LONG; + + dmask = sbi_domain_get_assigned_hartmask(dom, hbase); + for (i = hbase; i < hend; i++) { + hmask = 1UL << (i - hbase); + if ((dmask & hmask) && + (__sbi_hsm_hart_get_state(i) == SBI_HART_STARTED)) + *out_hmask |= hmask; } return 0; From patchwork Tue Oct 20 09:39:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384761 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=Asww53zw; 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=VEAXM4e2; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=rptWJ++V; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfV66Xdz9ryj for ; Tue, 20 Oct 2020 20:46:10 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gn9yDDa4R70fEHb6Q6t5qYMUIZxm9z/dKiMVEpvPjkc=; b=Asww53zwS6qQH+2FPyZjupxCr WFNj2y8SmCDUHQmKqxpnz/6KSwoeXFjHLITfWesBAM7c1oEEO2TbfwJ8pmN4u+6/Eh8lCqrkJLP+0 MBNcRGxfg9+IRdSRIV74ngjaMi1aa/NNckYkr/sXtisRtacatx/ga2dwXPeAJuiWNf0+JqYw3zW3Q zDn8jlxZgfWJz9/0GQWzwJoV7cUo7eAUr+BR7ETFnQZCNouCdccdon/CwyJE+h7nAMvapaJUeTEKB S4D0dqZ3q3Vq2GTkJKlho/68jTmbJu5kNRGVUyRdViNuXlHnT1ABf40c2sM0Ev4DeRUiaNJao8GM0 etELIzG/w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDV-0002v7-A5; Tue, 20 Oct 2020 09:46:05 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDS-0002rk-JG for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:03 +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=1603187218; x=1634723218; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=cAhLWFsyCEeKMWI4gZ9oNCAT/SdcpKvF18nbIcEYxrc=; b=VEAXM4e2OOkcMX1qSeTBd0VuhZ24dmRQfjD1XK/hKoZfrJIt88X36f+v MPWBsltjrX4vndfGFYrp9SmFPGm2ZlBdilOvfufu1Sli8S/Rv+SCZ+j0Q J8qK7uJHQNSbR4igSEOksaBoW9yt/UeLtUz4BIjcxYAiygqJet5GORkzt FSZjPyj1cy7nXrQBJ1DusjIyFs+ZYvY+NGvgy+s20MN8JY7NUpulj823R h4jcyYE1eHdQwWJTqpee8OS2DeXPIHPj6bIWl27t8x8TlD0yl9Ua+yC/s 8F3mGQ0CyrqltQcWr14b4ovY8eK043turqxL+XQIJbd1dQzz9up3FdkvF Q==; IronPort-SDR: h6MkRaoTdH4biNL42IserqFLKdhUBG1ReEb/uFoKn+Qjhp5D4oDaWpm88NDC5zwmHlHwKLfYEI Cd/hDZyMg8uLmLfP9n39ti1LDhrzgtlhAwohHM4JQwyo86lxYXYvIvBwDSuRAndyi55mhmnsuQ peDkOJRkpSVkUQAdXNvM6JtrGsiMWE1ypyBfMzd64I9xF+izOpSr4rSwZVWOPGNgsrdK2PAmxy L/ksRbQ4d+eCIOJUOXdVLe02XDwsoomS1SBHrtWZaLFEvSuATxkkdj213h4+AgF5fGogk/lLsR rCE= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896162" Received: from mail-mw2nam10lp2102.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.102]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:57 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AwsY7v7Bj6Scyn0z+RMkgLML91hnaRLuXtUdB5vqX9BN161TVleWVgC+/6JqS1iwJMTuGIAZSwPg50cYEDGf4JYyob55/WapwRxvBkyF2VfRrIe8OjZZkzTxFSz/G6WyH+4VtfhbBIS8/keuydqBqH4SH0Vn89yr9ybQMK+qfNyu8Y2r6oB/udH78HoCoAnRPeNmYsVxzck+GI4TSfUhYn9PWchU0U2IUDZFPnnXArTUZ4hZfDn2XDuy3spMySOQctcNb4RyLhyYXa5iamLFMpHJ8g6HVeQhfhdT18j3j4XrN6NjO8Xd0dH6TSg8NS9RU+wWZTDDrWG7hM3jjaZYsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vS7lYZMN6f9/STXSuww5Ak9yBkK0x2PD7mY0SJkPEOc=; b=fi0SNuCMb7aL9M/zP/OcEm4zcr7hYLorm+RPfcdZRRBKBAZjs2MIWRBdp1BUJurbAqy3yRFBwBHorI0tH7wLVQ1D2m26HiF9j+Ud5S6hMWFuUnrrImyt+LNQPwiSyGMUaAkmV+nu5KJQtU+dNRrJ+BmH1mvX2bR7jKUz+uNuOVRa+LSWbSQBVsxeQz5NrhbhsF3RqAh74+hjreDwG4slXRnAQTiSwC24/aZcFxCo8BQM8KYHLmrUgYsXisDH1DeY0lYyVlCrjSs8Ju9jkaQ7LqoOzNNSxfUzV/9CCq/DKsUom2m2so2mQrm/b+sp5B6cYoY3yqCe8eDlHFdnJx96LQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vS7lYZMN6f9/STXSuww5Ak9yBkK0x2PD7mY0SJkPEOc=; b=rptWJ++V3ikaQxtHqaXu1Tp1hicjLAwGa3zSiLFphXVaRgnU5WDjjL1HnC88cKlMVLAQgyss+5SVHnpQpr/iIV3usSLpcYaLffnUr0cuuQ++sQjGdVmejcKpcldu/RClSveOgspPmOfI08Uv1WlxI1Cr9/FVLIWdb2eMELyp6ys= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:01 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:01 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 10/16] lib: sbi: Extend sbi_system_reset() for domains Date: Tue, 20 Oct 2020 15:09:24 +0530 Message-Id: <20201020093930.2551352-11-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:45:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d164a3fc-07e0-4e05-fdbf-08d874dcf3fc X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:270; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Pi5WxcHy/T5QEpq1Lf4f7LH07Kh5O04jUOtkmZZSPoqeCXo8KAAevCKx3sBicJwaV3XVW//677ULGN+h5KC+EVyvHE0KrwowiCZN0d1lOAbZ6YPul83oaEEmB1Ma1KvPI2kbnD9XTgxeEHISU2IE0PcO/HCfolH4F8W/sHfgamjvLAuQlgk1z3mR1JSCH8RfU9wM7iCFzk1bomfWpUqYAi4QxOoA0eKRmreNGZabBZ1mWHyU0e0eFCx4/uTl0G//gKWCgcR+cifZThXdfUdUURzdJkjfMO0NhuFCKDThc51+U2edvV1/1xu+FUFOqxKoteABXohDjdU6xyoskc0nbA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: afnvlE9oDBXzXFlFfLidw9fsMHYDSU0siyrSkU6aZ/RAW/hajddsWo3JgDxr5+IYlQFPLoGG7dSwuG5eejz++sGdHIvb0dGgZJYgTR/anKYB1nJ1ZL6pdOMIz+EpynnVk6rEWoOnZwwJiVUrza6AB49thB+acI4U8ZvmDehVgXm2LBRyvXQ8XKfbhbsbVhFRO1bGqIGwVPiessCAUgdx0qUbllBAvBYmh6vNYjajxmyDa8ZpQT9nq734kiriLHbCHeFwRJB7sWEKnFVRrr4AqCXO1S3RYZq6s77+CKDoPaUIf+t/8DuYhwW9RWudytNL0+KXLnfZOI8a8MR8a+JSTTnynLcDUsxSxKBXSnTgNk2/AwSwMehrrjApCz5eJqgwjSPap2fYZf3SZbY6vJCHFP1lKjlwND000+UUvdoX2UzAUQVH0N31DrBLUMkT1eEp8bBgFsL6jhhr8T6hFDT/2WbWZo3MF+aG592ArWkfI4XM8U8oG/CXr7dvf8DUhCxs0n2i6n7hlo7VtX6ZjzvQHjuwhpQSmq27j8J8DGnL3burun7kE3QuuDbA4ULhj/ilncZrZc+kqZk3kXb9kOWfsVZ6aCGhtjFgHkvzZHNzhhcvy1pCHOujTCg807iW3F6vG+4oZ63TWKMh5pAMFHU5NQ== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: d164a3fc-07e0-4e05-fdbf-08d874dcf3fc X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:01.2912 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GpS1JJrBtMo1JlWVc8iE1tbx3N60epv60okJeH/tJaoq/pIf7g0nTwAD5VouBokzC4bAfH6and+UrQhj4DZM6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054602_909686_F1631723 X-CRM114-Status: GOOD ( 13.24 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_system_reset() should issue platform system reset only if domain of current HART is allowed to do system reset. This patch extends sbi_system_reset() as-per above. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- lib/sbi/sbi_system.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c index a938003..96290b3 100644 --- a/lib/sbi/sbi_system.c +++ b/lib/sbi/sbi_system.c @@ -37,9 +37,10 @@ void __noreturn sbi_system_reset(u32 platform_reset_type) /* Stop current HART */ sbi_hsm_hart_stop(scratch, FALSE); - /* Platform specific reset */ - sbi_platform_system_reset(sbi_platform_ptr(scratch), - platform_reset_type); + /* Platform specific reset if domain allowed system reset */ + if (dom->system_reset_allowed) + sbi_platform_system_reset(sbi_platform_ptr(scratch), + platform_reset_type); /* If platform specific reset did not work then do sbi_exit() */ sbi_exit(scratch); From patchwork Tue Oct 20 09:39:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=wNpKvmC2; 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=jW+aR1Og; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=Y9l1Pjj2; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfZ2Xgsz9ryj for ; Tue, 20 Oct 2020 20:46:14 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=T1ToNmV88pWawZoibLpeoj5RzfQUHJC78ptJfj8EEvA=; b=wNpKvmC2+L4KXvLK1pSMZ7Q0c fHh9pJv19r+Mu9RSPIC+OX6CRZO/vx0okuPu/DgjdDdd8qqhl/eIVcdYpq8hWb4hSQ/4u4cIFcEXF oEFkA/NPkotxxSE6ZKRz0AswFPtHYPwa+tyGv5i8PMiixz0yPbfCZ3iDQFbZyN/P5IA7PsisvW3lJ mt5iwh8E/6cJ3+r7+ENdqggHC/bffUdqsU4FlDSGy8AY6RtyQwUJZwH6SODxX38cUf/iBm7okXgip zDqyw0d1luHPfbMRH/WIGeksR69Y8H769jbLfVQDvn1kd6JtBljUd3wd55V1b6p3KEsjSOOaaVKAg gaOiASurA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDY-0002x2-8x; Tue, 20 Oct 2020 09:46:08 +0000 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDU-0002rk-RA for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:06 +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=1603187221; x=1634723221; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=kWt7li0/W7LpNQ3OLJaVfYmRqirhlAi+qm1uyZPbhhY=; b=jW+aR1OgfHxKsAePjncuiowSEkv/AJxX4KOJyG7PzJziyVZmOjtNjrNz YyO9I7VyqZ+qdQi7SY8tC9Srv11/n9csJonl9titbh+O3XlYwMC0bh7yT ZwsX8CFb5XVYlrBAlzcZFNrgw4UhNYQFeBupRTXAhCqBdRo9rMyMDmTLJ jkq/fJEN5vb4WIPWrrMstUBSHzPQeODAuGomjYvaVTSrE6IEmjDHpNl4L cjSgW8qK0c6bDrNJ3O+KojwCC0sMBETLpjENlm7dHp/JFzEDp+5j2Ky1S vMEVdo8ERZYBLDL9uefINkP0bhcGlfVlhA2a/mD03vrossu8LKfa7a781 g==; IronPort-SDR: QtyFGAHwJJuPuEyou51g7fVdjNNsMQS8ENhlQ3pbyhraFw/oHyZmkPh84e1xpYAF4B9qwoSCrY UdxYTDqspJqSSUdUb+ha0GmzScTrEUOq5NsePHJMMPIbrkCegkqxaQpK6iN/2HJ4PoWTaWM6IN gNrin518hsOtIzP+Vm7zkIHz1n/cevv+6YRU9QTTxh3hsrRgnbrGQfNE4LPfvzRTRLZNLdQVJu CrHCBJp0pfsDVLkkLvr3Fvvg2u2UmfT75ZxA5KXU8MHwdjWsL/BpYuefcX6t7fNO8Vdqds/ObF AtE= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="253896167" Received: from mail-mw2nam10lp2105.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.105]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:47:00 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=biewd4o7nrLRc1/4CeWUPfk6MQmKADACO72hMxCcEkaMHkd+O74H4Tp4TnyxAdY/RQcxShE+8pi2DoohfmgucNpLB+4afR2P1ktfDS2N5dSGDvXx44BE/upCsZII7IRx516CruJuySnwiKxi7c973YTvtyBcgs73QRut3keAbJZwIe7OHFi3MtkBdow4P4lkchWZVaBBQq5sVbP6Ahj+4NlQ5HyOpyLPmcjgKinL9RBn2UFpj90YQo4DnQQj8SX1ih+1PreWeRNG7cZHvYMPGfYaiEtLLhlKv9z3FLTxMQ49RrWIMXzIn1swud9O2GtQs5xYEXxqh8S44VAfkfq1Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W+Sc0CI9jYAWbyB+jZVdy7mIZPnG9N4DdeFlB0Oqnik=; b=WyzAZjEjNgmodwbrIPG4RprII9cBjXnN1H9BTWFrYQOCuqE/oua92faDHvy0RyhnFRTlBeg7Jj4DPwVFq78ipLBVPetSyxnJCDRAsiUZfiUIkR5SMFMC67JIRIJF6dfNgC6eZiX8ZWcANuoe4gE03ywMEcA757IuH332QcRB6Vfb94wGcE+oVOBK/tuN28FWkFstZD9b+hMeM0vl+nDDwFkI6Lsu8LexZwzBacQvQjJlPrLZw4V5GdbdM4pCS2BZlrcCYsBr0xwCCb+GX1CcN0oXNgP/3wBiKQB17xVJtkxsUsAZ8hbgaY3lKNJrzPKzs4VuXf0QepBJoQlDlwcfnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W+Sc0CI9jYAWbyB+jZVdy7mIZPnG9N4DdeFlB0Oqnik=; b=Y9l1Pjj2uLGz5pnQ+ow/EZLjITQPZECk6R131LJNfbws7f35xRsMhD2lknD+w86SxhAkiWLbYt3D1m1hbAfqR3zPqEcUoKtXGXJOVERpXkHhRtNYdecnGiuTN8BOXk3pwq0O1D0vZ9TKsCsINtmLR7Ix5HGmqy7QCF7oM7I28mg= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:03 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:03 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 11/16] lib: utils: Update fdt_reserved_memory_fixup() to use current domain Date: Tue, 20 Oct 2020 15:09:25 +0530 Message-Id: <20201020093930.2551352-12-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d2e33c72-3ec4-41c1-1026-08d874dcf581 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7vnLNliKShxU3kvhCV05TU+RWTi4Ji3FeFgQDmO4gHZoon+cXS7wg8SW6CtzK89tRGR2ZoTXFFO7nHxGWB6vby0nh/PWuhDnCSoFv7SmoqHl3VESVpWFEqDhiD2fm71n0gSGenNPCoT5/6YepduuRGKV7fACtWB2/bUCUFaZbckw9qRHPam2TbtXLTzxYCZe/roLabVxwx5yGgCYCcQqeFmh37mZejX7yJhIQ3ePWplo0vBR0BV11K89GzEpHKn9JRHrlFIqS7W0HqEcXdWF8N5/aX4LBJ+XtQaN9g2fFWZDhoQHbcY4J5bNU4eWfMrU X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(15650500001)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: jvX+cA6J/ifgZeLBRwy4OviBw99hrbyN5Pn/4agE1FziIrbwSQYCV6stj25yII25HU6nrHbG4w567YvG78zC3TKfPk4lq45v6Fo8Dz2GLqhoaNp6qK5bdqEXb0yuh3/O79nOo2VdELu7TM21JPbeWUNYbmh8COSFuwmQSA1vNoCAm20KpSm/uLd1NIvI//D5R507SEwqn80S0xapyANg0btWqd2k/+fRQuUT4QKFnokxzlwcC9j6uqMIGPpzhTQiLndFYz++hYWma4liyxctZXqZnlVom5Uo0+5URjgTrEm9cHrl0A8DtJgtOeJgrFSvsImeAwpo/IY+N8bARORErPHVcIslaEzqMgPPhRsp9jNa0qbgMhhn+584PRwc86g6akYv0TTaAdALntb4SXTLGpS4Bwv7BQq6Kf1AR2KPP0FmlrgQC/QomCQFtULOxxqdBK7GNrcbGc96SS4kAod8bYyjfZODBoqCXmzo39XiF65z6kRpXkoZSiivkhr+7Nc/fiS4pV0UXqTDKDhXbgbFZ8QitvAadddpnEhXjLBd0jafFwOqTWfoz/KJ7R4E4Zx7zL/zCDafltzt1aMreTOsK1+dtB7YB165xzXYhBwlf1LwHGYG77qaQNauy3keijeGUrNJzosJx+5n+hoOzEAFVw== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2e33c72-3ec4-41c1-1026-08d874dcf581 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:03.5467 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U2Sq2oGQPX3D3d5i1hqtz9Djw0lQjm0+Pdo1gTgJ1OHEzJrNMqTQdGwQ1zDMFmcLHEQBHHXZ4mienl7rzTma9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054605_066940_C84D3179 X-CRM114-Status: GOOD ( 21.90 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [68.232.143.124 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Now that each HART is mapped to a domain having a set of memory regions, we update fdt_reserved_memory_fixup() to use domain memory regions for adding reserved memory nodes in device tree. We also change reserved memory node name prefix from "mmode_pmp" to "mmode_resv" because domain memory regions can impact other hardware configurations (such as IOPMP, etc) along with PMP. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- lib/utils/fdt/fdt_fixup.c | 47 ++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/lib/utils/fdt/fdt_fixup.c b/lib/utils/fdt/fdt_fixup.c index 8f554e1..e9e1dff 100644 --- a/lib/utils/fdt/fdt_fixup.c +++ b/lib/utils/fdt/fdt_fixup.c @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -97,11 +98,11 @@ static int fdt_resv_memory_update_node(void *fdt, unsigned long addr, if (na > 1 && addr_high) sbi_snprintf(name, sizeof(name), - "mmode_pmp%d@%x,%x", index, + "mmode_resv%d@%x,%x", index, addr_high, addr_low); else sbi_snprintf(name, sizeof(name), - "mmode_pmp%d@%x", index, + "mmode_resv%d@%x", index, addr_low); subnode = fdt_add_subnode(fdt, parent, name); @@ -153,10 +154,11 @@ static int fdt_resv_memory_update_node(void *fdt, unsigned long addr, */ int fdt_reserved_memory_fixup(void *fdt) { + struct sbi_domain_memregion *reg; + struct sbi_domain *dom = sbi_domain_thishart_ptr(); struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); - unsigned long prot, addr, size; - int parent, i, j; - int err; + unsigned long addr, size; + int err, parent, i; int na = fdt_address_cells(fdt, 0); int ns = fdt_size_cells(fdt, 0); @@ -203,34 +205,29 @@ int fdt_reserved_memory_fixup(void *fdt) * We assume the given device tree does not contain any memory region * child node protected by PMP. Normally PMP programming happens at * M-mode firmware. The memory space used by OpenSBI is protected. - * Some additional memory spaces may be protected by platform codes. + * Some additional memory spaces may be protected by domain memory + * regions. * * With above assumption, we create child nodes directly. */ - if (!sbi_hart_pmp_count(scratch)) { - /* - * Update the DT with firmware start & size even if PMP is not - * supported. This makes sure that supervisor OS is always - * aware of OpenSBI resident memory area. - */ - addr = scratch->fw_start & ~(scratch->fw_size - 1UL); - size = (1UL << log2roundup(scratch->fw_size)); - return fdt_resv_memory_update_node(fdt, addr, size, - 0, parent, true); - } - - for (i = 0, j = 0; i < sbi_hart_pmp_count(scratch); i++) { - err = sbi_hart_pmp_get(scratch, i, &prot, &addr, &size); - if (err) + i = 0; + sbi_domain_for_each_memregion(dom, reg) { + /* Ignore MMIO or READABLE or WRITABLE or EXECUTABLE regions */ + if (reg->flags & SBI_DOMAIN_MEMREGION_MMIO) + continue; + if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE) continue; - if (!(prot & PMP_A)) + if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE) continue; - if (prot & (PMP_R | PMP_W | PMP_X)) + if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE) continue; - fdt_resv_memory_update_node(fdt, addr, size, j, parent, false); - j++; + addr = reg->base; + size = 1UL << reg->order; + fdt_resv_memory_update_node(fdt, addr, size, i, parent, + (sbi_hart_pmp_count(scratch)) ? false : true); + i++; } return 0; From patchwork Tue Oct 20 09:39:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384763 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=m2DgTxwO; 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=nEM4NEAx; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=dmWd7ju+; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpff2Blwz9sRR for ; Tue, 20 Oct 2020 20:46:18 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=s9tiTXq6WnlIjz7NRnvFCHUtX9TbnUAZp5YbSB2iuZA=; b=m2DgTxwO2QW2FqnjaS2PuL7Oo l10YKFjCDGbR1e8GDzrrR6zhcdAFnKG9/8ru8lGispU21AcxigdyxNd6YwxXEjHgTp51EHFsSmk+d 8udUrgipM2HsomlD0nLKq/kj077XoptLYg8tC6UGDWQusHEvYJm0qfhE7Ad57wgBagRLEU5ICY1jw p0QPgPVy7JhiMXX7ppeIIzIt0EcGEedlntzTV0u1cG5ym/dgq+g45pn3Itzay5pBGdWQJ2s8Z3bUp lt4A1fgCxab3tq6CA+c9JRoF81XbUu47INLTJNKuExhcP0CNEXWc7kV2KsDDjV/bxNjmQH2/lGXSm 8c091U9uw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDd-00030K-8R; Tue, 20 Oct 2020 09:46:13 +0000 Received: from esa6.hgst.iphmx.com ([216.71.154.45]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDY-0002we-7f for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:11 +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=1603187169; x=1634723169; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=TaVZytoMYVkEuuEbohi2kA4ftvdYVZyesNhvshC7NRc=; b=nEM4NEAxKWy7sB6oTmE3eKjhfTLd/oVpURqNF5k7YmLDTr5dTDhMWVyN ZV4ZksjU5mrmSLyK2EI7PgW/552xAF+BBIJvHdf6IN3VUpJ00zN3Nk+Ng GmPUbCVqpLHTd9U/4vPNqAgbdoSRCThMduSghIyU6cD0Dc4vy25b/ScOb nLahP43ieWkHB8j9qav75GNJQFXpfdN8VugRDYWFG5eHdLoaxeGXbzaIF 9ZvbeH7eGW6oiuhvANJc1rZvdG7uDdCBmw9kCMYs3NJlupbKT7lAdtuer 2mAS55VqeWPrkL1+Zt61f1Px2bnrCys5ui1fetVcYdPk3R1c3uhKkD95U w==; IronPort-SDR: wqV4lsTz8Z1RZyDWFdrorgQMwJHDj7ecEu+mZ8eaiG5pDzfZp0V/YbqkW7ENX0UKrhrE/MWQzJ BPDGIxClmITiNiwMiHoP3FnHNWkaz1AjExTBzBw25cPr2HNoQzQOfDigDA3Mt/LAiZBs9cq7Vb T+etziK6xrGi9UJ+J03wuCYu9t2oh+15rtoAdAEKCAhuT9KEU2/4hlFOxglg3xk05JFw3B7dnK 5mVbE9n+Nh0P4IN2cgEB6Ih03x11IVhq8PLeUGfp+sJwsKY/8kqMH1+wlYNb7qDcEkjb8+32nc vbk= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="151634516" Received: from mail-mw2nam10lp2108.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.108]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:07 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VKx35WktC4q18/SffIsaWDPGGo7ZGmBtmSFvkabW18KKuRSiNGUvQqhyYDjm9aopPUkRkdy0Fl9JuTjiDBrCHwIQLBSdBCI9yI9y3oQz+aVFKpZKNTkpgy5KMjdW7FGuJfIyd5KNJ0PRmBvPB3xaf5scNGVibfyZihyIlDYmiJAp77kSXXli8IFR02ZwllU1mGK0T7/9NCjtNd+I6A0+G8lSzMXEqHr4o0ZaxrVFC9UFN96g653doFoaaDdXcniRVT0Wl4oQW9R5jQB6a6Vs/wXl5+NO8G9iNNcJgDFT8h83qjLuxVnivbxb0HVkVRR/kNACD0m7gk7Lm1Rs8F8bEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gindXPU/K7H2wP84aVGfgjndkajjNRbzix45/qm5Aa4=; b=HxOLln7GGL93PVVoFd5Z9WCat4pjuo6Yz98Lu4ZHESddYm/9S+k/OSodiT63KawmKnx9JE8f8DEDLw0tMJUp5Rmsr9zK6BqzPwUoJPsNfW7JMxQgaFy82pTY4g+K0BeUBTnz3zWWodP+3V8nST6Us2wx80j7wCNeCd7Ijw292wdz9yCIJL4UzXGX0zNFUX3PdgHAbS+k4+saTRgfNTg3Fyl+pcFqXBsUuSaoYx6RJAavhjufNbECXrOLQt+2rNRchu3e6O+aNe9uNmtDiFwc3inWXDYVOXlCeh6nCTCUwwoQsUd0qbfYpfCKuY1jdqBh5det/VK6yub1RoqbA6dVhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gindXPU/K7H2wP84aVGfgjndkajjNRbzix45/qm5Aa4=; b=dmWd7ju+ZMhA0HA6v5Jo9RdF0h2UMjXy7C7EktiLOYJenxPWe9ixG/gQ0HjssDBrUz1LNsApVJ1E2AQvwvBW1ZJR9nf7+L8L5AcjoqQNmcNCyUTaO3MWf+yf55nNsZhdyD9Pv8FXMLbnFRki42+rZplgwSWJS4+slGn8kNGPL7I= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:05 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:05 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 12/16] lib: utils: Update fdt_cpu_fixup() to use current domain Date: Tue, 20 Oct 2020 15:09:26 +0530 Message-Id: <20201020093930.2551352-13-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2fb09ddc-73c4-4893-78b5-08d874dcf6df X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VwbuEjCxUJl50CjbLWRSGMOTjqSAmPz0Lt8CjsSYI3zd8Fi0nY4yhmaaFwzvM9UKQ6rgbBLQ9kUb2FsoiVnEAItkWbuENxqPWJOJn1Px7adCIw8iO4LbXqwCxAYaeWXaw1Mdarok15l/AdCeenRWKUHdUNl5fzrCTqT+N9WxHyMgGTrE3PC2ZN62KJtHfCBO1FXPPH2ju58EaR9Qs2EohE2GlUdZUByEkZj+n1koNn2M9not5FOx1r7Eqm7pEJwnFVh6FNIYUBKhroG7rL8+mfKvtjcbqnMLZPlmKC81coSYB0qk+W1JEVwqsK3WZeG0W+5fSq9DQHAJ0Wuc+uOyDg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(15650500001)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: mnLwDL916qZsR9OxNF0FxFmquSOagKfMCZHttZY22FTWsPVlv//KY6+2ZhPg45JGz9ood7JRC4f7Ndle69zaDICW73kWnr8AFAdSF8GEnJvzfz1QzoczRXkVYK6BwUQCfL6cqEfOUvn0B8766/k6G2zakQMwWsZYcwVEu8DN2ay5jbCduMz19dDLbawy/pjCIRawLWaTGElDvyCKx4o5Z/TO6PxRi2Gs0kxA6JifF4B+vB9IZx9ZdjeyPpXQaNiXyv3rB35UQqx8CUiUeSTKVpVaNRmFGTS6JlV3xMSXqt+HZ2PJg4TQZAD5A3aBJ0hgwGnMaCfy3oGKpLI/bLH/b2uCITBmjsfqqOvQuaNmGB+oQABHSERZENegHPmRf7FvKWEEKZFp//e5SeJeoGqSzpznteQDIQi49qTGPev/aJMKUy7/rfDx8TE979xIRmkm2LwH9iXF15PTqszS6+iSqx6RQtqLJ6ckKieRhcI00itmlVsmVWryQxRcXQ22S4KIz6vm1UWUd69pj0RkazMKBFWqdZ5G2noiTWG/Cv7TcJHwzQ76QGBpJZz2s3g3u1Bvuiyz7sODY+9TtCgt1V2D1OFNGKxhczSDFTUgSFTFZ5XCPWh+wyX1LB5GPSPPOe3eV9esjRnMg0X7Y4y2yfd1EQ== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2fb09ddc-73c4-4893-78b5-08d874dcf6df X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:05.8401 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: J11H5WyY1YRZ631d20sZzjMeh3kZ4qvHwHLRsAKEk4k3o10alaFWLeFADVanj3HIPdsWIYlqe0RIs6e5qk/0kA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054608_447405_3C3A94A4 X-CRM114-Status: GOOD ( 18.26 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The fdt_cpu_fixup() should disable a HART in DT if the HART is not assigned to the current HART domain. This patch updates fdt_cpu_fixup() accordingly. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- lib/utils/fdt/fdt_fixup.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/utils/fdt/fdt_fixup.c b/lib/utils/fdt/fdt_fixup.c index e9e1dff..eea450d 100644 --- a/lib/utils/fdt/fdt_fixup.c +++ b/lib/utils/fdt/fdt_fixup.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -20,8 +19,7 @@ void fdt_cpu_fixup(void *fdt) { - struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); - const struct sbi_platform *plat = sbi_platform_ptr(scratch); + struct sbi_domain *dom = sbi_domain_thishart_ptr(); int err, cpu_offset, cpus_offset, len; const char *mmu_type; u32 hartid; @@ -41,12 +39,12 @@ void fdt_cpu_fixup(void *fdt) /* * Disable a HART DT node if one of the following is true: - * 1. The HART is marked invalid by platform support + * 1. The HART is not assigned to the current domain * 2. MMU is not available for the HART */ mmu_type = fdt_getprop(fdt, cpu_offset, "mmu-type", &len); - if (sbi_platform_hart_invalid(plat, hartid) || + if (!sbi_domain_is_assigned_hart(dom, hartid) || !mmu_type || !len) fdt_setprop_string(fdt, cpu_offset, "status", "disabled"); From patchwork Tue Oct 20 09:39:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384764 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=cf5u9+Qd; 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=WnflXQ9F; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=Xw2/3kjf; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfh132Fz9ryj for ; Tue, 20 Oct 2020 20:46:20 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=69k5qpCWm8hLk6Gh22QmcmYqyIa8DuAPNEvp8E//1yg=; b=cf5u9+QdOduyJd3NT51/W3448 T7rGSR3A2ipGhMEu5ZjxgpVCQCQlq3usJYVxpFPqZ+9J+O/cVLDAXizWqlmF+X2mpgVuBBCyHUej1 PcWcnLlUZI9MSeMDmn8HbVkKFaPvVwhki/kk0s4TjgtUIWhdrgSSDqaCFDSje2Bv3dzInBn9dbfAH gxzWPO84dBX//eYGCm+yId6Hr2FvuqOT201PFJA+atRpHIYZlkzuGoWLjFwoXU2nNOLR8bqj2Ao/I 1Q8H1YilMp93H41UQnqJ9jXvxEdD1T+CyHsVgYq7nwi85JjA8hi8CYaoUzTYJU5SMbbYPfLMF28zb pgYgPwm5A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDf-00031Q-0c; Tue, 20 Oct 2020 09:46:15 +0000 Received: from esa6.hgst.iphmx.com ([216.71.154.45]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDa-0002yD-3i for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:12 +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=1603187170; x=1634723170; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=JcKBbHmzwoZ1QihPlN7zoD0XG1e0CSXldx+Dwy4VANI=; b=WnflXQ9FVBUaJ06FX5hxVbFsprXQAhFpBogi/U40L8C5rTY1tlH6LSGo 15QUF1O6ZT//yFCUK9gkGLuNAnmObei05GS4M89C79mKNm34mQZJxN2/Q JSuJvW3haH45UpaebykoBAIk4JaxYpfnuPrlzqbtqJKIt7P6ykmGOzj4o fZeV1lPW/SJH97tPi8KatLOJegSMwKS/M+5N1v5Ecm3BPNpioarZtmrsT B4Er2b7qMObti6KjO/HSNaOJxRMDrhAKowQFvt8BPwsj/aXA2BQFNLKS0 DtuYYy0nG0V4w8l/970KIo9cZFoeL2FYuZOfHEq8rFDSGeYESjfN6uOCw w==; IronPort-SDR: yR2OkNSbH8m+cgl2Sa6UK9kpIlBHxyWtiazZipTI9ospwVE5BGRRxIc2p6IP5Qt1DP4FWQb8+z wf/pShCzy7mPEoRn3wlK9ySTvJ+WtlF2qKti9Hfx4L29ufVM0jHAbBDIdymvWSGcoR3M3AjuTj AAbmQoE2LAB+MaCNR6YNd2pnk0vPZEIKfssctjVJ1zDS67+02u8WHALpxsQu5uNsx5OUbAvL1l KGF3oJKP0DlLWwMvEZs5qdnODutTbzOvtjKsEXiQHorJiOfIaTRMlvaYC9owIfISfydg2cQUAt gw0= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="151634522" Received: from mail-mw2nam10lp2104.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.104]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:09 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jzb+fCfOE/EMM9i+QwJGC6dk2A7ERsLmDNHpNRy6Eo7umsoFK/nhVjwNPATKvv1ESSok4NClgOGOl8ms56XL/4q69HFo82XvSt2Bso/THlPJN6uGw89fcLVBbrD/94PQQR3lPWgjVc+Ko4ns69l/J+2irRPYIZvZBo2tAPJN71YtS/ABS8RxvEiW+sHbxylK91sYng+mZUIDbxk+TVzUZD/4FyeyvA6afUSPDl1BLCXQZmBpbQNeu54wdiM/HTbLLua33QQSOZZaKOIgiZ5awKKr3/xOu4CyOq8ZsvNs6HgoZzvXI0ZSe1OOrGHcRuM7E4E4UrRLpSFMjnO2go6Vpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y8+BwJW8xY4y2wu5k7SW9oJl9WmtH5WuraDyZa/8UIM=; b=FcWlFbpdM3KxWu9fKCNd77T+FhkbynNE/B6znjgqDSF1Jc4OCp6gMv7TPcB03J0Owcmu9LeTwvnNBmNFi1Jvpihk2nXDTvCsFvno3kNwKi9+ci/PgXJhYZyXKERg8H7jyWrSJGZsxbsJwDfle3c8qmPmkIyFSvoTVisuM2Dja++8D32pbzEeCUGFffRVE/SZzpGr3vc2kWaiqP8CZGP4G0olh+35ldiAHH+3uM6/PJOu/ZWbDeTAIMFCBvbYxsAOaerxQtVtZinQBvDZ7NV6cFlkVU+5JUYXhh9hcViEvg869jjH5MgxeIr52lRqsI2b8mzeG5zqpu8vkN+ed1/v6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y8+BwJW8xY4y2wu5k7SW9oJl9WmtH5WuraDyZa/8UIM=; b=Xw2/3kjfGzMlTVhpUePuA3S+pdNISlp1+8gIYBCvvhlHSq6kBS8s7HYb+7oPG9OKYUJLiSv2sH2cG24/iPst3GRRXMcj4fUmkzhXzexs1wVJRG9jGpHSQohtp72nIJoE8kcMoyYXdDkMHjOYDLXY9img3qjK8R5CzjVCsb8FANg= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:08 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:08 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 13/16] lib: sbi: Remove redundant sbi_hart_pmp_xyz() functions Date: Tue, 20 Oct 2020 15:09:27 +0530 Message-Id: <20201020093930.2551352-14-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:06 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 4a127c3b-d8ac-4be8-2731-08d874dcf839 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:949; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CsY+H9FlO0sG7OxwlaDmQVNLibeM+irgZ6VVBXqOZuVXFmqVM9fGAIOA5jnS1I3j1kYVKFITInqG9ZrTEzOEw4FgzTPD8/zQ4Zn8tvRNgYdP2Un7kqARXajGvi5Fn9YEGPLoxJakQOl3m+JR43OBAc5l16VZUl6++2JvkZPJvxv6d9txGOrwqvjiOG2hm+qUMAq0bvT17ic8WOsg4mxu5rYAeBai8I9uKadTUnBm405D/EsUy7+FS/MOuTi6jFBiHmq7KwLdYPQxnJg4iGWNh2NK09SIm6eULqQ6dnd8izYhsF/cmd525mkknswqHhs+ZqPLXCAHFmj6qOLKGTlCuA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: lR/VDHWnMkhA0p1texk5Qyvi6QtvPAXNJm+4dg33nSgtO8xddvTAB2RRiN1G3qSKsncghuytsQJF4kNQA3njjLroPGNTRPtE+ma4++5O8d3bgEBv8J82sZKpI2WgyKTohDy9oVjA6q9jDtwuvGWM8UwZgNoCUXk/9QnO8uc0RCF6ZmjybPSvoHO1+HdoecPWFTuLkXkIC3NzmClpqjGYKtd2StmTwo6dzaaPHbkCIQ4Bq5R6xSfksomzPgwuto3mvBsEzlyWOdE8FRwyDgI6w4C4npoqY8Mvb0fHLbYHRv9d5VU9pOfujhQ+LBqtMP+q76MBQ34RwEZr63g/8NKjOs74vb0H8jqpLb+nUxugCF+4Q+T0qUw3FuPWMfVqYkJoLT5cM/sRittTaHA3QMj4d3Eh2qrtTLoAwq7rpD8k3XSWy06wpfsq0KSfO7WS40QJsclTL8mbTCE0zU+C9Q5SKznULw5LxIafjwZINWZwzI/cROhoYInRorWtVduOVrnFgk9O8dkAjTwDb78dFBtoYoDWuoO4vILsEQA7FnkrEGxwr8dVxAopy91A05mlxfuQ8lLOW7q+oLeJishBR9lkiL8qHEde946T2HeFLMweZRct1JWqvE3lKnzA5/C0ZH/1Yw6SZU+SHGGv0vjL7D7rHA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a127c3b-d8ac-4be8-2731-08d874dcf839 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:08.1285 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /U3OYs499PkHJUdEdITCvhhSahqWeZjRTAXb+2r3udBLh57RwXKCKmbUmx5c57Eb1PcvTP4Ox+zZis8WurSgPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054610_320593_EDE21E58 X-CRM114-Status: GOOD ( 15.33 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The sbi_hart_pmp_get() and sbi_hart_pmp_check_addr() functions are not used anymore hence this patch removes these functions. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- include/sbi/sbi_hart.h | 6 ------ lib/sbi/sbi_hart.c | 42 ------------------------------------------ 2 files changed, 48 deletions(-) diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 2efe44d..79d745a 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -38,13 +38,7 @@ static inline ulong sbi_hart_expected_trap_addr(void) unsigned int sbi_hart_mhpm_count(struct sbi_scratch *scratch); void sbi_hart_delegation_dump(struct sbi_scratch *scratch); unsigned int sbi_hart_pmp_count(struct sbi_scratch *scratch); -int sbi_hart_pmp_get(struct sbi_scratch *scratch, unsigned int n, - unsigned long *prot_out, unsigned long *addr_out, - unsigned long *size); void sbi_hart_pmp_dump(struct sbi_scratch *scratch); -int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, - unsigned long daddr, unsigned long mode, - unsigned long attr); int sbi_hart_pmp_configure(struct sbi_scratch *scratch); bool sbi_hart_has_feature(struct sbi_scratch *scratch, unsigned long feature); void sbi_hart_get_features_str(struct sbi_scratch *scratch, diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 88ffab0..ea5d479 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -153,24 +153,6 @@ unsigned int sbi_hart_pmp_count(struct sbi_scratch *scratch) return hfeatures->pmp_count; } -int sbi_hart_pmp_get(struct sbi_scratch *scratch, unsigned int n, - unsigned long *prot_out, unsigned long *addr_out, - unsigned long *size) -{ - int err; - unsigned long log2size; - - if (sbi_hart_pmp_count(scratch) <= n) - return SBI_EINVAL; - - err = pmp_get(n, prot_out, addr_out, &log2size); - if (err) - return err; - *size = (log2size < __riscv_xlen) ? 1UL << log2size : 0; - - return 0; -} - void sbi_hart_pmp_dump(struct sbi_scratch *scratch) { unsigned long prot, addr, size, log2size; @@ -200,30 +182,6 @@ void sbi_hart_pmp_dump(struct sbi_scratch *scratch) } } -int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, - unsigned long addr, unsigned long mode, - unsigned long attr) -{ - unsigned long prot, size, log2size, tempaddr; - unsigned int i, pmp_count; - - pmp_count = sbi_hart_pmp_count(scratch); - for (i = 0; i < pmp_count; i++) { - pmp_get(i, &prot, &tempaddr, &log2size); - if (!(prot & PMP_A)) - continue; - if (mode == PRV_M && !(prot & PMP_L)) - continue; - size = 1UL << log2size; - if ((log2size >= __riscv_xlen) || - ((tempaddr <= addr && addr <= tempaddr + size))) - if (!(prot & attr)) - return SBI_EINVALID_ADDR; - } - - return SBI_OK; -} - int sbi_hart_pmp_configure(struct sbi_scratch *scratch) { u32 pmp_idx = 0; From patchwork Tue Oct 20 09:39:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384765 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=Q63OXCKM; 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=luv9/zqy; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=QUsMH+s2; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfm2119z9sRk for ; Tue, 20 Oct 2020 20:46:24 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gu2Qg+NarC2Tl2DUkhFEK4vzQ5wYyXSSfR5Fnhisa4w=; b=Q63OXCKMJiSHm00yLmaBXDd4f TljQCrcWaFJAzKH5QeV45IEZ3c/W3TuOjvYZolJ0w4sgTs9LPqNg+TK7fssgF5qo8re0bbbeWion9 F2nuarvhG50oEq1V+QWl1RZmesmMrSEBVleWcZntfczGGsyZwLQoKaHGLldK16w5lVTka2qHhO7d9 j50IUuvndgTJRfK4QjkDFuDWOhKyEmUfz7pi05Yp1NX+/czULPSUnaQemVCa0v/wmeiK2YWdNEqx4 7WQOyZ3lC7S0rVFzau8nhjtjIgHFUvY4md9hBPxohxVfE2GGdnIZBFBcEoUDbRZTvY2/IBgqaVqYS i7FkYpciw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDg-00031y-3d; Tue, 20 Oct 2020 09:46:16 +0000 Received: from esa6.hgst.iphmx.com ([216.71.154.45]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDc-0002we-6E for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:13 +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=1603187173; x=1634723173; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=AsCrBYUvWk5xnI0a+tJbdkEY9VXOFNWUX+zr7wumeGI=; b=luv9/zqyMSamhNwq53+DZ6v1KiVbFW+uCkImueia5EMmxmgP05racxhS 6XD4NL7iIM3WCSKI9M3iXXPpxb/euC430q+z5/wLNUHIqK9CfMf0lzNdS 9SLHPKojLdC4b3yar8hVcH65rVQgDKAIXztzkV0cUU4zBDqxEmE/NdXla qzwmR3OBoHtlSEw84Yiw2Y1SX0uGp4UpPRVNzTk20uw8bNp0XMPAscuUZ AsbEDgwTcr5lZZrXVVYV7ICjmkQtzsIpnLWnj3fVaiVX0AF2Ih3XrQMM6 qwesgzVldpbup2zaNnSsKqKDTFXTJw+pgAnpdbJMylY7yhQPJST/M1h+K w==; IronPort-SDR: rknvodggkI9Wy5A4CXx8M7YjEH8EzukCAOl7uEufUI3lLx+DrklWMLQoQDSIp7xxm320iiyDvk Puiyh0PjqZ466GabJp29+wIUcfNnmCC0HGKrDbBTLyvY6btrUpAI9WORgzILqR8PZXXKlOY0h9 WYQ2vG7Tl5AMw0BQSQnNQhbAWaLS51aPdmoxtDPiZn3iiToXXOVrWWZ8jAMekhGFf4ZSNEKvpX Avx9xU3dCO7ZC1XAKd7duSwnDOo6mQgc8bJhDm6wWUStCqItbW8J5gYDMb1y3r0o4oWYmvUCvs 660= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="151634531" Received: from mail-mw2nam10lp2108.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.108]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:12 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BJpBvjAEklGqWblDaC0Im4dyORWJlB77UCGYlDNXbMkmsQ2Gt572/zFLGxZGfO4BHWLKJqrYSsGwTdJUB0fIwwj9/bKLKM/ViltELVno38NwBRvWMaguvNuoLuce8/4bpHLZD830ExkuPZ/Vx0PO4vIfH18KoPHIP2EU4Vn3+n0SED/zccsyMsQHWH/lxiVrwFurllhX9x2n8DrpcTRH+ffgTsUXHLo32/eS8StTSMLShnAyqLow3T+T11bJ/ImqBAL/CCKIkldgEvj6kyy4ClpDA2QnTi29ixy92aIDYnPuYKPLQ7NnsmxlQIN8Ws9ZXueBWrXOhyN3xXYKerX9mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZIc7v2ltchc09mBGHUh4sJnDD5dT+buckj8dExTdZoo=; b=WSETWSGTZoStDJv6xgrMKo0HB9j1K4E4ri2LNzqFZjjeBcpBdcesRTc7eX7/0j4kzgYO1jDtrC73at39UuMSipN/L7voSwwdbROQ85umoWAjj+AIkrPu8ng/Vi4tVz6tINA9XNyw2zvtrpQlfWI/lKJYw+7P71trWASRYK6Pk7jPHwDDBzYLsuylJCV1wWJSuTjRJmmAyocISEUq7XRJP4+8X+Sm8ZaLmp2/ps28NSOC6w/8y0qzOD01SrJXv1IPuuHqhA2wLaTZvJ6SmEDClUrf2z7UrsZ63BzAVrzkyjd30Ciqvy62LjEORw6fQDLfUa2vh2VQ1utef7VD/qzvzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZIc7v2ltchc09mBGHUh4sJnDD5dT+buckj8dExTdZoo=; b=QUsMH+s2+vSyGHqx9Ik5+6EosfnvnT7YPzU3MmJ8gCIbYIea01xs27ZIcWJZ6J9e9jEaWCJilCMjCXsKwnpWsB+oVzz6Szt/Qo1dQnL9vN1/cjOeyUGjUDPQbOLHZpv47XMcTkBi1w9vFJWoJojtRirmBHlwJOvbAuPbRzyxqbU= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:10 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:10 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 14/16] lib: sbi: Configure PMP based on domain memory regions Date: Tue, 20 Oct 2020 15:09:28 +0530 Message-Id: <20201020093930.2551352-15-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 81cce63e-e3b3-403a-8318-08d874dcf994 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Xv7g+ZQBq8omlDowbDMXo14nDjZv7rouhBnal53Jd4ug0JZYOQN9f+G6MksUiuk+ZuTH2h3113gABxVIKditLL8R14dIpv5j5drg6BJefuh2pMDw7PQ3qQJg0CazTK7WmRHlPzuRo1DUNsgbjJXGt+bkwwFT+0PoWjrJUd+miPQERlvASozWE2T9DQJQBcyKux6ivcOC9a2ZNNT1fvaAfkc5ETwFCyUNmde6jJ/RAZC4SLYCW5ANCgI1yFkKyJSqo2HdsDORYCGlNGFVbPtZa3z7LXIorFOZtcsck6M0sgd4535uxi84QfuT4HMBBHqiby98WoXEbhE7Gf5kuHzk0Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: 2KT5RcN5ckFryvGGl58ljezDXF6KZq9GkC/K4Id99pXa1JvLYTRH6vOIU5gg6b4T+5AdIDdBTX5+MT6KPwnZ8W/mFxf5H04ma3BaWSMDW7AFHqkNwj/oPmp7bQVWIcbG/EJD31k82YKbFKMsLP1JVbDqm03b0pBcY5BEiSYeJLByjyftHdMHPpnol4tMQ66yvjR5jVD66B/hB57xrYqWdFLhp/kueTmzLAIKdjJY9IT+LCqaTxyj2JDsu3gZmfwixKRlUbZjgyddVt8XRmJflCC0HU8V82b4ixTsEJypA6iE0mHOHnJwuMtX5DYUobQENXfK51Xo3KrEuOja4vnJOExHVMlEGPQRvYYQfy3UvwXBb+55BfLQZ+81v+wontga2TV6T25LBu0lX878ha4ryeRguKhVjgS+1L02lqkWfFiflVx5pvmE8bpPva9Pv4PaYQhCkhd0Af6jpjj8qda9n4AvC4F4K/lMfeeeIZh/3uslolMa1qEecJG/G4Uh3G2QCw3lmKbICFTPCE55EM7M3XojiNBZLVZWU0Ymtj5Wp4ODm4Ly5VgPsZo3YsxX166UpdIfXpHEZMnUUWK2qGRF0lhtQG90oUDLSt9nhNRy2aLyRbf+EAGjmFzGsWY+8/hzhOdKL5JFYcEBhZ9InAGMfA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81cce63e-e3b3-403a-8318-08d874dcf994 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:10.6398 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NAnrb6b3/t7kOxbJ+ar5AwvVrDSGcPcpe7/CroCioz/tFdHwzMairZ4WHtocwDvFxiE7P+nzmaTAyirbjKPhGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054612_445061_C3DAF250 X-CRM114-Status: GOOD ( 18.54 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The PMP configuration on each HART should be only based on the memory regions of the assigned domain because each domain includes a memory region to protect the underlying firmware. This patch updates the sbi_hart_pmp_configure() function accordingly. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- lib/sbi/sbi_hart.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index ea5d479..1871a1e 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -184,24 +185,30 @@ void sbi_hart_pmp_dump(struct sbi_scratch *scratch) int sbi_hart_pmp_configure(struct sbi_scratch *scratch) { - u32 pmp_idx = 0; - unsigned long fw_start, fw_size_log2; + struct sbi_domain_memregion *reg; + struct sbi_domain *dom = sbi_domain_thishart_ptr(); + unsigned int pmp_idx = 0, pmp_flags; + unsigned int pmp_count = sbi_hart_pmp_count(scratch); - if (!sbi_hart_pmp_count(scratch)) + if (!pmp_count) return 0; - /* Firmware PMP region to protect OpenSBI firmware */ - fw_size_log2 = log2roundup(scratch->fw_size); - fw_start = scratch->fw_start & ~((1UL << fw_size_log2) - 1UL); - pmp_set(pmp_idx++, 0, fw_start, fw_size_log2); - - /* - * Default PMP region for allowing S-mode and U-mode access to - * memory not covered by: - * 1) Firmware PMP region - * 2) Platform specific PMP regions - */ - pmp_set(pmp_idx++, PMP_R | PMP_W | PMP_X, 0, __riscv_xlen); + sbi_domain_for_each_memregion(dom, reg) { + if (pmp_count <= pmp_idx) + break; + + pmp_flags = 0; + if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE) + pmp_flags |= PMP_R; + if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE) + pmp_flags |= PMP_W; + if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE) + pmp_flags |= PMP_X; + if (reg->flags & SBI_DOMAIN_MEMREGION_MMODE) + pmp_flags |= PMP_L; + + pmp_set(pmp_idx++, pmp_flags, reg->base, reg->order); + } return 0; } From patchwork Tue Oct 20 09:39:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384766 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=JVx9snR1; 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=S/d18wvC; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=KjoIVyuR; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfm0FxBz9sRR for ; Tue, 20 Oct 2020 20:46:24 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=R7P8GYLtBzxV5ajw7wYzvMIQK4F5CAMHCQMrIXTwox8=; b=JVx9snR11CIMQU6Dvvau/o1/z zBEU/SHx44zxus98eix0Ie9Mm7t6QcyYjGUmZWpkNmFwm8hetLAFItlpFPXJyK0oV43sGpMiD1UJV DAhCWJCnF/RGhNS78BI5u36VtEJc2JbUcrZkFkghPXX8qEEdaMwCDzLvGkg1mDucmSyTj2YZTqHG5 qBvNu765s4wk2NqP2IrT/WGrCS4qkyuyOkz/benzBplTbhLAmp7S3V4VbRGDdkPV1Yji2ZCrW0CYl i5iqNNkvS6MWHPrqrLyzjLdwbGZAWYBGQmW4ApDTnjJm7NlROh/fTi8J5+G2xAr9ZaLpM2jer+2qc 0IFVpbKjw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDi-00033i-OU; Tue, 20 Oct 2020 09:46:18 +0000 Received: from esa6.hgst.iphmx.com ([216.71.154.45]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDe-00031G-Vr for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:16 +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=1603187175; x=1634723175; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=NwNFyYesh9QWph2DaQxzAgvvXsuD019UtIs8g/H7mVQ=; b=S/d18wvClinKdWrpGj+G7CeSAnzMk3b+gH7NcYRlYgUMt4o1fwYKCJr2 sCJ5E5AOxIxPhwWE4EWh158StOnEJV2NFhziEPeX6IgIjCujKPIacl61F vBaoCD2YeXR1e+FGYs9vlnb9Pcnh/GL/sqUcKMZhnzkbhnEfxoX+jCocs p9TS8uymdJV45+k3IRM14Kti3b1ozpwDcHWkQijmommQhAHYoMEPs5rZR 6nk4GzfTRzj5F6gMzKm6i/pSzIHLcIBGV7oHgAlDrouIsmPWTyRnCKXIQ jrXYilF07X/BzPS2/nUzwSeAJa46PqktT8xvoRK2gmhH6TrkjX1QT3cXq Q==; IronPort-SDR: evh93I9VrV2GhKtH8MUF485uN4BIUFT8PVyt0nkK3nre8LmyYAx/Hw05W3xOzJOgmH9Qk7Fbr9 4EJuo+lbMtzVeinT/1ZgDM+80TxosAm1fg4lhtddL8qndtG/GCnBt0Ar/bZtkgCmDp33yVlup7 4/7bFkx4dSy4gabi4jwpOc2o+6zzcYuzmzi4y6+zTvSTjfPJHm1Pxz7Y773IJTpXKcQhW1r/fL rjFUnyRsaJT/mARFabdbhohqwj4gGcFPfarL6qc5mI0W8BESjUK0FWmIoN0rnSstktoIRiKk3n QTA= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="151634537" Received: from mail-mw2nam10lp2106.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.106]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:14 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jSayaRRNYRH7yJ67uiiemmV8hTMZMGTu7FLGILLkBqC7EveqP8Zt7p4A7Y38o3VWK8fX52tBeBEmzNBo3nktuidi1wDC7C0AKLaIVGEz25+woshRJH6j2iRKyM5yMNaNJv4UMLXWAwUIzharwfnX1Vsd2y3tFS7TNoa0Z6kn11VK+6AcWJiOC8JbVdkESBvHh9mFUIQW1MRST9SQyrA4iKxJEfzzbyizlzIIxKe3Pdl542iyLoHnKCpelHutF3f/m7dx2I1evbh2b5+IiGQcoG2YoSCrvgXWXMS0DkhlnXkY0x1MZXa4ckYo9FoS5EIZnmvFyE18uoCjLytMjNDPkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Le7IMyk1pn7CAi7as91+AMENFox5sPHHPqiG7nzxzeA=; b=oM/av0xtNnxxkpM8QwLl+PTihIs378JH3Xv8toQyExaMcDa6KtdBYwZ7ssYJW3cjBkJtH1ZvGPUkr8v4jxG92X6qRZnXZR6Nt9stSHwU0Tc8jiQLXOj+GfforrIaoED3E2QMG8OnhfOB+uDB4NAZRwC/Alvt8D3SQ6a+vP4YzjjiZLb0iIsfyjwio2kmV8MlUtzACEOr9ctwlLSz/fd74UvVxds9wGhzaS+Vf0vIVtF1/wcmEW0nizNR6qFlLCzp9AU1ulWrLomgPUu76oSmqTebV7alSd0z5VWkrBNvzZKBD27A8yeHVbNGdeuRZH53PAOygjKwiuOpo6pl+GmWkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Le7IMyk1pn7CAi7as91+AMENFox5sPHHPqiG7nzxzeA=; b=KjoIVyuRRmD6Sn/988a4NCirdf9JWXrzoQyu1YRRhAx7NJLNap/bQoTCag34jiaXRszmtt4jdNDH00BZbQ2kpGfnB7+cuWs8ncIecuRB3SxH1cG8KNQitzDl7M/FUhWaxOUdz6cD0X+cxKrLz8fuqhlhRvSdjNNu34ISQicNnFk= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:13 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:13 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 15/16] lib: sbi: Display domain details in boot prints Date: Tue, 20 Oct 2020 15:09:29 +0530 Message-Id: <20201020093930.2551352-16-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:11 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 153d580e-3423-48a2-3917-08d874dcfb27 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:343; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UbZxTIr4+9/akycXurHHlOTzcDQur83o5aAtmDXhiqaRXqu36Y0VCjZEujsEHN9Gz5P9ckPOGQEfmoaef45tqUpEvTTRbc2wSds4+IBjlEOD7eKtzZHVGvXXuz4FoOku3vwA+BHpqTjT3IQNuCyOlRlkz118knV4MEcqJVtqfzpw4JNhRQZzbM0yfGBd5tafsUcbJPE6snjurShhpfA819CVawwt0/qgXQAT1E+lJL9B/2OFYtbUHGqBtZMvtwIyX6cEqRw415fEvTENKRsUfiMYlg0WVmF0AMFRv5rKRAQSRCzHHvLpeLeSGaXAPk/+3CbP/CBDNyxqICeFkclxmQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: NlqXO9VFNNf0ykIhi/U7yIgAzrDKNGHB76yyVgOsHxbQpnQkOUdjITqsVq5nJcQUgaGWOPbwcnZrVem8bZLL5judH4RMr601qd12LWFy7iBuPk2ySuB+g/HD4c8gn2O310S8dSrIBfOaxfJ4ywyPaobjNDHicdo0SRiW36ReJcsEYdvKarbqpl+L2OQwiM9nbcKONz+w0Ok5sWAuwfyCKfhysUuCoh3pB0kl1/8QeyqtEqKdxb1e+GGpS3NAjVBjpv4ehOnV8Fb0+b3AuCzAahEFtNo/IQ4NmUb/Y4tPTsO5Tt4aVe6dKFVCJQSRitU4O6EjbcI+JvG8FzmNMAC14U9QSWLtb4Iy6qROJKyLYvVC9lLuwHRz0XOsC1J9c3Mumqh5JYxrdg3E+zglzkd3YdKbz3aR2++9BhDJpHlDZ9gNffLmx8ftXdXtGILQUFgRDr6HX+3Xk2LHAWiHumV8uVvecrl+Dmrz2mt9Ze0wL0ClzPnXSfVVzXbMwxbXDRjMKfS9ZUrPLikFm2w7hUdgiZCEgZf2j3KlBdpQomMBqwWgObyPN8CIBoAHUEywQKSbXTNkThfc3Wx8FWQ3NFUC+hFGFAGLZP14R68NkAQbRpznHNqmiWd6faKY453Ve9TQrfDijPvegIzEnwr+KbhrcA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 153d580e-3423-48a2-3917-08d874dcfb27 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:13.1311 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: E/isTT9PRoXblnOARHMV+uxSa87AHwj+mHTDoIopVSkaENemvCLIg1Jzu6wN7WkG1JWB289iFoaZNHOveIi5Kw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054615_239993_FC80D52D X-CRM114-Status: GOOD ( 21.35 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org We extend boot prints to display details of each domain. In the process, we remove sbi_hart_pmp_dump() because it shows redundant information which domain details already show. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- include/sbi/sbi_domain.h | 6 +++ include/sbi/sbi_hart.h | 4 +- lib/sbi/sbi_domain.c | 94 ++++++++++++++++++++++++++++++++++++++++ lib/sbi/sbi_hart.c | 44 +++++-------------- lib/sbi/sbi_init.c | 27 +++++++----- 5 files changed, 127 insertions(+), 48 deletions(-) diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h index 4bb08dc..6f90b26 100644 --- a/include/sbi/sbi_domain.h +++ b/include/sbi/sbi_domain.h @@ -138,6 +138,12 @@ bool sbi_domain_check_addr(const struct sbi_domain *dom, unsigned long addr, unsigned long mode, unsigned long access_flags); +/** Dump domain details on the console */ +void sbi_domain_dump(const struct sbi_domain *dom, const char *suffix); + +/** Dump all domain details on the console */ +void sbi_domain_dump_all(const char *suffix); + /** Finalize domain tables and startup non-root domains */ int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid); diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 79d745a..3ac1500 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -36,9 +36,9 @@ static inline ulong sbi_hart_expected_trap_addr(void) } unsigned int sbi_hart_mhpm_count(struct sbi_scratch *scratch); -void sbi_hart_delegation_dump(struct sbi_scratch *scratch); +void sbi_hart_delegation_dump(struct sbi_scratch *scratch, + const char *prefix, const char *suffix); unsigned int sbi_hart_pmp_count(struct sbi_scratch *scratch); -void sbi_hart_pmp_dump(struct sbi_scratch *scratch); int sbi_hart_pmp_configure(struct sbi_scratch *scratch); bool sbi_hart_has_feature(struct sbi_scratch *scratch, unsigned long feature); void sbi_hart_get_features_str(struct sbi_scratch *scratch, diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c index 9bde5fb..d4b82fe 100644 --- a/lib/sbi/sbi_domain.c +++ b/lib/sbi/sbi_domain.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include @@ -243,6 +244,99 @@ static int sanitize_domain(const struct sbi_platform *plat, return 0; } +void sbi_domain_dump(const struct sbi_domain *dom, const char *suffix) +{ + u32 i, k; + unsigned long rstart, rend; + struct sbi_domain_memregion *reg; + + sbi_printf("Domain%d Name %s: %s\n", + dom->index, suffix, dom->name); + + sbi_printf("Domain%d Boot HART %s: %d\n", + dom->index, suffix, dom->boot_hartid); + + k = 0; + sbi_printf("Domain%d HARTs %s: ", dom->index, suffix); + sbi_hartmask_for_each_hart(i, dom->possible_harts) + sbi_printf("%s%d%s", (k++) ? "," : "", + i, sbi_domain_is_assigned_hart(dom, i) ? "*" : ""); + sbi_printf("\n"); + + i = 0; + sbi_domain_for_each_memregion(dom, reg) { + rstart = reg->base; + rend = (reg->order < __riscv_xlen) ? + rstart + ((1UL << reg->order) - 1) : -1UL; + +#if __riscv_xlen == 32 + sbi_printf("Domain%d Region%02d %s: 0x%08lx-0x%08lx ", +#else + sbi_printf("Domain%d Region%02d %s: 0x%016lx-0x%016lx ", +#endif + dom->index, i, suffix, rstart, rend); + + k = 0; + if (reg->flags & SBI_DOMAIN_MEMREGION_MMODE) + sbi_printf("%cM", (k++) ? ',' : '('); + if (reg->flags & SBI_DOMAIN_MEMREGION_MMIO) + sbi_printf("%cI", (k++) ? ',' : '('); + if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE) + sbi_printf("%cR", (k++) ? ',' : '('); + if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE) + sbi_printf("%cW", (k++) ? ',' : '('); + if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE) + sbi_printf("%cX", (k++) ? ',' : '('); + sbi_printf("%s\n", (k++) ? ")" : "()"); + + i++; + } + +#if __riscv_xlen == 32 + sbi_printf("Domain%d Next Address%s: 0x%08lx\n", +#else + sbi_printf("Domain%d Next Address%s: 0x%016lx\n", +#endif + dom->index, suffix, dom->next_addr); + +#if __riscv_xlen == 32 + sbi_printf("Domain%d Next Arg1 %s: 0x%08lx\n", +#else + sbi_printf("Domain%d Next Arg1 %s: 0x%016lx\n", +#endif + dom->index, suffix, dom->next_arg1); + + sbi_printf("Domain%d Next Mode %s: ", dom->index, suffix); + switch (dom->next_mode) { + case PRV_M: + sbi_printf("M-mode\n"); + break; + case PRV_S: + sbi_printf("S-mode\n"); + break; + case PRV_U: + sbi_printf("U-mode\n"); + break; + default: + sbi_printf("Unknown\n"); + break; + }; + + sbi_printf("Domain%d SysReset %s: %s\n", + dom->index, suffix, (dom->system_reset_allowed) ? "yes" : "no"); +} + +void sbi_domain_dump_all(const char *suffix) +{ + u32 i; + const struct sbi_domain *dom; + + sbi_domain_for_each(i, dom) { + sbi_domain_dump(dom, suffix); + sbi_printf("\n"); + } +} + int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid) { int rc; diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 1871a1e..ff18c9d 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -123,18 +123,23 @@ static int delegate_traps(struct sbi_scratch *scratch) return 0; } -void sbi_hart_delegation_dump(struct sbi_scratch *scratch) +void sbi_hart_delegation_dump(struct sbi_scratch *scratch, + const char *prefix, const char *suffix) { if (!misa_extension('S')) /* No delegation possible as mideleg does not exist*/ return; #if __riscv_xlen == 32 - sbi_printf("MIDELEG : 0x%08lx\n", csr_read(CSR_MIDELEG)); - sbi_printf("MEDELEG : 0x%08lx\n", csr_read(CSR_MEDELEG)); + sbi_printf("%sMIDELEG%s: 0x%08lx\n", + prefix, suffix, csr_read(CSR_MIDELEG)); + sbi_printf("%sMEDELEG%s: 0x%08lx\n", + prefix, suffix, csr_read(CSR_MEDELEG)); #else - sbi_printf("MIDELEG : 0x%016lx\n", csr_read(CSR_MIDELEG)); - sbi_printf("MEDELEG : 0x%016lx\n", csr_read(CSR_MEDELEG)); + sbi_printf("%sMIDELEG%s: 0x%016lx\n", + prefix, suffix, csr_read(CSR_MIDELEG)); + sbi_printf("%sMEDELEG%s: 0x%016lx\n", + prefix, suffix, csr_read(CSR_MEDELEG)); #endif } @@ -154,35 +159,6 @@ unsigned int sbi_hart_pmp_count(struct sbi_scratch *scratch) return hfeatures->pmp_count; } -void sbi_hart_pmp_dump(struct sbi_scratch *scratch) -{ - unsigned long prot, addr, size, log2size; - unsigned int i, pmp_count; - - pmp_count = sbi_hart_pmp_count(scratch); - for (i = 0; i < pmp_count; i++) { - pmp_get(i, &prot, &addr, &log2size); - if (!(prot & PMP_A)) - continue; - size = (log2size < __riscv_xlen) ? 1UL << log2size : 0; -#if __riscv_xlen == 32 - sbi_printf("PMP%d : 0x%08lx-0x%08lx (A", -#else - sbi_printf("PMP%d : 0x%016lx-0x%016lx (A", -#endif - i, addr, addr + size - 1); - if (prot & PMP_L) - sbi_printf(",L"); - if (prot & PMP_R) - sbi_printf(",R"); - if (prot & PMP_W) - sbi_printf(",W"); - if (prot & PMP_X) - sbi_printf(",X"); - sbi_printf(")\n"); - } -} - int sbi_hart_pmp_configure(struct sbi_scratch *scratch) { struct sbi_domain_memregion *reg; diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 406cb3f..5151d36 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -39,6 +39,7 @@ static void sbi_boot_prints(struct sbi_scratch *scratch, u32 hartid) { int xlen; char str[128]; + const struct sbi_domain *dom = sbi_domain_thishart_ptr(); const struct sbi_platform *plat = sbi_platform_ptr(scratch); #ifdef OPENSBI_VERSION_GIT @@ -64,27 +65,29 @@ static void sbi_boot_prints(struct sbi_scratch *scratch, u32 hartid) sbi_printf("Platform HART Count : %u\n", sbi_platform_hart_count(plat)); - /* Boot HART details */ - sbi_printf("Boot HART ID : %u\n", hartid); - misa_string(xlen, str, sizeof(str)); - sbi_printf("Boot HART ISA : %s\n", str); - sbi_hart_get_features_str(scratch, str, sizeof(str)); - sbi_printf("BOOT HART Features : %s\n", str); - sbi_printf("BOOT HART PMP Count : %d\n", sbi_hart_pmp_count(scratch)); - sbi_printf("BOOT HART MHPM Count: %d\n", sbi_hart_mhpm_count(scratch)); - /* Firmware details */ sbi_printf("Firmware Base : 0x%lx\n", scratch->fw_start); sbi_printf("Firmware Size : %d KB\n", (u32)(scratch->fw_size / 1024)); - /* Generic details */ + /* SBI details */ sbi_printf("Runtime SBI Version : %d.%d\n", sbi_ecall_version_major(), sbi_ecall_version_minor()); sbi_printf("\n"); - sbi_hart_delegation_dump(scratch); - sbi_hart_pmp_dump(scratch); + /* Domain details */ + sbi_domain_dump_all(""); + + /* Boot HART details */ + sbi_printf("Boot HART ID : %u\n", hartid); + sbi_printf("Boot HART Domain : %s\n", dom->name); + misa_string(xlen, str, sizeof(str)); + sbi_printf("Boot HART ISA : %s\n", str); + sbi_hart_get_features_str(scratch, str, sizeof(str)); + sbi_printf("Boot HART Features : %s\n", str); + sbi_printf("Boot HART PMP Count : %d\n", sbi_hart_pmp_count(scratch)); + sbi_printf("Boot HART MHPM Count: %d\n", sbi_hart_mhpm_count(scratch)); + sbi_hart_delegation_dump(scratch, "Boot HART ", " "); } static spinlock_t coldboot_lock = SPIN_LOCK_INITIALIZER; From patchwork Tue Oct 20 09:39:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anup Patel X-Patchwork-Id: 1384767 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=YfmLmAGX; 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=HhhmruBK; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sharedspace-onmicrosoft-com header.b=L7Z0Sc3c; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CFpfq0SdKz9ryj for ; Tue, 20 Oct 2020 20:46:27 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hvMadP5lGebn7XB0omPLsfDNY+ZEyklPRXf+5m6sDac=; b=YfmLmAGXrbgwdx0s9CSqCpCdz fF97MGpKIDf42+gril1G6KDEA+6VCZ+rEDLbgMBzUwStmGO8lx4eeI/LbRRHSA7m+6u+1rIMj57NQ +EpXaSFJDp1RavbzQBgPhn//8rMYDRtXLPPcxlWe9vXJYCA24wlx681PraUcT5BVy6kjB/Yj/ieKj TDMW5vCAD1tXOw9wCaE0cLVbpVAAoXQXut9GmBihhj+/Xdyc9STESvGIKf54MrvI6yZaWNScSTorS rlIbWNjk0DU66NfpbONEv+8PS6twquJXUfSGs3Dm7e95N2rKEkJgAHQWawVPTQOeghf7+B4vMF70a 3mpGNj2lA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDl-00035W-Lq; Tue, 20 Oct 2020 09:46:21 +0000 Received: from esa6.hgst.iphmx.com ([216.71.154.45]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kUoDh-00031G-1c for opensbi@lists.infradead.org; Tue, 20 Oct 2020 09:46:18 +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=1603187177; x=1634723177; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=Ang79487at/acg8kB673trCoz5uhMJCPK1JYzswqXtM=; b=HhhmruBK+qay9CiZMGHyCD2VxBgFFDmonadu1RZPNCwfDuAsvti6VtjJ hLnw20qzpXX2wKrJZbwlTa7G3C1nExfjX28/KcQdvBRcnUvENdnQekwk+ /luy3tRKKB4UHRz6VtMZhEyth6pbcdQiyZ7yu/8e5wEtsCmNaYhu0nuVG m8RLxGp/J8adVOHpmh7Bh5Cqy14zFC6XrT7YcaC4i09Tai/In2vLHKC5n EtoMq1aJvQHr63WvYHZSYow2rCCKZxA/qunYoDhWaSlCdlFQtr/Q2gwq7 +tfChXHxDzjCOY29TMMNkxYO7vwxh6EqjWnAfgdxBsFCzUnfp0c6mzb8Z w==; IronPort-SDR: Hfuo3oQgT5GoRE6K4hA3ApEMOFeZ5zEMTHpnbdG5oXcVby2wR/caWtQchkjpf5KbFJQS/Qir64 blvlrMFRawKpX3BUei4C+zfhjDP95NTKnri31Ql/BH0seMkQoHWK4hCrvtupQUIu9KGpalOOPc 2DCwVva++QuSQ9bavsFMO0XFGgqSvjNNWw/8sSY+KnqNQDTecwkdezUxJ8QVT1XshsSWwTCfi+ notVwQTSW2V54QMhfv4nIUyt+gx4w3Ki0gzIfC2wTG4mjbCYs3DKqVFYQ0SYNfSNW7SaqFlQIo MGU= X-IronPort-AV: E=Sophos;i="5.77,396,1596470400"; d="scan'208";a="151634540" Received: from mail-mw2nam10lp2104.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.104]) by ob1.hgst.iphmx.com with ESMTP; 20 Oct 2020 17:46:17 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tze4OAs/q7+P/Rl7SByT86HA68Tpa9l9aYAOrUB9qUnXN90lDxB0ISv07MH7694lPWnJvlSMBFs/OiPj+jnHwQxJXQWHDj8XVhbPuK6tZGrk8uKsqkYL9UO0xDFMkj2ppBTCyLgVctEI9Y13/zdwBeBUXTIGSkP6UESluzVdZ1P5vEJqSaurNyKAzItRKfMs0Zqn4eMdcybTuVARXTV9n/K72kSYjwoWos5x2BJdjnG8oEHXchspnDY9QwyvSOpdyAAM39xyHexPDEh3PHr87Uhc+luSeHkuBiDtW4+bmcgtMldzZ2Micf5i5yeJdR1CwEcZMuJygiybz7BkV6w/Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pz4TFGBSVOWvJ4+Zg4xtdnxYlYCo0DJIJs9PP5S3D+Q=; b=GGdnzSIk8lVh2Hvig31e24s3YASo0hMHsci6GrpLl1fopx+2gj+bUF+Xg9UiFDFrd6nMm3gtCY/ZBL3u9vYLNGqJJp+RsurDGijSedcJ7wvOF3aorxoVefx1cpIWfwwgtmfBXLyYwEJM96v4vxmG6nlJYYITx16CMxIXB0Xf9U++6XjGGWFCYR7vvf0Tx9gZfufxVGploZWoCy0uVS5GRg56IUoGfIAsCmDCgZ+SQVLGlXE4RLq0wExWBE0aPxzKF7ysV9OdcXQryYv+45O08n9sk9d4qfm4E+0qYPy2mk9nVpe01ljtX2yOx8l8G1dcLdalMw7ogpt/Pbd3l/rrVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pz4TFGBSVOWvJ4+Zg4xtdnxYlYCo0DJIJs9PP5S3D+Q=; b=L7Z0Sc3c0E0MjuCfcYlripdyexq8xF1rRDBXjH6TbPpkuMIDToJ294GblqXhdN006mQ41whZYsUi+E0Wii3EKi+sa0ENxcG6d9FMOa+gkgIwW1DYtzl8Z2Yn/SuOtmxG4dK+jwrwL0T7srVs1+pvqbNZwm0IGq91WShY9xN5sRk= Authentication-Results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; Received: from DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) by DM6PR04MB5833.namprd04.prod.outlook.com (2603:10b6:5:16d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Tue, 20 Oct 2020 09:46:15 +0000 Received: from DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd]) by DM6PR04MB6201.namprd04.prod.outlook.com ([fe80::d035:e2c6:c11:51dd%6]) with mapi id 15.20.3477.028; Tue, 20 Oct 2020 09:46:15 +0000 From: Anup Patel To: Atish Patra , Alistair Francis Subject: [PATCH v4 16/16] docs: Add initial documentation for domain support Date: Tue, 20 Oct 2020 15:09:30 +0530 Message-Id: <20201020093930.2551352-17-anup.patel@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201020093930.2551352-1-anup.patel@wdc.com> References: <20201020093930.2551352-1-anup.patel@wdc.com> X-Originating-IP: [122.172.254.103] X-ClientProxiedBy: MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) To DM6PR04MB6201.namprd04.prod.outlook.com (2603:10b6:5:127::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wdc.com (122.172.254.103) by MAXPR0101CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Tue, 20 Oct 2020 09:46:13 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f67116df-1902-43d5-e15e-08d874dcfc94 X-MS-TrafficTypeDiagnostic: DM6PR04MB5833: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: WDCIPOUTBOUND: EOP-TRUE X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7IS1ANc+smmdfgREIIEGIeqjpnfKiyZdjNzbogE4rziWn6VOaVL0kf98/roEhywQJIKASWoYNAg802ibYOx0G2G09wwS3RhL+Y17DdgJUaBIHxWKEd6BLhGIhyv8CvVz7SexVKDHHdDOPXkvVAdCMYFKFKJzAwYPPZuMcR9mB5Bjhm7lqyj7tg3hBdNRcIJQKLrW6U56lnGXNgSy7R/dZ36XO8/VHBWlDaem4hI/oRf/omo87NJup5p1NOXK+0/GifnTyiEEKw+mTq5mvmQi784q4s+PuylWz1F72mHBxzeEM5CFQ72WgUJnAXym3HbnJAWHhPcM/lE0AFqUXBbHZ2Js8Y3hVv1TLTi+sAe3JauOpIvYPkpxNAsQ8I7uyGa+cuZFT8OBNvagJdaJn6FQ1guIfOTRfIlFmFnu8yU3vitviM0J4a9H3Yb4k3yzBDjPsZVewUyzLl2sCqmQWK49RCvh9mzfJljoS/UN80ga1FY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR04MB6201.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(6666004)(2616005)(2906002)(956004)(1076003)(55016002)(8886007)(478600001)(966005)(44832011)(66476007)(66556008)(5660300002)(66946007)(8676002)(54906003)(316002)(83380400001)(19273905006)(16526019)(186003)(110136005)(26005)(6636002)(55236004)(8936002)(52116002)(4326008)(7696005)(86362001)(36756003)(562404015)(563064011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: 1dx4dSEkTkyciimoFKShnV40dqtW4IIIjEzXNkeQbRECyoFjBUjSPBx9kmsqxKITWNynnUW9r1iWOTZEhW/S3DVzSxvTtt0t2oe16bk0mqElmgavpVByMoYlzgr8MApTbMd0WtcJutBg5W7EvIQzePwhxhLVvkKMHhTbkMQuAipmjMk3SBMqBujWglJhe7dTUyhAwI2DQfStJIDLUpjh8yLy5nc1ns+TpbaaU3PjJscyrEZ3Q1u7lGRoZLKLry7vWkQuhnMgOObxSb82JTxASgqpJK7BmuKFHPPb3sQvCBbeVpuI8gSzERZk/0FhBGVkcBCRxWCX4kgk4HlcCX+OeJcBrBR4M7tnm0tFRZyOLrc1FR0yeDtvId/PN98BJzhv5mNY1TfyQEZgzFRmAB+bwknDxm82azQ63zz2Tft8Gf0xRgJ9lmhIM2aMf8YaZcqrwLI6x4+f94YBdMLAWRusDhKIjyfQCf0cPpJLyXAZrozVBuweX1l1z+pqTnNHp6EPodNSx+6xOvyvcxJCf3DLdY/k1NIjQWGO1lHWHBqz3RbZh1sLjZhdvbcq2VRgYL2kCMlk4gyQ+2oTCwSiDTL17KqyQF5gQEQXX2qFRo+UELGY68yw0C7++l/k0f+f2XQvKOLfhXFN+QeHVjzPtTq33A== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: f67116df-1902-43d5-e15e-08d874dcfc94 X-MS-Exchange-CrossTenant-AuthSource: DM6PR04MB6201.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2020 09:46:15.6235 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qerg0HCuIQJRK4ZHXgCfO/qyJ/QKbrnA9Am5gd5oA/nljQOTFdWbXCRZ+2EUy4GlBu85d0rmgQb/rR4qYeGGNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB5833 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201020_054617_372533_3FF2711E X-CRM114-Status: GOOD ( 27.63 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Anup Patel , opensbi@lists.infradead.org Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org We add initial documentation for OpenSBI domain support to help RISC-V platform vendors achieve system-level partitioning. Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- README.md | 3 ++ docs/domain_support.md | 106 +++++++++++++++++++++++++++++++++++++++++ docs/doxygen.cfg | 1 + 3 files changed, 110 insertions(+) create mode 100644 docs/domain_support.md diff --git a/README.md b/README.md index bd41ba3..03c02fb 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,8 @@ Detailed documentation of various aspects of OpenSBI can be found under the * [Platform Documentation]: Documentation of the platforms currently supported. * [Firmware Documentation]: Documentation for the different types of firmware examples build supported by OpenSBI. +* [Domain Support]: Documentation for the OpenSBI domain support which helps + users achieve system-level partitioning using OpenSBI. OpenSBI source code is also well documented. For source level documentation, doxygen style is used. Please refer to the [Doxygen manual] for details on this @@ -278,6 +280,7 @@ make I= install_docs [Platform Support Guide]: docs/platform_guide.md [Platform Documentation]: docs/platform/platform.md [Firmware Documentation]: docs/firmware/fw.md +[Domain Support]: docs/domain_support.md [Doxygen manual]: http://www.doxygen.nl/manual/index.html [Kendryte standalone SDK]: https://github.com/kendryte/kendryte-standalone-sdk [third party notices]: ThirdPartyNotices.md diff --git a/docs/domain_support.md b/docs/domain_support.md new file mode 100644 index 0000000..04989df --- /dev/null +++ b/docs/domain_support.md @@ -0,0 +1,106 @@ +OpenSBI Domain Support +====================== + +An OpenSBI domain is a system-level partition (subset) of underlying hardware +having it's own memory regions (RAM and MMIO devices) and HARTs. The OpenSBI +will try to achieve secure isolation between domains using RISC-V platform +features such as PMP, ePMP, IOPMP, SiFive Shield, etc. + +Important entities which help implement OpenSBI domain support are: + +* **struct sbi_domain_memregion** - Representation of a domain memory region +* **struct sbi_hartmask** - Representation of domain HART set +* **struct sbi_domain** - Representation of a domain instance + +Each HART of a RISC-V platform must have an OpenSBI domain assigned to it. +The OpenSBI platform support is responsible for populating domains and +providing HART id to domain mapping. The OpenSBI domain support will by +default assign **the ROOT domain** to all HARTs of a RISC-V platform so +it is not mandatory for the OpenSBI platform support to populate domains. + +Domain Memory Region +-------------------- + +A domain memory region is represented by **struct sbi_domain_memregion** in +OpenSBI and has following details: + +* **order** - The size of a memory region is **2 ^ order** where **order** + must be **3 <= order <= __riscv_xlen** +* **base** - The base address of a memory region is **2 ^ order** + aligned start address +* **flags** - The flags of a memory region represent memory type (i.e. + RAM or MMIO) and allowed accesses (i.e. READ, WRITE, EXECUTE, etc) + +Domain Instance +--------------- + +A domain instance is represented by **struct sbi_domain** in OpenSBI and +has following details: + +* **index** - Logical index of this domain +* **name** - Name of this domain +* **assigned_harts** - HARTs assigned to this domain +* **possible_harts** - HARTs possible in this domain +* **regions** - Array of memory regions terminated by a memory region + with order zero +* **boot_hartid** - HART id of the HART booting this domain. The domain + boot HART will be started at boot-time if boot HART is possible and + assigned for this domain. +* **next_addr** - Address of the next booting stage for this domain +* **next_arg1** - Arg1 (or 'a1' register) of the next booting stage for + this domain +* **next_mode** - Privilege mode of the next booting stage for this + domain. This can be either S-mode or U-mode. +* **system_reset_allowed** - Is domain allowed to reset the system? + +The memory regions represented by **regions** in **struct sbi_domain** have +following additional constraints to align with RISC-V PMP requirements: + +* A memory region to protect OpenSBI firmware from S-mode and U-mode + should always be present +* For two overlapping memory regions, one should be sub-region of another +* Two overlapping memory regions should not be of same size +* Two overlapping memory regions cannot have same flags +* Memory access checks on overlapping address should prefer smallest + overlapping memory region flags. + +ROOT Domain +----------- + +**The ROOT domain** is the default OpenSBI domain which is assigned by +default to all HARTs of a RISC-V platform. The OpenSBI domain support +will hand-craft **the ROOT domain** very early at boot-time in the +following manner: + +* **index** - Logical index of the ROOT domain is always zero +* **name** - Name of the ROOT domain is "root" +* **assigned_harts** - At boot-time all valid HARTs of a RISC-V platform + are assigned the ROOT domain which changes later based on OpenSBI + platform support +* **possible_harts** - All valid HARTs of a RISC-V platform are possible + HARTs of the ROOT domain +* **regions** - Two memory regions available to the ROOT domain: + **A)** A memory region to protect OpenSBI firmware from S-mode and U-mode + **B)** A memory region of **order=__riscv_xlen** allowing S-mode and + U-mode access to full memory address space +* **boot_hartid** - Coldboot HART is the HART booting the ROOT domain +* **next_addr** - Next booting stage address in coldboot HART scratch + space is the next address for the ROOT domain +* **next_arg1** - Next booting stage arg1 in coldboot HART scratch space + is the next arg1 for the ROOT domain +* **next_mode** - Next booting stage mode in coldboot HART scratch space + is the next mode for the ROOT domain +* **system_reset_allowed** - The ROOT domain is allowed to reset the system + +Domain Effects +-------------- + +Few noteworthy effects of a system partitioned into domains are as follows: + +* At any point in time, a HART is running in exactly one OpenSBI domain context +* The SBI IPI and RFENCE calls from HART A are restricted to the HARTs in + domain assigned to HART A +* The SBI HSM calls which try to change/read state of HART B from HART A will + only work if both HART A and HART B are assigned same domain +* A HART running in S-mode or U-mode can only access memory based on the + memory regions of the domain assigned to the HART diff --git a/docs/doxygen.cfg b/docs/doxygen.cfg index dbf8ef9..82f31a7 100644 --- a/docs/doxygen.cfg +++ b/docs/doxygen.cfg @@ -795,6 +795,7 @@ INPUT = @@SRC_DIR@@/README.md \ @@SRC_DIR@@/docs/platform_guide.md \ @@SRC_DIR@@/docs/platform_requirements.md \ @@SRC_DIR@@/docs/library_usage.md \ + @@SRC_DIR@@/docs/domain_support.md \ @@SRC_DIR@@/docs/firmware \ @@SRC_DIR@@/docs/platform \ @@SRC_DIR@@/include \