Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jan 2010 05:07:41 +0000 (UTC)
From:      Randall Stewart <rrs@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r203007 - head/sys/mips/rmi
Message-ID:  <201001260507.o0Q57f16085959@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rrs
Date: Tue Jan 26 05:07:41 2010
New Revision: 203007
URL: http://svn.freebsd.org/changeset/base/203007

Log:
  Fixes setup of clock. It was not properly
  initialized, thus backward time warnings
  were being spewed to the console.

Modified:
  head/sys/mips/rmi/clock.c

Modified: head/sys/mips/rmi/clock.c
==============================================================================
--- head/sys/mips/rmi/clock.c	Tue Jan 26 04:45:26 2010	(r203006)
+++ head/sys/mips/rmi/clock.c	Tue Jan 26 05:07:41 2010	(r203007)
@@ -26,9 +26,11 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * RMI_BSD */
+ * RMI_BSD 
+ */
 
 #include <sys/cdefs.h>		/* RCS ID & Copyright macro defns */
+__FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -129,6 +131,8 @@ count_compare_clockhandler(struct trapfr
 	return (FILTER_HANDLED);
 }
 
+unsigned long clock_tick_foo=0;
+
 int
 pic_hardclockhandler(struct trapframe *tf)
 {
@@ -138,6 +142,12 @@ pic_hardclockhandler(struct trapframe *t
 
 	if (cpu == 0) {
 		scale_factor++;
+		clock_tick_foo++;
+/*
+		if ((clock_tick_foo % 10000) == 0) {
+			printf("Clock tick foo at %ld\n", clock_tick_foo);
+		}
+*/
 		hardclock(USERMODE(tf->sr), tf->pc);
 		if (scale_factor == STAT_PROF_CLOCK_SCALE_FACTOR) {
 			statclock(USERMODE(tf->sr));
@@ -179,7 +189,7 @@ rmi_early_counter_init()
 	xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_1, (0xffffffff & 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));
+	pic_update_control(1 << (8 + 6), 0);
 }
 
 void tick_init(void);
@@ -237,13 +247,13 @@ platform_initclocks(void)
 		/* Reg 80 is upper bits 63-32 and holds                              */
 		/* Valid   Edge    Local    IRQ */
 		xlr_write_reg(mmio, PIC_IRT_1_TIMER_7, (1 << 31) | (0 << 30) | (1 << 6) | (PIC_TIMER_7_IRQ));
-		pic_update_control(1 << (8 + 7));
 
+		pic_update_control(1 << (8 + 7), 1);
 		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_0, (0xffffffff & 0xffffffff));
-		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_1, (0x0 & 0xffffffff));
+		xlr_write_reg(mmio, PIC_TIMER_6_MAXVAL_1, (0xffffffff & 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));
+		pic_update_control(1 << (8 + 6), 1);
 		if (rmi_spin_mutex_safe)
 			mtx_unlock_spin(&xlr_pic_lock);
 	} else {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001260507.o0Q57f16085959>