diff --git a/ChangeLog b/ChangeLog index 64fbf7b37..302365bf4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,34 @@ 2012-06-11 Vladimir Serbinenko - 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 + + Remove dot on i and j when combining with above diacritics. * include/grub/unicode.h (GRUB_UNICODE_DOTLESS_LOWERCASE_I): New enum value. diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index 07918dbea..3410c2adf 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -93,7 +93,6 @@ endif 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 @@ -124,7 +123,6 @@ endif 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 @@ -132,7 +130,6 @@ endif 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 @@ -165,6 +162,7 @@ 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 diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index 18ace2f53..39e77a450 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -103,9 +103,6 @@ kernel = { 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; diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index a59a6edbc..02d2f9a00 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -230,29 +229,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, 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 diff --git a/grub-core/kern/generic/rtc_get_time_ms.c b/grub-core/kern/generic/rtc_get_time_ms.c index 359233628..49f2acac9 100644 --- a/grub-core/kern/generic/rtc_get_time_ms.c +++ b/grub-core/kern/generic/rtc_get_time_ms.c @@ -21,6 +21,7 @@ #include #include +#include /* Calculate the time in milliseconds since the epoch based on the RTC. */ grub_uint64_t diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c index b96b9c6f2..52fbba4e8 100644 --- a/grub-core/kern/i386/coreboot/init.c +++ b/grub-core/kern/i386/coreboot/init.c @@ -42,15 +42,7 @@ extern grub_uint8_t _start[]; 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 diff --git a/grub-core/kern/i386/pc/init.c b/grub-core/kern/i386/pc/init.c index c6492619f..0841d8bb1 100644 --- a/grub-core/kern/i386/pc/init.c +++ b/grub-core/kern/i386/pc/init.c @@ -33,6 +33,7 @@ #include #include #include +#include struct mem_region { diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c index 36b35e27f..c4645f043 100644 --- a/grub-core/kern/i386/tsc.c +++ b/grub-core/kern/i386/tsc.c @@ -69,6 +69,10 @@ grub_tsc_init (void) } 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 } } diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c index bf59dc822..7d03a8aac 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -292,9 +292,3 @@ ieee1275_get_time_ms (void) return msecs; } - -grub_uint32_t -grub_get_rtc (void) -{ - return ieee1275_get_time_ms (); -} diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c index f0360dab1..19f2d639b 100644 --- a/grub-core/kern/mips/loongson/init.c +++ b/grub-core/kern/mips/loongson/init.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/include/grub/efi/time.h b/include/grub/efi/time.h deleted file mode 100644 index 1c38ac0e7..000000000 --- a/include/grub/efi/time.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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 . - */ - -#ifndef GRUB_EFI_TIME_HEADER -#define GRUB_EFI_TIME_HEADER 1 - -#include - -#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 */ diff --git a/include/grub/i386/efi/time.h b/include/grub/i386/efi/time.h deleted file mode 100644 index 7a9241fff..000000000 --- a/include/grub/i386/efi/time.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 . - */ - -#ifndef GRUB_MACHINE_TIME_HEADER -#define GRUB_MACHINE_TIME_HEADER 1 - -#include - -#endif /* ! GRUB_MACHINE_TIME_HEADER */ diff --git a/include/grub/i386/ieee1275/time.h b/include/grub/i386/ieee1275/time.h deleted file mode 100644 index 6f474bada..000000000 --- a/include/grub/i386/ieee1275/time.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/include/grub/powerpc/ieee1275/time.h b/include/grub/powerpc/ieee1275/time.h deleted file mode 100644 index 3f8ad26d7..000000000 --- a/include/grub/powerpc/ieee1275/time.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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 . - */ - -#ifndef KERNEL_MACHINE_TIME_HEADER -#define KERNEL_MACHINE_TIME_HEADER 1 - -#include - -#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 */ diff --git a/include/grub/sparc64/ieee1275/time.h b/include/grub/sparc64/ieee1275/time.h deleted file mode 100644 index 3f8ad26d7..000000000 --- a/include/grub/sparc64/ieee1275/time.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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 . - */ - -#ifndef KERNEL_MACHINE_TIME_HEADER -#define KERNEL_MACHINE_TIME_HEADER 1 - -#include - -#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 */ diff --git a/include/grub/time.h b/include/grub/time.h index ae2617edb..e834796e2 100644 --- a/include/grub/time.h +++ b/include/grub/time.h @@ -27,8 +27,6 @@ #define GRUB_TICKS_PER_SECOND 100000 /* Return the real time in ticks. */ grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void); -#else -#include #endif void EXPORT_FUNC(grub_millisleep) (grub_uint32_t ms); diff --git a/include/grub/x86_64/efi/time.h b/include/grub/x86_64/efi/time.h deleted file mode 100644 index 7a9241fff..000000000 --- a/include/grub/x86_64/efi/time.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 . - */ - -#ifndef GRUB_MACHINE_TIME_HEADER -#define GRUB_MACHINE_TIME_HEADER 1 - -#include - -#endif /* ! GRUB_MACHINE_TIME_HEADER */