[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240904-fix-cf-virt-mem-sram-v1-1-fb007028d717@yoseli.org>
Date: Wed, 04 Sep 2024 16:26:14 +0200
From: Jean-Michel Hautbois <jeanmichel.hautbois@...eli.org>
To: Greg Ungerer <gerg@...ux-m68k.org>,
Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: linux-m68k@...ts.linux-m68k.org, linux-kernel@...r.kernel.org,
Jean-Michel Hautbois <jeanmichel.hautbois@...eli.org>
Subject: [PATCH] m68k: disable SRAM at startup
Some of the internal SoC registers have a higher priority over the MMU
virtual mappings. The SRAM bank is one of them. If the bootloader
enables the internal SRAM at address 0x80000000, virtual memory access
at this address will not hit the MMU - so no TLB data misses would
occurr.
Since 0x80000000 is the virtual start address of all applications that
bit of memory is getting stomped over with inconsistent code and data
access.
Fix it by disabling the internal SRAM at startup.
Signed-off-by: Greg Ungerer <gerg@...ux-m68k.org>
Tested-by: Jean-Michel Hautbois <jeanmichel.hautbois@...eli.org>
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@...eli.org>
---
arch/m68k/coldfire/head.S | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/m68k/coldfire/head.S b/arch/m68k/coldfire/head.S
index c6d7fd28c6023..3901a49c47c89 100644
--- a/arch/m68k/coldfire/head.S
+++ b/arch/m68k/coldfire/head.S
@@ -207,6 +207,10 @@ _start:
movec %d0,%CACR
nop
+ movel #0,%d0
+ movec %d0,%rambar
+ nop
+
#ifdef CONFIG_MMU
/*
* Identity mapping for the kernel region.
---
base-commit: 431c1646e1f86b949fa3685efc50b660a364c2b6
change-id: 20240904-fix-cf-virt-mem-sram-abadb27fff2f
Best regards,
--
Jean-Michel Hautbois <jeanmichel.hautbois@...eli.org>
Powered by blists - more mailing lists