summaryrefslogtreecommitdiffstats
path: root/src/occ/proc/test/main.c
diff options
context:
space:
mode:
authorFadi Kassem <fmkassem@us.ibm.com>2014-12-09 18:49:57 -0600
committerStephan Broyles <sbroyles@us.ibm.com>2014-12-10 09:34:37 -0600
commitc76114bbb31fb460672af61393678f721120aceb (patch)
tree002847ee445b9ff8c22bf38133645ccebe443291 /src/occ/proc/test/main.c
parent539d631fd028e4806b424fd51e5adffa3db2cab3 (diff)
downloadtalos-occ-c76114bbb31fb460672af61393678f721120aceb.tar.gz
talos-occ-c76114bbb31fb460672af61393678f721120aceb.zip
OCC cleanup; removed doxyfile, cleaned proc component.
Change-Id: I2ca003680d287ffc2e41a304cdf94216f3c3a3a9 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14822 Reviewed-by: Stephan Broyles <sbroyles@us.ibm.com> Tested-by: Stephan Broyles <sbroyles@us.ibm.com>
Diffstat (limited to 'src/occ/proc/test/main.c')
-rwxr-xr-xsrc/occ/proc/test/main.c247
1 files changed, 74 insertions, 173 deletions
diff --git a/src/occ/proc/test/main.c b/src/occ/proc/test/main.c
index 1a18808..67c0bda 100755
--- a/src/occ/proc/test/main.c
+++ b/src/occ/proc/test/main.c
@@ -1,35 +1,29 @@
-/******************************************************************************
-// @file main.c
-// @brief OCC PROC TEST MAIN
-*/
-/******************************************************************************
- *
- * @page ChangeLogs Change Logs
- * @section _main_c main.c
- * @verbatim
- *
- * Flag Def/Fea Userid Date Description
- * ------- ---------- -------- ---------- ----------------------------------
- * nguyenp 10/03/2011 Created
- * To run the test, first need to enable
- * the PROC_DBG define in proc_data.h and
- * replace this main.c in occ
- * directory with this main.c
- * @pb00A pbavari 11/15/2011 changed name from APSS_SUPPORT to
- * OCC_ALONE_SIMICS
- * @dw000 dwoodham 12/12/2011 Update call to IMAGE_HEADER
- * @rc003 rickylie 02/03/2012 Verify & Clean Up OCC Headers & Comments
- * @nh001 neilhsu 05/23/2012 Add missing error log tags
- * @fk003 907687 fmkassem 11/25/2013 Fix name of extended reason code
- * @wb001 919163 wilbryan 03/06/2014 Updating error call outs, descriptions, and severities
- *
- * @endverbatim
- *
- *///*************************************************************************/
-
- //*************************************************************************
-// Includes
-//*************************************************************************
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/occ/proc/test/main.c $ */
+/* */
+/* OpenPOWER OnChipController Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2011,2014 */
+/* [+] Google Inc. */
+/* [+] International Business Machines Corp. */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+
#include "ssx.h"
#include "ssx_io.h"
#include "simics_stdio.h"
@@ -37,43 +31,21 @@
#include <threadSch.h>
#include <errl.h>
#include <apss.h>
-#include <appletManager.h>
-#include <trac.h>
-#include <occ_service_codes.h>
-#include <occ_sys_config.h>
+#include <appletManager.h>
+#include <trac.h>
+#include <occ_service_codes.h>
+#include <occ_sys_config.h>
#include <proc_data.h>
-#include <timer.h>
-#include <dcom.h>
+#include <timer.h>
+#include <dcom.h>
#include <rtls.h>
-//*************************************************************************
-// Externs
-//*************************************************************************
extern void __ssx_boot;
-//*************************************************************************
-// Image Header
-//*************************************************************************
-// @dw000c
IMAGE_HEADER (G_mainAppImageHdr,__ssx_boot,MAIN_APP_ID,OCC_APLT_TEST);
-//*************************************************************************
-// Macros
-//*************************************************************************
-
-//*************************************************************************
-// Defines/Enums
-//*************************************************************************
-/// Period in which to run #timer_routine
-#define TIMER_INTERVAL (SsxInterval) SSX_MICROSECONDS(5000)
-
-//*************************************************************************
-// Structures
-//*************************************************************************
-
-//*************************************************************************
-// Globals
-//*************************************************************************
+// Period in which to run #timer_routine
+#define TIMER_INTERVAL (SsxInterval) SSX_MICROSECONDS(5000)
int g_j = 0;
int g_k = 0;
@@ -81,29 +53,15 @@ int g_k = 0;
SimicsStdio simics_stdout;
SimicsStdio simics_stderr;
-/*----------------------------------------------------------------------------*/
-/* Critical/Non-Critical stack */
-/*----------------------------------------------------------------------------*/
-
uint8_t noncritical_stack[NONCRITICAL_STACK_SIZE];
uint8_t critical_stack[CRITICAL_STACK_SIZE];
-//*************************************************************************
-// Function Prototypes
-//*************************************************************************
-
-//*************************************************************************
-// Functions
-//*************************************************************************
-
// Function Specification
//
-// Name: pgp_validation_ssx_main_hook
+// Name: pgp_validation_ssx_main_hook
//
// Description:
//
-// Flow: FN=None
-//
// End Function Specification
void pgp_validation_ssx_main_hook(void)
{
@@ -112,12 +70,10 @@ void pgp_validation_ssx_main_hook(void)
// Function Specification
//
-// Name: Cmd_Hndl_thread_routine
+// Name: Cmd_Hndl_thread_routine
//
// Description:
//
-// Flow: FN=None
-//
// End Function Specification
void Cmd_Hndl_thread_routine(void *arg)
{
@@ -126,12 +82,10 @@ void Cmd_Hndl_thread_routine(void *arg)
// Function Specification
//
-// Name: Thermal_Monitor_thread_routine
+// Name: Thermal_Monitor_thread_routine
//
// Description:
//
-// Flow: FN=None
-//
// End Function Specification
void Thermal_Monitor_thread_routine(void *arg)
{
@@ -140,12 +94,10 @@ void Thermal_Monitor_thread_routine(void *arg)
// Function Specification
//
-// Name: Hlth_Monitor_thread_routine
+// Name: Hlth_Monitor_thread_routine
//
// Description:
//
-// Flow: FN=None
-//
// End Function Specification
void Hlth_Monitor_thread_routine(void *arg)
{
@@ -154,11 +106,9 @@ void Hlth_Monitor_thread_routine(void *arg)
// Function Specification
//
-// Name: FFDC_thread_routine
+// Name: FFDC_thread_routine
//
// Description:
-//
-// Flow: FN=None
//
// End Function Specification
void FFDC_thread_routine(void *arg)
@@ -168,11 +118,9 @@ void FFDC_thread_routine(void *arg)
// Function Specification
//
-// Name: get_core_info
+// Name: get_core_info
//
// Description:
-//
-// Flow: FN=None
//
// End Function Specification
void get_core_info()
@@ -186,28 +134,20 @@ void get_core_info()
l_deconfigured_cores = in32(PMC_CORE_DECONFIGURATION_REG);
PROC_DEBUG( "Deconfigured cores in the chip [0x%x]\n", l_deconfigured_cores);
-
+
l_configured_cores = ~l_deconfigured_cores & ALL_CORES_MASK;
PROC_DEBUG( "Configured cores in the chip [0x%x]\n", l_configured_cores);
return;
}
-/** Main Thread
- *
- * This thread currently just loops as the lowest priority thread, handling
- * the lowest priority tasks.
- *
- */
// Function Specification
//
-// Name: main_thread_routine
+// Name: main_thread_routine
//
// Description: This thread currently just loops as the lowest priority thread, handling
// the lowest priority tasks.
//
-// Flow: FN=None
-//
// End Function Specification
void main_thread_routine(void *private)
{
@@ -220,18 +160,12 @@ void main_thread_routine(void *private)
int l_ssxrc = 0;
// Start the critical 250uS timer
- //ssx_timer_schedule(&timer, 1, TIMER_INTERVAL);
+ //ssx_timer_schedule(&timer, 1, TIMER_INTERVAL);
// Initialize applet semaphore
l_ssxrc = ssx_semaphore_create(&l_appletComplete, 0, 1);
- // Initialize APSS // @cc000a
- //$pb005a - ifdef apss_initialize call temporary
- // until Bishop's simics model and Steve's simics model
- // are synced. Bishop's model does not have apss support
- // Steve's model does not have latest changes Bishop
- // made for ssx. To make latest svn code usable for testing
- // ifdef apss_initialize call
+ // Initialize APSS
#ifdef OCC_ALONE_SIMICS
l_rc = runApplet(OCC_APLT_APSS_INIT, // Applet enum Name
NULL, // Applet arguments
@@ -280,20 +214,14 @@ void main_thread_routine(void *private)
}
-/** Entry point for OCC execution
- *
- * main() currently initalizes our trace buffer along with creating threads
- * and timers for execution. Note that once main runs ssx_start_threads, we
- * never return as the SSX kernel takes over.
- *
- */
// Function Specification
//
-// Name: main
+// Name: main
//
// Description: Entry point for OCC execution
-//
-// Flow: FN=None
+// Currently initalizes our trace buffer along with creating threads
+// and timers for execution. Note that once main runs ssx_start_threads,
+// we never return as the SSX kernel takes over.
//
// End Function Specification
int main(int argc, char **argv)
@@ -303,7 +231,7 @@ int main(int argc, char **argv)
simics_stderr_create(&simics_stderr);
stdout = (FILE *)(&simics_stdout);
stderr = (FILE *)(&simics_stderr);
- ssxout = (FILE *)(&simics_stdout);
+ ssxout = (FILE *)(&simics_stdout);
TRAC_INFO("Inside OCC Main");
@@ -313,8 +241,8 @@ int main(int argc, char **argv)
0);
// Create Threads
- ssx_thread_create(&main_thread,
- main_thread_routine,
+ ssx_thread_create(&main_thread,
+ main_thread_routine,
(void *)0,
(SsxAddress)main_thread_stack,
THREAD_STACK_SIZE,
@@ -333,13 +261,13 @@ int main(int argc, char **argv)
// Trace and commit error
TRAC_ERR("init thread Scheduler failure");
- // commit log
+ // commit log
// NOTE: log should be deleted by reader mechanism
- commitErrl( &l_errl );
+ commitErrl( &l_errl );
}
-
+
// lets map mainstore to oci space only once
- // NOTE: This will stay mapped for remainder of occ life
+ // NOTE: This will stay mapped for remainder of occ life
// TODO: This sounds like a temporary solution and may
// end up moving to simics environment setup
// TODO: This map needs to be unmapped after done accessing
@@ -350,13 +278,13 @@ int main(int argc, char **argv)
0, //OCI address 0x0
1048576, //Max size = 1 Mb
0, //
- 0, //no TLBIE permissions only need to read
+ 0, //no TLBIE permissions only need to read
&pba_mmu_map
);
-
+
if ( l_ssxrc1 != SSX_OK )
{
- tracDesc_t l_trace = NULL;
+ tracDesc_t l_trace = NULL;
TRAC_ERR("mmu map failure SsxRc[0x%08X]", -l_ssxrc1 );
@@ -370,29 +298,29 @@ int main(int argc, char **argv)
*/
l_errl = createErrl(
MAIN_MID, //modId
- SSX_GENERIC_FAILURE, //reasoncode // @nh001c
- ERC_MMU_MAP_FAILURE, //Extended reason code //@fk003c
+ SSX_GENERIC_FAILURE, //reasoncode
+ ERC_MMU_MAP_FAILURE, //Extended reason code
ERRL_SEV_UNRECOVERABLE, //Severity
l_trace, //Trace Buf
DEFAULT_TRACE_SIZE, //Trace Size
l_ssxrc1, //userdata1
0 //userdata2
);
-
- // @wb001 -- Callout firmware
+
+ // Callout firmware
addCalloutToErrl(l_errl,
ERRL_CALLOUT_TYPE_COMPONENT_ID,
ERRL_COMPONENT_ID_FIRMWARE,
ERRL_CALLOUT_PRIORITY_HIGH);
-
- // commit log
+
+ // commit log
commitErrl( &l_errl );
-
- // TODO request a reset of OCC since applet manager will
+
+ // TODO request a reset of OCC since applet manager will
// be toast without this working correctly
}
-
- //Initialize the Applet Manager @02a
+
+ //Initialize the Applet Manager
l_errl = initAppletManager();
if( l_errl )
@@ -400,13 +328,12 @@ int main(int argc, char **argv)
// Trace and commit error
TRAC_ERR("init Applet Manager failure");
- // commit log
+ // commit log
commitErrl( &l_errl );
-
- // TODO request a reset of OCC since applet manager will
- // be toast without this working correctly
- }
+ // TODO: request a reset of OCC since applet manager will
+ // be toast without this working correctly
+ }
//Initialize structures for collecting core data.
//It needs to run before RTLoop start.
@@ -415,37 +342,11 @@ int main(int argc, char **argv)
get_core_info();
// Initialize Realtime Loop Timer Interrupt
- rtl_ocb_init();
-
-//>@paulng
-/////////////////////////////////////////////////////////////////////////////////////////
-//Proc core data testing notes:
-//
-//proc data gathering data testing are imbeded in the proc_data.c file
-//Only need to enable proc debug flag in the header file then test will be run.
-//
-//Tests cover the following:
-//Test case 1: I tested the G_core_presents and verified the deconfigured registry value.
-//
-//Test case 2: I verified the porflex get created successfully during initilization.
-//
-//Test case 3: I tested the "GPE request still running" case by modified the Ticks table
-// to let same set cores task run back to back.
-//
-//Test case 4: I tested GPE request has been succeeded for each core
-// and verified the data pointers get swapped properly.
-//
-//Test case 5: I tested and verified the poreflex scheduled correctly.
-//
-//Test case 6: I tested and verified the RTL Tick table that has the both task core data
-// for low/high set core ran properly.
-//
-/////////////////////////////////////////////////////////////////////////////////////////
-//<@paulng
+ rtl_ocb_init();
// Enter SSX Kernel
ssx_start_threads();
-
+
return 0;
}
OpenPOWER on IntegriCloud