2015-04-08 09:22:02 +00:00
|
|
|
From cd43921285658372c0db8019684979edb74eaffd Mon Sep 17 00:00:00 2001
|
2015-01-28 21:55:43 +00:00
|
|
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
2015-04-08 09:22:02 +00:00
|
|
|
Date: Wed, 11 Feb 2015 16:37:05 +0100
|
|
|
|
Subject: [PATCH soc] ARM: BCM5301X: Ignore another (BCM4709 specific) fault
|
|
|
|
code
|
2015-01-28 21:55:43 +00:00
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
2015-04-08 09:22:02 +00:00
|
|
|
Broadcom ARM devices seem to generate some fault once per boot. We
|
|
|
|
already have an ignoring handler for BCM4707/BCM4708, but BCM4709
|
|
|
|
generates different code.
|
|
|
|
|
2015-01-28 21:55:43 +00:00
|
|
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|
|
|
---
|
2015-04-08 09:22:02 +00:00
|
|
|
arch/arm/mach-bcm/bcm_5301x.c | 9 +++++----
|
|
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
2015-01-28 21:55:43 +00:00
|
|
|
|
2015-01-30 06:58:35 +00:00
|
|
|
--- a/arch/arm/mach-bcm/bcm_5301x.c
|
|
|
|
+++ b/arch/arm/mach-bcm/bcm_5301x.c
|
2015-03-22 01:56:47 +00:00
|
|
|
@@ -18,15 +18,16 @@ static bool first_fault = true;
|
2015-01-30 06:58:35 +00:00
|
|
|
static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
|
|
|
|
struct pt_regs *regs)
|
|
|
|
{
|
|
|
|
- if (fsr == 0x1c06 && first_fault) {
|
|
|
|
+ if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
|
|
|
|
first_fault = false;
|
|
|
|
|
|
|
|
/*
|
|
|
|
- * These faults with code 0x1c06 happens for no good reason,
|
|
|
|
- * possibly left over from the CFE boot loader.
|
|
|
|
+ * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
|
|
|
|
+ * for no good reason, possibly left over from the CFE boot
|
|
|
|
+ * loader.
|
|
|
|
*/
|
|
|
|
pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
|
|
|
|
- addr, fsr);
|
|
|
|
+ addr, fsr);
|
|
|
|
|
|
|
|
/* Returning non-zero causes fault display and panic */
|
|
|
|
return 0;
|