Skip to contentSkip to conversation

Move bootstage timer out of lib/time.c

PATCH New Simon Glass 3 participants 3 messages Apr 5, 2012 – Apr 10, 2012 Library code

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 common/bootstage.c  |   17 +++++++++++++++++
 include/bootstage.h |    7 +++++++
 include/common.h    |    7 -------
 lib/time.c          |   17 -----------------
 4 files changed, 24 insertions(+), 24 deletions(-)
common/bootstage.c +17 -0
index d2bbe63..4e01d92 100644
@@ -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")));
include/bootstage.h +7 -0
index 06ab2c8..a000538 100644
@@ -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
include/common.h +0 -7
index 74d9704..4b5841e 100644
@@ -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)				\
lib/time.c +0 -17
index 69edc3d..6e2937b 100644
@@ -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")));
Signature · 1 line
1.7.7.3
#1 lore raw

PATCH 1/1 Move bootstage timer out of lib/time.c

Hi Simon,

Quoted 8 lines · Simon Glass

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.

This fixes as expected the currently broken PMC440 board support.

Matthias

#2 lore raw

PATCH 1/1 Move bootstage timer out of lib/time.c

In reply to Simon Glass
Quoted 7 lines · On Thu, 5 Apr 2012 15:05:17 -0700 Simon Glass <[email protected]> wrote:

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.

Quoted 7 lines
---
 common/bootstage.c  |   17 +++++++++++++++++
 include/bootstage.h |    7 +++++++
 include/common.h    |    7 -------
 lib/time.c          |   17 -----------------
 4 files changed, 24 insertions(+), 24 deletions(-)

Applied to u-boot-staging/agust at denx.de.

Thanks,
Anatolij