[OpenBIOS] [PATCH] Fix level 14 and level 10 timers under Solaris 8 on SPARC32.
mark.cave-ayland at siriusit.co.uk
mark.cave-ayland at siriusit.co.uk
Thu Feb 17 16:02:42 CET 2011
From: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
During boot, if the level 14 timer limit is not set then the Solaris kernel panics with a division by zero
error. Fix this by setting it to the default value as documented in obio.h. Also if the level 10 timer is
not set with a limit of 0, the Solaris kernel constantly outputs "spurious interrupt at processor level
10" messages during boot.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
---
openbios-devel/drivers/obio.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/openbios-devel/drivers/obio.c b/openbios-devel/drivers/obio.c
index 2153c44..3adf9ac 100644
--- a/openbios-devel/drivers/obio.c
+++ b/openbios-devel/drivers/obio.c
@@ -296,8 +296,8 @@ ob_counter_init(uint64_t base, unsigned long offset)
counter_regs = (struct sun4m_timer_regs *)ofmem_map_io(base + (uint64_t)offset, sizeof(*counter_regs));
counter_regs->cfg = 0xffffffff;
- counter_regs->l10_timer_limit = (((1000000/100) + 1) << 10);
- counter_regs->cpu_timers[0].l14_timer_limit = 0;
+ counter_regs->l10_timer_limit = 0;
+ counter_regs->cpu_timers[0].l14_timer_limit = 0x9c4000; /* see comment in obio.h */
counter_regs->cpu_timers[0].cntrl = 1;
for (i = 0; i < SUN4M_NCPU; i++) {
--
1.7.2.3
More information about the OpenBIOS
mailing list