The following is a question received by Intel(R) Software Network Support, followed by a response supplied by an expert at Intel:
Q. I am looking on information about your HPET (former multimedia timer) technology. I am currently developing a project requiring HPET timer support, but got stuck on some questions about where it is built into. Is it built into Intel(R) processors, or is it a mainboard-driven technology controlled by Bios/EFI? It's also very important for me to know which Intel components support HPET, since I do not know if it is widespread already or if I have to add some alternate support for other timers. I already have a link to the HPET specs, but the specification documentation did not answer my specific question.
A. The HPET (High Precision Event Timers) is a component that is part of the chipset. However, the firmware (BIOS/EFI) needs to enable it, and will provide you with the means to get to it via the various ACPI methods.
Intel(R) chipsets, since quite some time ago (at least a year, if not more), have HPET on board. However, not all vendors that sell machines with Intel(R) chipsets enable HPET in their firmware. Some have it as a BIOS option, and sometimes it defaults to Off.
Edited to add: HPET has been productized and supported in chipsets since Intel® ICH5 (at least from a client perspective -- embedded and server/workstation specific chipsets may be different).
Is there any way to access HPET on Windows XP? There is intel driver installed for it in the system. It should be possible to use DeviceIoControl for it if driver provides interface. Is there any sample or unoficial/beta API available from Intel to access it?
Alex, in answer to your question, our engineering contacts confirmed that currently Microsoft Windows* XP’s timer APIs do not support the HPET. However, HPET is supported and accessible in Windows Vista*. We currently do not have any sample APIs for testing HPET with Windows*. If you are simply looking at testing the HPET, Linux* timer APIs support it today.
However, for the most accurate and up-to-date information, we recommend verifying HPET support with the OS vendor directly.
We looked for documentation indicating it might be supported under Microsoft Windows* Server 2003 and didn't find any. We're verifying with engineering.
I'm a laptop hardware designer. Currently, I met a problem that while our system enable HPET under Vista OS. The system will delay 24 seconds per day. I guess it's caused by the clock source of HPET. Would you please tell me which one is the clock source of HPET? 32.768KHz, or 14.318MHz?
We forwarded your question to our software engineering contacts, who responded that since this is more of a board design-related HPET question, you would be best off contacting Mitac's assigned Intel representative to obtain assistance with this issue. Your company's purchasing department should have your Intel rep's contact information if you need it.
Q. Currently, I'm trying to use hpet. But I cannot use timer 0 and timer 1 since they are used for 8254 and rtc replacement, respectively. The only chance for me is to use timer 2. But timer 2 uses irq number 0, in Linux kernel, irq is reserved. How can I solve this? Is it possible for me to change timer 2's irq?
A. The ICH HPET Timer 2 interrupt may be routed to any one of the following IRQs: 11, 20, 21, 22, and 23, via the TIM2_CONF register. (Note: this register is called TIM3_CONF in Intel® ICH5.)
Hi Lexi, Is it possible to implement the HPET support as a stand alone driver in Windows 2003 SP2? We like to get a sub 1ms periodic timer interrupt in Windows 2003 environment. The existing legacy timer is not able to deliver such short period interrupt in Windows. Can we implement it using HPET if the motherboard BIOS enable the HPET? Thanks a lot! William
Our engineering contacts responded that your best bet would be to direct that question to Microsoft -- since common hardware resources are best managed by the OS, it would probably not be advisable to have independent drivers accessing that hardware, but Microsoft should be able to verify that for you.
Our recommendation here would be for you to ask your question on MSDN as well -- HPET was jointly developed by Microsoft and Intel, and support for it on the Microsoft technical forums appears to be more extensive.