mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
7c9644a7b5
Replace downstream bmips RAC fixes with upstream patches. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> [backport upstream patches] Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From ce5cdd3b05216b704a704f466fb4c2dff3778caf Mon Sep 17 00:00:00 2001
|
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
Date: Tue, 11 Jun 2024 13:35:33 +0200
|
|
Subject: [PATCH] mips: bmips: BCM6358: make sure CBR is correctly set
|
|
|
|
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 <ansuelsmth@gmail.com>
|
|
Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
|
---
|
|
arch/mips/bmips/setup.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- 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)
|