Skip to content
Snippets Groups Projects
Commit 3786980d authored by Simon Glass's avatar Simon Glass Committed by Anatolij Gustschin
Browse files

Move bootstage timer out of lib/time.c


The standalone example does not have get_timer() defined, so we cannot
rely on it being available.

Move the timer function into boootstage.c to avoid this problem.

This corrects a build breakage for the standalone example on some boards.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Acked-by: default avatarMatthias Fuchs <matthias.fuchs@esd.eu>
parent 35897c86
No related branches found
No related tags found
No related merge requests found
...@@ -156,3 +156,20 @@ void bootstage_report(void) ...@@ -156,3 +156,20 @@ void bootstage_report(void)
"- please increase CONFIG_BOOTSTAGE_USER_COUNT\n", "- please increase CONFIG_BOOTSTAGE_USER_COUNT\n",
next_id - BOOTSTAGE_ID_COUNT); next_id - BOOTSTAGE_ID_COUNT);
} }
ulong __timer_get_boot_us(void)
{
static ulong base_time;
/*
* We can't implement this properly. Return 0 on the first call and
* larger values after that.
*/
if (base_time)
return get_timer(base_time) * 1000;
base_time = get_timer(0);
return 0;
}
ulong timer_get_boot_us(void)
__attribute__((weak, alias("__timer_get_boot_us")));
...@@ -203,6 +203,13 @@ enum bootstage_id { ...@@ -203,6 +203,13 @@ enum bootstage_id {
BOOTSTAGE_ID_ALLOC, BOOTSTAGE_ID_ALLOC,
}; };
/*
* Return the time since boot in microseconds, This is needed for bootstage
* and should be defined in CPU- or board-specific code. If undefined then
* millisecond resolution will be used (the standard get_timer()).
*/
ulong timer_get_boot_us(void);
/* /*
* Board code can implement show_boot_progress() if needed. * Board code can implement show_boot_progress() if needed.
* *
......
...@@ -206,13 +206,6 @@ typedef void (interrupt_handler_t)(void *); ...@@ -206,13 +206,6 @@ typedef void (interrupt_handler_t)(void *);
#endif /* CONFIG_SERIAL_MULTI */ #endif /* CONFIG_SERIAL_MULTI */
/*
* Return the time since boot in microseconds, This is needed for bootstage
* and should be defined in CPU- or board-specific code. If undefined then
* millisecond resolution will be used (the standard get_timer()).
*/
ulong timer_get_boot_us(void);
/* /*
* General Purpose Utilities * General Purpose Utilities
*/ */
......
...@@ -47,20 +47,3 @@ void mdelay(unsigned long msec) ...@@ -47,20 +47,3 @@ void mdelay(unsigned long msec)
while (msec--) while (msec--)
udelay(1000); udelay(1000);
} }
ulong __timer_get_boot_us(void)
{
static ulong base_time;
/*
* We can't implement this properly. Return 0 on the first call and
* larger values after that.
*/
if (base_time)
return get_timer(base_time) * 1000;
base_time = get_timer(0);
return 0;
}
ulong timer_get_boot_us(void)
__attribute__((weak, alias("__timer_get_boot_us")));
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment