diff options
author | William Bryan <wilbryan@us.ibm.com> | 2017-07-18 14:09:50 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-07-28 12:02:47 -0400 |
commit | 856bfc17f3129eb8b011b4299f92d7c5851bda24 (patch) | |
tree | 7aec881208d3b88834d7f9b5a4a028d741c736bd /src/occ_gpe0 | |
parent | 458a99921f4ed89d145d267ba837eb3228909d06 (diff) | |
download | talos-occ-856bfc17f3129eb8b011b4299f92d7c5851bda24.tar.gz talos-occ-856bfc17f3129eb8b011b4299f92d7c5851bda24.zip |
Add pointers to GPE trace buffers
Change-Id: Ia313e9d7bddde3b61b8f7fc2319e4583843b9549
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43284
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@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/core_data.c | 2 | ||||
-rw-r--r-- | src/occ_gpe0/gpe0_main.c | 7 | ||||
-rw-r--r-- | src/occ_gpe0/gpe_core_data.c | 12 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/occ_gpe0/core_data.c b/src/occ_gpe0/core_data.c index 0ac8376..7dcb613 100644 --- a/src/occ_gpe0/core_data.c +++ b/src/occ_gpe0/core_data.c @@ -54,7 +54,7 @@ uint32_t get_core_data(uint32_t i_core, // rc == 1 resource occupied (see ppe42_scom.h) Action: return with rc // rc == 2 Core is fenced, offline Action: return with rc // rc == 3 partial good - // rc == 4 address error + // rc == 4 address error (Can be caused by other device using bus) // rc == 5 clock error // rc == 6 packet error // rc == 7 timeout diff --git a/src/occ_gpe0/gpe0_main.c b/src/occ_gpe0/gpe0_main.c index 1eb227a..2962d60 100644 --- a/src/occ_gpe0/gpe0_main.c +++ b/src/occ_gpe0/gpe0_main.c @@ -30,6 +30,7 @@ /// an example of how to add traces to the code. #include "pk.h" +#include "pk_trace.h" #include "ipc_api.h" #include "ipc_ping.h" #include "gpe_export.h" @@ -47,6 +48,8 @@ PkThread G_main_thread; gpe_shared_data_t * G_gpe_shared_data = (gpe_shared_data_t*) GPE_SHARED_DATA_ADDR; +extern PkTraceBuffer* g_pk_trace_buf_ptr; + //statically initialize a ping command message IPC_PING_CMD_CREATE(G_ping_cmd); @@ -83,6 +86,10 @@ int main(int argc, char **argv) l_timebase = PPE_TIMEBASE_HZ; } + // Mark the location of the trace buffer in shared data + G_gpe_shared_data->gpe0_tb_ptr = (uint32_t) g_pk_trace_buf_ptr; + G_gpe_shared_data->gpe0_tb_sz = sizeof(PkTraceBuffer); + // initializes kernel data (stack, threads, timebase, timers, etc.) pk_initialize((PkAddress)G_kernel_stack, KERNEL_STACK_SIZE, diff --git a/src/occ_gpe0/gpe_core_data.c b/src/occ_gpe0/gpe_core_data.c index d8f6983..0911a49 100644 --- a/src/occ_gpe0/gpe_core_data.c +++ b/src/occ_gpe0/gpe_core_data.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -50,15 +50,19 @@ void gpe_get_core_data(ipc_msg_t* cmd, void* arg) uint32_t rc; // return code ipc_async_cmd_t *async_cmd = (ipc_async_cmd_t*)cmd; ipc_core_data_parms_t *args = (ipc_core_data_parms_t*) async_cmd->cmd_data; - + static uint32_t L_trace = 0; rc = get_core_data(args->core_num, // core ID args->data); // CoreData* if(rc) { - PK_TRACE("gpe_get_core_data: get_core_data failed, rc = 0x%08x, core = 0x%08x", - rc, args->core_num); + if( !(L_trace & (1 << args->core_num)) ) + { + PK_TRACE("gpe_get_core_data: get_core_data failed, rc = 0x%08x, core = 0x%08x", + rc, args->core_num); + L_trace |= (1 << args->core_num); + } gpe_set_ffdc(&(args->error), args->core_num, GPE_RC_GET_CORE_DATA_FAILED, rc); } |