svn commit: r199203 - projects/mips/sys/mips/rmi

Randall Stewart rrs at FreeBSD.org
Wed Nov 11 22:36:19 UTC 2009


Author: rrs
Date: Wed Nov 11 22:36:19 2009
New Revision: 199203
URL: http://svn.freebsd.org/changeset/base/199203

Log:
  Ok set in the values in clock 7 as in the
  original codes (I had changed one by accident)
  Also do the pic_ack/pic_delayed_ack after the interrupt
  so we clear it. The clock with these changes starts working.
  Its off doing a short/long short/long warning but it
  now runs.
  
  My NFS mount now works but has the same problem with
  sbin/init (errno 8 ENOEXEC) so it panics with no init.
  
  Either this is a problem with my buildworld.. OR its a
  yet undiscovered RMI issue.

Modified:
  projects/mips/sys/mips/rmi/clock.c
  projects/mips/sys/mips/rmi/intr_machdep.c

Modified: projects/mips/sys/mips/rmi/clock.c
==============================================================================
--- projects/mips/sys/mips/rmi/clock.c	Wed Nov 11 22:31:02 2009	(r199202)
+++ projects/mips/sys/mips/rmi/clock.c	Wed Nov 11 22:36:19 2009	(r199203)
@@ -240,7 +240,7 @@ platform_initclocks(void)
 		pic_update_control(1 << (8 + 7));
 
 		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_0, (0xffffffff & 0xffffffff));
-		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_1, (0xffffffff & 0xffffffff));
+		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_1, (0x0 & 0xffffffff));
 		xlr_write_reg(mmio, PIC_IRT_0_TIMER_6, (1 << cpu));
 		xlr_write_reg(mmio, PIC_IRT_1_TIMER_6, (1 << 31) | (0 << 30) | (1 << 6) | (PIC_TIMER_6_IRQ));
 		pic_update_control(1 << (8 + 6));

Modified: projects/mips/sys/mips/rmi/intr_machdep.c
==============================================================================
--- projects/mips/sys/mips/rmi/intr_machdep.c	Wed Nov 11 22:31:02 2009	(r199202)
+++ projects/mips/sys/mips/rmi/intr_machdep.c	Wed Nov 11 22:36:19 2009	(r199203)
@@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$");
 #include <mips/rmi/xlrconfig.h>
 #include <mips/rmi/interrupt.h>
 #include <mips/rmi/clock.h>
+#include <mips/rmi/pic.h>
 
 /*#include <machine/intrcnt.h>*/
 
@@ -167,6 +168,7 @@ cpu_intr(struct trapframe *tf)
 		ie = mih->mih_event;
 
 		write_c0_eirr64(1ULL << i);
+		pic_ack(i);
 		if (!ie || TAILQ_EMPTY(&ie->ie_handlers)) {
 			printf("stray interrupt %d\n", i);
 			continue;
@@ -174,6 +176,7 @@ cpu_intr(struct trapframe *tf)
 		if (intr_event_handle(ie, tf) != 0) {
 			printf("stray interrupt %d\n", i);
 		}
+		pic_delayed_ack(i);
 	}
 	critical_exit();
 }


More information about the svn-src-projects mailing list