Hi, I was looking at /sys/sys/timetc.h: 46 struct timecounter { 47 timecounter_get_t *tc_get_timecount; 48 /* 49 * This function reads the counter. It is not required to 50 * mask any unimplemented bits out, as long as they are 51 * constant. 52 */
"as long as they are constant." and came up w/diff below, because all of these return their fullest(32b): 182 u_int 183 agtimer_get_timecount(struct timecounter *tc) 184 { 185 return agtimer_readcnt64(); 216 u_int 217 amptimer_get_timecount(struct timecounter *tc) 218 { 219 struct amptimer_softc *sc = amptimer_timecounter.tc_priv; 220 return bus_space_read_4(sc->sc_iot, sc->sc_ioh, GTIMER_CNT_LOW); 437 u_int 438 gptimer_get_timecount(struct timecounter *tc) 439 { 440 return bus_space_read_4(gptimer_iot, gptimer_ioh1, GP_TCRR); tbh., i didn't have time to read kern_tc.c to see if it does really matter, i think not, and it's obvious that this isn't critical or it'd be known by now i guess, or if this does count as a bug at all, but i see no value in stealing the msb from these tc sources :) -Artturi diff --git a/sys/arch/arm/cortex/agtimer.c b/sys/arch/arm/cortex/agtimer.c index 8d622c058a4..160e22e6949 100644 --- a/sys/arch/arm/cortex/agtimer.c +++ b/sys/arch/arm/cortex/agtimer.c @@ -46,7 +46,7 @@ int32_t agtimer_frequency = TIMER_FREQUENCY; u_int agtimer_get_timecount(struct timecounter *); static struct timecounter agtimer_timecounter = { - agtimer_get_timecount, NULL, 0x7fffffff, 0, "agtimer", 0, NULL + agtimer_get_timecount, NULL, 0xffffffff, 0, "agtimer", 0, NULL }; #define MAX_ARM_CPUS 8 diff --git a/sys/arch/arm/cortex/amptimer.c b/sys/arch/arm/cortex/amptimer.c index 81880c1574a..66f0ccfed64 100644 --- a/sys/arch/arm/cortex/amptimer.c +++ b/sys/arch/arm/cortex/amptimer.c @@ -67,7 +67,7 @@ int32_t amptimer_frequency = TIMER_FREQUENCY; u_int amptimer_get_timecount(struct timecounter *); static struct timecounter amptimer_timecounter = { - amptimer_get_timecount, NULL, 0x7fffffff, 0, "amptimer", 0, NULL + amptimer_get_timecount, NULL, 0xffffffff, 0, "amptimer", 0, NULL }; #define MAX_ARM_CPUS 8 diff --git a/sys/arch/armv7/omap/gptimer.c b/sys/arch/armv7/omap/gptimer.c index e5fd9965ded..a2e3e4e97a2 100644 --- a/sys/arch/armv7/omap/gptimer.c +++ b/sys/arch/armv7/omap/gptimer.c @@ -118,7 +118,7 @@ int gptimer_irq = 0; u_int gptimer_get_timecount(struct timecounter *); static struct timecounter gptimer_timecounter = { - gptimer_get_timecount, NULL, 0x7fffffff, 0, "gptimer", 0, NULL + gptimer_get_timecount, NULL, 0xffffffff, 0, "gptimer", 0, NULL }; volatile u_int32_t nexttickevent;