summaryrefslogtreecommitdiffstats
path: root/src/occ_405/main.c
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2017-07-17 17:43:01 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-07-21 17:51:40 -0400
commitb796b12052f5542945bf6d1a831f8d67a502a0ef (patch)
treec3eb6825606ce714b5d020b1092c5d6c05d06027 /src/occ_405/main.c
parent3d71bd95e10f82ae2a96e6ebc929dc2ca7b1b63c (diff)
downloadtalos-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-xsrc/occ_405/main.c31
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)
OpenPOWER on IntegriCloud