2012-06-11 Vladimir Serbinenko <phcoder@gmail.com>
- Remove dor on i and j when combining with above diacritics.
+ Remove non-functional EFI grub_get_rtc. Put a better fatal message
+ than current grub_get_rtc() not implemented when booted with
+ coreboot without TSC.
+
+ * grub-core/Makefile.am: Exclude efi/time.h from kernel headers.
+ Add machine/time.h to kernel headers on loongson.
+ * grub-core/Makefile.core.def (kernel): Remove
+ kern/generic/rtc_get_time_ms.c on qemu-multiboot-coreboot.
+ * grub-core/kern/efi/efi.c (grub_rtc_get_time_ms): Removed.
+ (grub_get_rtc): Likewise.
+ * grub-core/kern/generic/rtc_get_time_ms.c: Include grub/machine/time.h.
+ * grub-core/kern/i386/coreboot/init.c (grub_get_rtc): Removed.
+ * grub-core/kern/i386/pc/init.c: Include grub/machine/init.h.
+ * grub-core/kern/i386/tsc.c (grub_tsc_init)
+ [!GRUB_MACHINE_PCBIOS && !GRUB_MACHINE_IEEE1275]: Call grub_fatal
+ rather than installing known non-working time source.
+ * grub-core/kern/ieee1275/init.c (grub_get_rtc): Removed.
+ * grub-core/kern/mips/loongson/init.c: Include grub/machine/time.h.
+ * include/grub/time.h: Don't include machine/time.h.
+ * include/grub/efi/time.h: Removed.
+ * include/grub/i386/efi/time.h: Likewise.
+ * include/grub/i386/ieee1275/time.h: Likewise.
+ * include/grub/powerpc/ieee1275/time.h: Likewise.
+ * include/grub/sparc64/ieee1275/time.h: Likewise.
+ * include/grub/x86_64/efi/time.h: Likewise.
+
+2012-06-11 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Remove dot on i and j when combining with above diacritics.
* include/grub/unicode.h (GRUB_UNICODE_DOTLESS_LOWERCASE_I): New enum
value.
if COND_i386_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.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/pci.h
if COND_x86_64_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.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/pci.h
if COND_ia64_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
endif
if COND_mips_loongson
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/time.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/cache.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h
noemu_nodist = symlist.c;
i386_pc = kern/generic/rtc_get_time_ms.c;
- i386_qemu = kern/generic/rtc_get_time_ms.c;
- i386_coreboot = kern/generic/rtc_get_time_ms.c;
- i386_multiboot = kern/generic/rtc_get_time_ms.c;
mips = kern/generic/rtc_get_time_ms.c;
ieee1275 = disk/ieee1275/ofdisk.c;
#include <grub/efi/efi.h>
#include <grub/efi/console_control.h>
#include <grub/efi/pe32.h>
-#include <grub/machine/time.h>
#include <grub/time.h>
#include <grub/term.h>
#include <grub/kernel.h>
return NULL;
}
-#ifndef __ia64__
-grub_uint64_t
-grub_rtc_get_time_ms (void)
-{
- grub_efi_time_t time;
- grub_efi_runtime_services_t *r;
-
- r = grub_efi_system_table->runtime_services;
- if (efi_call_2 (r->get_time, &time, 0) != GRUB_EFI_SUCCESS)
- /* What is possible in this case? */
- return 0;
-
- return ((time.minute * 60 + time.second) * 1000
- + time.nanosecond / 1000000);
-}
-
-grub_uint32_t
-grub_get_rtc (void)
-{
- return grub_rtc_get_time_ms ();
-}
-#endif
-
#pragma GCC diagnostic ignored "-Wcast-align"
/* Search the mods section from the PE32/PE32+ image. This code uses
#include <grub/time.h>
#include <grub/misc.h>
+#include <grub/machine/time.h>
/* Calculate the time in milliseconds since the epoch based on the RTC. */
grub_uint64_t
extern grub_uint8_t _end[];
extern grub_uint8_t _edata[];
-#pragma GCC diagnostic warning "-Wsuggest-attribute=noreturn"
-
-grub_uint32_t
-grub_get_rtc (void)
-{
- grub_fatal ("grub_get_rtc() is not implemented.\n");
-}
-
-void
+void __attribute__ ((noreturn))
grub_exit (void)
{
/* We can't use grub_fatal() in this function. This would create an infinite
#include <grub/cache.h>
#include <grub/time.h>
#include <grub/cpu/tsc.h>
+#include <grub/machine/time.h>
struct mem_region
{
}
else
{
+#if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_IEEE1275)
grub_install_get_time_ms (grub_rtc_get_time_ms);
+#else
+ grub_fatal ("no TSC found");
+#endif
}
}
return msecs;
}
-
-grub_uint32_t
-grub_get_rtc (void)
-{
- return ieee1275_get_time_ms ();
-}
#include <grub/types.h>
#include <grub/misc.h>
#include <grub/mm.h>
-#include <grub/time.h>
+#include <grub/machine/time.h>
#include <grub/machine/kernel.h>
#include <grub/machine/memory.h>
#include <grub/memory.h>
+++ /dev/null
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2006,2007,2008 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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef GRUB_EFI_TIME_HEADER
-#define GRUB_EFI_TIME_HEADER 1
-
-#include <grub/symbol.h>
-
-#ifndef __ia64__
-#define GRUB_TICKS_PER_SECOND 1000
-
-/* Return the real time in ticks. */
-grub_uint32_t grub_get_rtc (void);
-#endif
-
-#endif /* ! GRUB_EFI_TIME_HEADER */
+++ /dev/null
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2006,2007 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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef GRUB_MACHINE_TIME_HEADER
-#define GRUB_MACHINE_TIME_HEADER 1
-
-#include <grub/efi/time.h>
-
-#endif /* ! GRUB_MACHINE_TIME_HEADER */
+++ /dev/null
-#include <grub/powerpc/ieee1275/time.h>
+++ /dev/null
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003,2004,2005,2007 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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef KERNEL_MACHINE_TIME_HEADER
-#define KERNEL_MACHINE_TIME_HEADER 1
-
-#include <grub/symbol.h>
-
-#define GRUB_TICKS_PER_SECOND 1000
-
-/* Return the real time in ticks. */
-grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
-
-#endif /* ! KERNEL_MACHINE_TIME_HEADER */
+++ /dev/null
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003,2004,2005,2007 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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef KERNEL_MACHINE_TIME_HEADER
-#define KERNEL_MACHINE_TIME_HEADER 1
-
-#include <grub/symbol.h>
-
-#define GRUB_TICKS_PER_SECOND 1000
-
-/* Return the real time in ticks. */
-grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
-
-#endif /* ! KERNEL_MACHINE_TIME_HEADER */
#define GRUB_TICKS_PER_SECOND 100000
/* Return the real time in ticks. */
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
-#else
-#include <grub/machine/time.h>
#endif
void EXPORT_FUNC(grub_millisleep) (grub_uint32_t ms);
+++ /dev/null
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2006,2007 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 <http://www.gnu.org/licenses/>.
- */
-
-#ifndef GRUB_MACHINE_TIME_HEADER
-#define GRUB_MACHINE_TIME_HEADER 1
-
-#include <grub/efi/time.h>
-
-#endif /* ! GRUB_MACHINE_TIME_HEADER */