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.
This commit is contained in:
parent
4e5a96b02e
commit
7da036bbcb
17 changed files with 38 additions and 187 deletions
30
ChangeLog
30
ChangeLog
|
@ -1,6 +1,34 @@
|
||||||
2012-06-11 Vladimir Serbinenko <phcoder@gmail.com>
|
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
|
* include/grub/unicode.h (GRUB_UNICODE_DOTLESS_LOWERCASE_I): New enum
|
||||||
value.
|
value.
|
||||||
|
|
|
@ -93,7 +93,6 @@ endif
|
||||||
|
|
||||||
if COND_i386_efi
|
if COND_i386_efi
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
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/efi/disk.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
|
||||||
|
@ -124,7 +123,6 @@ endif
|
||||||
|
|
||||||
if COND_x86_64_efi
|
if COND_x86_64_efi
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
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/efi/disk.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
|
||||||
|
@ -132,7 +130,6 @@ endif
|
||||||
|
|
||||||
if COND_ia64_efi
|
if COND_ia64_efi
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
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/efi/disk.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -165,6 +162,7 @@ endif
|
||||||
if COND_mips_loongson
|
if COND_mips_loongson
|
||||||
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
|
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/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_builddir)/include/grub/cpu/cache.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h
|
||||||
|
|
|
@ -103,9 +103,6 @@ kernel = {
|
||||||
noemu_nodist = symlist.c;
|
noemu_nodist = symlist.c;
|
||||||
|
|
||||||
i386_pc = kern/generic/rtc_get_time_ms.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;
|
mips = kern/generic/rtc_get_time_ms.c;
|
||||||
|
|
||||||
ieee1275 = disk/ieee1275/ofdisk.c;
|
ieee1275 = disk/ieee1275/ofdisk.c;
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <grub/efi/efi.h>
|
#include <grub/efi/efi.h>
|
||||||
#include <grub/efi/console_control.h>
|
#include <grub/efi/console_control.h>
|
||||||
#include <grub/efi/pe32.h>
|
#include <grub/efi/pe32.h>
|
||||||
#include <grub/machine/time.h>
|
|
||||||
#include <grub/time.h>
|
#include <grub/time.h>
|
||||||
#include <grub/term.h>
|
#include <grub/term.h>
|
||||||
#include <grub/kernel.h>
|
#include <grub/kernel.h>
|
||||||
|
@ -230,29 +229,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid,
|
||||||
return NULL;
|
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"
|
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||||
|
|
||||||
/* Search the mods section from the PE32/PE32+ image. This code uses
|
/* Search the mods section from the PE32/PE32+ image. This code uses
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include <grub/time.h>
|
#include <grub/time.h>
|
||||||
#include <grub/misc.h>
|
#include <grub/misc.h>
|
||||||
|
#include <grub/machine/time.h>
|
||||||
|
|
||||||
/* Calculate the time in milliseconds since the epoch based on the RTC. */
|
/* Calculate the time in milliseconds since the epoch based on the RTC. */
|
||||||
grub_uint64_t
|
grub_uint64_t
|
||||||
|
|
|
@ -42,15 +42,7 @@ extern grub_uint8_t _start[];
|
||||||
extern grub_uint8_t _end[];
|
extern grub_uint8_t _end[];
|
||||||
extern grub_uint8_t _edata[];
|
extern grub_uint8_t _edata[];
|
||||||
|
|
||||||
#pragma GCC diagnostic warning "-Wsuggest-attribute=noreturn"
|
void __attribute__ ((noreturn))
|
||||||
|
|
||||||
grub_uint32_t
|
|
||||||
grub_get_rtc (void)
|
|
||||||
{
|
|
||||||
grub_fatal ("grub_get_rtc() is not implemented.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
grub_exit (void)
|
grub_exit (void)
|
||||||
{
|
{
|
||||||
/* We can't use grub_fatal() in this function. This would create an infinite
|
/* We can't use grub_fatal() in this function. This would create an infinite
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include <grub/cache.h>
|
#include <grub/cache.h>
|
||||||
#include <grub/time.h>
|
#include <grub/time.h>
|
||||||
#include <grub/cpu/tsc.h>
|
#include <grub/cpu/tsc.h>
|
||||||
|
#include <grub/machine/time.h>
|
||||||
|
|
||||||
struct mem_region
|
struct mem_region
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,6 +69,10 @@ grub_tsc_init (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_IEEE1275)
|
||||||
grub_install_get_time_ms (grub_rtc_get_time_ms);
|
grub_install_get_time_ms (grub_rtc_get_time_ms);
|
||||||
|
#else
|
||||||
|
grub_fatal ("no TSC found");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,9 +292,3 @@ ieee1275_get_time_ms (void)
|
||||||
|
|
||||||
return msecs;
|
return msecs;
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_uint32_t
|
|
||||||
grub_get_rtc (void)
|
|
||||||
{
|
|
||||||
return ieee1275_get_time_ms ();
|
|
||||||
}
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <grub/types.h>
|
#include <grub/types.h>
|
||||||
#include <grub/misc.h>
|
#include <grub/misc.h>
|
||||||
#include <grub/mm.h>
|
#include <grub/mm.h>
|
||||||
#include <grub/time.h>
|
#include <grub/machine/time.h>
|
||||||
#include <grub/machine/kernel.h>
|
#include <grub/machine/kernel.h>
|
||||||
#include <grub/machine/memory.h>
|
#include <grub/machine/memory.h>
|
||||||
#include <grub/memory.h>
|
#include <grub/memory.h>
|
||||||
|
|
|
@ -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 <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 */
|
|
|
@ -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 <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 */
|
|
|
@ -1 +0,0 @@
|
||||||
#include <grub/powerpc/ieee1275/time.h>
|
|
|
@ -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 <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 */
|
|
|
@ -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 <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 */
|
|
|
@ -27,8 +27,6 @@
|
||||||
#define GRUB_TICKS_PER_SECOND 100000
|
#define GRUB_TICKS_PER_SECOND 100000
|
||||||
/* Return the real time in ticks. */
|
/* Return the real time in ticks. */
|
||||||
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
|
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
|
||||||
#else
|
|
||||||
#include <grub/machine/time.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void EXPORT_FUNC(grub_millisleep) (grub_uint32_t ms);
|
void EXPORT_FUNC(grub_millisleep) (grub_uint32_t ms);
|
||||||
|
|
|
@ -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 <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 */
|
|
Loading…
Reference in a new issue