* Support for sky hardware interrupts. The sky-dma cannot trigger
authorFrank Ch. Eigler <fche@redhat.com>
Wed, 10 Jun 1998 17:07:10 +0000 (17:07 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Wed, 10 Jun 1998 17:07:10 +0000 (17:07 +0000)
  interrupts properly yet (jlemke TODO).
Wed Jun 10 13:22:32 1998  Frank Ch. Eigler  <fche@cygnus.com>
* interp.c (decode_coproc): For TX39, add stub COP0 register #7,
  to allay warnings.
(interrupt_event): Made non-static.
start-sanitize-tx3904
* dv-tx3904tmr.c (deliver_tx3904tmr_tick): Correct accidental
  interchange of configuration values for external vs. internal
  clock dividers.
end-sanitize-tx3904
start-sanitize-sky
* sky-device.c (sky_signal_interrupt): New function to generate
interrupt event.
* sky-device.h: Declare it.
* sky-dma.c (check_int1): Call it.
* sky-pke.c (pke_begin_interrupt_stall): Call it.
end-sanitize-sky

sim/mips/ChangeLog
sim/mips/interp.c
sim/mips/sky-pke.c

index 1be0821d747e1bb034202581eeab1c8d88aac1a6..9115a911a4331b0ac1dd1bb1a151ad7389be9b04 100644 (file)
@@ -1,3 +1,23 @@
+Wed Jun 10 13:22:32 1998  Frank Ch. Eigler  <fche@cygnus.com>
+
+       * interp.c (decode_coproc): For TX39, add stub COP0 register #7,
+       to allay warnings.
+       (interrupt_event): Made non-static.
+start-sanitize-tx3904
+       
+       * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Correct accidental
+       interchange of configuration values for external vs. internal
+       clock dividers.
+end-sanitize-tx3904
+start-sanitize-sky
+
+       * sky-device.c (sky_signal_interrupt): New function to generate
+       interrupt event.
+       * sky-device.h: Declare it.
+       * sky-dma.c (check_int1): Call it.
+       * sky-pke.c (pke_begin_interrupt_stall): Call it.
+end-sanitize-sky
+       
 Tue Jun  9 12:46:24 1998  Ian Carmichael  <iancarm@cygnus.com>
 
        * mips.igen (BREAK): Moved code to here for 
index 25a2ee2c29b5c0f515b0b78260705666a6bfe9f4..bbaeedb75b66677dff4e0fa4e5590fff872d1de7 100644 (file)
@@ -289,7 +289,7 @@ static const OPTION mips_options[] =
 
 int interrupt_pending;
 
-static void
+void
 interrupt_event (SIM_DESC sd, void *data)
 {
   sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
@@ -3233,6 +3233,12 @@ decode_coproc (SIM_DESC sd,
                /* ignore */
                break;
                /* 3 = Config              R3900                  */
+
+             case 7:
+               /* ignore */
+               break;
+               /* 3 = Cache               R3900                  */
+
 #endif /* SUBTARGET_R3900 */
              case 12:
                if (code == 0x00)
index 3e1815cedee9f4cba8afe3fad95f6fc4c4405141..fc5beaef1041ce15c173d90f82760e6e30542398 100644 (file)
@@ -1157,8 +1157,7 @@ pke_begin_interrupt_stall(struct pke_device* me)
 {
   /* set PIS */
   PKE_REG_MASK_SET(me, STAT, PIS, 1);
-  
-  /* XXX: send interrupt to 5900? */
+  sky_signal_interrupt();
 }