Re: mmap over HPET - 32 bit wrap arround

From: Raz
Date: Sat May 31 2008 - 14:21:31 EST


On Thu, May 29, 2008 at 2:57 AM, Lee Revell <rlrevell@xxxxxxxxxxx> wrote:
> On Wed, May 28, 2008 at 6:19 PM, Raz <raziebe@xxxxxxxxx> wrote:
>> I am wondering wether someone can explain how hpet behaves. The bellow
>> is a short program that reads from a mmaped /dev/hpet the time. I am
>> running it and it looks that afer ~296 seconds the counter resets . I
>> AM RUNNING 64bi KERNEL(2.6.18-8.el5) and reading a 64BIT VARIABLE.
>> my hpet is 14MHZ, so I am guessing a 32bit wraparound ( ~296 * 14Mhz
>> ) = MAX_INT . but why ?
>>
>
> HPET counter can be either 32 or 64 bit. Check COUNT_SIZE_CAP.
>
> http://www.intel.com/hardwaredesign/hpetspec_1.pdf
>
> Lee
>
Thank you Lee for your response. According to the SPEC I debugged and found:
section :2.3.4 Main Capabilities and ID Register
bit 13: HPET_COUNTER_SIZE_MASK & readq(&hpet->hpet_cap) is on.
indicates 64bit timer.

section 2.4.8 Timer n Configuration and Capabilties Register
bit 5 on Tn_SIZE_CAP is to 32bit. Problem is that it is readonly( page
18 in spec).
None of the above counters is 64bit, and there is no BIOS settings for
hpet ( T61 Lenovo ).
Furthermore , I have 3 timers , and only a single /dev/hpet. why ?
thank you
--
Raz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/