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)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 15 Nov 2021 11:02:48 +0000 (12:02 +0100)
This reverts commit c87dc38d8f860710f5f624d9dae6cefded285b8d.
(This revert is workaround.)

Change-Id: I8febf78aa41f1124775359278380fbb35d9dcc4b

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

index 48636ab63919b1143f848c66826e035c455807d8..8a3883ba4be6baff272d412ff99d9c6eaded748c 100644 (file)
@@ -330,14 +330,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 462110568211e57b0f87f96636edfe42cf010f55..43e856d3595c273a55a487c113475fca403f5d3a 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
  */
 
 #define LOG_CATEGORY   LOGC_BOOT
@@ -365,6 +367,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 f837a387c8c75fa4df4968c6557f511720f734e8..18d94349eb57d222ea239babdc72a0bf7008953c 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.
  */
@@ -216,7 +215,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);