diff options
author | Norman James <njames@us.ibm.com> | 2014-09-23 14:47:34 -0500 |
---|---|---|
committer | Andrew J. Geissler <andrewg@us.ibm.com> | 2014-12-18 09:13:52 -0600 |
commit | 492738975921b5eeab19573cc47a5536e867cb02 (patch) | |
tree | 5dbaa546c5f6b23231c75c377d99e02814ac01bb /src/include/usr/hwas | |
parent | 9e91fa4f9e2ce76c458f8839e2f573c3cbc90797 (diff) | |
download | talos-hostboot-492738975921b5eeab19573cc47a5536e867cb02.tar.gz talos-hostboot-492738975921b5eeab19573cc47a5536e867cb02.zip |
Added callout interface for parts such as PNOR and SBE
Parts supported for callout are PNOR, SBE, VRM, GPIO, etc
Change-Id: I6734d58e8e44a7bfd71e87cc4f910bce9473f86d
RTC: 109945
CMVC-Coreq: 945677
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13547
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com>
Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwas')
-rw-r--r-- | src/include/usr/hwas/common/hwasCallout.H | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/include/usr/hwas/common/hwasCallout.H b/src/include/usr/hwas/common/hwasCallout.H index 2150a7ba2..36a316760 100644 --- a/src/include/usr/hwas/common/hwasCallout.H +++ b/src/include/usr/hwas/common/hwasCallout.H @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* [+] 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. */ @@ -117,11 +119,23 @@ enum clockTypeEnum OSCPCICLK_TYPE = 4, }; +enum partTypeEnum +{ + FLASH_CONTROLLER_PART_TYPE = 1, + PNOR_PART_TYPE = 2, + SBE_SEEPROM_PART_TYPE = 3, + BOARD_VPD_PART_TYPE = 4, + LPC_SLAVE_PART_TYPE = 5, + CENTAUR_GPIO_EXPANDER_PART_TYPE = 6, + VOLTAGE_REGULATOR_PART_TYPE = 7, +}; + // const uint8_t HW_CALLOUT = 0x01; const uint8_t PROCEDURE_CALLOUT = 0x02; const uint8_t BUS_CALLOUT = 0x03; const uint8_t CLOCK_CALLOUT = 0x04; +const uint8_t PART_CALLOUT = 0x05; const uint8_t TARGET_IS_SENTINEL = 0xF0; @@ -150,6 +164,12 @@ typedef struct callout_ud GARD_ErrorType clkGardErrorType; // uint32_t // one Target will follow }; + struct { // type == PART_CALLOUT + partTypeEnum partType; // uint32_t + DeconfigEnum partDeconfigState; // uint32_t + GARD_ErrorType partGardErrorType; // uint32_t + // one Target will follow + }; }; } callout_ud_t; @@ -251,8 +271,33 @@ errlHndl_t platHandleClockCallout( DeconfigEnum i_deconfigState = DECONFIG, GARD_ErrorType i_gardErrorType = GARD_Fatal); +/** + * @brief platform specific code to handle a part callout that has been + * found in an errlog + * + * @param[in] i_pTarget associated target + * @param[in] i_partType Enum indicating which type of part + * @param[in] i_priority Enum indicating the priority of the callout + * @param[in] io_errl reference to errlHnld for this errlog + * @param[in] i_deconfigState Enum indicating whether to deconfig or not + * @param[in] i_gardErrType Enum indicating the type of failure + * + * @return errlHndl_t valid errlHndl_t handle if there was an error, + * NULL if no errors; + */ +errlHndl_t platHandlePartCallout( + TARGETING::Target *i_pTarget, + partTypeEnum i_partType, + callOutPriority i_priority, + errlHndl_t &io_errl, + DeconfigEnum i_deconfigState = DECONFIG, + GARD_ErrorType i_gardErrorType = GARD_Fatal); + + #endif // not PARSER + + }; // end namespace #endif |