summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwasCallout.C
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2013-08-19 16:44:31 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-09-13 12:56:29 -0500
commit0b823dd9ef5579112cbbaae770028c75f7d19119 (patch)
treed15afcbcc31171c42b1915f45094f4101a0fb328 /src/usr/hwas/common/hwasCallout.C
parent97e007ba1b3c283bb7dcbd35e692385bb91fb5e6 (diff)
downloadblackbird-hostboot-0b823dd9ef5579112cbbaae770028c75f7d19119.tar.gz
blackbird-hostboot-0b823dd9ef5579112cbbaae770028c75f7d19119.zip
add clock callout functionality
Change-Id: Id864e2baa0b69d0dfdbe9c9cfe56f7b4246269ab RTC: 73480 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5842 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/common/hwasCallout.C')
-rw-r--r--src/usr/hwas/common/hwasCallout.C34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/usr/hwas/common/hwasCallout.C b/src/usr/hwas/common/hwasCallout.C
index 1d226f20f..dcac818e8 100644
--- a/src/usr/hwas/common/hwasCallout.C
+++ b/src/usr/hwas/common/hwasCallout.C
@@ -100,10 +100,9 @@ void processCallout(errlHndl_t &io_errl,
uint64_t i_Size,
bool i_DeferredOnly)
{
- HWAS_INF("processCallout entry. data %p size %lld",
- i_pData, i_Size);
-
callout_ud_t *pCalloutUD = (callout_ud_t *)i_pData;
+ HWAS_INF("processCallout entry. data %p size %lld type 0x%x",
+ i_pData, i_Size, pCalloutUD->type);
if (i_DeferredOnly)
{
@@ -141,7 +140,7 @@ void processCallout(errlHndl_t &io_errl,
pCalloutUD->gardErrorType);
if (errl)
{
- HWAS_ERR("HW callout: error from platHandlHWCallout");
+ HWAS_ERR("processCallout: error from platHandlHWCallout");
errlCommit(errl, HWAS_COMP_ID);
}
}
@@ -156,11 +155,11 @@ void processCallout(errlHndl_t &io_errl,
pCalloutUD->procedure, pCalloutUD->priority);
if (errl)
{
- HWAS_ERR("HW callout: error from platHandlProcedureCallout");
+ HWAS_ERR("processCallout: error from platHandlProcedureCallout");
errlCommit(errl, HWAS_COMP_ID);
}
break;
- }
+ } // PROCEDURE_CALLOUT
case (BUS_CALLOUT):
{
TARGETING::Target *pTarget1 = NULL;
@@ -179,12 +178,33 @@ void processCallout(errlHndl_t &io_errl,
io_errl);
if (errl)
{
- HWAS_ERR("HW callout: error from platHandlBusCallout");
+ HWAS_ERR("processCallout: error from platHandlBusCallout");
errlCommit(errl, HWAS_COMP_ID);
}
}
break;
} // BUS_CALLOUT
+ case (CLOCK_CALLOUT):
+ {
+ TARGETING::Target *pTarget = NULL;
+ uint8_t * l_uData = (uint8_t *)(pCalloutUD + 1);
+ bool l_err = retrieveTarget(l_uData, pTarget, io_errl);
+
+ if (!l_err)
+ {
+ errlHndl_t errl = platHandleClockCallout(
+ pTarget,
+ pCalloutUD->clockType,
+ pCalloutUD->priority,
+ io_errl);
+ if (errl)
+ {
+ HWAS_ERR("processCallout: error from platHandleClockCallout");
+ errlCommit(errl, HWAS_COMP_ID);
+ }
+ }
+ break;
+ } // CLOCK_CALLOUT
default:
{
HWAS_ERR("bad data in Callout UD %x", pCalloutUD->type);
OpenPOWER on IntegriCloud