]> git.sur5r.net Git - u-boot/commitdiff
Fix sc520 timer interrupt generation
authorGraeme Russ <graeme.russ@gmail.com>
Sun, 23 Aug 2009 02:59:49 +0000 (12:59 +1000)
committerTom Rix <Tom.Rix@windriver.com>
Sat, 3 Oct 2009 14:04:09 +0000 (09:04 -0500)
The current implementation has the timer being started before the interrupt
handler is installed. It the interrupt occurs before the handler is
installed, the timer interrupt is never reset and the timer stops

Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
cpu/i386/sc520/sc520_timer.c

index 2cb8656ebd5886fdf666099adc0f01325bd8f079..2a3425b616779cdddf84bc60b5ad14cb8362c5a1 100644 (file)
@@ -54,9 +54,6 @@ int timer_init(void)
        write_mmcr_word (SC520_GPTMR1MAXCMPA, 100);
        write_mmcr_word (SC520_GPTMR1CTL, 0xe009);
 
-       /* Clear the GP Timers status register */
-       write_mmcr_byte (SC520_GPTMRSTA, 0x07);
-
        /* Register the SC520 specific timer interrupt handler */
        register_timer_isr (sc520_timer_isr);
 
@@ -64,6 +61,9 @@ int timer_init(void)
        irq_install_handler (0, timer_isr, NULL);
        unmask_irq (0);
 
+       /* Clear the GP Timer 1 status register to get the show rolling*/
+       write_mmcr_byte (SC520_GPTMRSTA, 0x02);
+
        return 0;
 }