[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [RFC PATCH v2 2/2] correct wall time for arm64



Currently, as no rtc device enabled, wrong wall time will be
return.
After rtc pl031 enabled, the correct wall time will be offered.

Signed-off-by: Jianyong Wu <jianyong.wu@xxxxxxx>
---
 plat/common/arm/generic_timer.c |  3 ++-
 plat/common/arm/time.c          | 12 ++++++++++++
 plat/common/include/arm/time.h  |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/plat/common/arm/generic_timer.c b/plat/common/arm/generic_timer.c
index 59e53f1..5c3c308 100644
--- a/plat/common/arm/generic_timer.c
+++ b/plat/common/arm/generic_timer.c
@@ -32,6 +32,7 @@
  * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
  */
 #include <stdlib.h>
+#include <rtc.h>
 #include <uk/assert.h>
 #include <uk/plat/time.h>
 #include <uk/plat/lcpu.h>
@@ -198,7 +199,7 @@ static inline __nsec generic_timer_monotonic(void)
  */
 static inline uint64_t generic_timer_epochoffset(void)
 {
-       return 0;
+       return rtc_gettimeofday();
 }
 
 /*
diff --git a/plat/common/arm/time.c b/plat/common/arm/time.c
index 46407af..d2b4701 100644
--- a/plat/common/arm/time.c
+++ b/plat/common/arm/time.c
@@ -33,6 +33,7 @@
  */
 #include <stdlib.h>
 #include <libfdt.h>
+#include <rtc.h>
 #include <ofw/fdt.h>
 #include <uk/assert.h>
 #include <uk/plat/time.h>
@@ -105,6 +106,17 @@ void time_block_until(__snsec until)
        }
 }
 
+__snsec rtc_gettimeofday(void)
+{
+#ifdef CONFIG_RTC_PL031
+       uint64_t ret;
+
+       ret = rtc_boot_seconds * 1000000000UL;
+
+       return ret;
+#endif
+       return 0;
+}
 /* must be called before interrupts are enabled */
 void ukplat_time_init(void)
 {
diff --git a/plat/common/include/arm/time.h b/plat/common/include/arm/time.h
index 3288d2b..5cdf2fb 100644
--- a/plat/common/include/arm/time.h
+++ b/plat/common/include/arm/time.h
@@ -21,5 +21,6 @@ int generic_timer_init(int fdt_timer);
 int generic_timer_irq_handler(void *arg __unused);
 void generic_timer_cpu_block_until(uint64_t until_ns);
 void generic_timer_update_boot_ticks(void);
+__snsec rtc_gettimeofday(void);
 
 #endif /* __ARM_ARM_TIME_H */
-- 
2.17.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.