diff mbox

[v2,2/3] ARM: OMAP2+: remove custom abort handler for t410

Message ID 1444905142-21500-3-git-send-email-l.stach@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Lucas Stach Oct. 15, 2015, 10:32 a.m. UTC
This is not needed anymore. Handling a potentially pending imprecise external
abort left behind by the bootloader is now done in a slightly safer way inside
the common ARM startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
 1 file changed, 29 deletions(-)

Comments

Lucas Stach Nov. 12, 2015, 1:32 p.m. UTC | #1
Tony,

can you please take this patch through the OMAP tree for 4.4? The first
patch in this series went in through Russells tree, so the below code
now has the possibility to hide a real abort later during boot.

Regards,
Lucas

Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
>  1 file changed, 29 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> index ea56397599c2..3a2bc2a88db4 100644
> --- a/arch/arm/mach-omap2/pdata-quirks.c
> +++ b/arch/arm/mach-omap2/pdata-quirks.c
> @@ -24,9 +24,6 @@
>  #include <linux/platform_data/iommu-omap.h>
>  #include <linux/platform_data/wkup_m3.h>
>  
> -#include <asm/siginfo.h>
> -#include <asm/signal.h>
> -
>  #include "common.h"
>  #include "common-board-devices.h"
>  #include "dss-common.h"
> @@ -385,29 +382,6 @@ static void __init omap3_pandora_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",
> @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
>  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
>  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_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
Tony Lindgren Nov. 12, 2015, 5:51 p.m. UTC | #2
* Lucas Stach <l.stach@pengutronix.de> [151112 05:33]:
> Tony,
> 
> can you please take this patch through the OMAP tree for 4.4? The first
> patch in this series went in through Russells tree, so the below code
> now has the possibility to hide a real abort later during boot.

OK will do thanks. I've also verified that the abort handler is no longer
needed. After seeing where it happens, fixing it was trivial :)

FYI, the fix was 57df53808534 ("ARM: OMAP2+: Fix imprecise external abort
caused by bogus SRAM init"). Other platforms may have similar issues where
it's not really anything left behind by the bootloader but a real kernel
bug.

Regards,

Tony

> 
> Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> > This is not needed anymore. Handling a potentially pending imprecise external
> > abort left behind by the bootloader is now done in a slightly safer way inside
> > the common ARM startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > Acked-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
> >  1 file changed, 29 deletions(-)
> > 
> > diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> > index ea56397599c2..3a2bc2a88db4 100644
> > --- a/arch/arm/mach-omap2/pdata-quirks.c
> > +++ b/arch/arm/mach-omap2/pdata-quirks.c
> > @@ -24,9 +24,6 @@
> >  #include <linux/platform_data/iommu-omap.h>
> >  #include <linux/platform_data/wkup_m3.h>
> >  
> > -#include <asm/siginfo.h>
> > -#include <asm/signal.h>
> > -
> >  #include "common.h"
> >  #include "common-board-devices.h"
> >  #include "dss-common.h"
> > @@ -385,29 +382,6 @@ static void __init omap3_pandora_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",
> > @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
> >  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
> >  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_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
> 
> -- 
> Pengutronix e.K.             | Lucas Stach                 |
> Industrial Linux Solutions   | http://www.pengutronix.de/  |
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index ea56397599c2..3a2bc2a88db4 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -24,9 +24,6 @@ 
 #include <linux/platform_data/iommu-omap.h>
 #include <linux/platform_data/wkup_m3.h>
 
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
 #include "common.h"
 #include "common-board-devices.h"
 #include "dss-common.h"
@@ -385,29 +382,6 @@  static void __init omap3_pandora_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",
@@ -536,9 +510,6 @@  static struct pdata_init pdata_quirks[] __initdata = {
 	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
 	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_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