|
@@ -376,6 +376,22 @@ void __init leon_init_timers(irq_handler_t counter_fn)
|
|
|
prom_halt();
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_SMP
|
|
|
+ {
|
|
|
+ unsigned long flags;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * In SMP, sun4m adds a IPI handler to IRQ trap handler that
|
|
|
+ * LEON never must take, sun4d and LEON overwrites the branch
|
|
|
+ * with a NOP.
|
|
|
+ */
|
|
|
+ local_irq_save(flags);
|
|
|
+ patchme_maybe_smp_msg[0] = 0x01000000; /* NOP out the branch */
|
|
|
+ local_flush_cache_all();
|
|
|
+ local_irq_restore(flags);
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl,
|
|
|
LEON3_GPTIMER_EN |
|
|
|
LEON3_GPTIMER_RL |
|