summaryrefslogtreecommitdiffstats
path: root/src/occ_405/rtls
diff options
context:
space:
mode:
authorShawn McCarney <shawnmm@us.ibm.com>2017-07-12 16:19:54 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-08-02 16:28:58 -0400
commit9b64b7c93ac21aaac19c98eda502ad00b1454120 (patch)
tree91302fdf03eb18d6995bbb9776e82c5765064761 /src/occ_405/rtls
parent2c6661b3dcabd0aa3a69c3aeb34c760638da4064 (diff)
downloadtalos-occ-9b64b7c93ac21aaac19c98eda502ad00b1454120.tar.gz
talos-occ-9b64b7c93ac21aaac19c98eda502ad00b1454120.zip
Timestamp data when collected
This commit contains the following enhancements: * New IPC function that runs on GPE0 to read the TOD (Time Of Day) registers * New task on the OCC 405 that gets current TOD every tick via IPC function * Sensor update function now sets timestamp to current TOD value Change-Id: I0ea42b01e4df7a93633a68a0f3ed0f839d5e7b3f RTC: 176504 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43891 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_405/rtls')
-rwxr-xr-xsrc/occ_405/rtls/rtls.h1
-rwxr-xr-xsrc/occ_405/rtls/rtls_tables.c21
2 files changed, 21 insertions, 1 deletions
diff --git a/src/occ_405/rtls/rtls.h b/src/occ_405/rtls/rtls.h
index 2b8fbae..899d44a 100755
--- a/src/occ_405/rtls/rtls.h
+++ b/src/occ_405/rtls/rtls.h
@@ -62,6 +62,7 @@ typedef enum {
TASK_ID_NEST_DTS,
TASK_ID_24X7, // 24x7 data collection task
TASK_ID_GPE_TIMINGS,
+ TASK_ID_GET_TOD, // Get time of day task
TASK_END // This must always be the last enum in this list,
// so that TASK_END always equals the last task ID + 1.
} task_id_t;
diff --git a/src/occ_405/rtls/rtls_tables.c b/src/occ_405/rtls/rtls_tables.c
index 2f67e5c..eb439cf 100755
--- a/src/occ_405/rtls/rtls_tables.c
+++ b/src/occ_405/rtls/rtls_tables.c
@@ -37,6 +37,7 @@
#include "amec_sensors_fw.h"
#include "dimm.h"
#include <common.h>
+#include "sensor_get_tod_task.h" // For task_get_tod()
//flags for task table
#define APSS_TASK_FLAGS RTL_FLAG_MSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_RUN
@@ -62,8 +63,9 @@
#define FLAGS_AMEC_SLAVE RTL_FLAG_MSTR | RTL_FLAG_NOTMSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_NO_APSS | RTL_FLAG_RUN | RTL_FLAG_APSS_NOT_INITD
#define FLAGS_AMEC_MASTER RTL_FLAG_MSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_NO_APSS | RTL_FLAG_RUN | RTL_FLAG_APSS_NOT_INITD
-#define FLAGS_24X7 RTL_FLAG_MSTR | RTL_FLAG_NOTMSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_NO_APSS | RTL_FLAG_RUN | RTL_FLAG_APSS_NOT_INITD
+#define FLAGS_24X7 RTL_FLAG_MSTR | RTL_FLAG_NOTMSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_NO_APSS | RTL_FLAG_RUN | RTL_FLAG_APSS_NOT_INITD
+#define FLAGS_GET_TOD RTL_FLAG_MSTR | RTL_FLAG_NOTMSTR | RTL_FLAG_OBS | RTL_FLAG_ACTIVE | RTL_FLAG_MSTR_READY | RTL_FLAG_NO_APSS | RTL_FLAG_RUN | RTL_FLAG_APSS_NOT_INITD
#define FLAGS_APSS_START_MEAS APSS_TASK_FLAGS
#define FLAGS_APSS_CONT_MEAS APSS_TASK_FLAGS
@@ -127,10 +129,12 @@ task_t G_task_table[TASK_END] = {
{ FLAGS_NEST_DTS, task_nest_dts, NULL },
{ FLAGS_24X7, task_24x7, NULL }, // TASK_ID_24X7
{ FLAGS_GPE_TIMINGS, task_gpe_timings, NULL }, // TASK_ID_GPE_TIMINGS
+ { FLAGS_GET_TOD, task_get_tod, NULL }, // TASK_ID_GET_TOD
};
const uint8_t G_tick0_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -153,6 +157,7 @@ const uint8_t G_tick0_seq[] = {
const uint8_t G_tick1_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
@@ -175,6 +180,7 @@ const uint8_t G_tick1_seq[] = {
const uint8_t G_tick2_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -197,6 +203,7 @@ const uint8_t G_tick2_seq[] = {
const uint8_t G_tick3_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_NEST_DTS,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
@@ -219,6 +226,7 @@ const uint8_t G_tick3_seq[] = {
const uint8_t G_tick4_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -241,6 +249,7 @@ const uint8_t G_tick4_seq[] = {
const uint8_t G_tick5_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
@@ -263,6 +272,7 @@ const uint8_t G_tick5_seq[] = {
const uint8_t G_tick6_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -285,6 +295,7 @@ const uint8_t G_tick6_seq[] = {
const uint8_t G_tick7_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
TASK_ID_CORE_DATA_HIGH,
@@ -306,6 +317,7 @@ const uint8_t G_tick7_seq[] = {
const uint8_t G_tick8_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -328,6 +340,7 @@ const uint8_t G_tick8_seq[] = {
const uint8_t G_tick9_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
@@ -350,6 +363,7 @@ const uint8_t G_tick9_seq[] = {
const uint8_t G_tick10_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -372,6 +386,7 @@ const uint8_t G_tick10_seq[] = {
const uint8_t G_tick11_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
TASK_ID_CORE_DATA_HIGH,
@@ -393,6 +408,7 @@ const uint8_t G_tick11_seq[] = {
const uint8_t G_tick12_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -415,6 +431,7 @@ const uint8_t G_tick12_seq[] = {
const uint8_t G_tick13_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
@@ -437,6 +454,7 @@ const uint8_t G_tick13_seq[] = {
const uint8_t G_tick14_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
TASK_ID_CORE_DATA_LOW,
TASK_ID_DIMM_SM,
TASK_ID_APSS_CONT,
@@ -459,6 +477,7 @@ const uint8_t G_tick14_seq[] = {
const uint8_t G_tick15_seq[] = {
TASK_ID_APSS_START,
+ TASK_ID_GET_TOD,
//TASK_ID_GPU_SM,
TASK_ID_APSS_CONT,
TASK_ID_CORE_DATA_HIGH,
OpenPOWER on IntegriCloud