Re: [PATCH 3/4] ARM: mvebu: remove the workaround imprecise abort fault handler
Hi Lucas, On mer., oct. 14 2015, Thomas Petazzoni wrote: > Lucas, > > On Wed, 14 Oct 2015 16:48:32 +0200, Lucas Stach wrote: >> 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 As pointed by Thomas the code is no longer needed. So even if the rest of tour series is not merged, I still applied on mvebu/cleanup. I also amended the commit log to emphasize that the Armada 375 Z1 was not support anymore. Thanks, Gregory >> --- >> arch/arm/mach-mvebu/board-v7.c | 35 --- >> 1 file changed, 35 deletions(-) > > Reviewed-by: Thomas Petazzoni > > In fact this code is anyway no longer needed, since this workaround was > only needed for the Armada 375 Z1 stepping, which we no longer support > in mainline anyway. > > Thanks! > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux, Kernel and Android engineering > http://free-electrons.com -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/4] ARM: mvebu: remove the workaround imprecise abort fault handler
Lucas, On Wed, 14 Oct 2015 16:48:32 +0200, Lucas Stach wrote: > 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 > --- > arch/arm/mach-mvebu/board-v7.c | 35 --- > 1 file changed, 35 deletions(-) Reviewed-by: Thomas Petazzoni In fact this code is anyway no longer needed, since this workaround was only needed for the Armada 375 Z1 stepping, which we no longer support in mainline anyway. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/4] ARM: mvebu: remove the workaround imprecise abort fault handler
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 --- arch/arm/mach-mvebu/board-v7.c | 35 --- 1 file changed, 35 deletions(-) diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c index 9f739f3cad4c..1648edd515a2 100644 --- a/arch/arm/mach-mvebu/board-v7.c +++ b/arch/arm/mach-mvebu/board-v7.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -105,27 +104,6 @@ static void __init mvebu_memblock_reserve(void) static void __init mvebu_memblock_reserve(void) {} #endif -/* - * Early versions of Armada 375 SoC have a bug where the BootROM - * leaves an external data abort pending. The kernel is hit by this - * data abort as soon as it enters userspace, because it unmasks the - * data aborts at this moment. We register a custom abort handler - * below to ignore the first data abort to work around this - * problem. - */ -static int armada_375_external_abort_wa(unsigned long addr, unsigned int fsr, - struct pt_regs *regs) -{ - static int ignore_first; - - if (!ignore_first && fsr == 0x1406) { - ignore_first = 1; - return 0; - } - - return 1; -} - static void __init mvebu_init_irq(void) { irqchip_init(); @@ -134,17 +112,6 @@ static void __init mvebu_init_irq(void) BUG_ON(mvebu_mbus_dt_init(coherency_available())); } -static void __init external_abort_quirk(void) -{ - u32 dev, rev; - - if (mvebu_get_soc_id(&dev, &rev) == 0 && rev > ARMADA_375_Z1_REV) - return; - - hook_fault_code(16 + 6, armada_375_external_abort_wa, SIGBUS, 0, - "imprecise external abort"); -} - static void __init i2c_quirk(void) { struct device_node *np; @@ -177,8 +144,6 @@ static void __init mvebu_dt_init(void) { if (of_machine_is_compatible("marvell,armadaxp")) i2c_quirk(); - if (of_machine_is_compatible("marvell,a375-db")) - external_abort_quirk(); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } -- 2.6.1 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html