diff options
| author | Simon Glass <sjg@chromium.org> | 2012-04-05 12:05:17 +0000 | 
|---|---|---|
| committer | Anatolij Gustschin <agust@denx.de> | 2012-04-10 23:35:32 +0200 | 
| commit | 3786980dd3f28960947084c53878fd849ece897c (patch) | |
| tree | a371031bd9712009b0cc4c62e72db7e876a67d29 | |
| parent | 35897c86b90d516165df7aa6372584493e9f1fa4 (diff) | |
| download | olio-uboot-2014.01-3786980dd3f28960947084c53878fd849ece897c.tar.xz olio-uboot-2014.01-3786980dd3f28960947084c53878fd849ece897c.zip | |
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>
| -rw-r--r-- | common/bootstage.c | 17 | ||||
| -rw-r--r-- | include/bootstage.h | 7 | ||||
| -rw-r--r-- | include/common.h | 7 | ||||
| -rw-r--r-- | lib/time.c | 17 | 
4 files changed, 24 insertions, 24 deletions
| diff --git a/common/bootstage.c b/common/bootstage.c index d2bbe635e..4e01d9207 100644 --- a/common/bootstage.c +++ b/common/bootstage.c @@ -156,3 +156,20 @@ void bootstage_report(void)  			"- please increase CONFIG_BOOTSTAGE_USER_COUNT\n",  		       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"))); diff --git a/include/bootstage.h b/include/bootstage.h index 06ab2c8ef..a00053888 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -204,6 +204,13 @@ enum bootstage_id {  };  /* + * 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.   *   * @param val	Progress state (enum bootstage_id), or -id if an error diff --git a/include/common.h b/include/common.h index 74d97046a..4b5841ef4 100644 --- a/include/common.h +++ b/include/common.h @@ -207,13 +207,6 @@ typedef void (interrupt_handler_t)(void *);  #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   */  #define min(X, Y)				\ diff --git a/lib/time.c b/lib/time.c index 69edc3d39..6e2937b8e 100644 --- a/lib/time.c +++ b/lib/time.c @@ -47,20 +47,3 @@ void mdelay(unsigned long msec)  	while (msec--)  		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"))); |