summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/efi/efi.c1
-rw-r--r--drivers/clocksource/efi.c5
-rw-r--r--include/efi/efi.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/common/efi/efi.c b/common/efi/efi.c
index 1c7aee8..4b589b6 100644
--- a/common/efi/efi.c
+++ b/common/efi/efi.c
@@ -348,7 +348,6 @@ efi_status_t efi_main(efi_handle_t image, efi_system_table_t *sys_table)
efi_strerror(efiret));
mem_malloc_init((void *)mem, (void *)mem + memsize);
- efi_clocksource_init();
start_barebox();
return EFI_SUCCESS;
diff --git a/drivers/clocksource/efi.c b/drivers/clocksource/efi.c
index 59fd991..6d2fee8 100644
--- a/drivers/clocksource/efi.c
+++ b/drivers/clocksource/efi.c
@@ -1,4 +1,5 @@
#include <common.h>
+#include <init.h>
#include <efi.h>
#include <efi/efi.h>
#include <clock.h>
@@ -48,7 +49,7 @@ static struct clocksource cs = {
.shift = 0,
};
-int efi_clocksource_init(void)
+static int efi_clocksource_init(void)
{
cs.mult = clocksource_hz2mult(1000 * 1000, cs.shift);
@@ -56,3 +57,5 @@ int efi_clocksource_init(void)
return init_clock(&cs);
}
+/* for efi the time must be init at core initcall level */
+core_initcall(efi_clocksource_init);
diff --git a/include/efi/efi.h b/include/efi/efi.h
index 2b25cf1..648afb9 100644
--- a/include/efi/efi.h
+++ b/include/efi/efi.h
@@ -12,8 +12,6 @@ extern efi_loaded_image_t *efi_loaded_image;
int efi_errno(efi_status_t err);
-int efi_clocksource_init(void);
-
void *efi_get_variable(char *name, efi_guid_t *vendor, int *var_size);
static inline void *efi_get_global_var(char *name, int *var_size)