Index: sys/arch/sparc64/sparc64/clock.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/clock.c,v retrieving revision 1.115 diff -u -r1.115 clock.c --- sys/arch/sparc64/sparc64/clock.c 30 Apr 2014 00:09:29 -0000 1.115 +++ sys/arch/sparc64/sparc64/clock.c 9 Jun 2014 19:55:41 -0000 @@ -110,6 +110,7 @@ * no counter-timer %tick - %tick * US-IIe STICK - STICK * US-IIIi %stick - %stick + * sun4v %stick - %stick * * US-IIe and US-IIIi could use %tick as statclock */ @@ -472,7 +473,8 @@ } /* Initialize the %tick register */ - settick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + settick(0); /* Register timecounter "tick-counter" */ tick_timecounter.tc_frequency = ci->ci_cpu_clockrate[0]; @@ -480,7 +482,7 @@ /* Register timecounter "stick-counter" */ if (ci->ci_system_clockrate[0] != 0) { - if (CPU_IS_HUMMINGBIRD()) { + if (CPU_ISSUN4U && CPU_IS_HUMMINGBIRD()) { #if NPSYCHO > 0 psycho_setstick(0); stick2e_timecounter.tc_frequency = @@ -488,7 +490,8 @@ tc_init(&stick2e_timecounter); #endif } else { - setstick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + setstick(0); stick_timecounter.tc_frequency = ci->ci_system_clockrate[0]; tc_init(&stick_timecounter); @@ -513,7 +516,7 @@ /* We don't have a counter-timer -- use %tick */ tickintr_establish(PIL_CLOCK, tickintr); - } else if (CPU_IS_HUMMINGBIRD()) { + } else if (CPU_ISSUN4U && CPU_IS_HUMMINGBIRD()) { #if NPSYCHO > 0 aprint_normal("No counter-timer -- using STICK " "at %luMHz as system clock.\n", Index: sys/arch/sparc64/sparc64/cpu.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/cpu.c,v retrieving revision 1.112 diff -u -r1.112 cpu.c --- sys/arch/sparc64/sparc64/cpu.c 8 Jun 2014 17:33:24 -0000 1.112 +++ sys/arch/sparc64/sparc64/cpu.c 9 Jun 2014 19:55:41 -0000 @@ -562,9 +562,11 @@ delay(1000); sync_tick = 1; membar_Sync(); - settick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + settick(0); if (ci->ci_system_clockrate[0] != 0) - setstick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + setstick(0); setpstate(pstate); @@ -592,9 +594,11 @@ while (sync_tick == 0) { /* we do nothing here */ } - settick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + settick(0); if (curcpu()->ci_system_clockrate[0] != 0) { - setstick(0); + if (CPU_ISSUN4U || CPU_ISSUN4US) + setstick(0); stickintr_establish(PIL_CLOCK, stickintr); } else { tickintr_establish(PIL_CLOCK, tickintr);