diff options
author | Mark Wenning <wenning@us.ibm.com> | 2011-09-22 17:42:01 -0500 |
---|---|---|
committer | Mark W. Wenning <wenning@us.ibm.com> | 2011-10-20 18:07:04 -0500 |
commit | 591bf9abfe58c662a8e81820fdc96b90b85a9b55 (patch) | |
tree | e603935f90a1c49d5d8767d535168cd71da56b16 /src/usr | |
parent | 0eb945c47156b32f4028867969b153652baa3ad3 (diff) | |
download | talos-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.C | 26 | ||||
-rw-r--r-- | src/usr/errl/parser/makefile | 4 | ||||
-rw-r--r-- | src/usr/hwas/hwas.C | 141 | ||||
-rw-r--r-- | src/usr/hwas/makefile | 30 | ||||
-rw-r--r-- | src/usr/hwas/test/hwas1test.H | 138 | ||||
-rw-r--r-- | src/usr/hwas/test/makefile (renamed from src/usr/isteps/makefile) | 16 | ||||
-rw-r--r-- | src/usr/initservice/baseinitsvc/initservice.C | 2 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 30 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.H | 6 | ||||
-rw-r--r-- | src/usr/initservice/taskargs/taskargs.C | 12 | ||||
-rw-r--r-- | src/usr/isteps/istep1.C | 183 | ||||
-rw-r--r-- | src/usr/isteps/isteps.H | 42 | ||||
-rw-r--r-- | src/usr/makefile | 2 | ||||
-rw-r--r-- | src/usr/targeting/xmltohb/attribute_types.xml | 53 | ||||
-rw-r--r-- | src/usr/targeting/xmltohb/target_types.xml | 1 |
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> |