diff options
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); } |