From patchwork Fri Nov 9 12:59:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995514 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 42s0v76kZ9z9s3x for ; Sat, 10 Nov 2018 00:12:51 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AD9E9C22565; Fri, 9 Nov 2018 13:08: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=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED 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 B22CCC2254E; Fri, 9 Nov 2018 13:01:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BBF57C225AF; Fri, 9 Nov 2018 13:00:21 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id E7DB6C2258A for ; Fri, 9 Nov 2018 13:00:16 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGBWimBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIJ1hQ4CiR6WAC4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gz0BAYJCilo+ATIBjUMBAQ X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGBWimBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIJ1hQ4CiR6WAC4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gz0BAYJCilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622521" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:16 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CkAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgVqBXiE5jG+WLZAoDYRsAoNDNwoNAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhgWoDFakEh3oNghkJAYdIhgI/gRABhWiCdYUOAokelgAuBwKBEYEHBItSgyALGIlPhx+OJYlMgVkigVUzGiSDO4M9AQGCQopaPgMwAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714153" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:15 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:15 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:14 +0100 Message-ID: <20181109125923.7034-20-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.397900-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 19/28] riscv: do not blindly modify the mstatus CSR 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" The mstatus CSR includes WPRI (writes preserve values, reads ignore values) fields and must therefore not be set to zero without preserving these fields. It is not apparent why mstatus is set to zero here since it is not required for U-Boot to run. Remove it. This instruction and others encode zero as an immediate. RISC-V has the zero register for this purpose. Replace the immediates with the zero register. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/cpu/start.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index c313477ae0..b01ea6e224 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -38,8 +38,9 @@ _start: SREG a2, 0(t0) la t0, trap_entry csrw mtvec, t0 - csrwi mstatus, 0 - csrwi mie, 0 + + /* mask all interrupts */ + csrw mie, zero /* * Set stackpointer in internal/ex RAM to call board_init_f @@ -160,11 +161,10 @@ clear_bss: add t0, t0, t6 /* t0 <- rel __bss_start in RAM */ la t1, __bss_end /* t1 <- rel __bss_end in FLASH */ add t1, t1, t6 /* t1 <- rel __bss_end in RAM */ - li t2, 0x00000000 /* clear */ beq t0, t1, call_board_init_r clbss_l: - SREG t2, 0(t0) /* clear loop... */ + SREG zero, 0(t0) /* clear loop... */ addi t0, t0, REGBYTES bne t0, t1, clbss_l