diff options
author | William Bryan <wilbryan@us.ibm.com> | 2016-09-14 17:06:18 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2016-09-29 18:34:10 -0400 |
commit | 97426a94d4d583a7ae6dca406462d52b2aff7660 (patch) | |
tree | 2b178882f5b202f9202bf9e347c82f8f1f94dc1a /src/occ_gpe0 | |
parent | a57f623c26bdf3889703ed63334745c966c6096d (diff) | |
download | talos-occ-97426a94d4d583a7ae6dca406462d52b2aff7660.tar.gz talos-occ-97426a94d4d583a7ae6dca406462d52b2aff7660.zip |
Collect Nest DTS Average
RTC:133842
Change-Id: I565a6f2e848652b7eddd3b319f9c3a411913074a
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29804
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_gpe0')
-rw-r--r-- | src/occ_gpe0/gpe_core_data.c | 50 | ||||
-rw-r--r-- | src/occ_gpe0/ipc_func_tables.c | 5 |
2 files changed, 49 insertions, 6 deletions
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(); + } +} diff --git a/src/occ_gpe0/ipc_func_tables.c b/src/occ_gpe0/ipc_func_tables.c index 7b4c8a1..d5085ff 100644 --- a/src/occ_gpe0/ipc_func_tables.c +++ b/src/occ_gpe0/ipc_func_tables.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015 */ +/* Contributors Listed Below - COPYRIGHT 2015,2016 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -33,6 +33,7 @@ void apss_start_pwr_meas_read(ipc_msg_t* cmd, void* arg); void apss_continue_pwr_meas_read(ipc_msg_t* cmd, void* arg); void apss_complete_pwr_meas_read(ipc_msg_t* cmd, void* arg); void gpe_get_core_data(ipc_msg_t* cmd, void* arg); +void gpe_get_nest_dts(ipc_msg_t* cmd, void* arg); void ipc_scom_operation(ipc_msg_t* cmd, void* arg); @@ -69,7 +70,7 @@ IPC_HANDLER(apss_complete_pwr_meas_read, 0) // 5 - IPC_ST_APSS_COMPLETE_PWR_MEA IPC_HANDLER(gpe_get_core_data, 0) // 6 - IPC_ST_GET_CORE_DATA_FUNCID IPC_HANDLER(ipc_scom_operation, 0) // 7 - IPC_ST_SCOM_OPERATION IPC_HANDLER(gpe0_nop, 0) // 8 - IPC_ST_GPE0_NOP -IPC_HANDLER_DEFAULT // 9 +IPC_HANDLER(gpe_get_nest_dts, 0) // 9 - IPC_ST_GET_NEST_DTS_FUNCID IPC_HANDLER_DEFAULT // 10 IPC_HANDLER_DEFAULT // 11 IPC_HANDLER_DEFAULT // 12 |