mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
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: Simon Glass <sjg@chromium.org> Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
This commit is contained in:
parent
35897c86b9
commit
3786980dd3
4 changed files with 24 additions and 24 deletions
|
@ -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 {
|
||||||
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 *);
|
||||||
|
|
||||||
#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
|
||||||
*/
|
*/
|
||||||
|
|
17
lib/time.c
17
lib/time.c
|
@ -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")));
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue