summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authorraj <raj@FreeBSD.org>2009-05-14 16:48:25 +0000
committerraj <raj@FreeBSD.org>2009-05-14 16:48:25 +0000
commite648274e7cd96f1e6c180388779d4ba3f74b7c94 (patch)
tree40f3915c08086a4bbe1a4ba4460c5da9a14e43a5 /sys/powerpc/aim
parent03b3bbecf2a89655d83d05fd316fc3cbf626860b (diff)
downloadFreeBSD-src-e648274e7cd96f1e6c180388779d4ba3f74b7c94.zip
FreeBSD-src-e648274e7cd96f1e6c180388779d4ba3f74b7c94.tar.gz
PowerPC common SMP startup and time base rework.
- make mftb() shared, rewrite in C, provide complementary mttb() - adjust SMP startup per the above, additional comments, minor naming changes - eliminate redundant TB defines, other minor cosmetics Reviewed by: marcel, nwhitehorn Obtained from: Freescale, Semihalf
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/clock.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sys/powerpc/aim/clock.c b/sys/powerpc/aim/clock.c
index 2d3eb60..0a5391f 100644
--- a/sys/powerpc/aim/clock.c
+++ b/sys/powerpc/aim/clock.c
@@ -148,22 +148,19 @@ decr_init(void)
mtmsr(msr);
}
+#ifdef SMP
void
-decr_tc_init(void)
+decr_ap_init(void)
{
- decr_timecounter.tc_frequency = ticks_per_sec;
- tc_init(&decr_timecounter);
+
}
+#endif
-static __inline u_quad_t
-mftb(void)
+void
+decr_tc_init(void)
{
- u_long scratch;
- u_quad_t tb;
-
- __asm ("1: mftbu %0; mftb %0+1; mftbu %1; cmpw 0,%0,%1; bne 1b"
- : "=r"(tb), "=r"(scratch));
- return tb;
+ decr_timecounter.tc_frequency = ticks_per_sec;
+ tc_init(&decr_timecounter);
}
static unsigned
OpenPOWER on IntegriCloud