diff options
Diffstat (limited to 'cpu/mpc8260/interrupts.c')
-rw-r--r-- | cpu/mpc8260/interrupts.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cpu/mpc8260/interrupts.c b/cpu/mpc8260/interrupts.c index 90620849a88..3c5ef7460eb 100644 --- a/cpu/mpc8260/interrupts.c +++ b/cpu/mpc8260/interrupts.c @@ -155,7 +155,7 @@ static __inline__ unsigned long get_msr (void) static __inline__ void set_msr (unsigned long msr) { - __asm__ __volatile__ ("mtmsr %0"::"r" (msr)); + __asm__ __volatile__ ("mtmsr %0;sync;isync"::"r" (msr)); } static __inline__ unsigned long get_dec (void) @@ -208,6 +208,14 @@ int interrupt_init (void) immr->im_intctl.ic_sipnrh = 0xffffffff; immr->im_intctl.ic_sipnrl = 0xffffffff; +#ifdef CONFIG_HYMOD + /* + * ensure all external interrupt sources default to trigger on + * high-to-low transition (i.e. edge triggered active low) + */ + immr->im_intctl.ic_siexr = -1; +#endif + set_dec (decrementer_count); set_msr (get_msr () | MSR_EE); |