From patchwork Mon Mar 11 21:35:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1054884 X-Patchwork-Delegate: trini@ti.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=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YjCz3JWM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44JBHC15HYz9s47 for ; Tue, 12 Mar 2019 08:35:51 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id DC160C21D65; Mon, 11 Mar 2019 21:35:48 +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=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID 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 E7284C21DF3; Mon, 11 Mar 2019 21:35:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B2963C21C27; Mon, 11 Mar 2019 21:35:32 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id 49ADDC21BE5 for ; Mon, 11 Mar 2019 21:35:32 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id n19so600900wmi.1 for ; Mon, 11 Mar 2019 14:35:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wTYIQIV8dBaSedHMaMxoE7O87h2Sezsmhah7ReNZXzc=; b=YjCz3JWMriKWXCWeqJ0ICsmLcY9nEjks/Rc/OGLoG16wIi+cp8VFX+qnIbfPgl5FUr 0OSZk/C4qejtE1B1ppQseIMW1QDSgyH7nPOCgdgCdX6Hgdw/9pm5NQo0ORSK8N8wCCwZ ok2GwwpC0Uo5e9/YI0feuBZEJ7BLmbDQOO2qCfob3wR1+yFDsbx6PTd3BduiBW6hNMdU IzjPxUAAalO1T/VfAkUKmsJdavutS0hjJV7KztdBTqzfLj5Z/SZsXO4mkhNM4coHVJr3 OvmbBk9sA/pqnNck2BEWuVaUDzs12hPL0cAuBlSeVnkMuAXKxE/pJbXwWqBKLOUhBnJ6 7nbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wTYIQIV8dBaSedHMaMxoE7O87h2Sezsmhah7ReNZXzc=; b=kUj8fUDc39OggRPbVgkFBJ+lLQlZtI9UFuj9Q1Yg6hX8C81+Wjta7Uo/9eXb2UUGJM 3zxolgduC3iRVNystJYKSrqnY/KOZ0IkjudLWnc6rkp53a0jYRv3X/PJzfe/JoAoVmKB qScvFWgVsoV52/7XoULj/L9oT2sogEU62HmOs+1YHCdl/STW1NTlar+MTbRzqFSTbInB D3RY97pYxQpgcvfxRK0cG1D6RXW/TYYbXnfLn9QEgy8fMcvPcobjAbpAtdxR7xYcviSV MdjMW1o1JyKRgAQ5rGyiGy+fVfVujzEBZ/chfqY+Di19QAJkyTSRgc8a0zxl7dWy1DCj ICLA== X-Gm-Message-State: APjAAAVmpemaSdBIZvjzWJ0lKxgVDUmA9JrgxSniEBZm7M7t4TsW7e3N XAd8vjhrThh7JHYWqqf6muspaJb1 X-Google-Smtp-Source: APXvYqwhAN1UD1UVNCdp1gUUDqmSxMR4OMRAmjubsi29pjQmeVq4TFnbApVN4OCbRqKVDQvHywQGbA== X-Received: by 2002:a7b:c8d8:: with SMTP id f24mr176286wml.15.1552340131710; Mon, 11 Mar 2019 14:35:31 -0700 (PDT) Received: from ubuntu.home ([2a02:8071:6a3:700:3ce6:848a:8db5:3b8c]) by smtp.gmail.com with ESMTPSA id u17sm22997225wrg.71.2019.03.11.14.35.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Mar 2019 14:35:31 -0700 (PDT) From: Simon Goldschmidt To: u-boot@lists.denx.de Date: Mon, 11 Mar 2019 22:35:20 +0100 Message-Id: <20190311213524.15893-3-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190311213524.15893-1-simon.k.r.goldschmidt@gmail.com> References: <20190311213524.15893-1-simon.k.r.goldschmidt@gmail.com> Cc: Tom Rini Subject: [U-Boot] [PATCH 2/6] spl: arm: implement SPL_CLEAR_BSS_F 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This implements the new option to clear BSS early in SPL for standard arm crt0. BSS is cleared before calling board_init_f() and thus not cleared before calling board_init_r() as it is not relocated in SPL. Signed-off-by: Simon Goldschmidt --- arch/arm/lib/crt0.S | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index fe312db690..b06e54e144 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -80,6 +80,26 @@ ENTRY(_main) mov r9, r0 bl board_init_f_init_reserve +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_CLEAR_BSS_F) + ldr r0, =__bss_start + +#ifdef CONFIG_USE_ARCH_MEMSET + ldr r3, =__bss_end + mov r1, #0x00000000 /* prepare zero to clear BSS */ + + subs r2, r3, r0 /* r2 = memset len */ + bl memset +#else + ldr r1, =__bss_end + mov r2, #0x00000000 /* prepare zero to clear BSS */ + +clbss_l:cmp r0, r1 /* while not at end of BSS */ + strlo r2, [r0] /* clear 32-bit BSS word */ + addlo r0, r0, #4 /* move to next */ + blo clbss_l +#endif +#endif + mov r0, #0 bl board_init_f @@ -124,6 +144,7 @@ here: movne sp, r0 movne r9, r0 # endif +#if !defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SPL_CLEAR_BSS_F) ldr r0, =__bss_start /* this is auto-relocated! */ #ifdef CONFIG_USE_ARCH_MEMSET @@ -141,6 +162,7 @@ clbss_l:cmp r0, r1 /* while not at end of BSS */ addlo r0, r0, #4 /* move to next */ blo clbss_l #endif +#endif #if ! defined(CONFIG_SPL_BUILD) bl coloured_LED_init