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