diff options
author | Prachi Gupta <pragupta@us.ibm.com> | 2017-07-17 17:43:01 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-07-21 17:51:40 -0400 |
commit | b796b12052f5542945bf6d1a831f8d67a502a0ef (patch) | |
tree | c3eb6825606ce714b5d020b1092c5d6c05d06027 /src/occ_405/main.c | |
parent | 3d71bd95e10f82ae2a96e6ebc929dc2ca7b1b63c (diff) | |
download | talos-occ-b796b12052f5542945bf6d1a831f8d67a502a0ef.tar.gz talos-occ-b796b12052f5542945bf6d1a831f8d67a502a0ef.zip |
rt_xstop_analysis: single proc fir collection is working, without pnor writes
Change-Id: Ib49d3b9d52c8f4e1054e9b0c0d609a6e13908ddb
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43245
Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/main.c')
-rwxr-xr-x | src/occ_405/main.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/occ_405/main.c b/src/occ_405/main.c index 9ebccc5..0298ab4 100755 --- a/src/occ_405/main.c +++ b/src/occ_405/main.c @@ -152,6 +152,9 @@ SSX_IRQ_FAST2FULL(pmc_hw_error_fast, pmc_hw_error_isr); FIR_HEAP_BUFFER(uint8_t G_fir_heap[FIR_HEAP_SECTION_SIZE]); FIR_PARMS_BUFFER(uint8_t G_fir_data_parms[FIR_PARMS_SECTION_SIZE]); uint32_t G_fir_master = FIR_OCC_NOT_FIR_MASTER; +bool G_fir_collection_request_created = FALSE; +GPE_BUFFER(ipc_scom_op_t G_scom_op); +GpeRequest G_fir_collection_request; /* * Function Specification @@ -1687,6 +1690,8 @@ void Main_thread_routine(void *private) dcache_flush(g_trac_err_buffer, TRACE_BUFFER_SIZE); static bool L_fir_collection_completed = FALSE; + uint32_t l_rc = 0; + // Look for FIR collection flag and status if (G_fir_collection_required && !L_fir_collection_completed) { @@ -1695,12 +1700,29 @@ void Main_thread_routine(void *private) // FIR collection if (OCC_IS_FIR_MASTER()) { -// fir_data_collect(); - L_fir_collection_completed = TRUE; + //Need to schedule a task on GPE to start fir collection + if(!G_fir_collection_request_created) //Only need to create request once + { + TRAC_IMP("fir data collection: creating gpe request"); + l_rc = gpe_request_create(&G_fir_collection_request,//Request + &G_async_gpe_queue0, //Queue + IPC_ST_FIR_COLLECTION, //Function ID + NULL, //GPE arguments + SSX_SECONDS(5), //Timeout + NULL, //Callback function + NULL, //Callback args + ASYNC_REQUEST_BLOCKING); //Options + if(l_rc == 0) + { + G_fir_collection_request_created = TRUE; + TRAC_IMP("fir data collection: scheduling gpe request"); + gpe_request_schedule(&G_fir_collection_request); + L_fir_collection_completed = TRUE; + G_fir_collection_required = FALSE; + } + } } - TRAC_IMP("fir data collection done"); - G_fir_collection_required = FALSE; // Error reporting is skipped while FIR collection is required so we // don't get reset in flight. If anyone is listening send the // error alert now. @@ -1710,6 +1732,7 @@ void Main_thread_routine(void *private) { notify_host(INTR_REASON_HTMGT_SERVICE_REQUIRED); } + TRAC_IMP("fir data collection done"); } if( l_ssxrc == SSX_OK) |