TT-System-Firmware APIs 19.13.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
telemetry.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef TELEMETRY_H
7#define TELEMETRY_H
8
9#include <stdbool.h>
10#include <stdint.h>
11
21
26#define TELEMETRY_VERSION 0x00000100
27
51
76
82 /* end of telemetry_feature_capabilities */
84
91
93#define TAG_BOARD_ID_HIGH 1
94
96#define TAG_BOARD_ID_LOW 2
97
99#define TAG_ASIC_ID 3
100
102#define TAG_HARVESTING_STATE 4
103
105#define TAG_UPDATE_TELEM_SPEED 5
106
108#define TAG_VCORE 6
109
111#define TAG_TDP 7
112
114#define TAG_TDC 8
115
117#define TAG_VDD_LIMITS 9
118
120#define TAG_THM_LIMIT_SHUTDOWN 10
121
123#define TAG_ASIC_TEMPERATURE 11
124
126#define TAG_VREG_TEMPERATURE 12
127
129#define TAG_BOARD_TEMPERATURE 13
130
132#define TAG_AICLK 14
133
135#define TAG_AXICLK 15
136
138#define TAG_ARCCLK 16
139
141#define TAG_L2CPUCLK0 17
142
144#define TAG_L2CPUCLK1 18
145
147#define TAG_L2CPUCLK2 19
148
150#define TAG_L2CPUCLK3 20
151
158#define TAG_ETH_LIVE_STATUS 21
159
176#define TAG_GDDR_STATUS 22
177
179#define TAG_GDDR_SPEED 23
180
182#define TAG_ETH_FW_VERSION 24
183
185#define TAG_GDDR_FW_VERSION 25
186
188#define TAG_DM_APP_FW_VERSION 26
189
191#define TAG_DM_BL_FW_VERSION 27
192
194#define TAG_FLASH_BUNDLE_VERSION 28
195
197#define TAG_CM_FW_VERSION 29
198
200#define TAG_L2CPU_FW_VERSION 30
201
203#define TAG_FAN_SPEED 31
204
206#define TAG_TIMER_HEARTBEAT 32
207
209#define TAG_TELEM_ENUM_COUNT 33
210
212#define TAG_ENABLED_TENSIX_COL 34
213
215#define TAG_ENABLED_ETH 35
216
218#define TAG_ENABLED_GDDR 36
219
221#define TAG_ENABLED_L2CPU 37
222
224#define TAG_PCIE_USAGE 38
225
227#define TAG_INPUT_CURRENT 39
228
230#define TAG_NOC_TRANSLATION 40
231
233#define TAG_FAN_RPM 41
234
243#define TAG_GDDR_0_1_TEMP 42
244
253#define TAG_GDDR_2_3_TEMP 43
254
263#define TAG_GDDR_4_5_TEMP 44
264
273#define TAG_GDDR_6_7_TEMP 45
274
276#define TAG_GDDR_0_1_CORR_ERRS 46
277
279#define TAG_GDDR_2_3_CORR_ERRS 47
280
282#define TAG_GDDR_4_5_CORR_ERRS 48
283
285#define TAG_GDDR_6_7_CORR_ERRS 49
286
288#define TAG_GDDR_UNCORR_ERRS 50
289
291#define TAG_MAX_GDDR_TEMP 51
292
294#define TAG_ASIC_LOCATION 52
295
297#define TAG_BOARD_POWER_LIMIT 53
298
300#define TAG_INPUT_POWER 54
301
303#define TAG_TDC_LIMIT_MAX 55
304
306#define TAG_THM_LIMIT_THROTTLE 56
307
309#define TAG_FW_BUILD_DATE 57
310
312#define TAG_TT_FLASH_VERSION 58
313
315#define TAG_ENABLED_TENSIX_ROW 59
316
318#define TAG_THERM_TRIP_COUNT 60
319
321#define TAG_ASIC_ID_HIGH 61
322
324#define TAG_ASIC_ID_LOW 62
325
327#define TAG_AICLK_LIMIT_MAX 63
328
330#define TAG_TDP_LIMIT_MAX 64
331
344#define TAG_AICLK_ARB_MIN 65
345
360#define TAG_AICLK_ARB_MAX 66
361
370#define TAG_ENABLED_MIN_ARB 67
371
380#define TAG_ENABLED_MAX_ARB 68
381
390#define TAG_AICLK_PPM_INFO 69
391
400#define TAG_HOST_AICLK_LIMIT 70
401
403#define TAG_SMBUS_ERRORS 71
404
413#define TAG_GDDR_MRISC_NOC2AXI_PORT 72
414
420#define TAG_GDDR_WEST_IO_POWER 73
421
427#define TAG_GDDR_EAST_IO_POWER 74
428
437#define TAG_KERNEL_THROTTLER 75
438
444#define TAG_NOP_START_COUNT 76
445
451#define TAG_NOP_ON_DURATION 77
452
461#define TAG_FW_CAPABILITIES_0 78
462
474#define TAG_FW_ACTIVE_CONFIG_0 79
475 /* end of telemetry_tag group */
477
478/* Not a real tag, signifies the last tag in the list.
479 * MUST be incremented if new tags are defined.
480 */
481#define TAG_COUNT 80
482
483/* Telemetry tags are at offset `tag` in the telemetry buffer */
484#define TELEM_OFFSET(tag) (tag)
485
486void init_telemetry(uint32_t app_version);
490void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version);
491void UpdateTelemetryNocTranslation(bool translation_enabled);
493void UpdateTelemetryTdpLimit(uint32_t tdp_limit);
494void UpdateTelemetryThermTripCount(uint16_t therm_trip_count);
496void UpdateTelemetryKernelThrottler(bool enabled, uint32_t stop_nops_freq);
506
507#endif
telemetry_feature_flags_bits_0_t GetActiveFeatures(void)
Get the current active firmware feature bits from TAG_FW_ACTIVE_CONFIG_0.
Definition telemetry.c:263
uint32_t ConvertFloatToTelemetry(float value)
Definition telemetry.c:190
bool GetTelemetryTagValid(uint16_t tag)
Definition telemetry.c:272
void UpdateTelemetryThermTripCount(uint16_t therm_trip_count)
Definition telemetry.c:242
void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version)
Definition telemetry.c:220
uint32_t GetTelemetryTag(uint16_t tag)
Definition telemetry.c:277
void UpdateTelemetryBoardPowerLimit(uint32_t power_limit)
Definition telemetry.c:232
void UpdateTelemetryNocTranslation(bool translation_enabled)
Definition telemetry.c:226
float ConvertTelemetryToFloat(int32_t value)
Definition telemetry.c:210
void UpdateTelemetryTdpLimit(uint32_t tdp_limit)
Definition telemetry.c:237
void UpdateTelemetryKernelThrottler(bool enabled, uint32_t stop_nops_freq)
Definition telemetry.c:252
void UpdateTelemetryHostAiclkLimit(uint32_t fmax)
Definition telemetry.c:247
__UINT32_TYPE__ uint32_t
__INT32_TYPE__ int32_t
__UINT16_TYPE__ uint16_t
Bit definitions shared by firmware capability and active-configuration telemetry.
Definition telemetry.h:64
uint32_t kernel_nops_at_aiclk_fmin
Kernel-throttler-at-AICLK-floor feature.
Definition telemetry.h:71
uint32_t reserved
Reserved for future use.
Definition telemetry.h:74
void init_telemetry(uint32_t app_version)
void StartTelemetryTimer(void)
static uint32_t power_limit
Definition throttler.c:23
Packed 32-bit representation of telemetry_feature_flags_bits_0_t.
Definition telemetry.h:78
telemetry_feature_flags_bits_0_t bits
Definition telemetry.h:80
uint32_t u32_all
Definition telemetry.h:79