summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/interrupts.cc7
-rw-r--r--src/dev/x86/i8042.cc8
2 files changed, 9 insertions, 6 deletions
diff --git a/src/arch/x86/interrupts.cc b/src/arch/x86/interrupts.cc
index 9983d7305..ad9d483c7 100644
--- a/src/arch/x86/interrupts.cc
+++ b/src/arch/x86/interrupts.cc
@@ -597,9 +597,10 @@ X86ISA::Interrupts::setReg(ApicRegIndex reg, uint32_t val)
curTick() + (newCount + 1) *
clockPeriod() - offset, true);
} else {
- reschedule(apicTimerEvent,
- curTick() + newCount *
- clockPeriod(), true);
+ if (newCount)
+ reschedule(apicTimerEvent,
+ curTick() + newCount *
+ clockPeriod(), true);
}
}
break;
diff --git a/src/dev/x86/i8042.cc b/src/dev/x86/i8042.cc
index 1fc50db15..c0bd34ad2 100644
--- a/src/dev/x86/i8042.cc
+++ b/src/dev/x86/i8042.cc
@@ -411,10 +411,12 @@ X86ISA::I8042::write(PacketPtr pkt)
case ReadOutputPort:
panic("i8042 \"Read output port\" command not implemented.\n");
case WriteOutputPort:
- panic("i8042 \"Write output port\" command not implemented.\n");
+ warn("i8042 \"Write output port\" command not implemented.\n");
+ lastCommand = WriteOutputPort;
case WriteKeyboardOutputBuff:
- panic("i8042 \"Write keyboard output buffer\" "
+ warn("i8042 \"Write keyboard output buffer\" "
"command not implemented.\n");
+ lastCommand = WriteKeyboardOutputBuff;
case WriteMouseOutputBuff:
DPRINTF(I8042, "Got command to write to mouse output buffer.\n");
lastCommand = WriteMouseOutputBuff;
@@ -432,7 +434,7 @@ X86ISA::I8042::write(PacketPtr pkt)
case SystemReset:
panic("i8042 \"System reset\" command not implemented.\n");
default:
- panic("Write to unknown i8042 "
+ warn("Write to unknown i8042 "
"(keyboard controller) command port.\n");
}
} else {