|
27 | 27 | // *** IMPORTANT *** |
28 | 28 | // SMU TEAM: Always increment the interface version if |
29 | 29 | // any structure is changed in this file |
30 | | -#define PMFW_DRIVER_IF_VERSION 6 |
| 30 | +#define PMFW_DRIVER_IF_VERSION 7 |
31 | 31 |
|
32 | 32 | typedef struct { |
33 | 33 | int32_t value; |
@@ -150,37 +150,50 @@ typedef struct { |
150 | 150 | } DpmClocks_t; |
151 | 151 |
|
152 | 152 | typedef struct { |
153 | | - uint16_t CoreFrequency[16]; //Target core frequency [MHz] |
154 | | - uint16_t CorePower[16]; //CAC calculated core power [mW] |
155 | | - uint16_t CoreTemperature[16]; //TSEN measured core temperature [centi-C] |
156 | | - uint16_t GfxTemperature; //TSEN measured GFX temperature [centi-C] |
157 | | - uint16_t SocTemperature; //TSEN measured SOC temperature [centi-C] |
158 | | - uint16_t StapmOpnLimit; //Maximum IRM defined STAPM power limit [mW] |
159 | | - uint16_t StapmCurrentLimit; //Time filtered STAPM power limit [mW] |
160 | | - uint16_t InfrastructureCpuMaxFreq; //CCLK frequency limit enforced on classic cores [MHz] |
161 | | - uint16_t InfrastructureGfxMaxFreq; //GFXCLK frequency limit enforced on GFX [MHz] |
162 | | - uint16_t SkinTemp; //Maximum skin temperature reported by APU and HS2 chassis sensors [centi-C] |
163 | | - uint16_t GfxclkFrequency; //Time filtered target GFXCLK frequency [MHz] |
164 | | - uint16_t FclkFrequency; //Time filtered target FCLK frequency [MHz] |
165 | | - uint16_t GfxActivity; //Time filtered GFX busy % [0-100] |
166 | | - uint16_t SocclkFrequency; //Time filtered target SOCCLK frequency [MHz] |
167 | | - uint16_t VclkFrequency; //Time filtered target VCLK frequency [MHz] |
168 | | - uint16_t VcnActivity; //Time filtered VCN busy % [0-100] |
169 | | - uint16_t VpeclkFrequency; //Time filtered target VPECLK frequency [MHz] |
170 | | - uint16_t IpuclkFrequency; //Time filtered target IPUCLK frequency [MHz] |
171 | | - uint16_t IpuBusy[8]; //Time filtered IPU per-column busy % [0-100] |
172 | | - uint16_t DRAMReads; //Time filtered DRAM read bandwidth [MB/sec] |
173 | | - uint16_t DRAMWrites; //Time filtered DRAM write bandwidth [MB/sec] |
174 | | - uint16_t CoreC0Residency[16]; //Time filtered per-core C0 residency % [0-100] |
175 | | - uint16_t IpuPower; //Time filtered IPU power [mW] |
176 | | - uint32_t ApuPower; //Time filtered APU power [mW] |
177 | | - uint32_t GfxPower; //Time filtered GFX power [mW] |
178 | | - uint32_t dGpuPower; //Time filtered dGPU power [mW] |
179 | | - uint32_t SocketPower; //Time filtered power used for PPT/STAPM [APU+dGPU] [mW] |
180 | | - uint32_t AllCorePower; //Time filtered sum of core power across all cores in the socket [mW] |
181 | | - uint32_t FilterAlphaValue; //Metrics table alpha filter time constant [us] |
182 | | - uint32_t MetricsCounter; //Counter that is incremented on every metrics table update [PM_TIMER cycles] |
183 | | - uint32_t spare[16]; |
| 153 | + uint16_t CoreFrequency[16]; //Target core frequency [MHz] |
| 154 | + uint16_t CorePower[16]; //CAC calculated core power [mW] |
| 155 | + uint16_t CoreTemperature[16]; //TSEN measured core temperature [centi-C] |
| 156 | + uint16_t GfxTemperature; //TSEN measured GFX temperature [centi-C] |
| 157 | + uint16_t SocTemperature; //TSEN measured SOC temperature [centi-C] |
| 158 | + uint16_t StapmOpnLimit; //Maximum IRM defined STAPM power limit [mW] |
| 159 | + uint16_t StapmCurrentLimit; //Time filtered STAPM power limit [mW] |
| 160 | + uint16_t InfrastructureCpuMaxFreq; //CCLK frequency limit enforced on classic cores [MHz] |
| 161 | + uint16_t InfrastructureGfxMaxFreq; //GFXCLK frequency limit enforced on GFX [MHz] |
| 162 | + uint16_t SkinTemp; //Maximum skin temperature reported by APU and HS2 chassis sensors [centi-C] |
| 163 | + uint16_t GfxclkFrequency; //Time filtered target GFXCLK frequency [MHz] |
| 164 | + uint16_t FclkFrequency; //Time filtered target FCLK frequency [MHz] |
| 165 | + uint16_t GfxActivity; //Time filtered GFX busy % [0-100] |
| 166 | + uint16_t SocclkFrequency; //Time filtered target SOCCLK frequency [MHz] |
| 167 | + uint16_t VclkFrequency; //Time filtered target VCLK frequency [MHz] |
| 168 | + uint16_t VcnActivity; //Time filtered VCN busy % [0-100] |
| 169 | + uint16_t VpeclkFrequency; //Time filtered target VPECLK frequency [MHz] |
| 170 | + uint16_t IpuclkFrequency; //Time filtered target IPUCLK frequency [MHz] |
| 171 | + uint16_t IpuBusy[8]; //Time filtered IPU per-column busy % [0-100] |
| 172 | + uint16_t DRAMReads; //Time filtered DRAM read bandwidth [MB/sec] |
| 173 | + uint16_t DRAMWrites; //Time filtered DRAM write bandwidth [MB/sec] |
| 174 | + uint16_t CoreC0Residency[16]; //Time filtered per-core C0 residency % [0-100] |
| 175 | + uint16_t IpuPower; //Time filtered IPU power [mW] |
| 176 | + uint32_t ApuPower; //Time filtered APU power [mW] |
| 177 | + uint32_t GfxPower; //Time filtered GFX power [mW] |
| 178 | + uint32_t dGpuPower; //Time filtered dGPU power [mW] |
| 179 | + uint32_t SocketPower; //Time filtered power used for PPT/STAPM [APU+dGPU] [mW] |
| 180 | + uint32_t AllCorePower; //Time filtered sum of core power across all cores in the socket [mW] |
| 181 | + uint32_t FilterAlphaValue; //Metrics table alpha filter time constant [us] |
| 182 | + uint32_t MetricsCounter; //Counter that is incremented on every metrics table update [PM_TIMER cycles] |
| 183 | + uint16_t MemclkFrequency; //Time filtered target MEMCLK frequency [MHz] |
| 184 | + uint16_t MpipuclkFrequency; //Time filtered target MPIPUCLK frequency [MHz] |
| 185 | + uint16_t IpuReads; //Time filtered IPU read bandwidth [MB/sec] |
| 186 | + uint16_t IpuWrites; //Time filtered IPU write bandwidth [MB/sec] |
| 187 | + uint32_t ThrottleResidency_PROCHOT; //Counter that is incremented on every metrics table update when PROCHOT was engaged [PM_TIMER cycles] |
| 188 | + uint32_t ThrottleResidency_SPL; //Counter that is incremented on every metrics table update when SPL was engaged [PM_TIMER cycles] |
| 189 | + uint32_t ThrottleResidency_FPPT; //Counter that is incremented on every metrics table update when fast PPT was engaged [PM_TIMER cycles] |
| 190 | + uint32_t ThrottleResidency_SPPT; //Counter that is incremented on every metrics table update when slow PPT was engaged [PM_TIMER cycles] |
| 191 | + uint32_t ThrottleResidency_THM_CORE; //Counter that is incremented on every metrics table update when CORE thermal throttling was engaged [PM_TIMER cycles] |
| 192 | + uint32_t ThrottleResidency_THM_GFX; //Counter that is incremented on every metrics table update when GFX thermal throttling was engaged [PM_TIMER cycles] |
| 193 | + uint32_t ThrottleResidency_THM_SOC; //Counter that is incremented on every metrics table update when SOC thermal throttling was engaged [PM_TIMER cycles] |
| 194 | + uint16_t Psys; //Time filtered Psys power [mW] |
| 195 | + uint16_t spare1; |
| 196 | + uint32_t spare[6]; |
184 | 197 | } SmuMetrics_t; |
185 | 198 |
|
186 | 199 | //ISP tile definitions |
|
0 commit comments