Use ITC on IA64 rather than broken routine based on daytime.

* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms) [__ia64__]: Remove on
	ia64.
	(grub_get_rtc) [__ia64__]: Likewise.
	* grub-core/kern/ia64/efi/init.c (divisor): New variable.
	(get_itc): New function.
	(grub_rtc_get_time_ms): Likewise.
	(grub_machine_init): Calibrate ITC.
	* include/grub/efi/time.h (grub_get_rtc), (GRUB_TICKS_PER_SECOND):
	Keep only on non-ia64. Don't export since it's broken and used only
	if TSC is unavailable.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-06-09 10:52:39 +02:00
parent a176740446
commit 9e5e66d15e
4 changed files with 53 additions and 1 deletions

View file

@ -21,9 +21,11 @@
#include <grub/symbol.h>
#ifndef __ia64__
#define GRUB_TICKS_PER_SECOND 1000
/* Return the real time in ticks. */
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
grub_uint32_t grub_get_rtc (void);
#endif
#endif /* ! GRUB_EFI_TIME_HEADER */