From 97426a94d4d583a7ae6dca406462d52b2aff7660 Mon Sep 17 00:00:00 2001 From: William Bryan Date: Wed, 14 Sep 2016 17:06:18 -0500 Subject: Collect Nest DTS Average RTC:133842 Change-Id: I565a6f2e848652b7eddd3b319f9c3a411913074a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29804 Tested-by: FSP CI Jenkins Reviewed-by: Martha Broyles Reviewed-by: William A. Bryan --- src/occ_gpe0/gpe_core_data.c | 50 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) (limited to 'src/occ_gpe0/gpe_core_data.c') diff --git a/src/occ_gpe0/gpe_core_data.c b/src/occ_gpe0/gpe_core_data.c index d4b56c5..d8f6983 100644 --- a/src/occ_gpe0/gpe_core_data.c +++ b/src/occ_gpe0/gpe_core_data.c @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/occ_gpe0/core_data.c $ */ +/* $Source: src/occ_gpe0/gpe_core_data.c $ */ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015 */ +/* Contributors Listed Below - COPYRIGHT 2015,2016 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -28,6 +28,7 @@ #include "gpe_err.h" #include "gpe_util.h" #include "proc_shared.h" +#include "nest_dts.h" /* * Function Specifications: @@ -44,8 +45,6 @@ * * End Function Specification */ - - void gpe_get_core_data(ipc_msg_t* cmd, void* arg) { uint32_t rc; // return code @@ -74,3 +73,46 @@ void gpe_get_core_data(ipc_msg_t* cmd, void* arg) } } + + +/* + * Function Specifications: + * + * Name: gpe_get_nest_dts + * + * Description: Get the 3 NEST DTS sensor readings + * + * Inputs: cmd is a pointer to IPC msg's cmd and cmd_data struct + * + * Outputs: error: sets rc, address, and ffdc in the cmd_data's + * GpeErrorStruct + * + * End Function Specification + */ +void gpe_get_nest_dts(ipc_msg_t* cmd, void* arg) +{ + uint32_t rc; // return code + ipc_async_cmd_t *async_cmd = (ipc_async_cmd_t*)cmd; + ipc_nest_dts_parms_t *args = (ipc_nest_dts_parms_t*) async_cmd->cmd_data; + + args->error.error = 0; + args->error.ffdc = 0; + + rc = get_nest_dts(&args->data); // NestDts_t* + + if(rc) + { + PK_TRACE("gpe_get_nest_dts: get_nest_dts failed, rc = 0x%08x", rc); + gpe_set_ffdc(&(args->error), 0x00, + GPE_RC_GET_NEST_DTS_FAILED, rc); + } + + // send back a response, IPC success even if ffdc/rc are non zeros + rc = ipc_send_rsp(cmd, IPC_RC_SUCCESS); + if(rc) + { + PK_TRACE("gpe_get_nest_dts: Failed to send response back. Halting GPE0", rc); + gpe_set_ffdc(&(args->error), 0x00, GPE_RC_IPC_SEND_FAILED, rc); + pk_halt(); + } +} -- cgit v1.2.1