From: steve@scheftech.com
To: barebox@lists.infradead.org
Cc: Steve Schefter <steve@scheftech.com>
Subject: [PATCH] Avoid SDRAM access crash
Date: Mon, 2 Jul 2012 13:22:33 -0400 [thread overview]
Message-ID: <1341249753-5480-1-git-send-email-steve@scheftech.com> (raw)
From: Steve Schefter <steve@scheftech.com>
When remapping the SDRAM with the MMU enabled, we need to ensure
that the translation tables are not still in cache before
invalidating the TLB. Failure to do so will result in the following
crash approximately 50% of the time:
booting kernel from /dev/nand0.kernel.bb
Image Name: Linux-3.3.0PD12.0.0
OS: Linux
Architecture: ARM
Type: Kernel Image
Compression: uncompressed
Data Size: 3384824 Bytes = 3.2 MB
Load Address: 80008000
Entry Point: 80008000
unable to handle paging request at address 0x80028000
pc : [<8f01f280>] lr : [<8f005330>]
sp : 8cfff9b0 ip : 0000003f fp : 00000000
r10: 00001000 r9 : 00000000 r8 : 8d2a8f70
r7 : 8f043818 r6 : 0033a5f8 r5 : 8f04381c r4 : 00001000
r3 : 80028000 r2 : 00000fff r1 : 8d2a8f71 r0 : 80028000
Flags: nzCv IRQs off FIQs off Mode SVC_32
[<8f01f280>] (memcpy+0x18/0x20) from [<8f005330>] (uimage_sdram_flush+0x90/0xb8)
[<8f005330>] (uimage_sdram_flush+0x90/0xb8) from [<8f0053a4>] (uncompress_copy+0x4c/0x74)
Signed-off-by: Steve Schefter <steve@scheftech.com>
---
arch/arm/cpu/mmu.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
index c19f931..4ff0430 100644
--- a/arch/arm/cpu/mmu.c
+++ b/arch/arm/cpu/mmu.c
@@ -165,6 +165,12 @@ static int arm_mmu_remap_sdram(struct memory_bank *bank)
pte += 256;
}
+ asm volatile (
+ "bl __mmu_cache_flush;"
+ :
+ :
+ : "r0", "r1", "r2", "r3", "r6", "r10", "r12", "lr", "cc", "memory"
+ );
tlb_invalidate();
return 0;
--
1.7.4.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2012-07-02 17:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-02 17:22 steve [this message]
2012-07-03 7:36 ` Sascha Hauer
2012-07-03 11:22 ` Steve Schefter
2012-07-04 6:51 ` Sascha Hauer
2012-07-04 11:18 ` Steve Schefter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341249753-5480-1-git-send-email-steve@scheftech.com \
--to=steve@scheftech.com \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox