summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorMark Wenning <wenning@us.ibm.com>2011-09-22 17:42:01 -0500
committerMark W. Wenning <wenning@us.ibm.com>2011-10-20 18:07:04 -0500
commit591bf9abfe58c662a8e81820fdc96b90b85a9b55 (patch)
treee603935f90a1c49d5d8767d535168cd71da56b16 /src/usr
parent0eb945c47156b32f4028867969b153652baa3ad3 (diff)
downloadtalos-hostboot-591bf9abfe58c662a8e81820fdc96b90b85a9b55.tar.gz
talos-hostboot-591bf9abfe58c662a8e81820fdc96b90b85a9b55.zip
RTC3872: Hardware Availability Service: Add HWAS as first ISTEP
- first commit - change isteplist to call hwas - comment out test isteps - modify xml to add HWAS_STATE attribute - add macros to taskargs - remove debug trace from taskargs - add call to init_fsi - post-review - merge xml files - forgot one printkd Change-Id: Iab3b1f85c401f9a176ed84ddb91263caf25a3d56 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/430 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/cxxtest/cxxtestexec.C26
-rw-r--r--src/usr/errl/parser/makefile4
-rw-r--r--src/usr/hwas/hwas.C141
-rw-r--r--src/usr/hwas/makefile30
-rw-r--r--src/usr/hwas/test/hwas1test.H138
-rw-r--r--src/usr/hwas/test/makefile (renamed from src/usr/isteps/makefile)16
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.C2
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C30
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.H6
-rw-r--r--src/usr/initservice/taskargs/taskargs.C12
-rw-r--r--src/usr/isteps/istep1.C183
-rw-r--r--src/usr/isteps/isteps.H42
-rw-r--r--src/usr/makefile2
-rw-r--r--src/usr/targeting/xmltohb/attribute_types.xml53
-rw-r--r--src/usr/targeting/xmltohb/target_types.xml1
15 files changed, 414 insertions, 272 deletions
diff --git a/src/usr/cxxtest/cxxtestexec.C b/src/usr/cxxtest/cxxtestexec.C
index 58540c3ff..31c58824c 100644
--- a/src/usr/cxxtest/cxxtestexec.C
+++ b/src/usr/cxxtest/cxxtestexec.C
@@ -67,8 +67,8 @@ void _start(void *io_pArgs)
errlHndl_t l_errl = NULL;
std::vector<const char *> module_list;
tid_t tidrc = 0;
- TaskArgs::TaskArgs *pTaskArgs =
- reinterpret_cast<TaskArgs::TaskArgs *>(io_pArgs);
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
// output a blank line so that it's easier to find the beginning of
// CxxTest
@@ -121,30 +121,24 @@ void _start(void *io_pArgs)
*i, tidrc );
}
- TRACDCOMP( g_trac_cxxtest, "Waiting for all tasks to finish....");
+ TRACFCOMP( g_trac_cxxtest, "Waiting for all tasks to finish....");
// wait for all the launched tasks to finish
barrier_wait( &CxxTest::g_CxxTestBarrier );
__sync_add_and_fetch(&CxxTest::g_ModulesCompleted, 1);
- TRACDCOMP( g_trac_cxxtest, " ModulesCompleted=%d",
+ TRACFCOMP( g_trac_cxxtest, " ModulesCompleted=%d",
CxxTest::g_ModulesCompleted );
- TRACDCOMP( g_trac_cxxtest, EXIT_MRK "Finished CxxTestExec: ");
- TRACDCOMP( g_trac_cxxtest, " total tests: %d",
+ TRACFCOMP( g_trac_cxxtest, EXIT_MRK "Finished CxxTestExec: ");
+ TRACFCOMP( g_trac_cxxtest, " total tests: %d",
CxxTest::g_TotalTests );
- TRACDCOMP( g_trac_cxxtest, " failed tests: %d",
+ TRACFCOMP( g_trac_cxxtest, " failed tests: %d",
CxxTest::g_FailedTests );
- TRACDCOMP( g_trac_cxxtest, " warnings: %d",
+ TRACFCOMP( g_trac_cxxtest, " warnings: %d",
CxxTest::g_Warnings );
- TRACDCOMP( g_trac_cxxtest, " trace calls: %d",
+ TRACFCOMP( g_trac_cxxtest, " trace calls: %d",
CxxTest::g_TraceCalls );
- // wait for TaskArgs barrier
- if ( pTaskArgs )
- {
- pTaskArgs->waitChildSync();
- }
-
- task_end();
+ TASKARGS_WAIT_AND_ENDTASK();
}
diff --git a/src/usr/errl/parser/makefile b/src/usr/errl/parser/makefile
index d87017a3b..a48373c65 100644
--- a/src/usr/errl/parser/makefile
+++ b/src/usr/errl/parser/makefile
@@ -32,11 +32,11 @@ SRCPARSE_HEADER_TARGET = \
${GENFILES}/hostBootSrcParse.H
CC=g++ -m32
-CFLAGS:=-g -O0 -I $(ROOTPATH)/src/include/usr
+CFLAGS:=-g -O0 -I $(ROOTPATH)/src/include/usr -D PARSER
BIN:=bin
-all: code_pass
+all: gen_pass code_pass
gen_pass:
diff --git a/src/usr/hwas/hwas.C b/src/usr/hwas/hwas.C
new file mode 100644
index 000000000..c7872d033
--- /dev/null
+++ b/src/usr/hwas/hwas.C
@@ -0,0 +1,141 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/usr/hwas/hwas.C $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2011
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+/**
+ * @file hwas.C
+ *
+ * HardWare Availability Service functions.
+ * See hwas.H for doxygen documentation tags.
+ *
+ */
+
+
+/******************************************************************************/
+// Includes
+/******************************************************************************/
+#include <stdint.h>
+
+#include <kernel/console.H>
+#include <trace/interface.H>
+#include <initservice/taskargs.H>
+#include <errl/errlentry.H>
+#include <targeting/target.H> // targeting
+
+#include <fsi/fsiif.H>
+#include <hwas/hwas.H>
+
+
+namespace HWAS
+{
+ trace_desc_t *g_trac_hwas = NULL;
+ TRAC_INIT(&g_trac_hwas, "HWAS", 1024 ); // yah.
+
+ using namespace TARGETING; //
+
+ void init_target_states( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "init_target_states entry" );
+ // printkd("init_target_states\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void init_fsi( void *io_pArgs )
+ {
+ errlHndl_t l_errl = NULL;
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "init_fsi entry" );
+ // printkd("init_fsi\n");
+
+ l_errl = FSI::initializeHardware( );
+ if ( l_errl )
+ {
+ TRACFCOMP( g_trac_hwas, "ERROR: failed to init FSI hardware" );
+ POST_ERROR_LOG( l_errl );
+ }
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void apply_fsi_info( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "apply_fsi_info entry" );
+ //printkd("apply_fsi_info\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void apply_dd_presence( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "apply_dd_presence entry" );
+ //printkd("apply_dd_presence\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void apply_pr_keyword_data( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "apply_pr_keyword_data" );
+ //printkd("apply_pr_keyword_data\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void apply_partial_bad( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "apply_partial_bad entry" );
+ //printkd("apply_partial_bad\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+ void apply_gard( void *io_pArgs )
+ {
+ TASKARGS_INIT_TASKARGS( io_pArgs );
+
+ TRACDCOMP( g_trac_hwas, "apply_gard entry" );
+ //printkd("apply_gard\n");
+
+
+ TASKARGS_WAIT_AND_ENDTASK();
+ }
+
+
+}; // end namespace
+
diff --git a/src/usr/hwas/makefile b/src/usr/hwas/makefile
new file mode 100644
index 000000000..c4a596500
--- /dev/null
+++ b/src/usr/hwas/makefile
@@ -0,0 +1,30 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/hwas/makefile $
+#
+# IBM CONFIDENTIAL
+#
+# COPYRIGHT International Business Machines Corp. 2011
+#
+# p1
+#
+# Object Code Only (OCO) source materials
+# Licensed Internal Code Source Materials
+# IBM HostBoot Licensed Internal Code
+#
+# The source code for this program is not published or other-
+# wise divested of its trade secrets, irrespective of what has
+# been deposited with the U.S. Copyright Office.
+#
+# Origin: 30
+#
+# IBM_PROLOG_END
+ROOTPATH = ../../..
+MODULE = hwas
+
+OBJS = hwas.o
+
+SUBDIRS=test.d
+
+include ${ROOTPATH}/config.mk
diff --git a/src/usr/hwas/test/hwas1test.H b/src/usr/hwas/test/hwas1test.H
new file mode 100644
index 000000000..2ee648158
--- /dev/null
+++ b/src/usr/hwas/test/hwas1test.H
@@ -0,0 +1,138 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/usr/targeting/test/targetingtest.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2011
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+#ifndef __TESTTARGETING_H
+#define __TESTTARGETING_H
+
+/**
+ * @file testtargeting.H
+ *
+ * @brief Unit tests for HWAS (ISTEP 4)
+ */
+
+//******************************************************************************
+// Includes
+//******************************************************************************
+
+// STD
+#include <stdio.h>
+#include <sys/time.h>
+
+// CXXTEST
+#include <cxxtest/TestSuite.H>
+#include <hwpf/plat/fapiPlatAttributeService.H>
+#include <fapiReturnCode.H>
+#include <fapiAttributeIds.H>
+#include <fapiAttributeService.H>
+#include <errl/errlmanager.H>
+
+// This component
+#include <targeting/attributes.H>
+#include <targeting/entitypath.H>
+#include <targeting/target.H>
+#include <targeting/targetservice.H>
+#include <targeting/iterators/rangefilter.H>
+#include <targeting/predicates/predicatectm.H>
+#include <targeting/predicates/predicatepostfixexpr.H>
+
+class HWAS1test: public CxxTest::TestSuite
+{
+public:
+
+ /**
+ * @brief Walk all the targets and verify that HWAS_STATE is set
+ * correctly.
+ *
+ * @note Results of this test will change as more stuff gets added to
+ * HWAS - how to fix?
+ */
+ void testHWASdefaultPresence()
+ {
+
+ nanosleep(1,0);
+ TS_TRACE(ENTER_MRK "testHWASdefaultPresence" );
+
+ using namespace TARGETING;
+
+ TargetService& l_targetService = targetService();
+
+ l_targetService.init();
+
+
+ // get top level
+ // Post init
+ // Test: void getTopLevelTarget(Target*& o_targetHandle) const;
+
+ Target* l_pTopLevel = NULL;
+ (void) l_targetService.getTopLevelTarget(l_pTopLevel);
+ if (l_pTopLevel == NULL)
+ {
+ TS_FAIL("Top level handle was NULL when initialization complete");
+ }
+
+ // Post init
+ // Test: void getAssociated(
+ // const Target* i_pTarget,
+ // ASSOCIATION_TYPE i_type,
+ // RECURSION_LEVEL i_recursionLevel,
+ // TargetHandleList& o_list) const;
+
+ TargetHandleList l_list;
+ (void) l_targetService.getAssociated(
+ l_list,
+ l_pTopLevel,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL);
+
+ TS_TRACE("Child list size is 0x%x", l_list.size() );
+ for (uint64_t i=0; i<l_list.size(); i++ )
+ {
+ // 2011-10-19 all attribute fields should be 0 at this point.
+ if ( ( l_list[i]->getAttr<ATTR_HWAS_STATE>().poweredOn)
+ || ( l_list[i]->getAttr<ATTR_HWAS_STATE>().present)
+ || ( l_list[i]->getAttr<ATTR_HWAS_STATE>().functional)
+ || ( l_list[i]->getAttr<ATTR_HWAS_STATE>().changedSinceLastIPL)
+ || ( l_list[i]->getAttr<ATTR_HWAS_STATE>().gardLevel)
+ )
+ {
+ l_list[i]->getAttr<ATTR_PHYS_PATH>().dump();
+ TS_TRACE( " poweredOn = 0x%x",
+ l_list[i]->getAttr<ATTR_HWAS_STATE>().poweredOn );
+ TS_TRACE( " present = 0x%x",
+ l_list[i]->getAttr<ATTR_HWAS_STATE>().present );
+ TS_TRACE( " l_functional = 0x%x",
+ l_list[i]->getAttr<ATTR_HWAS_STATE>().functional );
+ TS_TRACE( " l_changedSinceLastIPL = 0x%x",
+ l_list[i]->getAttr<ATTR_HWAS_STATE>().changedSinceLastIPL );
+ TS_TRACE( " l_gardLevel = 0x%x",
+ l_list[i]->getAttr<ATTR_HWAS_STATE>().gardLevel );
+
+ TS_FAIL( "Attribute fields not correct: ");
+ }
+ }
+
+ TS_TRACE(EXIT_MRK "testHWASdefaultPresence" );
+ }
+
+};
+
+#endif //
diff --git a/src/usr/isteps/makefile b/src/usr/hwas/test/makefile
index 4d34a6331..6cc573dbe 100644
--- a/src/usr/isteps/makefile
+++ b/src/usr/hwas/test/makefile
@@ -1,7 +1,7 @@
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
-# $Source: src/usr/isteps/makefile $
+# $Source: src/usr/targeting/test/makefile $
#
# IBM CONFIDENTIAL
#
@@ -20,17 +20,19 @@
# Origin: 30
#
# IBM_PROLOG_END
-ROOTPATH = ../../..
+ROOTPATH = ../../../..
-EXTRAINCDIR += ${ROOTPATH}/src/include/usr/ecmddatabuffer
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/fapi
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/plat
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/hwp
+EXTRAINCDIR += ${ROOTPATH}/src/include/usr/ecmddatabuffer
-MODULE = isteps
-
-OBJS = istep1.o
+MODULE = testhwas
+TESTS = *.H
-# SUBDIRS = test
+OBJS = attributestrings.o
include ${ROOTPATH}/config.mk
+
+vpath %.C ${GENDIR}
+
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C
index e26da0a8c..a51e909ed 100644
--- a/src/usr/initservice/baseinitsvc/initservice.C
+++ b/src/usr/initservice/baseinitsvc/initservice.C
@@ -45,7 +45,7 @@ namespace INITSERVICE
{
trace_desc_t *g_trac_initsvc = NULL;
-TRAC_INIT(&g_trac_initsvc, "INITSERVICE", 4096 );
+TRAC_INIT(&g_trac_initsvc, "INITSVC", 4096 );
errlHndl_t InitService::startTask( const TaskInfo *i_ptask,
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
index 42e66ab0c..addc6f071 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
@@ -44,12 +44,14 @@
#include <errl/errlentry.H> // errlHndl_t
#include <devicefw/userif.H> // targeting
#include <sys/mmio.h> // mmio_scratch_read()
+#include <initservice/taskargs.H> // TaskArgs structs
+
#include "istepdispatcher.H"
#include "splesscommon.H"
-#include <isteps/isteplist.H>
+#include <isteps/istepmasterlist.H>
namespace INITSERVICE
@@ -100,15 +102,26 @@ const TaskInfo *IStepDispatcher::findTaskInfo( const uint16_t i_IStep,
{
const TaskInfo *l_pistep = NULL;
- TRACDCOMP( g_trac_initsvc,
- "g_isteps[%d].numitems = 0x%x",
- i_IStep,
- g_isteps[i_IStep].numitems );
// apply filters
do
{
+ // Sanity check / dummy IStep
+ if ( g_isteps[i_IStep].pti == NULL)
+ {
+ TRACDCOMP( g_trac_initsvc,
+ "g_isteps[%d].pti == NULL",
+ i_IStep );
+ break;
+ }
+
+ TRACDCOMP( g_trac_initsvc,
+ "g_isteps[%d].numitems = 0x%x",
+ i_IStep,
+ g_isteps[i_IStep].numitems );
+
+
// check input range - IStep
if ( i_IStep >= MAX_ISTEPS )
{
@@ -445,7 +458,7 @@ void IStepDispatcher::runAllISteps( void * io_ptr ) const
{
TRACDCOMP( g_trac_initsvc,
- "End of ISubStep list." );
+ "End of ISubStep 0x%x list.", l_SubStep );
break; // break out of inner for loop
}
@@ -457,9 +470,10 @@ void IStepDispatcher::runAllISteps( void * io_ptr ) const
l_args.clear();
TRACFCOMP( g_trac_initsvc,
- "Run IStep 0x%x / Substep 0x%x",
+ INFO_MRK "Run IStep 0x%x / Substep 0x%x %s",
l_IStep,
- l_SubStep );
+ l_SubStep,
+ l_pistep->taskname );
l_errl = InitService::getTheInstance().executeFn( l_pistep,
&l_args );
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.H b/src/usr/initservice/istepdispatcher/istepdispatcher.H
index 352b0f450..b507cbe21 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.H
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.H
@@ -30,6 +30,12 @@
*
*/
+/**
+ * @page IStepDispatcher IStep Dispatcher
+ *
+ *
+ */
+
/******************************************************************************/
// Includes
diff --git a/src/usr/initservice/taskargs/taskargs.C b/src/usr/initservice/taskargs/taskargs.C
index ecb4cd88c..186bb93c6 100644
--- a/src/usr/initservice/taskargs/taskargs.C
+++ b/src/usr/initservice/taskargs/taskargs.C
@@ -60,28 +60,16 @@ extern trace_desc_t *g_trac_initsvc;
void TaskArgs::waitParentSync( )
{
- TRACDCOMP( g_trac_initsvc,
- "Parent: wait for barrier %p", &iv_sync_barrier );
-
barrier_wait( &iv_sync_barrier);
- TRACDCOMP( g_trac_initsvc,
- "Parent: returned from barrier %p", &iv_sync_barrier );
-
}
void TaskArgs::waitChildSync( )
{
- TRACDCOMP( g_trac_initsvc,
- "Child: wait for barrier %p", &iv_sync_barrier );
-
barrier_wait( &iv_sync_barrier);
- TRACDCOMP( g_trac_initsvc,
- "Child: returned from barrier %p", &iv_sync_barrier );
-
}
diff --git a/src/usr/isteps/istep1.C b/src/usr/isteps/istep1.C
deleted file mode 100644
index 73998a55b..000000000
--- a/src/usr/isteps/istep1.C
+++ /dev/null
@@ -1,183 +0,0 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/isteps/istep1.C $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// p1
-//
-// Object Code Only (OCO) source materials
-// Licensed Internal Code Source Materials
-// IBM HostBoot Licensed Internal Code
-//
-// The source code for this program is not published or other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
-
-/**
- * @file istep1.C
- *
- * test ISTep file
- *
- * @note, you must update isteps.h if you change this one
- *
- */
-
-
-/******************************************************************************/
-// Includes
-/******************************************************************************/
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sys/task.h>
-
-#include <trace/interface.H> // trace support
-#include <errl/errlentry.H> // errlHndl_t
-#include <errl/errlmanager.H>
-#include <initservice/taskargs.H> // task args
-
-// pull in stuff to run HW procedure - from Andrew's hwpf testcase 2
-// NOTE: there are extra include paths in isteps/makefile to find the fapi
-// includes:
-// EXTRAINCDIR += ${ROOTPATH}/src/include/usr/ecmddatabuffer
-// EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/fapi
-// EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/plat
-
-#include <fapiTarget.H>
-#include <fapiPlatHwpInvoker.H>
-#include <targeting/targetservice.H>
-
-using namespace fapi;
-using namespace TARGETING;
-
-namespace ISTEPS
-{
-
-/******************************************************************************/
-// Globals/Constants
-/******************************************************************************/
-trace_desc_t *g_trac_istep1 = NULL;
-TRAC_INIT(&g_trac_istep1, "ISTEP1", 4096);
-
-extern "C"
-void IStep0sub0( void * io_pArgs )
-{
- INITSERVICE::TaskArgs *pTaskArgs =
- static_cast<INITSERVICE::TaskArgs *>(io_pArgs);
- errlHndl_t l_err = NULL;
- uint64_t command = pTaskArgs->getCommand();
- uint64_t returncode = pTaskArgs->getReturnCode();
-
-
- // print out stuff from taskargs
- TRACFCOMP( g_trac_istep1,
- ENTER_MRK "starting IStep0sub0, command=0x%llx, returncode=0x%llx",
- command, returncode );
- // ----- start ISTEP --------------------------------------------------
-
- // Get the master processor chip
- TARGETING::Target* l_pTarget = NULL;
- TARGETING::targetService().masterProcChipTargetHandle(l_pTarget);
-
- // Create a FAPI Target and invoke the hwpInitialTest HWP
- fapi::Target l_fapiTarget(TARGET_TYPE_PROC_CHIP,
- reinterpret_cast<void *> (l_pTarget));
-
- FAPI_INVOKE_HWP(l_err, hwpInitialTest, l_fapiTarget);
-
- if (l_err)
- {
- TRACFCOMP( g_trac_istep1, "IStep1 failed, posting error code 1");
- errlCommit(l_err);
- pTaskArgs->postReturnCode( 1 );
- }
- else
- {
- TRACFCOMP( g_trac_istep1, "IStep1 finished successfully.");
- pTaskArgs->postReturnCode( 0 );
- }
-
-
-// ----- end ISTEP ------------------------------------------------------
- TRACFCOMP( g_trac_istep1,
- EXIT_MRK "ending IStep0sub0");
-
- // if non-null, wait for the barrier, otherwise just return
- if ( pTaskArgs )
- {
- pTaskArgs->waitChildSync();
- }
-
- task_end();
-}
-
-extern "C"
-void IStep0sub1( void * io_pArgs )
-{
- INITSERVICE::TaskArgs *pTaskArgs =
- static_cast<INITSERVICE::TaskArgs *>(io_pArgs);
- uint64_t command = pTaskArgs->getCommand();
- uint64_t returncode = pTaskArgs->getReturnCode();
-
-
- // print out stuff from taskargs
- TRACFCOMP( g_trac_istep1,
- ENTER_MRK "starting IStep0sub1, command=0x%llx, returncode=0x%llx",
- command, returncode );
- // ----- start ISTEP --------------------------------------------------
-
- pTaskArgs->postReturnCode( 0 );
-
- // ----- end ISTEP ------------------------------------------------------
- TRACFCOMP( g_trac_istep1,
- EXIT_MRK "ending IStep0sub1");
-
- // if non-null, wait for the barrier, otherwise just return
- if ( pTaskArgs )
- {
- pTaskArgs->waitChildSync();
- }
-
- task_end();
-}
-
-extern "C"
-void IStep1sub0( void * io_pArgs )
-{
- INITSERVICE::TaskArgs *pTaskArgs =
- static_cast<INITSERVICE::TaskArgs *>(io_pArgs);
- uint64_t command = pTaskArgs->getCommand();
- uint64_t returncode = pTaskArgs->getReturnCode();
-
-
- // print out stuff from taskargs
- TRACFCOMP( g_trac_istep1,
- ENTER_MRK "starting IStep1sub0, command=0x%llx, returncode=0x%llx",
- command, returncode );
- // ----- start ISTEP --------------------------------------------------
-
- pTaskArgs->postReturnCode( 0 );
-
- // ----- end ISTEP --------------------------------------------------
- TRACFCOMP( g_trac_istep1,
- EXIT_MRK "ending IStep1sub0");
-
- // if non-null, wait for the barrier, otherwise just return
- if ( pTaskArgs )
- {
- pTaskArgs->waitChildSync();
- }
-
- task_end();
-}
-
-} // namespace
diff --git a/src/usr/isteps/isteps.H b/src/usr/isteps/isteps.H
deleted file mode 100644
index 4033f0866..000000000
--- a/src/usr/isteps/isteps.H
+++ /dev/null
@@ -1,42 +0,0 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/isteps/isteps.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// p1
-//
-// Object Code Only (OCO) source materials
-// Licensed Internal Code Source Materials
-// IBM HostBoot Licensed Internal Code
-//
-// The source code for this program is not published or other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
-/**
- * @file isteps.H
- *
- * Prototypes of ISteps launched by IStepDispatcher
- *
- */
-
-
-/******************************************************************************/
-// Includes
-/******************************************************************************/
-#include <stdint.h>
-
-namespace ISTEPS
-{
-
-extern "C"
-void IStep1( void * io_pArgs );
-
-} // namespace
diff --git a/src/usr/makefile b/src/usr/makefile
index 55dcb704c..47e8e2d69 100644
--- a/src/usr/makefile
+++ b/src/usr/makefile
@@ -26,6 +26,6 @@ OBJS = module_init.o
SUBDIRS = example.d trace.d cxxtest.d testcore.d errl.d devicefw.d \
scom.d xscom.d targeting.d initservice.d hwpf.d \
- ecmddatabuffer.d isteps.d pnor.d i2c.d vfs.d fsi.d
+ ecmddatabuffer.d pnor.d i2c.d vfs.d fsi.d hwas.d
include ${ROOTPATH}/config.mk
diff --git a/src/usr/targeting/xmltohb/attribute_types.xml b/src/usr/targeting/xmltohb/attribute_types.xml
index 7bcc2c840..229d4a399 100644
--- a/src/usr/targeting/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/xmltohb/attribute_types.xml
@@ -768,6 +768,59 @@
<readable/>
</attribute>
+<attribute>
+ <id>HWAS_STATE</id>
+ <description>HardWare Availability Service State Attribute.
+ Keeps track of Target values poweredOn, present, functional,
+ changedSinceLastIPL, and gardLevel</description>
+ <complexType>
+ <description>struct - so far contains 4 booleans and a 4-bit GARD level
+ field</description>
+ <field>
+ <name>poweredOn</name>
+ <description>boolean: Target is powered on, or Not.
+ comes up as powered off.</description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>present</name>
+ <description>Target is present in the system.
+ comes up as Not PRESENT. </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>functional</name>
+ <description>Target is Functional.
+ comes up as Not FUNCTIONAL </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>changedSinceLastIPL</name>
+ <description>Target has changed since last IPL.
+ comes up as FALSE. </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>gardLevel</name>
+ <description>GARD Level. This is a 4-bit value.
+ comes up as 0 </description>
+ <type>uint8_t</type>
+ <bits>4</bits>
+ <default>0</default>
+ </field>
+ </complexType>
+ <persistency>volatile</persistency>
+ <readable/>
+</attribute>
+
</attributes>
diff --git a/src/usr/targeting/xmltohb/target_types.xml b/src/usr/targeting/xmltohb/target_types.xml
index 14b624893..9eef64d64 100644
--- a/src/usr/targeting/xmltohb/target_types.xml
+++ b/src/usr/targeting/xmltohb/target_types.xml
@@ -38,6 +38,7 @@
<attribute>
<id>PRIMARY_CAPABILITIES</id>
</attribute>
+ <attribute><id>HWAS_STATE</id></attribute>
</targetType>
<targetType>
OpenPOWER on IntegriCloud