From patchwork Sun Mar 29 17:57:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1263518 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=PtZMebCV; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48r3KD6wDdz9sR4 for ; Mon, 30 Mar 2020 05:00:16 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5E75D818EB; Sun, 29 Mar 2020 20:00:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="PtZMebCV"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 40BD881901; Sun, 29 Mar 2020 19:59:49 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 04FD3818F1 for ; Sun, 29 Mar 2020 19:59:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ovpanait@gmail.com Received: by mail-wr1-x441.google.com with SMTP id d5so18298548wrn.2 for ; Sun, 29 Mar 2020 10:59:42 -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=iOxw/amCMJxn3d14x2xFFw+64Mk2zZzjJATf/B46pM0=; b=PtZMebCV8OO4D0hEmzbjLxMCsL5JsI03BAVtJndJA2f2YY/xfMHIVaNavPD7YwhgR1 B3s4+IuS/w5VlhZXa57ZFxvX7gViHMabEso6beScahKLmfmh9bDV7nnqC7RRfcXVDbl1 G/AOTMMlx3M4RAI327wDWvh7pjeHMYAoJxj4XnzM20d7sU2AtWg1ir8lBiEXPNPOLsW9 6hn9MqEXDmFqizLoCv1a5gO/HGR7v/CSShUfigTJPQvMRD5cnb5eCLx4z5l0rHF6dzc+ Yp4ANKJsZzmMNYAcHJsswISyD2jmNuSnlY+DVqs2G5qoq7O7wIIEt/FHHSerNGNb5MvD 9JOg== 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=iOxw/amCMJxn3d14x2xFFw+64Mk2zZzjJATf/B46pM0=; b=kFpWV7nLt7+K+ZTDiPx5pvmTy2QHLmkkOa2fcHeQb1BxXx9+Xg3hUuxIjB+sGMrfjV 3aZzuFBMFqzpV2EIeVLA9eqMcadETFjq9ZuVJMZg7Dyv8D5ilc9iszaJR6fkmAr7F6OS thM8QNCPLHRGn19B0V4AJ1wJaiWRT19RqdPi34JNFK3YEKGcV39CfVN6A0kDqTLd6z0C j/KgmdlOYaVV5cYGQTfXV6u3vBETVAlkUKRxww9yqEWXdpaptI0Kx192kXznw+2bxvP1 5sTfNb2Tw4dU+safq4JDm39rZgHPdIbFbGb7sarnMICZFU4hsOnimrjN7HhpbV+NrH9C aq0A== X-Gm-Message-State: ANhLgQ0sVU0wDgfw3YuI5paN+GWNhSdP9cjJImuUVReEEdFrn8FUmHnw Ba2CRDpLAMDK53XHVlbFuaOdkWAHgtcqAg== X-Google-Smtp-Source: ADFU+vucnJEAjfLpaN3nKYHs+c/Ezi648aF/pO4QsPBAn1s4vXeDw13yTI0swG6eiMP+6RJN4WiM7A== X-Received: by 2002:adf:e3c5:: with SMTP id k5mr10456895wrm.216.1585504782349; Sun, 29 Mar 2020 10:59:42 -0700 (PDT) Received: from uidivo.corp.ad.wrs.com ([2a02:2f0e:c308:f100:69c8:7d59:ae44:8d25]) by smtp.googlemail.com with ESMTPSA id h2sm10195243wmb.16.2020.03.29.10.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Mar 2020 10:59:41 -0700 (PDT) From: Ovidiu Panait To: u-boot@lists.denx.de Cc: sjg@chromium.org, trini@konsulko.com, Ovidiu Panait Subject: [PATCH v2 2/3] arm: asm/cache.c: Introduce arm_reserve_mmu Date: Sun, 29 Mar 2020 20:57:40 +0300 Message-Id: <20200329175741.26297-3-ovpanait@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200329175741.26297-1-ovpanait@gmail.com> References: <20200329175741.26297-1-ovpanait@gmail.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean As a preparation for turning reserve_mmu into an arch-specific variant, introduce arm_reserve_mmu on ARM. It implements the default routine for reserving memory for MMU TLB and needs to be weakly defined in order to allow for machines to override it. Without this decoupling, after introducing arch_reserve_mmu, there would be two weak definitions for it, one in common/board_f.c and one in arch/arm/lib/cache.c. Signed-off-by: Ovidiu Panait Reviewed-by: Simon Glass --- arch/arm/include/asm/cache.h | 11 +++++++++++ arch/arm/lib/cache.c | 5 +++++ arch/arm/mach-versal/cpu.c | 3 ++- arch/arm/mach-zynqmp/cpu.c | 3 ++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h index 950ec1e793..c20e05ec7f 100644 --- a/arch/arm/include/asm/cache.h +++ b/arch/arm/include/asm/cache.h @@ -49,4 +49,15 @@ void dram_bank_mmu_setup(int bank); */ #define ARCH_DMA_MINALIGN CONFIG_SYS_CACHELINE_SIZE +/* + * arm_reserve_mmu() - Reserve memory for MMU TLB table + * + * Default implementation for reserving memory for MMU TLB table. It is used + * during generic board init sequence in common/board_f.c. Weakly defined, so + * that machines can override it if needed. + * + * Return: 0 if OK + */ +int arm_reserve_mmu(void); + #endif /* _ASM_CACHE_H */ diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c index b8e1e340a1..3cbed602eb 100644 --- a/arch/arm/lib/cache.c +++ b/arch/arm/lib/cache.c @@ -122,6 +122,11 @@ void invalidate_l2_cache(void) #endif __weak int reserve_mmu(void) +{ + return arm_reserve_mmu(); +} + +__weak int arm_reserve_mmu(void) { #if !(CONFIG_IS_ENABLED(SYS_ICACHE_OFF) && CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) /* reserve TLB table */ diff --git a/arch/arm/mach-versal/cpu.c b/arch/arm/mach-versal/cpu.c index 6ee6cd43ec..c14c5bb39c 100644 --- a/arch/arm/mach-versal/cpu.c +++ b/arch/arm/mach-versal/cpu.c @@ -9,6 +9,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -98,7 +99,7 @@ u64 get_page_table_size(void) } #if defined(CONFIG_SYS_MEM_RSVD_FOR_MMU) -int reserve_mmu(void) +int arm_reserve_mmu(void) { tcm_init(TCM_LOCK); gd->arch.tlb_size = PGTABLE_SIZE; diff --git a/arch/arm/mach-zynqmp/cpu.c b/arch/arm/mach-zynqmp/cpu.c index 442427bc11..811684a9f8 100644 --- a/arch/arm/mach-zynqmp/cpu.c +++ b/arch/arm/mach-zynqmp/cpu.c @@ -11,6 +11,7 @@ #include #include #include +#include #define ZYNQ_SILICON_VER_MASK 0xF000 #define ZYNQ_SILICON_VER_SHIFT 12 @@ -116,7 +117,7 @@ void tcm_init(u8 mode) #endif #ifdef CONFIG_SYS_MEM_RSVD_FOR_MMU -int reserve_mmu(void) +int arm_reserve_mmu(void) { tcm_init(TCM_LOCK); gd->arch.tlb_size = PGTABLE_SIZE;