Revert "bootstage: Require timer_get_boot_us() to be defined"
authorJaehoon Chung <jh80.chung@samsung.com>
Thu, 3 May 2018 07:22:20 +0000 (16:22 +0900)
committerJaehoon Chung <jh80.chung@samsung.com>
Thu, 10 Oct 2019 04:38:40 +0000 (13:38 +0900)
This reverts commit c87dc38d8f860710f5f624d9dae6cefded285b8d.
(This revert is workaround.)

Change-Id: I8febf78aa41f1124775359278380fbb35d9dcc4b

arch/sandbox/cpu/cpu.c
common/bootstage.c
include/bootstage.h

index fdfb209..0f83480 100644 (file)
@@ -277,14 +277,3 @@ done:
 
        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;
-}
index 56ef91a..a8ce419 100644 (file)
@@ -7,6 +7,8 @@
 /*
  * 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>
@@ -343,6 +345,23 @@ void bootstage_report(void)
        }
 }
 
+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
  *
index 5e7e242..91acbac 100644 (file)
@@ -3,7 +3,6 @@
  * 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.
  */
@@ -209,7 +208,7 @@ 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
- * you will get a link error.
+ * millisecond resolution will be used (the standard get_timer()).
  */
 ulong timer_get_boot_us(void);