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.
This commit is contained in:
Randall Stewart 2009-11-11 22:36:19 +00:00
parent e0c4754e87
commit 4ba9b90b06
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/mips/; revision=199203
2 changed files with 4 additions and 1 deletions

View File

@ -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));

View File

@ -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();
}