From patchwork Tue Jul 23 20:27:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1135907 X-Patchwork-Delegate: simon.k.r.goldschmidt@gmail.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="d8WCvyUe"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45tVSt6Zvlz9sBF for ; Wed, 24 Jul 2019 06:29:34 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 8EBDEC21C38; Tue, 23 Jul 2019 20:28:35 +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 E5688C21C38; Tue, 23 Jul 2019 20:28:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4A5AAC21C93; Tue, 23 Jul 2019 20:28:11 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by lists.denx.de (Postfix) with ESMTPS id A246AC21DDC for ; Tue, 23 Jul 2019 20:28:09 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id r1so44511079wrl.7 for ; Tue, 23 Jul 2019 13:28:09 -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 :mime-version:content-transfer-encoding; bh=2X7C7mXxAYDjx0eM3Prr5ToURXdAQeUL/XqiiL9vDRE=; b=d8WCvyUe4eTl7RTa2stBEP8B/UWd68WJE2bWZR97ZF3MavVheq0uaMQZEonV6qxCZo oevvGSQLn8+Q6MackG09nZocvOk4HEckctlOsevRw+g9ISxnOnf7vfxIMRaOyCB/iTC8 FYgphL8uayFBpMxVpccQg9k4+tnqdOf2xxjDM5lGaU7etyCatH8GXlO6vh4MMwWqMaVw hN3sVRYqKWOnI9lqyItFjxBUFX0WPOEs3zIvZsnyR49pUx6fniZ84DGFpC9B3DyQwpRU pkK+PiuCqEyqqWaeHTTdquo+YJsDYuzeR9APkd5iV5tnNzVb5d/btEJlJKdz82TH6xNc /Qiw== 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:mime-version:content-transfer-encoding; bh=2X7C7mXxAYDjx0eM3Prr5ToURXdAQeUL/XqiiL9vDRE=; b=eynBtSsUVsAU3/iZDFbbgIXKtLBvfYyLz+WyPQszG8AqcmsvDV1V7aDRDv4NtqUScU lzWtfLhU0OrwUjZAIqAmOt+po1nl+AiwEI2YOZ03Hz5Kh22FWPmdg3s7e7PhxxywtAoh Ni5yN2PtSqLFVjtvL1qDDPnjQk94coKRRBBXKMt6e5No6Ey7N+ZdLsO/oFLeyvSvZO5N VOG2imWWMnZTRSiV9bBVuMlLF3RoCZgegfelqOaGV6p5p/RkRONtvRxOx+cOmOd8bA7r 0xpq7eezpJ6l/rtVcSi+NMYlwlyvw9rS2Vv01cdL5QIcz0G0Ln0pV8Xj0rBzJazultqJ EY4A== X-Gm-Message-State: APjAAAUKQwxxacR4Pxyt7RnV5pZ+XXkcAQNk4YqXYR3nZhZMOSvVyUfg aQhY+EBW9nA3E5ZBBrGbx98= X-Google-Smtp-Source: APXvYqzcPEmrw5DPahm3xmAm9okwBp7NLT9y4M06GsLGSuxHq4QrutbI/wUHln3mcK94CjzXCSlyaw== X-Received: by 2002:adf:dd03:: with SMTP id a3mr36782129wrm.87.1563913689284; Tue, 23 Jul 2019 13:28:09 -0700 (PDT) Received: from ubuntu.home ([2a02:8071:6a3:700:e1af:5c69:a16b:945c]) by smtp.gmail.com with ESMTPSA id l25sm34057284wme.13.2019.07.23.13.28.08 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 23 Jul 2019 13:28:08 -0700 (PDT) From: Simon Goldschmidt To: Marek Vasut Date: Tue, 23 Jul 2019 22:27:55 +0200 Message-Id: <20190723202758.21295-5-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190723202758.21295-1-simon.k.r.goldschmidt@gmail.com> References: <20190723202758.21295-1-simon.k.r.goldschmidt@gmail.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Tom Rini Subject: [U-Boot] [PATCH 4/6] arm: socfpga: gen5: move initial reset handling to reset driver 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" This moves disabling all peripherals from ad-hoc code in arch/arm to the socfpga reset driver. To do this, DM initialization and UCLASS_RESET probing has to be done earlier in the SPL. Signed-off-by: Simon Goldschmidt --- arch/arm/mach-socfpga/reset_manager_gen5.c | 13 ------------- arch/arm/mach-socfpga/spl_gen5.c | 21 +++++++++------------ 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/arch/arm/mach-socfpga/reset_manager_gen5.c b/arch/arm/mach-socfpga/reset_manager_gen5.c index 9a32f5abfe..34e59b852b 100644 --- a/arch/arm/mach-socfpga/reset_manager_gen5.c +++ b/arch/arm/mach-socfpga/reset_manager_gen5.c @@ -48,19 +48,6 @@ void socfpga_per_reset(u32 reset, int set) clrbits_le32(reg, 1 << RSTMGR_RESET(reset)); } -/* - * Assert reset on every peripheral but L4WD0. - * Watchdog must be kept intact to prevent glitches - * and/or hangs. - */ -void socfpga_per_reset_all(void) -{ - const u32 l4wd0 = 1 << RSTMGR_RESET(SOCFPGA_RESET(L4WD0)); - - writel(~l4wd0, &reset_manager_base->per_mod_reset); - writel(0xffffffff, &reset_manager_base->per2_mod_reset); -} - #define L3REGS_REMAP_LWHPS2FPGA_MASK 0x10 #define L3REGS_REMAP_HPS2FPGA_MASK 0x08 #define L3REGS_REMAP_OCRAM_MASK 0x01 diff --git a/arch/arm/mach-socfpga/spl_gen5.c b/arch/arm/mach-socfpga/spl_gen5.c index 87b76b47de..1ae8025746 100644 --- a/arch/arm/mach-socfpga/spl_gen5.c +++ b/arch/arm/mach-socfpga/spl_gen5.c @@ -84,12 +84,19 @@ void board_init_f(ulong dummy) socfpga_sdram_remap_zero(); socfpga_pl310_clear(); + ret = spl_early_init(); + if (ret) { + debug("spl_early_init() failed: %d\n", ret); + hang(); + } + debug("Freezing all I/O banks\n"); /* freeze all IO banks */ sys_mgr_frzctrl_freeze_req(); - /* Put everything into reset but L4WD0. */ - socfpga_per_reset_all(); + ret = uclass_get_device(UCLASS_RESET, 0, &dev); + if (ret) + debug("Reset init failed: %d\n", ret); if (!socfpga_is_booting_from_fpga()) { /* Put FPGA bridges into reset too. */ @@ -130,16 +137,6 @@ void board_init_f(ulong dummy) debug_uart_init(); #endif - ret = spl_early_init(); - if (ret) { - debug("spl_early_init() failed: %d\n", ret); - hang(); - } - - ret = uclass_get_device(UCLASS_RESET, 0, &dev); - if (ret) - debug("Reset init failed: %d\n", ret); - /* enable console uart printing */ preloader_console_init();