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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/*
* Copyright 2021 Advanced Micro Devices, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
*/
#ifndef __SMU_V11_8_0_PMFW_H__
#define __SMU_V11_8_0_PMFW_H__
#pragma pack(push, 1)
#define ENABLE_DEBUG_FEATURES
// Feature Control Defines
#define FEATURE_CCLK_CONTROLLER_BIT 0
#define FEATURE_GFXCLK_EFFT_FREQ_BIT 1
#define FEATURE_DATA_CALCULATION_BIT 2
#define FEATURE_THERMAL_BIT 3
#define FEATURE_PLL_POWER_DOWN_BIT 4
#define FEATURE_FCLK_DPM_BIT 5
#define FEATURE_GFX_DPM_BIT 6
#define FEATURE_DS_GFXCLK_BIT 7
#define FEATURE_DS_SOCCLK_BIT 8
#define FEATURE_DS_LCLK_BIT 9
#define FEATURE_CORE_CSTATES_BIT 10
#define FEATURE_G6_SSC_BIT 11 //G6 memory UCLK and UCLK_DIV SS
#define FEATURE_RM_BIT 12
#define FEATURE_SOC_DPM_BIT 13
#define FEATURE_DS_SMNCLK_BIT 14
#define FEATURE_DS_MP1CLK_BIT 15
#define FEATURE_DS_MP0CLK_BIT 16
#define FEATURE_MGCG_BIT 17
#define FEATURE_DS_FUSE_SRAM_BIT 18
#define FEATURE_GFX_CKS_BIT 19
#define FEATURE_FP_THROTTLING_BIT 20
#define FEATURE_PROCHOT_BIT 21
#define FEATURE_CPUOFF_BIT 22
#define FEATURE_UMC_THROTTLE_BIT 23
#define FEATURE_DF_THROTTLE_BIT 24
#define FEATURE_DS_MP3CLK_BIT 25
#define FEATURE_DS_SHUBCLK_BIT 26
#define FEATURE_TDC_BIT 27 //Legacy APM_BIT
#define FEATURE_UMC_CAL_SHARING_BIT 28
#define FEATURE_DFLL_BTC_CALIBRATION_BIT 29
#define FEATURE_EDC_BIT 30
#define FEATURE_DLDO_BIT 31
#define FEATURE_MEAS_DRAM_BLACKOUT_BIT 32
#define FEATURE_CC1_BIT 33
#define FEATURE_PPT_BIT 34
#define FEATURE_STAPM_BIT 35
#define FEATURE_CSTATE_BOOST_BIT 36
#define FEATURE_SPARE_37_BIT 37
#define FEATURE_SPARE_38_BIT 38
#define FEATURE_SPARE_39_BIT 39
#define FEATURE_SPARE_40_BIT 40
#define FEATURE_SPARE_41_BIT 41
#define FEATURE_SPARE_42_BIT 42
#define FEATURE_SPARE_43_BIT 43
#define FEATURE_SPARE_44_BIT 44
#define FEATURE_SPARE_45_BIT 45
#define FEATURE_SPARE_46_BIT 46
#define FEATURE_SPARE_47_BIT 47
#define FEATURE_SPARE_48_BIT 48
#define FEATURE_SPARE_49_BIT 49
#define FEATURE_SPARE_50_BIT 50
#define FEATURE_SPARE_51_BIT 51
#define FEATURE_SPARE_52_BIT 52
#define FEATURE_SPARE_53_BIT 53
#define FEATURE_SPARE_54_BIT 54
#define FEATURE_SPARE_55_BIT 55
#define FEATURE_SPARE_56_BIT 56
#define FEATURE_SPARE_57_BIT 57
#define FEATURE_SPARE_58_BIT 58
#define FEATURE_SPARE_59_BIT 59
#define FEATURE_SPARE_60_BIT 60
#define FEATURE_SPARE_61_BIT 61
#define FEATURE_SPARE_62_BIT 62
#define FEATURE_SPARE_63_BIT 63
#define NUM_FEATURES 64
#define FEATURE_CCLK_CONTROLLER_MASK (1 << FEATURE_CCLK_CONTROLLER_BIT)
#define FEATURE_DATA_CALCULATION_MASK (1 << FEATURE_DATA_CALCULATION_BIT)
#define FEATURE_THERMAL_MASK (1 << FEATURE_THERMAL_BIT)
#define FEATURE_PLL_POWER_DOWN_MASK (1 << FEATURE_PLL_POWER_DOWN_BIT)
#define FEATURE_FCLK_DPM_MASK (1 << FEATURE_FCLK_DPM_BIT)
#define FEATURE_GFX_DPM_MASK (1 << FEATURE_GFX_DPM_BIT)
#define FEATURE_DS_GFXCLK_MASK (1 << FEATURE_DS_GFXCLK_BIT)
#define FEATURE_DS_SOCCLK_MASK (1 << FEATURE_DS_SOCCLK_BIT)
#define FEATURE_DS_LCLK_MASK (1 << FEATURE_DS_LCLK_BIT)
#define FEATURE_RM_MASK (1 << FEATURE_RM_BIT)
#define FEATURE_DS_SMNCLK_MASK (1 << FEATURE_DS_SMNCLK_BIT)
#define FEATURE_DS_MP1CLK_MASK (1 << FEATURE_DS_MP1CLK_BIT)
#define FEATURE_DS_MP0CLK_MASK (1 << FEATURE_DS_MP0CLK_BIT)
#define FEATURE_MGCG_MASK (1 << FEATURE_MGCG_BIT)
#define FEATURE_DS_FUSE_SRAM_MASK (1 << FEATURE_DS_FUSE_SRAM_BIT)
#define FEATURE_PROCHOT_MASK (1 << FEATURE_PROCHOT_BIT)
#define FEATURE_CPUOFF_MASK (1 << FEATURE_CPUOFF_BIT)
#define FEATURE_GFX_CKS_MASK (1 << FEATURE_GFX_CKS_BIT)
#define FEATURE_UMC_THROTTLE_MASK (1 << FEATURE_UMC_THROTTLE_BIT)
#define FEATURE_DF_THROTTLE_MASK (1 << FEATURE_DF_THROTTLE_BIT)
#define FEATURE_SOC_DPM_MASK (1 << FEATURE_SOC_DPM_BIT)
typedef struct {
// MP1_EXT_SCRATCH0
uint32_t SPARE1 : 4;
uint32_t SPARE2 : 4;
uint32_t SPARE3 : 4;
uint32_t CurrLevel_LCLK : 4;
uint32_t CurrLevel_MP0CLK : 4;
uint32_t CurrLevel_FCLK : 4;
uint32_t CurrLevel_SOCCLK : 4;
uint32_t CurrLevel_DCEFCLK : 4;
// MP1_EXT_SCRATCH1
uint32_t SPARE4 : 4;
uint32_t SPARE5 : 4;
uint32_t SPARE6 : 4;
uint32_t TargLevel_LCLK : 4;
uint32_t TargLevel_MP0CLK : 4;
uint32_t TargLevel_FCLK : 4;
uint32_t TargLevel_SOCCLK : 4;
uint32_t TargLevel_DCEFCLK : 4;
// MP1_EXT_SCRATCH2
uint32_t CurrLevel_SHUBCLK : 4;
uint32_t TargLevel_SHUBCLK : 4;
uint32_t Reserved : 24;
// MP1_EXT_SCRATCH3-4
uint32_t Reserved2[2];
// MP1_EXT_SCRATCH5
uint32_t FeatureStatus[NUM_FEATURES / 32];
} FwStatus_t;
#pragma pack(pop)
#endif
|