return 0;
}
-
-ulong timer_get_boot_us(void)
-{
- static uint64_t base_count;
- uint64_t count = os_get_nsec();
-
- if (!base_count)
- base_count = count;
-
- return (count - base_count) / 1000;
-}
/*
* This module records the progress of boot and arbitrary commands, and
* permits accurate timestamping of each.
+ *
+ * TBD: Pass timings to kernel in the FDT
*/
#include <common.h>
}
}
+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")));
+
/**
* Append data to a memory buffer
*
* This file implements recording of each stage of the boot process. It is
* intended to implement timing of each stage, reporting this information
* to the user and passing it to the OS for logging / further analysis.
- * Note that it requires timer_get_boot_us() to be defined by the board
*
* Copyright (c) 2011 The Chromium OS Authors.
*/
/*
* 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
- * you will get a link error.
+ * millisecond resolution will be used (the standard get_timer()).
*/
ulong timer_get_boot_us(void);