diff options
| author | Brian Horton <brianh@linux.ibm.com> | 2013-08-19 16:44:31 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-09-13 12:56:29 -0500 |
| commit | 0b823dd9ef5579112cbbaae770028c75f7d19119 (patch) | |
| tree | d15afcbcc31171c42b1915f45094f4101a0fb328 /src/usr/hwas/common/hwasCallout.C | |
| parent | 97e007ba1b3c283bb7dcbd35e692385bb91fb5e6 (diff) | |
| download | blackbird-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.C | 34 |
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); |

