Messages in this thread | | | Date | Sat, 31 May 2008 21:20:55 +0300 | From | Raz <> | Subject | Re: mmap over HPET - 32 bit wrap arround |
| |
On Thu, May 29, 2008 at 2:57 AM, Lee Revell <rlrevell@joe-job.com> wrote: > On Wed, May 28, 2008 at 6:19 PM, Raz <raziebe@gmail.com> 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
| |