|
@@ -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
|