Fix setting counter limit to 0 (Robert Reif)
[qemu] / hw / sh7750.c
index 1e2d917..45a5c7f 100644 (file)
@@ -24,7 +24,9 @@
  */
 #include <stdio.h>
 #include <assert.h>
-#include "vl.h"
+#include "hw.h"
+#include "sh.h"
+#include "sysemu.h"
 #include "sh7750_regs.h"
 #include "sh7750_regnames.h"
 #include "sh_intc.h"
@@ -549,14 +551,19 @@ SH7750State *sh7750_init(CPUSH4State * cpu)
                             _INTC_ARRAY(vectors),
                             _INTC_ARRAY(groups));
 
+    cpu->intc_handle = &s->intc;
+
     sh_serial_init(0x1fe00000, 0, s->periph_freq, serial_hds[0]);
     sh_serial_init(0x1fe80000, SH_SERIAL_FEAT_SCIF,
                   s->periph_freq, serial_hds[1]);
 
     tmu012_init(0x1fd80000,
                TMU012_FEAT_TOCR | TMU012_FEAT_3CHAN | TMU012_FEAT_EXTCLK,
-               s->periph_freq);
-
+               s->periph_freq,
+               sh_intc_source(&s->intc, TMU0),
+               sh_intc_source(&s->intc, TMU1),
+               sh_intc_source(&s->intc, TMU2_TUNI),
+               sh_intc_source(&s->intc, TMU2_TICPI));
 
     if (cpu_model & (SH_CPU_SH7750 | SH_CPU_SH7750S | SH_CPU_SH7751)) {
         sh_intc_register_sources(&s->intc, 
@@ -574,7 +581,10 @@ SH7750State *sh7750_init(CPUSH4State * cpu)
         sh_intc_register_sources(&s->intc, 
                                 _INTC_ARRAY(vectors_tmu34),
                                 NULL, 0);
-        tmu012_init(0x1e100000, 0, s->periph_freq);
+        tmu012_init(0x1e100000, 0, s->periph_freq,
+                   sh_intc_source(&s->intc, TMU3),
+                   sh_intc_source(&s->intc, TMU4),
+                   NULL, NULL);
     }
 
     if (cpu_model & (SH_CPU_SH7751_ALL)) {