forked from mirrors/linux
		
	ARM: BCM5301X: remove 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 <l.stach@pengutronix.de> Acked-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Tyler Baker <tyler.baker@linaro.org> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This commit is contained in:
		
							parent
							
								
									8005c49d9a
								
							
						
					
					
						commit
						937b12306e
					
				
					 1 changed files with 0 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -9,40 +9,6 @@
 | 
			
		|||
#include <asm/hardware/cache-l2x0.h>
 | 
			
		||||
 | 
			
		||||
#include <asm/mach/arch.h>
 | 
			
		||||
#include <asm/siginfo.h>
 | 
			
		||||
#include <asm/signal.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static bool first_fault = true;
 | 
			
		||||
 | 
			
		||||
static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
 | 
			
		||||
				 struct pt_regs *regs)
 | 
			
		||||
{
 | 
			
		||||
	if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
 | 
			
		||||
		first_fault = false;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * 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);
 | 
			
		||||
 | 
			
		||||
		/* Returning non-zero causes fault display and panic */
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Others should cause a fault */
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void __init bcm5301x_init_early(void)
 | 
			
		||||
{
 | 
			
		||||
	/* Install our hook */
 | 
			
		||||
	hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
 | 
			
		||||
			"imprecise external abort");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const char *const bcm5301x_dt_compat[] __initconst = {
 | 
			
		||||
	"brcm,bcm4708",
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
 | 
			
		|||
DT_MACHINE_START(BCM5301X, "BCM5301X")
 | 
			
		||||
	.l2c_aux_val	= 0,
 | 
			
		||||
	.l2c_aux_mask	= ~0,
 | 
			
		||||
	.init_early	= bcm5301x_init_early,
 | 
			
		||||
	.dt_compat	= bcm5301x_dt_compat,
 | 
			
		||||
MACHINE_END
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue