summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm/p9_pm_reset.H
blob: db5acc3b42e618187cc516c00b0e5f554689af8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/import/chips/p9/procedures/hwp/pm/p9_pm_reset.H $         */
/*                                                                        */
/* OpenPOWER HostBoot Project                                             */
/*                                                                        */
/* Contributors Listed Below - COPYRIGHT 2015,2018                        */
/* [+] 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.       */
/* 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 p9_pm_reset.H
/// @brief Wrapper that calls underlying HWPs to perform a Power Management
///        Reset function when needing to restart the OCC complex.
///
// *HWP HWP Owner        : Greg Still <stillgs@us.ibm.com>
// *HWP HWP Backup Owner : Prasad BG Ranganath <prasadbgr@in.ibm.com>
// *HWP FW Owner         : Prem S Jha <premjha2@in.ibm.com>
// *HWP Team             : PM
// *HWP Level            : 3
// *HWP Consumed by      : HS

#ifndef _P9_PM_RESET_H
#define _P9_PM_RESET_H

// -----------------------------------------------------------------------------
// Constant definitions
// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// Includes
// -----------------------------------------------------------------------------
#include <fapi2.H>
#include <p9_pm.H>
#include <p9_pm_utils.H>
#include <p9_misc_scom_addresses.H>
#include <p9_pm_occ_firinit.H>
#include <p9_pm_firinit.H>
#include <p9_pm_occ_control.H>
#include <p9_pm_stop_gpe_init.H>
#include <p9_pm_occ_gpe_init.H>
#include <p9_pm_corequad_init.H>
#include <p9_pm_occ_sram_init.H>
#include <p9_pm_ocb_init.H>
#include <p9_pm_pss_init.H>
#include <p9_pm_pstate_gpe_init.H>

typedef fapi2::ReturnCode (*p9_pm_reset_FP_t) (
    const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&,
    void* i_pHomerImage);

// -----------------------------------------------------------------------------
// Function Prototype
// -----------------------------------------------------------------------------
extern "C"
{
//------------------------------------------------------------------------------
///
/// @brief Call underlying unit procedures to reset PM complex
///
/// @param[in] i_target Proc Chip target
/// @param[in] i_pHomerImage pointer to the beginning of the HOMER image buffer
///
/// @return FAPI2_RC_SUCCESS on success, else error code.
///
    fapi2::ReturnCode p9_pm_reset(
        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
        void* i_pHomerImage);

//------------------------------------------------------------------------------
///
/// @brief PSAFE values update of DPLL and External voltage
///
/// @param[in] i_target Proc Chip target
///
/// @return FAPI2_RC_SUCCESS on success, else error code.
    fapi2::ReturnCode p9_pm_reset_psafe_update(
        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);

//------------------------------------------------------------------------------
///
/// @brief Walk through each EX chiplet (and each core within an EX) to determine
/// if special wake-up done is asserted.  If so, set auto special wake-up mode to
/// protect the core(s) while the PM complex is being reset
///
/// @param[in] i_target Proc Chip target
///
/// @return FAPI2_RC_SUCCESS on success, else error code.
    fapi2::ReturnCode p9_pm_set_auto_spwkup(
        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);

//------------------------------------------------------------------------------
///
/// @brief Call utilities to collect PM complex FFDC to FFDC section in HOMER
///
/// @param[in] i_target Proc Chip target
/// @param[in] i_pHomerImage pointer to the beginning of the HOMER image buffer
/// @param[in] i_plat Platform Id indicating which part of the PM Complex to collect.
///                   See p9_stop_recov_ffdc::PmComplexPlatId for details
///
/// @return FAPI2_RC_SUCCESS on success, else error code.
///
    fapi2::ReturnCode p9_pm_collect_ffdc (
        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
        void* i_pHomerImage,
        const uint8_t i_plat );
}
//------------------------------------------------------------------------------
///
/// @brief Clear the Hcode error injection bits so special wake-up can succeed
///
/// @param[in] i_target Proc Chip target
///
/// @return FAPI2_RC_SUCCESS on success, else error code.
///

fapi2::ReturnCode p9_pm_reset_clear_errinj (
    const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);

#endif // _P9_PM_RESET_H
OpenPOWER on IntegriCloud