summaryrefslogtreecommitdiff
path: root/src/soc/nvidia/tegra124/monotonic_timer.c
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2013-10-06 10:54:53 -0700
committerIsaac Christensen <isaac.christensen@se-eng.com>2014-08-12 23:18:52 +0200
commiteb623ab2044f77648658f4b0763616f5e1bea57a (patch)
treededbd31f12fe912c899e7c736a3ff9eac0dc41c2 /src/soc/nvidia/tegra124/monotonic_timer.c
parent59ebc6e919b22595a0047d63d70db915f41ae871 (diff)
downloadcoreboot-eb623ab2044f77648658f4b0763616f5e1bea57a.tar.xz
tegra124: Implement the monotonic timer by reading the 1us timer register.
It turns out there's a register in tegra which automatically counts at 1us increments. It's primarily intended for hardware to use (I think to drive other timers) but we can read it ourselves since a 1us timer is exactly what we need to support the monotonic timer API. Change-Id: I68e947944acec7b460e61f42dbb325643a9739e8 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://chromium-review.googlesource.com/172044 Reviewed-by: Ronald Minnich <rminnich@chromium.org> Reviewed-by: David Hendricks <dhendrix@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org> (cherry picked from commit 161a39c53404ea0125221bbd54e54996967d6855) Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> Reviewed-on: http://review.coreboot.org/6620 Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/soc/nvidia/tegra124/monotonic_timer.c')
-rw-r--r--src/soc/nvidia/tegra124/monotonic_timer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/soc/nvidia/tegra124/monotonic_timer.c b/src/soc/nvidia/tegra124/monotonic_timer.c
index 3423dde3f5..7967b83bef 100644
--- a/src/soc/nvidia/tegra124/monotonic_timer.c
+++ b/src/soc/nvidia/tegra124/monotonic_timer.c
@@ -17,8 +17,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <arch/io.h>
+#include <soc/addressmap.h>
#include <timer.h>
void timer_monotonic_get(struct mono_time *mt)
{
+ mono_time_set_usecs(mt, read32((void *)TEGRA_TMRUS_BASE));
}