linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 12/12] ARM: OMAP2+: Add custom abort handler for t410
Date: Wed,  3 Jun 2015 09:23:21 -0700	[thread overview]
Message-ID: <1433348601-8966-13-git-send-email-tony@atomide.com> (raw)
In-Reply-To: <1433348601-8966-1-git-send-email-tony@atomide.com>

Similar to commit fdf4850cb5b2 ("ARM: BCM5301X: workaround suppress fault"),
let's add custom handling for the aborts on t410 that prevent booting:

Unhandled fault: imprecise external abort (0xc06) at 0xee091fb0
pgd = ee4bc000
[ee091fb0] *pgd=ae00041e(bad)
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/pdata-quirks.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index af11511..3d1e219 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -18,6 +18,9 @@
 #include <linux/platform_data/pinctrl-single.h>
 #include <linux/platform_data/iommu-omap.h>
 
+#include <asm/siginfo.h>
+#include <asm/signal.h>
+
 #include "common.h"
 #include "common-board-devices.h"
 #include "dss-common.h"
@@ -249,6 +252,29 @@ static void __init omap3_tao3530_legacy_init(void)
 }
 #endif /* CONFIG_ARCH_OMAP3 */
 
+#ifdef CONFIG_SOC_TI81XX
+static int fault_fixed_up;
+
+static int t410_abort_handler(unsigned long addr, unsigned int fsr,
+			      struct pt_regs *regs)
+{
+	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
+		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
+			addr, fsr);
+		fault_fixed_up = 1;
+		return 0;
+	}
+
+	return 1;
+}
+
+static void __init t410_abort_init(void)
+{
+	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
+			"imprecise external abort");
+}
+#endif
+
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
 static struct iommu_platform_data omap4_iommu_pdata = {
 	.reset_name = "mmu_cache",
@@ -360,6 +386,9 @@ static struct pdata_init pdata_quirks[] __initdata = {
 	{ "ti,am3517-evm", am3517_evm_legacy_init, },
 	{ "technexion,omap3-tao3530", omap3_tao3530_legacy_init, },
 #endif
+#ifdef CONFIG_SOC_TI81XX
+	{ "hp,t410", t410_abort_init, },
+#endif
 #ifdef CONFIG_SOC_OMAP5
 	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
 #endif
-- 
2.1.4

      parent reply	other threads:[~2015-06-03 16:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 16:23 [PATCH 00/12] Minimal support for dm814x-evm and hp t410 thin client Tony Lindgren
2015-06-03 16:23 ` [PATCH 01/12] ARM: OMAP2+: Fix dm814x DT_MACHINE_START Tony Lindgren
2015-06-03 16:23 ` [PATCH 02/12] ARM: OMAP2+: Fix scrm compatible for dm814x Tony Lindgren
2015-06-03 19:08   ` Sergei Shtylyov
2015-06-03 19:38     ` Tony Lindgren
2015-07-16  9:11       ` Tony Lindgren
2015-06-03 16:23 ` [PATCH 03/12] ARM: OMAP2+: Add minimal clockdomains " Tony Lindgren
2015-06-03 16:23 ` [PATCH 04/12] ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x Tony Lindgren
2015-06-03 16:23 ` [PATCH 05/12] ARM: OMAP2+: Add support for initializing dm814x clocks Tony Lindgren
2015-06-04 18:42   ` Stephen Boyd
2015-06-04 22:28     ` Tony Lindgren
2015-07-16  9:37       ` Tony Lindgren
2015-07-16 18:25         ` Stephen Boyd
2015-07-17  5:06           ` Tony Lindgren
2015-06-03 16:23 ` [PATCH 06/12] ARM: OMAP2+: Prepare dm81xx hwmod code for adding minimal dm814x support Tony Lindgren
2015-06-03 16:23 ` [PATCH 07/12] ARM: OMAP2: Add minimal dm814x hwmod support Tony Lindgren
2015-06-03 16:23 ` [PATCH 08/12] ARM: dts: Add minimal dm814x support Tony Lindgren
2015-06-03 16:23 ` [PATCH 09/12] ARM: dts: Add minimal clocks for dm814x Tony Lindgren
2015-06-03 16:23 ` [PATCH 10/12] ARM: dts: Add minimal dts support for dm8148-evm Tony Lindgren
2015-06-03 16:23 ` [PATCH 11/12] ARM: dts: Add minimal support for HP T410 Tony Lindgren
2015-06-03 16:23 ` Tony Lindgren [this message]

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=1433348601-8966-13-git-send-email-tony@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@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;
as well as URLs for NNTP newsgroup(s).