Author: blueswirl
Date: 2010-01-05 21:49:50 +0100 (Tue, 05 Jan 2010)
New Revision: 662
Modified:
trunk/openbios-devel/arch/sparc64/entry.S
Log:
Sparc64: clear timer interrupt disable bit (NPT bit when reading tick)
Signed-off-by: Blue Swirl <blauwirbel(a)gmail.com>
Modified: trunk/openbios-devel/arch/sparc64/entry.S
===================================================================
--- trunk/openbios-devel/arch/sparc64/entry.S 2010-01-03 08:58:56 UTC (rev 661)
+++ trunk/openbios-devel/arch/sparc64/entry.S 2010-01-05 20:49:50 UTC (rev 662)
@@ -17,6 +17,8 @@
#define PROM_ADDR 0x1fff0000000
#define CFG_ADDR 0x1fe02000510
+#define HZ 10 * 1000 * 1000
+#define TICK_INT_DIS 0x8000000000000000
.globl entry, _entry
@@ -48,7 +50,7 @@
wrpr %g0, 0, %otherwin
wrpr %g0, 0, %wstate
! disable timer now
- setx 0x8000000000000000, %g2, %g1
+ setx TICK_INT_DIS, %g2, %g1
wr %g1, 0, %tick_cmpr
! Disable I/D MMUs and caches
@@ -263,8 +265,10 @@
wrpr %g0, (PSTATE_PRIV|PSTATE_PEF|PSTATE_IE), %pstate
! 100 Hz timer
+ setx TICK_INT_DIS, %g2, %g1
rd %tick, %g2
- set 10 * 1000 * 1000, %g1
+ andn %g2, %g1, %g2
+ set HZ, %g1
add %g1, %g2, %g1
wr %g1, 0, %tick_cmpr