From patchwork Fri May 3 21:20:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 13653434 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3565446441; Fri, 3 May 2024 21:22:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771369; cv=none; b=PB/i0PwCgIAFsMIBTBWMTTVOXg8RVloMG9sq6n4cp0VrTgf0gVWc/dLZq8AKBPRfZgiGAEAqXxE6foSLM7NzctqkKyZFeG/xTczKmCDTa+393I8Q+EMnS+c+WFdjV/GmIPUM2EWTX1ZPDXhdC+bkuo6tdqaW3GRcpFmD29x/nDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771369; c=relaxed/simple; bh=X5QO4KOGbGZJaTwHuLYxcPBvxqlKNKY3v1yg8Ls0+go=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GYE1mt/urOqp3UbhvBWsYUSBkkiRJ4ghrkxqWELTmLmIXR5pxhb9tOPzqT0uxfqRNxsoFfYpeAgb6fIlhwkMVxjU7KIrXuqc+TP48IVI/1Kh688g5HgzQ6k/Gum/h1RE0e5HfamN298Wv5E0Qg1gYsYJXsil+N5qt1c34h6p+MA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=knQcG2tJ; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="knQcG2tJ" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-41c7ac73fddso1640715e9.3; Fri, 03 May 2024 14:22:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714771366; x=1715376166; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=L64tyzVkGm6ZnLwG0YS7ddVliyJ40mixqMJfBnGOk24=; b=knQcG2tJlX/GzQe9/6Tx3wwnL4tqyegMWWF1sRWw0fLkFYBHZh/NLEAuja641nGpB7 fry9MvfeAfnEmzNLnWdNlLyGIFgmJKsWov8W+UqHHAI0wHqjtYqA1fg+9+iEN0asp+bN vNfhsbt2+2xQHLEZKVYgD51lI9FDcvTg8n/yr9bAI7OUHy7xLq3SshAbmpEzdqcW9cvc O0dtKrJaPlZY/xmXDAYAuLfwMKH2QGDv1+ItLJl4uMHSzyR+jNGm8D/KkuwlWaJS5lfj 9ooyKKmhQFiTs3ZKaoQeqepYXa9iY2oPyVVModi19+u+ZS6bSrSHN9PGb33S54iP+V6M t5gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714771366; x=1715376166; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L64tyzVkGm6ZnLwG0YS7ddVliyJ40mixqMJfBnGOk24=; b=ZcMgQ61Dh6UC+Emh/9u4SaZr35KBP3inS73sXXeQaiYMFcTACcnyoUkdtkfuQSusfP Tal7l70CQoF3x13rWBfsiKIWVTCTOMU7phFgR2YjrNvGy3gdyesYhtu1fbdx3E3fQrdg aKIhD/zuV18bN7jkkB+l/UIUaE4pSYTXHootye9WdRpZs1WWsmycYac3/P7RWPC7w6VM CT/e6A0LQVC/EUaX5xKV746Tc7QKgJlgZByLgV+xd4Fip33xYHBbBhKIz5yori/f9Fat xk7eCBq5Uo5uXEEdfAFw7Di71texPfc57IJQojLV2At/3mAyIFljJo5wE+/ostb/dxgm PjIw== X-Forwarded-Encrypted: i=1; AJvYcCUm8uK+nsKJsrcv8jwjrq1VH5TgvTtCU2n39jHIgomefW6+uMMT66dc8yAq0spQdmhxONKX0oIgW2uCDLw+VKtdP1es7j84izpdSH6BiJzu5Vi4+SRFLKR6psAQM+aFE+67thSBdSoZZJv8KwfUShrtkVha9Kxk55XmqK7Gxjr6BBQdn0I= X-Gm-Message-State: AOJu0YzhNBi1Ge/nJs0zuWW42NWA4UHaUentxkdrjnka1x42gPjUA3fC 6bRrXw3YZev+MElmpaoUyFx2zvoUqrk807mzu02igsgjaaHgoTI2 X-Google-Smtp-Source: AGHT+IF/nCgDRi+5NwRqCziiD6l3p4JJYHDinwP3vOPMd0kinXs0NsTbGxsXvvFTQaYgY6TadncSkg== X-Received: by 2002:a05:600c:3ba4:b0:41b:bb90:4af with SMTP id n36-20020a05600c3ba400b0041bbb9004afmr3641323wms.20.1714771366384; Fri, 03 May 2024 14:22:46 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id g7-20020a05600c4ec700b0041902ebc87esm6918729wmq.35.2024.05.03.14.22.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 14:22:46 -0700 (PDT) From: Christian Marangi To: Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Thomas Bogendoerfer , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Christian Marangi , =?utf-8?q?=C3=81lvaro_Fern=C3=A1n?= =?utf-8?q?dez_Rojas?= , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Daniel_?= =?utf-8?q?Gonz=C3=A1lez_Cabanelas?= Subject: [PATCH v2 1/5] mips: bmips: BCM6358: make sure CBR is correctly set Date: Fri, 3 May 2024 23:20:57 +0200 Message-ID: <20240503212139.5811-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240503212139.5811-1-ansuelsmth@gmail.com> References: <20240503212139.5811-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-mips@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 It was discovered that some device have CBR address set to 0 causing kernel panic when arch_sync_dma_for_cpu_all is called. This was notice in situation where the system is booted from TP1 and BMIPS_GET_CBR() returns 0 instead of a valid address and !!(read_c0_brcm_cmt_local() & (1 << 31)); not failing. The current check whether RAC flush should be disabled or not are not enough hence lets check if CBR is a valid address or not. Fixes: ab327f8acdf8 ("mips: bmips: BCM6358: disable RAC flush for TP1") Signed-off-by: Christian Marangi Acked-by: Florian Fainelli --- arch/mips/bmips/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/mips/bmips/setup.c b/arch/mips/bmips/setup.c index ec180ab92eaa..66a8ba19c287 100644 --- a/arch/mips/bmips/setup.c +++ b/arch/mips/bmips/setup.c @@ -110,7 +110,8 @@ static void bcm6358_quirks(void) * RAC flush causes kernel panics on BCM6358 when booting from TP1 * because the bootloader is not initializing it properly. */ - bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)); + bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)) || + !!BMIPS_GET_CBR(); } static void bcm6368_quirks(void) From patchwork Fri May 3 21:20:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 13653435 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3341B535A8; Fri, 3 May 2024 21:22:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771370; cv=none; b=HkA94cbWwM4I8B8kG+pTBBoY1SSJqtF15fCOyHohI6Z1PFLtKuZfbYWhHxZz5j6+8eM76L+YZc/hySbwb4UJ+EPJh1jGMThsi8NaYc9M51kfON8lcYr8uV+aDuR48iOU7niN90+ylS3yaiZIh2XkCGl+8lbg6rZL1qgQFZDzuv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771370; c=relaxed/simple; bh=Xxb5B1PVv3ZrUpQx3bfg4axKGi6vbSVIyt8IQLWih4w=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s9ieUTlwj4npslCCboTYMyEmZOjrHshKiTYcolTyYnGLHelIDq/gCaKlWgg2QmtU6YQFNWZ+jLut7lhT6+Eupnzoeq2TCf2xBwIJ6+tiebeY8I1PnCp3EkJiDDunsDPjrbgXr+A+q95tRywSACAFBYos26iDj0kwH/qbo2hWDVU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Lyra5cp8; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Lyra5cp8" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4196c62bb4eso1620555e9.2; Fri, 03 May 2024 14:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714771367; x=1715376167; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nvqBlP+Rap4YCxg3VeyVH5MXjUjdXiTwdd//z8REzBo=; b=Lyra5cp8kv3c/0NJvCeB+50hgZr5UkKvvSJ2KXqU2+Mi8+zk1Pe4LBL0c2Yn6XQAqj fepHyBQ9pVXBNDVuKXl0K11Gh5We4d3lcUxgdmCKV1KboNQsO1VlqQ1thDc2p+xY21z+ pTeTLozXbIWuzCF8Nal+N/2azMdXPmKIHRSTSxPNxRLHRUOo+ZvG/4QE0ROUDHKbsiq8 A0hZ73wN9ubazq8MrwFDnszgjYsng8hlfUgxoXd8PWN5S6ebrxMUnQK6eZ+a3sMrIo3R OkA2bVM9yfkB1ORKgX2kJM5mmFdklkaa7WpGOybrLOA5nYzjp43jpopi9GYkBbVR5C/q +i4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714771367; x=1715376167; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nvqBlP+Rap4YCxg3VeyVH5MXjUjdXiTwdd//z8REzBo=; b=Yp7x3Fum+QxlFM8sgUGqMNzD2kEwFKjFClUur6ebScMpOOVnTtprpl78P25a5PIjHg d7MEDmeW5qsRZ31EJXIJjDzrnxeD9xdiJ6sRFleZPKHbSNYmeIc8hY65YcVpuu8oRnMO gdnF19XAMuaVoUtDPlMZAUcqDeUbG0RS1jCqKzDP7zlx4QzQUMqr4LjH20Bnfhbqiaxg RYyDLe80oOS2xTda0UWuFODg4NuZ2LeQBX+cncVuek9M7vZWX9izlM8J3yedbFkIHN8G +kEXCfJg4pV9euGRmX10R5yez1wOErPQ4aRcXO+TYHQ1f80+OHQHKtinqDWQR8xU4YCP bEAw== X-Forwarded-Encrypted: i=1; AJvYcCVKT52VGFWoXXkXMXIZKc1R+tALEbgUKMgX83aeRe8nsN9xWTJFuwZbphm0E3Z2cMi3lAwX+cOLL6KNqIlIaNqoKbAKKsq9k5F2fUyEt+nBW2Kz+ItD46fyYOECrhACktPT0YJiftgZtqnKs2/aqZ5XqnFiVlvKrdYa8JQ2nhtNN303ejo= X-Gm-Message-State: AOJu0YyprLE8wJKTJdpXchRJjjjQCsl+4gngzJVGJOsO2DQNDDqYoYQm k/W/CVzBGo/Twk7sAPsh3TyU1mdpanVmAxFPlI4TKTILYcjc4aUa X-Google-Smtp-Source: AGHT+IGxK0EXO9VRda6KrcDmFQ9h/UydwORWCmkITvgU0MCesWPoC68C943Qb+Ay9tg3ufldOXO5xA== X-Received: by 2002:a05:600c:354a:b0:418:f991:8ad4 with SMTP id i10-20020a05600c354a00b00418f9918ad4mr3007987wmq.6.1714771367489; Fri, 03 May 2024 14:22:47 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id g7-20020a05600c4ec700b0041902ebc87esm6918729wmq.35.2024.05.03.14.22.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 14:22:47 -0700 (PDT) From: Christian Marangi To: Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Thomas Bogendoerfer , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Christian Marangi , =?utf-8?q?=C3=81lvaro_Fern=C3=A1n?= =?utf-8?q?dez_Rojas?= , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Daniel_?= =?utf-8?q?Gonz=C3=A1lez_Cabanelas?= Subject: [PATCH v2 2/5] mips: bmips: rework and cache CBR addr handling Date: Fri, 3 May 2024 23:20:58 +0200 Message-ID: <20240503212139.5811-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240503212139.5811-1-ansuelsmth@gmail.com> References: <20240503212139.5811-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-mips@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Rework the handling of the CBR address and cache it. This address doesn't change and can be cached instead of reading the register every time. This is in preparation of permitting to tweak the CBR address in DT with broken SoC or bootloader. Signed-off-by: Christian Marangi Acked-by: Florian Fainelli --- arch/mips/bmips/dma.c | 2 +- arch/mips/bmips/setup.c | 6 +++++- arch/mips/include/asm/bmips.h | 1 + arch/mips/kernel/smp-bmips.c | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/mips/bmips/dma.c b/arch/mips/bmips/dma.c index 3779e7855bd7..2bc9c0d4402f 100644 --- a/arch/mips/bmips/dma.c +++ b/arch/mips/bmips/dma.c @@ -9,7 +9,7 @@ bool bmips_rac_flush_disable; void arch_sync_dma_for_cpu_all(void) { - void __iomem *cbr = BMIPS_GET_CBR(); + void __iomem *cbr = bmips_cbr_addr; u32 cfg; if (boot_cpu_type() != CPU_BMIPS3300 && diff --git a/arch/mips/bmips/setup.c b/arch/mips/bmips/setup.c index 66a8ba19c287..5e024399222f 100644 --- a/arch/mips/bmips/setup.c +++ b/arch/mips/bmips/setup.c @@ -34,6 +34,8 @@ #define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c)) #define BCM6328_TP1_DISABLED BIT(9) +/* CBR addr doesn't change and we can cache it */ +void __iomem *bmips_cbr_addr __ro_after_init __read_mostly; extern bool bmips_rac_flush_disable; static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000; @@ -111,7 +113,7 @@ static void bcm6358_quirks(void) * because the bootloader is not initializing it properly. */ bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)) || - !!BMIPS_GET_CBR(); + !!bmips_cbr_addr; } static void bcm6368_quirks(void) @@ -144,6 +146,8 @@ static void __init bmips_init_cfe(void) void __init prom_init(void) { + /* Cache CBR addr before CPU/DMA setup */ + bmips_cbr_addr = BMIPS_GET_CBR(); bmips_init_cfe(); bmips_cpu_setup(); register_bmips_smp_ops(); diff --git a/arch/mips/include/asm/bmips.h b/arch/mips/include/asm/bmips.h index 581a6a3c66e4..3a1cdfddb987 100644 --- a/arch/mips/include/asm/bmips.h +++ b/arch/mips/include/asm/bmips.h @@ -81,6 +81,7 @@ extern char bmips_smp_movevec[]; extern char bmips_smp_int_vec[]; extern char bmips_smp_int_vec_end[]; +extern void __iomem *bmips_cbr_addr; extern int bmips_smp_enabled; extern int bmips_cpu_offset; extern cpumask_t bmips_booted_mask; diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c index b3dbf9ecb0d6..a4f84667a901 100644 --- a/arch/mips/kernel/smp-bmips.c +++ b/arch/mips/kernel/smp-bmips.c @@ -518,7 +518,7 @@ static void bmips_set_reset_vec(int cpu, u32 val) info.val = val; bmips_set_reset_vec_remote(&info); } else { - void __iomem *cbr = BMIPS_GET_CBR(); + void __iomem *cbr = bmips_cbr_addr; if (cpu == 0) __raw_writel(val, cbr + BMIPS_RELO_VECTOR_CONTROL_0); @@ -591,7 +591,7 @@ asmlinkage void __weak plat_wired_tlb_setup(void) void bmips_cpu_setup(void) { - void __iomem __maybe_unused *cbr = BMIPS_GET_CBR(); + void __iomem __maybe_unused *cbr = bmips_cbr_addr; u32 __maybe_unused cfg; switch (current_cpu_type()) { From patchwork Fri May 3 21:20:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 13653436 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51E085820E; Fri, 3 May 2024 21:22:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771371; cv=none; b=OrpnDJlbRfFiMy/NmqIHFuGGZvUN7oDExrAwl+WAUeHHD4LAsbRpPxQHaSJ/P/hMMMCZuEWShg87k7w+SAKrJd98GdFH72Njv1jl7FFcvGnTHwQZYY0pmXJyCKfvOVTFf3Lk9mHgem+elsqVw2iNPx+PY1QjvG+ZmwVNzsAjk+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771371; c=relaxed/simple; bh=4Szzoa+TyTyxXCukvaGo65ZhEOjBu2aeG1aUMemN+Cg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RafWm10IvTF2tzq5on7U5Q263QK/x6NdoFJJ89iYmWskCVYLAIxk+3iFM2r/gx4qwc+709RizhwJ90SZBLcWP6G7IzqmkHdz1fAbVJoNp8J0f1jUWBo91DNOHG0jEc7Yu2dB9OVFXHI+lKGKLUPLCnPjuvNwz6W/yA7Z5i6fsA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iwazBxnK; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iwazBxnK" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-41b79450f8cso1467425e9.3; Fri, 03 May 2024 14:22:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714771368; x=1715376168; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=UxHnyeDaT3SsXXHJpHgStueHSADUwIVIimkKgSvF4qQ=; b=iwazBxnKrqiL/iY7WkVFQzUl02KwV0erAYgtCiyQyFr8SZRA7fzLzsR1Cwop2K2kgq 5KRrspvl2YBGcBxnwtDNhcBVoA6oXcCyuGOLjrlNpNdhc5NAopM1zqaQq82JI+daw/R7 xmNxSiXA99MqZFim5Bp8SrVd0SHFPPDgARNfCoY7gOPKUmq3Ha/qBFuTyt89aULLH1eO +FX/rptOM0W9GPuMgfOgMpMW9rgcFxfl8LhdPJXAD59Cqq5GguXPcpDI7AuTtkFski+L QVzGXzizcH7mOvtgWlZKoz1OC4b05QE6hn7TUS84swgbuL7V2+F8gSlBfjBFZsVkSn36 kMnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714771368; x=1715376168; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UxHnyeDaT3SsXXHJpHgStueHSADUwIVIimkKgSvF4qQ=; b=TYCBHTWEnDORSpRkJAkUe4fw/f12fFxzVPu8BVDO8RBPw/GxU1UTu4zLnBcRFxp+TT UfrFMOKMKoIy8O8pIbx+9gy6O77Vz3RNg0ZXKrsXOhamO46ZVod6KRPdSOAscLmG14Q4 WICt3H8SO2Ki0w5xzDezPvhorLsJzGFII0uXrRc6egG3pHblhk2K6fpJrP1J6IFXjrB/ suYVpGhwJ/kIKc43ICWwoS6L8bQ8eq0nGB/BICUDbNqyZsNutpBxT5hDzR1kC/rNPwLs UDNFJV50nVWuDL+l8AXGtyTmLAtPKM71/nq648cMO6cCE1IZxZljtZLxGShuXBgeUqcR Zzqg== X-Forwarded-Encrypted: i=1; AJvYcCXSkjBKN8chAq6fqHti4QG9r8Se8R6/kxa8axPvUNlet8d9PKjWWdwl3Ec1haqstVBTpc3KYGusqYphwH0RTvpy1ItTKAftXrNWrXuDyV2e0B4zg6Zwhw1Eo3s2YjuSQmCMEHJdLNWmzX61+seWsTvabj5RbuElFbUcPxgMbaUqiFaDxb8= X-Gm-Message-State: AOJu0YykYy7QSffzsCjzGM5KFjGram4v2I8BM3j/xggotnME/VQWLY5J jiRxFt6OiF+LdMPzvs3Afu0fpdzoEna7StDfoG0UxJcqYn2+lkPi X-Google-Smtp-Source: AGHT+IGTQSlmZA2APkmcG4k0in1aO4SGPsIL+pLK9c8gmAijAfAuYNcjXfO+FLS/FyMhkMuCYpFD3g== X-Received: by 2002:a05:600c:500f:b0:41a:446b:10df with SMTP id n15-20020a05600c500f00b0041a446b10dfmr3160205wmr.12.1714771368583; Fri, 03 May 2024 14:22:48 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id g7-20020a05600c4ec700b0041902ebc87esm6918729wmq.35.2024.05.03.14.22.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 14:22:48 -0700 (PDT) From: Christian Marangi To: Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Thomas Bogendoerfer , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Christian Marangi , =?utf-8?q?=C3=81lvaro_Fern=C3=A1n?= =?utf-8?q?dez_Rojas?= , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Daniel_?= =?utf-8?q?Gonz=C3=A1lez_Cabanelas?= Subject: [PATCH v2 3/5] dt-bindings: mips: brcm: Document brcm,bmips-cbr-reg property Date: Fri, 3 May 2024 23:20:59 +0200 Message-ID: <20240503212139.5811-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240503212139.5811-1-ansuelsmth@gmail.com> References: <20240503212139.5811-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-mips@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Document brcm,bmips-cbr-reg and brcm,bmips-broken-cbr-reg property. Some SoC suffer from a BUG where read_c0_brcm_cbr() might return 0 if called from TP1. The CBR address is always the same on the SoC hence it can be provided in DT to handle broken case where bootloader doesn't init it or SMP where read_c0_brcm_cbr() returns 0 from TP1. Usage of this property is to give an address also in these broken configuration/bootloader. If the SoC/Bootloader ALWAYS provide a broken CBR address the property "brcm,bmips-broken-cbr-reg" can be used to ignore any value already set in the registers for CBR address. Signed-off-by: Christian Marangi --- .../devicetree/bindings/mips/brcm/soc.yaml | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Documentation/devicetree/bindings/mips/brcm/soc.yaml b/Documentation/devicetree/bindings/mips/brcm/soc.yaml index 975945ca2888..29af8f0db785 100644 --- a/Documentation/devicetree/bindings/mips/brcm/soc.yaml +++ b/Documentation/devicetree/bindings/mips/brcm/soc.yaml @@ -55,6 +55,21 @@ properties: under the "cpus" node. $ref: /schemas/types.yaml#/definitions/uint32 + brcm,bmips-broken-cbr-reg: + description: Declare that the Bootloader init a broken + CBR address in the registers and the one provided from + DT should always be used. + type: boolean + + brcm,bmips-cbr-reg: + description: Reference address of the CBR. + Some SoC suffer from a BUG where read_c0_brcm_cbr() might + return 0 if called from TP1. The CBR address is always the + same on the SoC hence it can be provided in DT to handle + broken case where bootloader doesn't initialise it or SMP + where read_c0_brcm_cbr() returns 0 from TP1. + $ref: /schemas/types.yaml#/definitions/uint32 + patternProperties: "^cpu@[0-9]$": type: object @@ -64,6 +79,23 @@ properties: required: - mips-hpt-frequency +dependencies: + brcm,bmips-broken-cbr-reg: [ brcm,bmips-cbr-reg ] + +if: + properties: + compatible: + contains: + anyOf: + - const: brcm,bcm6358 + - const: brcm,bcm6368 + +then: + properties: + cpus: + required: + - brcm,bmips-cbr-reg + additionalProperties: true examples: From patchwork Fri May 3 21:21:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 13653437 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A2AE5A788; Fri, 3 May 2024 21:22:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771373; cv=none; b=RstRDkaX+cMOujhBydGtADXpPiG0qsmDpWReTwsOq6nYSZCUN4PfR38wPq8ZTnkXQPrlgsuByOFQc3GXhaqUmiBiGAyamYwFgZt8b/rK+3LmTBXiXkaOdiDnRZ2Q9Sa3iT8LjiDzLC1Hb8+6b0Ou6mVhAMbWnWky+lfCX9VLWNw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771373; c=relaxed/simple; bh=65SBhm2zrWFP9xVHnGPeQVhwBSkJioFsSDoST6eHRFU=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dAkggi9fs652/24givhZ4oGoBd6roBno+Q3M18PG3NDD4Gx21rxo0IytwkJKG251GUMAsyzRe8oNDeOf2QjU/fgZCu1B+1IYhEPCwvE9FtHNO43MweIhhNQahNY6AfziUdzL/d+dawVkqug875/UF7ohOYhj0KT9+UEeh4b1m/U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=feauQYI+; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="feauQYI+" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-41b79450f78so988945e9.2; Fri, 03 May 2024 14:22:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714771369; x=1715376169; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=TylOqhH9oLbqqMRpzt0l3e00DQ35pa/uQ1g0qYZVtI8=; b=feauQYI+C/sPrfO1RmmDfeaiiF82thMKqhSChYxorS1ZFl6sA+5EJ6sjrzT3U2FNur iriqbchvTkJWlMzujuUQA/+xla+tiXwus33mdwQRiitOSbqCX85c0jhER3YKOQrc718w mob/oDwVX8BjU3uwMHlMxEXe1e680qtJ8t/bK2eg/XLNh6RrhlVq/8mohUGZktfb5zaP EhCdCGMQKasKVH7NmUYzSa593Ys+9oNN2g6OVRROqbCWFoBES1d+5940BF2ZlcOanVh7 VbpwphpLnigdp+hOf/x3YBzGyq8eaHFR+lIubV3ZLZ5JTZf0fe7qEDRIBPb1XFq0XAfA 1Q+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714771369; x=1715376169; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TylOqhH9oLbqqMRpzt0l3e00DQ35pa/uQ1g0qYZVtI8=; b=TMnXBjSPI1XJf6htbNhsRxKAjv4z0bHK1mqkXenD9Y9FfdklbucjjSn4OoC7pq5KO/ 6ld/mZkayQqbwQJGze8ZfLwx//omNSzqh0fU6thPMv1gyMo2TQMAPMK1nephLCdP2ecK oeExBaWC5ctwrT2Jh0STkiGS6qtDuyKMDbjDzJK4nbS9Dg0zC4lyQQACX5B1cZ6r71QE wpQ2HReAe1+TuFwmaJJVbKdJ5jaYG7nziVniq96lM8aDovQ3mrnQ0ZkqBqR5iEl4adfo TdX4YXTM2OgumjNTumKLUwqiavl0m5hOWuJB2sYkFsdDfx86AYBri/wIT8a/iI/CUoVz hd5Q== X-Forwarded-Encrypted: i=1; AJvYcCVXF+Lral0hFAcpnReuMsStW5E4XTsifbFrfYvs7wZG6mpuUg+H9vrhChIWmZBl+8+yTCsLGLLQR8VskobfvP46XSWvhbbUITOAxGaSZPw7mocv7gOlFP1HyFWje+kwQ0u6m7tSTyKmdQ4xR5UjUwLxYfEH/uxeH7hMD6JOhAbBqpAqC/E= X-Gm-Message-State: AOJu0Yw2hfkngYhDqPT83BBRU5puWAWEmkJwj7mLk0MvHYw7uJyrt84I 7J737zRzvdk2OPLvm2bAeM2zVR/KLMmyW/cucHriKSmizxESoyk1 X-Google-Smtp-Source: AGHT+IHlo8PDCFecvI1JDTqv0y3wApZ9EwtOJk9NkN3RX5kxIjYcBttVmk9YFWme6o8n7kPUmhNIEw== X-Received: by 2002:a5d:5050:0:b0:346:662f:62b7 with SMTP id h16-20020a5d5050000000b00346662f62b7mr3325364wrt.71.1714771369537; Fri, 03 May 2024 14:22:49 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id g7-20020a05600c4ec700b0041902ebc87esm6918729wmq.35.2024.05.03.14.22.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 14:22:49 -0700 (PDT) From: Christian Marangi To: Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Thomas Bogendoerfer , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Christian Marangi , =?utf-8?q?=C3=81lvaro_Fern=C3=A1n?= =?utf-8?q?dez_Rojas?= , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Daniel_?= =?utf-8?q?Gonz=C3=A1lez_Cabanelas?= Subject: [PATCH v2 4/5] mips: bmips: setup: make CBR address configurable Date: Fri, 3 May 2024 23:21:00 +0200 Message-ID: <20240503212139.5811-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240503212139.5811-1-ansuelsmth@gmail.com> References: <20240503212139.5811-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-mips@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add support to provide CBR address from DT to handle broken SoC/Bootloader that doesn't correctly init it. This permits to use the RAC flush even in these condition. To provide a CBR address from DT, the property "brcm,bmips-cbr-reg" needs to be set in the "cpus" node. On DT init, this property presence will be checked and will set the bmips_cbr_addr value accordingly. Also bmips_rac_flush_disable will be set to false as RAC flush can be correctly supported. The CBR address from DT will be applied only if the CBR address from the registers is 0, if the CBR address from the registers is not 0 and is not equal to the one set in DT (if provided) a WARN is printed. Also the DT CBR address is validated on being outside DRAM window. To ALWAYS overwrite the CBR address the additional property "brcm,bmips-broken-cbr-reg" needs to be set. Signed-off-by: Christian Marangi --- arch/mips/bmips/setup.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/arch/mips/bmips/setup.c b/arch/mips/bmips/setup.c index 5e024399222f..bf27b29c7a14 100644 --- a/arch/mips/bmips/setup.c +++ b/arch/mips/bmips/setup.c @@ -34,7 +34,11 @@ #define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c)) #define BCM6328_TP1_DISABLED BIT(9) -/* CBR addr doesn't change and we can cache it */ +/* + * CBR addr doesn't change and we can cache it. + * For broken SoC/Bootloader CBR addr might also be provided via DT + * with "brcm,bmips-cbr-reg" in the "cpus" node. + */ void __iomem *bmips_cbr_addr __ro_after_init __read_mostly; extern bool bmips_rac_flush_disable; @@ -207,13 +211,42 @@ void __init plat_mem_setup(void) void __init device_tree_init(void) { struct device_node *np; + u32 addr; unflatten_and_copy_device_tree(); /* Disable SMP boot unless both CPUs are listed in DT and !disabled */ np = of_find_node_by_name(NULL, "cpus"); - if (np && of_get_available_child_count(np) <= 1) + if (!np) + return; + + if (of_get_available_child_count(np) <= 1) bmips_smp_enabled = 0; + + /* Check if DT provide a CBR address */ + if (of_property_read_u32(np, "brcm,bmips-cbr-reg", &addr)) + goto exit; + + /* Make sure CBR address is outside DRAM window */ + if (addr >= (u32)memblock_start_of_DRAM() && + addr < (u32)memblock_end_of_DRAM()) { + WARN(1, "DT CBR %x inside DRAM window. Ignoring DT CBR.\n", + addr); + goto exit; + } + + if (bmips_cbr_addr && addr != (u32)bmips_cbr_addr && + !of_property_read_bool(np, "brcm,bmips-broken-cbr-reg")) { + WARN(1, "register CBR %x differ from DT CBR %x. Ignoring DT CBR.\n", + (u32)bmips_cbr_addr, addr); + goto exit; + } + + bmips_cbr_addr = (void __iomem *)addr; + /* Since CBR is provided by DT, enable RAC flush */ + bmips_rac_flush_disable = false; + +exit: of_node_put(np); } From patchwork Fri May 3 21:21:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 13653438 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92FEF6A03F; Fri, 3 May 2024 21:22:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771374; cv=none; b=Lmnkr36+7fNPZCqiKNlCu9H4sOOFr7iYoUP+hj46EUCLZ2NKsBR/Ij7KCEsBGm08Wjss+JupGg0mvW/zHO23lCnhyuQ1NTHTwx8tkaQRLucRafb8P2DcgeAnMWiwqsHjM+MCvFqeK8dQ+SvbGbdUEsjva4xa+jjGy1AJpNT6pg8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714771374; c=relaxed/simple; bh=9qSQ+VmyiWaSOayhgLpCBEyLLV7mRD7PthMA2Myu7lo=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gK0d4LLQEB5vepGOOMM/+jn6X5d86G4bEuzS8Zip0GvSdxgVXG5pS1x0Ihegrl/7Cqzet8lIDLEePCrMt/bxUCi87lYY1JTS72aGLO/8gTouGCLOEpWBDU8/vAGnDXvrVCdkty98jzQnVFOx+t4gsbhhUCt3+MXZnw0TO15kkKk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DFXTUPL9; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DFXTUPL9" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-41ba1ba55e8so1515485e9.1; Fri, 03 May 2024 14:22:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714771371; x=1715376171; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=D4DH3qVraBxAKOkzL2o2RPg8r/hkJCjLZkhJsoaCMpU=; b=DFXTUPL91TSdICvfEJd8yZthO57jLX1lqZMtRF85w/OlPs9rK0VF/CyI14JnTE9ZwU xIiKN+Z7iP7y0IhqThyH7aQWMVPJHXmIQHdKIt7CiJmW3VXXY+q+feUwj9vDGX4R0NJB CdBk2fMZ27rkzTdDJMYkaKU8MI2CN9/aoCcmwBabwqauOyN2q23SAeWiS5tn3vGJfABj qjDRI6sksWJvpoCmJfiehz3kgpaFR5j3D9MGuT0JgN1thbc6b8Ohpr+ya9WhIhEVC9FV qv5SKR5qrg2Vcab5qtC8Xgf11E0m9vs0s0mOmJ7JxFfbmhV4tBTzFF6bp/5fNLTaNYH5 0SUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714771371; x=1715376171; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D4DH3qVraBxAKOkzL2o2RPg8r/hkJCjLZkhJsoaCMpU=; b=GtKLGdOSNNJyWd+2GkvsI7Dzu2zOkyskt/x1hsP/x8nVI3D2xDI8r9h8ssoOw8IM8k UvElN1qETDoKIOqRYg3x2jfvhyWmNteGp0q8+tJo4ouDjRjf41RGG23vCVl4fMnNItMu vFiVq0hAeB6qM7bovZgzhgxUOezDde8avV7lJQO8DSlwNN/ohxNXoS6EYR4l8STv4lgr bYUVBLxece+3rQoGMC9TL45ddWUNe+XZtwDHdprTG3P+gVBF6kRhEpC6oL31n90GAsBj Yr4M24s1tX4Fh1W1wvPkgnHODuclOrL9ES6sgJo4nillDcHC821DUJquEgqZEYURS+1B RKxw== X-Forwarded-Encrypted: i=1; AJvYcCUsji81QzBEy4yJQu+YBEdyMMabKchh+zLXr8FnjWxF/EKCSv5Gxo44i/WYRTwM63wwR+RF05XpJqYuCPJ2rDgmOXKkMa8YCNvjzSIZlrL0fkedoBJutFNMG6/9+ASBg5H4SaUGdpznyvl1vr+TxrgKv+BOhpx5CtyG7hXNmDAEDnMo0DY= X-Gm-Message-State: AOJu0Yy1+EcLF0P7iLXgl+UX66j5IFmVd/n5apQoxYBOyCb39E4Ha8/p lcQScU7gYNW+vjMm8uIlOxYCFXabGNJ6DwwXvKrYodKk2/LF3WNP X-Google-Smtp-Source: AGHT+IFICUxKWewj1Oj9MIAdnwJ1VM4+caohg57tjMLFFlCALs0uLYRjbwSztU8wd0ZS/N7F2bIj+Q== X-Received: by 2002:a05:600c:500f:b0:41a:446b:10df with SMTP id n15-20020a05600c500f00b0041a446b10dfmr3160241wmr.12.1714771370599; Fri, 03 May 2024 14:22:50 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id g7-20020a05600c4ec700b0041902ebc87esm6918729wmq.35.2024.05.03.14.22.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 14:22:50 -0700 (PDT) From: Christian Marangi To: Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Thomas Bogendoerfer , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Christian Marangi , =?utf-8?q?=C3=81lvaro_Fern=C3=A1n?= =?utf-8?q?dez_Rojas?= , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Daniel_?= =?utf-8?q?Gonz=C3=A1lez_Cabanelas?= Subject: [PATCH v2 5/5] mips: bmips: enable RAC on BMIPS4350 Date: Fri, 3 May 2024 23:21:01 +0200 Message-ID: <20240503212139.5811-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240503212139.5811-1-ansuelsmth@gmail.com> References: <20240503212139.5811-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-mips@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Daniel González Cabanelas The data RAC is left disabled by the bootloader in some SoCs, at least in the core it boots from. Enabling this feature increases the performance up to +30% depending on the task. Signed-off-by: Daniel González Cabanelas Signed-off-by: Álvaro Fernández Rojas [ rework code and reduce code duplication ] Signed-off-by: Christian Marangi Acked-by: Florian Fainelli --- arch/mips/kernel/smp-bmips.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c index a4f84667a901..0f93963c08e4 100644 --- a/arch/mips/kernel/smp-bmips.c +++ b/arch/mips/kernel/smp-bmips.c @@ -620,6 +620,23 @@ void bmips_cpu_setup(void) __raw_readl(cbr + BMIPS_RAC_ADDRESS_RANGE); break; + case CPU_BMIPS4350: + u32 rac_addr = BMIPS_RAC_CONFIG_1; + + if (!(read_c0_brcm_cmt_local() & (1 << 31))) + rac_addr = BMIPS_RAC_CONFIG; + + /* Enable data RAC */ + cfg = __raw_readl(bmips_cbr_addr + rac_addr); + __raw_writel(cfg | 0xf, bmips_cbr_addr + rac_addr); + __raw_readl(bmips_cbr_addr + rac_addr); + + /* Flush stale data out of the readahead cache */ + cfg = __raw_readl(bmips_cbr_addr + BMIPS_RAC_CONFIG); + __raw_writel(cfg | 0x100, bmips_cbr_addr + BMIPS_RAC_CONFIG); + __raw_readl(bmips_cbr_addr + BMIPS_RAC_CONFIG); + break; + case CPU_BMIPS4380: /* CBG workaround for early BMIPS4380 CPUs */ switch (read_c0_prid()) {