=== modified file 'grub-core/Makefile.am'
--- grub-core/Makefile.am 2012-06-11 18:44:38 +0000
+++ grub-core/Makefile.am 2012-06-14 18:52:24 +0000
@@ -88,29 +88,33 @@
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/pxe.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/int.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_i386_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_i386_coreboot
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_i386_multiboot
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_i386_qemu
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
endif
if COND_i386_ieee1275
@@ -118,19 +122,21 @@
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
endif
if COND_x86_64_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_ia64_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
endif
if COND_mips
=== modified file 'grub-core/Makefile.core.def'
--- grub-core/Makefile.core.def 2012-06-11 18:44:38 +0000
+++ grub-core/Makefile.core.def 2012-06-14 18:53:29 +0000
@@ -127,18 +127,26 @@
i386_pc = term/i386/vga_common.c;
x86 = kern/i386/pit.c;
+ x86 = kern/i386/tsc.c;
+
+ efi = kern/acpi.c;
+ i386_coreboot = kern/acpi.c;
+ i386_multiboot = kern/acpi.c;
+ i386_pc = kern/acpi.c;
+ i386_pc = kern/i386/pc/acpi.c;
+ i386_coreboot = kern/i386/pc/acpi.c;
+ i386_multiboot = kern/i386/pc/acpi.c;
efi = disk/efi/efidisk.c;
efi = kern/efi/efi.c;
efi = kern/efi/init.c;
efi = kern/efi/mm.c;
efi = term/efi/console.c;
+ efi = kern/efi/acpi.c;
- i386_efi = kern/i386/tsc.c;
i386_efi = kern/i386/efi/init.c;
i386_efi = bus/pci.c;
- x86_64_efi = kern/i386/tsc.c;
x86_64_efi = kern/x86_64/dl.c;
x86_64_efi = kern/x86_64/efi/callwrap.S;
x86_64_efi = kern/i386/efi/init.c;
@@ -151,19 +159,15 @@
i386_pc = kern/i386/pc/init.c;
i386_pc = kern/i386/pc/mmap.c;
- i386_pc = kern/i386/tsc.c;
i386_pc = term/i386/pc/console.c;
i386_qemu = bus/pci.c;
i386_qemu = kern/vga_init.c;
i386_qemu = kern/i386/qemu/mmap.c;
- i386_qemu = kern/i386/tsc.c;
i386_coreboot = kern/i386/coreboot/mmap.c;
- i386_coreboot = kern/i386/tsc.c;
i386_multiboot = kern/i386/multiboot_mmap.c;
- i386_multiboot = kern/i386/tsc.c;
mips = kern/mips/cache.S;
mips = kern/mips/dl.c;
@@ -526,10 +530,6 @@
name = acpi;
common = commands/acpi.c;
- efi = commands/efi/acpi.c;
- i386_pc = commands/i386/pc/acpi.c;
- i386_coreboot = commands/i386/pc/acpi.c;
- i386_multiboot = commands/i386/pc/acpi.c;
enable = efi;
enable = i386_pc;
=== modified file 'grub-core/commands/acpi.c'
--- grub-core/commands/acpi.c 2012-03-06 14:03:33 +0000
+++ grub-core/commands/acpi.c 2012-06-14 19:10:26 +0000
@@ -61,18 +61,6 @@
{0, 0, 0, 0, 0, 0}
};
-/* Simple checksum by summing all bytes. Used by ACPI and SMBIOS. */
-grub_uint8_t
-grub_byte_checksum (void *base, grub_size_t size)
-{
- grub_uint8_t *ptr;
- grub_uint8_t ret = 0;
- for (ptr = (grub_uint8_t *) base; ptr < ((grub_uint8_t *) base) + size;
- ptr++)
- ret += *ptr;
- return ret;
-}
-
/* rev1 is 1 if ACPIv1 is to be generated, 0 otherwise.
rev2 contains the revision of ACPIv2+ to generate or 0 if none. */
static int rev1, rev2;
=== modified file 'grub-core/commands/acpihalt.c'
--- grub-core/commands/acpihalt.c 2012-03-03 11:59:28 +0000
+++ grub-core/commands/acpihalt.c 2012-06-14 19:00:14 +0000
@@ -302,56 +302,35 @@
void
grub_acpi_halt (void)
{
- struct grub_acpi_rsdp_v20 *rsdp2;
- struct grub_acpi_rsdp_v10 *rsdp1;
- struct grub_acpi_table_header *rsdt;
- grub_uint32_t *entry_ptr;
-
- rsdp2 = grub_acpi_get_rsdpv2 ();
- if (rsdp2)
- rsdp1 = &(rsdp2->rsdpv1);
- else
- rsdp1 = grub_acpi_get_rsdpv1 ();
- grub_dprintf ("acpi", "rsdp1=%p\n", rsdp1);
- if (!rsdp1)
- return;
-
- rsdt = (struct grub_acpi_table_header *) (grub_addr_t) rsdp1->rsdt_addr;
- for (entry_ptr = (grub_uint32_t *) (rsdt + 1);
- entry_ptr < (grub_uint32_t *) (((grub_uint8_t *) rsdt)
- + rsdt->length);
- entry_ptr++)
- {
- if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "FACP", 4) == 0)
- {
- grub_uint32_t port;
- struct grub_acpi_fadt *fadt
- = ((struct grub_acpi_fadt *) (grub_addr_t) *entry_ptr);
- struct grub_acpi_table_header *dsdt
- = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr;
- int sleep_type = -1;
-
- port = fadt->pm1a;
-
- grub_dprintf ("acpi", "PM1a port=%x\n", port);
-
- if (grub_memcmp (dsdt->signature, "DSDT",
- sizeof (dsdt->signature)) != 0)
- break;
-
- sleep_type = get_sleep_type ((grub_uint8_t *) dsdt,
- (grub_uint8_t *) dsdt + dsdt->length);
-
- if (sleep_type < 0 || sleep_type >= 8)
- break;
-
- grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n",
- sleep_type, port);
-
- grub_outw (GRUB_ACPI_SLP_EN
- | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff);
- }
- }
+ struct grub_acpi_fadt *fadt;
+ grub_uint32_t port;
+ struct grub_acpi_table_header *dsdt;
+ int sleep_type = -1;
+
+ fadt = grub_acpi_find_fadt ();
+ if (!fadt)
+ return;
+
+ dsdt = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr;
+ port = fadt->pm1a;
+
+ grub_dprintf ("acpi", "PM1a port=%x\n", port);
+
+ if (grub_memcmp (dsdt->signature, "DSDT",
+ sizeof (dsdt->signature)) != 0)
+ return;
+
+ sleep_type = get_sleep_type ((grub_uint8_t *) dsdt,
+ (grub_uint8_t *) dsdt + dsdt->length);
+
+ if (sleep_type < 0 || sleep_type >= 8)
+ return;
+
+ grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n",
+ sleep_type, port);
+
+ grub_outw (GRUB_ACPI_SLP_EN
+ | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff);
grub_millisleep (1500);
=== added file 'grub-core/kern/acpi.c'
--- grub-core/kern/acpi.c 1970-01-01 00:00:00 +0000
+++ grub-core/kern/acpi.c 2012-06-14 19:10:31 +0000
@@ -0,0 +1,119 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2012 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see .
+ */
+
+#include
+#include
+#include
+#include
+
+static void *
+grub_acpi_rsdt_find_table (struct grub_acpi_table_header *rsdt, const char *sig)
+{
+ grub_size_t s;
+ grub_uint32_t *ptr;
+
+ if (!rsdt)
+ return 0;
+
+ if (grub_memcmp (rsdt->signature, "RSDT", 4) != 0)
+ return 0;
+
+ ptr = (grub_uint32_t *) (rsdt + 1);
+ s = (rsdt->length - sizeof (*rsdt)) / sizeof (grub_uint32_t);
+ for (; s; s--, ptr++)
+ {
+ struct grub_acpi_table_header *tbl;
+ tbl = (struct grub_acpi_table_header *) (grub_addr_t) *ptr;
+ if (grub_memcmp (tbl->signature, sig, 4) == 0)
+ return tbl;
+ }
+ return 0;
+}
+
+static void *
+grub_acpi_xsdt_find_table (struct grub_acpi_table_header *xsdt, const char *sig)
+{
+ grub_size_t s;
+ grub_uint64_t *ptr;
+
+ if (!xsdt)
+ return 0;
+
+ if (grub_memcmp (xsdt->signature, "XSDT", 4) != 0)
+ return 0;
+
+ ptr = (grub_uint64_t *) (xsdt + 1);
+ s = (xsdt->length - sizeof (*xsdt)) / sizeof (grub_uint32_t);
+ for (; s; s--, ptr++)
+ {
+ struct grub_acpi_table_header *tbl;
+#if GRUB_CPU_SIZEOF_VOID_P != 8
+ if (*ptr >> 32)
+ continue;
+#endif
+ tbl = (struct grub_acpi_table_header *) (grub_addr_t) *ptr;
+ if (grub_memcmp (tbl->signature, sig, 4) == 0)
+ return tbl;
+ }
+ return 0;
+}
+
+struct grub_acpi_fadt *
+grub_acpi_find_fadt (void)
+{
+ struct grub_acpi_fadt *fadt = 0;
+ struct grub_acpi_rsdp_v10 *rsdpv1;
+ struct grub_acpi_rsdp_v20 *rsdpv2;
+ rsdpv1 = grub_machine_acpi_get_rsdpv1 ();
+ if (rsdpv1)
+ fadt = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *)
+ (grub_addr_t) rsdpv1->rsdt_addr,
+ GRUB_ACPI_FADT_SIGNATURE);
+ if (fadt)
+ return fadt;
+ rsdpv2 = grub_machine_acpi_get_rsdpv2 ();
+ if (rsdpv2)
+ fadt = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *)
+ (grub_addr_t) rsdpv2->rsdpv1.rsdt_addr,
+ GRUB_ACPI_FADT_SIGNATURE);
+ if (fadt)
+ return fadt;
+ if (rsdpv2
+#if GRUB_CPU_SIZEOF_VOID_P != 8
+ && !(rsdpv2->xsdt_addr >> 32)
+#endif
+ )
+ fadt = grub_acpi_xsdt_find_table ((struct grub_acpi_table_header *)
+ (grub_addr_t) rsdpv2->xsdt_addr,
+ GRUB_ACPI_FADT_SIGNATURE);
+ if (fadt)
+ return fadt;
+ return 0;
+}
+
+/* Simple checksum by summing all bytes. Used by ACPI and SMBIOS. */
+grub_uint8_t
+grub_byte_checksum (void *base, grub_size_t size)
+{
+ grub_uint8_t *ptr;
+ grub_uint8_t ret = 0;
+ for (ptr = (grub_uint8_t *) base; ptr < ((grub_uint8_t *) base) + size;
+ ptr++)
+ ret += *ptr;
+ return ret;
+}
=== renamed file 'grub-core/commands/efi/acpi.c' => 'grub-core/kern/efi/acpi.c'
=== renamed file 'grub-core/commands/i386/pc/acpi.c' => 'grub-core/kern/i386/pc/acpi.c'
=== modified file 'grub-core/kern/i386/tsc.c'
--- grub-core/kern/i386/tsc.c 2012-06-11 18:44:38 +0000
+++ grub-core/kern/i386/tsc.c 2012-06-14 22:56:04 +0000
@@ -1,6 +1,6 @@
/* kern/i386/tsc.c - x86 TSC time source implementation
* Requires Pentium or better x86 CPU that supports the RDTSC instruction.
- * This module uses the RTC (via grub_get_rtc()) to calibrate the TSC to
+ * This module uses the PIT to calibrate the TSC to
* real time.
*
* GRUB -- GRand Unified Bootloader
@@ -25,23 +25,60 @@
#include
#include
#include
+#include
+#include
/* This defines the value TSC had at the epoch (that is, when we calibrated it). */
static grub_uint64_t tsc_boot_time;
/* Calibrated TSC rate. (In TSC ticks per millisecond.) */
-static grub_uint64_t tsc_ticks_per_ms;
-
-
-grub_uint64_t
+grub_uint64_t grub_tsc_ticks_per_ms;
+
+
+static grub_uint64_t
grub_tsc_get_time_ms (void)
{
- return tsc_boot_time + grub_divmod64 (grub_get_tsc (), tsc_ticks_per_ms, 0);
-}
-
-
-/* How many RTC ticks to use for calibration loop. (>= 1) */
-#define CALIBRATION_TICKS 2
+ return grub_divmod64 (grub_get_tsc () - tsc_boot_time,
+ grub_tsc_ticks_per_ms, 0);
+}
+
+static int
+grub_pmtimer_tsc_calibrate (void)
+{
+ grub_uint32_t start;
+ grub_uint32_t last;
+ grub_uint32_t cur, end;
+ struct grub_acpi_fadt *fadt;
+ grub_port_t p;
+ grub_uint64_t start_tsc;
+ grub_uint64_t end_tsc;
+
+ fadt = grub_acpi_find_fadt ();
+ if (!fadt)
+ return 0;
+ p = fadt->pmtimer;
+ if (!p)
+ return 0;
+
+ start = grub_inl (p) & 0xffffff;
+ last = start;
+ /* It's 3.579545 MHz clock. Wait 1 ms. */
+ end = start + 3580;
+ start_tsc = grub_get_tsc ();
+ while (1)
+ {
+ cur = grub_inl (p) & 0xffffff;
+ if (cur < last)
+ cur |= 0x1000000;
+ if (cur >= end)
+ {
+ end_tsc = grub_get_tsc ();
+ grub_tsc_ticks_per_ms = end_tsc - start_tsc;
+ grub_printf ("synced on PM\n");
+ return 1;
+ }
+ }
+}
/* Calibrate the TSC based on the RTC. */
static void
@@ -51,11 +88,14 @@
grub_uint64_t start_tsc;
grub_uint64_t end_tsc;
+ if (grub_pmtimer_tsc_calibrate ())
+ return;
+
start_tsc = grub_get_tsc ();
grub_pit_wait (0xffff);
end_tsc = grub_get_tsc ();
- tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0);
+ grub_tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0);
}
void
=== modified file 'grub-core/kern/ieee1275/init.c'
--- grub-core/kern/ieee1275/init.c 2012-06-11 18:44:38 +0000
+++ grub-core/kern/ieee1275/init.c 2012-06-14 18:00:27 +0000
@@ -32,12 +32,17 @@
#include
#include
#include
+#include
#include
#include
#ifdef __sparc__
#include
#endif
+#ifdef __i386__
+#include
+#endif
+
/* The minimal heap size we can live with. */
#define HEAP_MIN_SIZE (unsigned long) (2 * 1024 * 1024)
@@ -254,8 +259,6 @@
}
}
-static grub_uint64_t ieee1275_get_time_ms (void);
-
grub_addr_t grub_modbase;
void
@@ -273,7 +276,7 @@
grub_parse_cmdline ();
- grub_install_get_time_ms (ieee1275_get_time_ms);
+ grub_install_get_time_ms (grub_rtc_get_time_ms);
}
void
@@ -283,8 +286,8 @@
grub_console_fini ();
}
-static grub_uint64_t
-ieee1275_get_time_ms (void)
+grub_uint64_t
+grub_rtc_get_time_ms (void)
{
grub_uint32_t msecs = 0;
=== modified file 'grub-core/loader/i386/xnu.c'
--- grub-core/loader/i386/xnu.c 2012-05-28 15:49:18 +0000
+++ grub-core/loader/i386/xnu.c 2012-06-14 18:00:27 +0000
@@ -24,9 +24,8 @@
#include
#include
#include
+#include
#include
-#include
-#include
#include
#include
#include
@@ -125,11 +124,8 @@
{
const grub_uint64_t sane_value = 100000000;
grub_uint32_t manufacturer[3], max_cpuid, capabilities, msrlow;
- grub_uint64_t start_tsc;
- grub_uint64_t end_tsc;
- grub_uint64_t tsc_ticks_per_ms;
- if (! grub_cpu_is_cpuid_supported ())
+ if (!grub_tsc_ticks_per_ms)
return sane_value;
#ifdef __APPLE__
@@ -192,14 +188,6 @@
if (! (capabilities & (1 << 7)))
return sane_value;
- /* Calibrate the TSC rate. */
-
- start_tsc = grub_get_tsc ();
- grub_pit_wait (0xffff);
- end_tsc = grub_get_tsc ();
-
- tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0);
-
/* Read the multiplier. */
asm volatile ("movl $0x198, %%ecx\n"
"rdmsr"
@@ -207,7 +195,7 @@
:
: "%ecx", "%eax");
- return grub_divmod64 (2000 * tsc_ticks_per_ms,
+ return grub_divmod64 (2000 * grub_tsc_ticks_per_ms,
((msrlow >> 7) & 0x3e) + ((msrlow >> 14) & 1), 0);
}
=== modified file 'include/grub/acpi.h'
--- include/grub/acpi.h 2012-02-22 15:02:03 +0000
+++ include/grub/acpi.h 2012-06-14 19:10:11 +0000
@@ -60,16 +60,34 @@
struct grub_acpi_fadt
{
struct grub_acpi_table_header hdr;
+ /* 36 */
grub_uint32_t facs_addr;
grub_uint32_t dsdt_addr;
+ /* 44 */
grub_uint8_t somefields1[20];
+ /* 64 */
grub_uint32_t pm1a;
- grub_uint8_t somefields2[64];
+ /* 68 */
+ grub_uint8_t somefields2[8];
+ /* 76 */
+ grub_uint32_t pmtimer;
+ /* 80 */
+ grub_uint8_t somefields3[32];
+ /* 112 */
+ grub_uint32_t flags;
+ /* 116 */
+ grub_uint8_t somefields4[16];
+ /* 132 */
grub_uint64_t facs_xaddr;
grub_uint64_t dsdt_xaddr;
- grub_uint8_t somefields3[96];
+ grub_uint8_t somefields5[96];
} __attribute__ ((packed));
+enum
+ {
+ GRUB_ACPI_FADT_FLAGS_LONG_PMTIMER = (1 << 8)
+ };
+
#define GRUB_ACPI_MADT_SIGNATURE "APIC"
struct grub_acpi_madt_entry_header
@@ -144,9 +162,9 @@
#ifndef GRUB_DSDT_TEST
struct grub_acpi_rsdp_v10 *grub_acpi_get_rsdpv1 (void);
struct grub_acpi_rsdp_v20 *grub_acpi_get_rsdpv2 (void);
-struct grub_acpi_rsdp_v10 *grub_machine_acpi_get_rsdpv1 (void);
-struct grub_acpi_rsdp_v20 *grub_machine_acpi_get_rsdpv2 (void);
-grub_uint8_t grub_byte_checksum (void *base, grub_size_t size);
+struct grub_acpi_rsdp_v10 *EXPORT_FUNC(grub_machine_acpi_get_rsdpv1) (void);
+struct grub_acpi_rsdp_v20 *EXPORT_FUNC(grub_machine_acpi_get_rsdpv2) (void);
+grub_uint8_t EXPORT_FUNC(grub_byte_checksum) (void *base, grub_size_t size);
grub_err_t grub_acpi_create_ebda (void);
@@ -179,4 +197,7 @@
GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP = 0x86,
};
+struct grub_acpi_fadt *
+EXPORT_FUNC(grub_acpi_find_fadt) (void);
+
#endif /* ! GRUB_ACPI_HEADER */
=== modified file 'include/grub/i386/pit.h'
--- include/grub/i386/pit.h 2009-05-02 23:19:20 +0000
+++ include/grub/i386/pit.h 2012-06-14 18:04:16 +0000
@@ -22,6 +22,6 @@
#include
#include
-void EXPORT_FUNC(grub_pit_wait) (grub_uint16_t tics);
+void grub_pit_wait (grub_uint16_t tics);
#endif /* ! KERNEL_CPU_PIT_HEADER */
=== modified file 'include/grub/i386/tsc.h'
--- include/grub/i386/tsc.h 2012-05-28 15:49:18 +0000
+++ include/grub/i386/tsc.h 2012-06-14 18:00:27 +0000
@@ -136,6 +136,7 @@
}
void grub_tsc_init (void);
-grub_uint64_t grub_tsc_get_time_ms (void);
+
+extern grub_uint64_t EXPORT_VAR(grub_tsc_ticks_per_ms);
#endif /* ! KERNEL_CPU_TSC_HEADER */
=== modified file 'po/POTFILES.in'
--- po/POTFILES.in 2012-03-08 17:47:51 +0000
+++ po/POTFILES.in 2012-06-14 19:13:30 +0000
@@ -29,7 +29,6 @@
./grub-core/commands/configfile.c
./grub-core/commands/date.c
./grub-core/commands/echo.c
-./grub-core/commands/efi/acpi.c
./grub-core/commands/efi/fixvideo.c
./grub-core/commands/efi/loadbios.c
./grub-core/commands/efi/lsefimmap.c
@@ -44,7 +43,6 @@
./grub-core/commands/hexdump.c
./grub-core/commands/i386/cmostest.c
./grub-core/commands/i386/cpuid.c
-./grub-core/commands/i386/pc/acpi.c
./grub-core/commands/i386/pc/drivemap.c
./grub-core/commands/i386/pc/halt.c
./grub-core/commands/i386/pc/lsapm.c
@@ -106,6 +104,7 @@
./grub-core/disk/luks.c
./grub-core/disk/lvm.c
./grub-core/disk/mdraid1x_linux.c
+./grub-core/disk/mdraid_linux_be.c
./grub-core/disk/mdraid_linux.c
./grub-core/disk/memdisk.c
./grub-core/disk/pata.c
@@ -147,8 +146,11 @@
./grub-core/fs/hfsplus.c
./grub-core/fs/iso9660.c
./grub-core/fs/jfs.c
+./grub-core/fs/minix2_be.c
./grub-core/fs/minix2.c
+./grub-core/fs/minix3_be.c
./grub-core/fs/minix3.c
+./grub-core/fs/minix_be.c
./grub-core/fs/minix.c
./grub-core/fs/newc.c
./grub-core/fs/nilfs2.c
@@ -290,11 +292,13 @@
./grub-core/io/gzio.c
./grub-core/io/lzopio.c
./grub-core/io/xzio.c
+./grub-core/kern/acpi.c
./grub-core/kern/command.c
./grub-core/kern/corecmd.c
./grub-core/kern/device.c
./grub-core/kern/disk.c
./grub-core/kern/dl.c
+./grub-core/kern/efi/acpi.c
./grub-core/kern/efi/efi.c
./grub-core/kern/efi/init.c
./grub-core/kern/efi/mm.c
@@ -320,6 +324,7 @@
./grub-core/kern/i386/dl.c
./grub-core/kern/i386/efi/init.c
./grub-core/kern/i386/multiboot_mmap.c
+./grub-core/kern/i386/pc/acpi.c
./grub-core/kern/i386/pc/init.c
./grub-core/kern/i386/pc/mmap.c
./grub-core/kern/i386/pit.c
@@ -557,6 +562,7 @@
./grub-core/term/i386/pc/vga_text.c
./grub-core/term/i386/vga_common.c
./grub-core/term/ieee1275/console.c
+./grub-core/term/ieee1275/escc.c
./grub-core/term/ieee1275/serial.c
./grub-core/term/ns8250.c
./grub-core/term/serial.c
@@ -567,6 +573,7 @@
./grub-core/tests/lib/functional_test.c
./grub-core/tests/lib/test.c
./grub-core/tests/test_blockarg.c
+./grub-core/unidata.c
./grub-core/video/bitmap.c
./grub-core/video/bitmap_scale.c
./grub-core/video/bochs.c
@@ -631,7 +638,6 @@
./include/grub/efi/memory.h
./include/grub/efi/pci.h
./include/grub/efi/pe32.h
-./include/grub/efi/time.h
./include/grub/efi/uga_draw.h
./include/grub/elf.h
./include/grub/elfload.h
@@ -676,7 +682,6 @@
./include/grub/i386/efiemu.h
./include/grub/i386/efi/memory.h
./include/grub/i386/efi/serial.h
-./include/grub/i386/efi/time.h
./include/grub/i386/floppy.h
./include/grub/i386/freebsd_linker.h
./include/grub/i386/freebsd_reboot.h
@@ -684,7 +689,6 @@
./include/grub/i386/ieee1275/ieee1275.h
./include/grub/i386/ieee1275/memory.h
./include/grub/i386/ieee1275/serial.h
-./include/grub/i386/ieee1275/time.h
./include/grub/i386/io.h
./include/grub/i386/linux.h
./include/grub/i386/macho.h
@@ -820,7 +824,6 @@
./include/grub/pci.h
./include/grub/pciutils.h
./include/grub/powerpc/ieee1275/ieee1275.h
-./include/grub/powerpc/ieee1275/time.h
./include/grub/powerpc/kernel.h
./include/grub/powerpc/memory.h
./include/grub/powerpc/relocator.h
@@ -843,7 +846,6 @@
./include/grub/sparc64/ieee1275/boot.h
./include/grub/sparc64/ieee1275/ieee1275.h
./include/grub/sparc64/ieee1275/kernel.h
-./include/grub/sparc64/ieee1275/time.h
./include/grub/sparc64/setjmp.h
./include/grub/sparc64/time.h
./include/grub/sparc64/types.h
@@ -874,7 +876,6 @@
./include/grub/x86_64/efi/loader.h
./include/grub/x86_64/efi/memory.h
./include/grub/x86_64/efi/serial.h
-./include/grub/x86_64/efi/time.h
./include/grub/x86_64/io.h
./include/grub/x86_64/linux.h
./include/grub/x86_64/macho.h
@@ -906,6 +907,7 @@
./include/grub/zfs/zio.h
./include/multiboot2.h
./include/multiboot.h
+./tests/cmp_unit_test.c
./tests/example_unit_test.c
./tests/lib/unit_test.c
./tests/printf_unit_test.c