mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
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)
|