From patchwork Sun Mar 17 18:28:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 1057557 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44Mnyg2P93z9s6w for ; Mon, 18 Mar 2019 05:34:03 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 0EEC7C21E79; Sun, 17 Mar 2019 18:31:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id A4ACAC21E90; Sun, 17 Mar 2019 18:29:32 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0E394C21D4A; Sun, 17 Mar 2019 18:29:23 +0000 (UTC) Received: from mail-edgeKA24.fraunhofer.de (mail-edgeka24.fraunhofer.de [153.96.1.24]) by lists.denx.de (Postfix) with ESMTPS id C3653C21E45 for ; Sun, 17 Mar 2019 18:29:18 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EEAAB0kY5c/xwBYJljGgEBAQEBAgEBAQEHAgEBAQGBUQUBAQEBCwGCEIISjCdfikKLP45/gXsNhGwChFEiNAkNAQEDAQEJAQMCAgJpHAyFTAYyAUEFEFEhHBoGDgWDIoFeAxQBqmCHeQ2CHwkBgSUBhmiER4FXP4EQAYVpgneFFAOKAyABggqXcjUHAoEmgSEEjRuDMwwZiwuITJI1i3WBRzmBVjMaJIM7hXGKWz4BMgGPLgEB X-IPAS-Result: A2EEAAB0kY5c/xwBYJljGgEBAQEBAgEBAQEHAgEBAQGBUQUBAQEBCwGCEIISjCdfikKLP45/gXsNhGwChFEiNAkNAQEDAQEJAQMCAgJpHAyFTAYyAUEFEFEhHBoGDgWDIoFeAxQBqmCHeQ2CHwkBgSUBhmiER4FXP4EQAYVpgneFFAOKAyABggqXcjUHAoEmgSEEjRuDMwwZiwuITJI1i3WBRzmBVjMaJIM7hXGKWz4BMgGPLgEB X-IronPort-AV: E=Sophos;i="5.58,490,1544482800"; d="scan'208";a="13835744" Received: from mail-mtaka28.fraunhofer.de ([153.96.1.28]) by mail-edgeKA24.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Mar 2019 19:29:18 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AEAACWkY5cfRBhWMBjGgEBAQEBAgEBAQEHAgEBAQGBUQUBAQEBCwGDSCE5jCdflgGOf4F7DYRsAoRyNAkNAQEDAQEJAQMCFAEBFjojDIVLAwMyAUEFEFEhHBoGDgWDIoFeAxWqYId5DYIfCQGBJQGGaIYeP4EQAYVpgneFFAOKAyABggqXcjUHAoEmgSEEjRuDMwwZiwuITJI1i3WBRzeBVzMaJIM7hXGKWz4DMAGPLgEB X-IronPort-AV: E=Sophos;i="5.58,490,1544482800"; d="scan'208";a="19588563" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP11EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaKA28.fraunhofer.de with ESMTP/TLS/AES256-SHA; 17 Mar 2019 19:29:19 +0100 Received: from localhost.de (10.80.233.50) by FGDEMUCIMP11EXC.ads.fraunhofer.de (10.80.232.42) with Microsoft SMTP Server (TLS) id 14.3.435.0; Sun, 17 Mar 2019 19:29:17 +0100 From: Lukas Auer To: Date: Sun, 17 Mar 2019 19:28:39 +0100 Message-ID: <20190317182842.18108-9-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190317182842.18108-1-lukas.auer@aisec.fraunhofer.de> References: <20190317182842.18108-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24494.006 X-TM-AS-Result: No--3.586500-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Andreas Schwab , Palmer Dabbelt Subject: [U-Boot] [PATCH v3 08/11] riscv: do not rely on hart ID passed by previous boot stage X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" RISC-V U-Boot expects the hart ID to be passed to it via register a0 by the previous boot stage. Machine mode firmware such as BBL and OpenSBI do this when starting their payload (U-Boot) in supervisor mode. If U-Boot is running in machine mode, this task must be handled by the boot ROM. Explicitly populate register a0 with the hart ID from the mhartid CSR to avoid possible problems on RISC-V processors with a boot ROM that does not handle this task. Suggested-by: Rick Chen Signed-off-by: Lukas Auer Reviewed-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Rick Chen Tested-by: Rick Chen --- Changes in v3: None Changes in v2: - New patch to populate register a0 with the hart ID from the mhartid CSR in machine-mode arch/riscv/cpu/start.S | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index f55b8cbc37..5ac899b141 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -36,6 +36,10 @@ .section .text .globl _start _start: +#ifdef CONFIG_RISCV_MMODE + csrr a0, mhartid +#endif + /* save hart id and dtb pointer */ mv tp, a0 mv s1, a1