diff options
Diffstat (limited to 'src/sbefw/core/sbecmdiplcontrol.H')
-rw-r--r-- | src/sbefw/core/sbecmdiplcontrol.H | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/src/sbefw/core/sbecmdiplcontrol.H b/src/sbefw/core/sbecmdiplcontrol.H new file mode 100644 index 00000000..7b05f3f7 --- /dev/null +++ b/src/sbefw/core/sbecmdiplcontrol.H @@ -0,0 +1,132 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/sbefw/core/sbecmdiplcontrol.H $ */ +/* */ +/* OpenPOWER sbe Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ +/* + * @file: ppe/sbe/sbefw/sbecmdiplcontrol.H + * + * @brief This file contains the SBE command details + * + */ + +#ifndef __SBEFW_SBECMDIPLCONTROL_H +#define __SBEFW_SBECMDIPLCONTROL_H + +#include <stdint.h> +#include "sbecmdgeneric.H" + + +namespace fapi2 +{ + class ReturnCode; +} + +// Major isteps which are supported +typedef enum +{ + SBE_ISTEP2 = 2, + SBE_ISTEP_FIRST = SBE_ISTEP2, + SBE_ISTEP3 = 3, + SBE_ISTEP_LAST_SLAVE = SBE_ISTEP3, + SBE_ISTEP4 = 4, + SBE_ISTEP5 = 5, + SBE_ISTEP_LAST_MASTER = SBE_ISTEP5, +}sbe_supported_steps_t; + +// Major MPIPL isteps which are supported +static const uint32_t SBE_ISTEP_MPIPL_START = 96; +static const uint32_t SBE_ISTEP_MPIPL_CONTINUE = 97; +static const uint32_t SBE_ISTEP_STOPCLOCK = 98; +static const uint32_t MPIPL_START_MAX_SUBSTEPS = 8; +static const uint32_t MPIPL_CONTINUE_MAX_SUBSTEPS = 7; +static const uint32_t ISTEP_STOPCLOCK_MAX_SUBSTEPS = 1; + +// constants +static const uint32_t ISTEP2_MAX_SUBSTEPS = 17; +static const uint32_t ISTEP3_MAX_SUBSTEPS = 22; +static const uint32_t ISTEP4_MAX_SUBSTEPS = 34; +static const uint32_t ISTEP5_MAX_SUBSTEPS = 2; +static const uint8_t ISTEP_MINOR_START = 1; +static const uint8_t SLAVE_LAST_MINOR_ISTEP = 20; +static const uint8_t ISTEP2_MINOR_START = 2; + +extern uint64_t G_ring_save[8]; +extern const uint64_t G_ring_index[10]; + +/** + * @brief Support function to execute specific istep + * + * @param[in] i_major Major Istep Number + * @param[in] i_minor Minor Istep Number + * + * @return FAPI2_RC_SUCCESS if success, else error code. + */ +fapi2::ReturnCode sbeExecuteIstep (uint8_t i_major, uint8_t i_minor); + + +/** + * @brief execute istep chipop (0xA101) + * + * @param[in] i_pArg Buffer to be passed to the function (not used as of now) + * + * @return Rc from the FIFO access utility + */ +uint32_t sbeHandleIstep(uint8_t *i_pArg); + +/** + * @brief Executes IPL steps in continuous mode. + * + * @par On the master SBE, this will run + * all steps from 2.2 to 5.2. On the slave SBE, it runs all steps from 2.2 + * to 3.18. + * In case an error is encountered, the execution is aborted. + */ +void sbeDoContinuousIpl(); + +/** + * @brief Handles Sbe Get FFDC chip-op (0xA801) + * + * @param[in] i_pArg Buffer to be passed to the function (not used as of now) + * + * @return Rc from the FIFO access utility + */ +uint32_t sbeGetSbeFfdc(uint8_t *i_pArg); + +/** + * @brief Handles Sbe Get FFDC chip-op (0xA803) + * + * @param[in] i_pArg Buffer to be passed to the function (not used as of now) + * + * @return Rc from the FIFO access utility + */ +uint32_t sbeGetFreqSupported(uint8_t *i_pArg); + +/** + * @brief execute suspend IO chip-op (0xA102) + * + * @param[in] i_pArg Buffer to be passed to the function (not used as of now) + * + * @return Rc from the FIFO access utility + */ +uint32_t sbeHandleSuspendIO(uint8_t *i_pArg); + +#endif // __SBEFW_SBECMDIPLCONTROL_H |