TT-System-Firmware APIs 19.10.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
34
36#define TAG_BOARD_ID_HIGH 1
37
39#define TAG_BOARD_ID_LOW 2
40
42#define TAG_ASIC_ID 3
43
45#define TAG_HARVESTING_STATE 4
46
48#define TAG_UPDATE_TELEM_SPEED 5
49
51#define TAG_VCORE 6
52
54#define TAG_TDP 7
55
57#define TAG_TDC 8
58
60#define TAG_VDD_LIMITS 9
61
63#define TAG_THM_LIMIT_SHUTDOWN 10
64
66#define TAG_ASIC_TEMPERATURE 11
67
69#define TAG_VREG_TEMPERATURE 12
70
72#define TAG_BOARD_TEMPERATURE 13
73
75#define TAG_AICLK 14
76
78#define TAG_AXICLK 15
79
81#define TAG_ARCCLK 16
82
84#define TAG_L2CPUCLK0 17
85
87#define TAG_L2CPUCLK1 18
88
90#define TAG_L2CPUCLK2 19
91
93#define TAG_L2CPUCLK3 20
94
101#define TAG_ETH_LIVE_STATUS 21
102
119#define TAG_GDDR_STATUS 22
120
122#define TAG_GDDR_SPEED 23
123
125#define TAG_ETH_FW_VERSION 24
126
128#define TAG_GDDR_FW_VERSION 25
129
131#define TAG_DM_APP_FW_VERSION 26
132
134#define TAG_DM_BL_FW_VERSION 27
135
137#define TAG_FLASH_BUNDLE_VERSION 28
138
140#define TAG_CM_FW_VERSION 29
141
143#define TAG_L2CPU_FW_VERSION 30
144
146#define TAG_FAN_SPEED 31
147
149#define TAG_TIMER_HEARTBEAT 32
150
152#define TAG_TELEM_ENUM_COUNT 33
153
155#define TAG_ENABLED_TENSIX_COL 34
156
158#define TAG_ENABLED_ETH 35
159
161#define TAG_ENABLED_GDDR 36
162
164#define TAG_ENABLED_L2CPU 37
165
167#define TAG_PCIE_USAGE 38
168
170#define TAG_INPUT_CURRENT 39
171
173#define TAG_NOC_TRANSLATION 40
174
176#define TAG_FAN_RPM 41
177
179#define TAG_GDDR_0_1_TEMP 42
180
182#define TAG_GDDR_2_3_TEMP 43
183
185#define TAG_GDDR_4_5_TEMP 44
186
188#define TAG_GDDR_6_7_TEMP 45
189
191#define TAG_GDDR_0_1_CORR_ERRS 46
192
194#define TAG_GDDR_2_3_CORR_ERRS 47
195
197#define TAG_GDDR_4_5_CORR_ERRS 48
198
200#define TAG_GDDR_6_7_CORR_ERRS 49
201
203#define TAG_GDDR_UNCORR_ERRS 50
204
206#define TAG_MAX_GDDR_TEMP 51
207
209#define TAG_ASIC_LOCATION 52
210
212#define TAG_BOARD_POWER_LIMIT 53
213
215#define TAG_INPUT_POWER 54
216
218#define TAG_TDC_LIMIT_MAX 55
219
221#define TAG_THM_LIMIT_THROTTLE 56
222
224#define TAG_FW_BUILD_DATE 57
225
227#define TAG_TT_FLASH_VERSION 58
228
230#define TAG_ENABLED_TENSIX_ROW 59
231
233#define TAG_THERM_TRIP_COUNT 60
234
236#define TAG_ASIC_ID_HIGH 61
237
239#define TAG_ASIC_ID_LOW 62
240
242#define TAG_AICLK_LIMIT_MAX 63
243
245#define TAG_TDP_LIMIT_MAX 64
246
259#define TAG_AICLK_ARB_MIN 65
260
275#define TAG_AICLK_ARB_MAX 66
276
285#define TAG_ENABLED_MIN_ARB 67
286
295#define TAG_ENABLED_MAX_ARB 68
296
305#define TAG_AICLK_PPM_INFO 69
306
315#define TAG_HOST_AICLK_LIMIT 70
316 /* end of telemetry_tag group */
318
319/* Not a real tag, signifies the last tag in the list.
320 * MUST be incremented if new tags are defined.
321 */
322#define TAG_COUNT 71
323
324/* Telemetry tags are at offset `tag` in the telemetry buffer */
325#define TELEM_OFFSET(tag) (tag)
326
327void init_telemetry(uint32_t app_version);
330int GetMaxGDDRTemp(void);
331void StartTelemetryTimer(void);
332void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version);
333void UpdateTelemetryNocTranslation(bool translation_enabled);
335void UpdateTelemetryTdpLimit(uint32_t tdp_limit);
336void UpdateTelemetryThermTripCount(uint16_t therm_trip_count);
340
341#endif
__UINT32_TYPE__ uint32_t
__INT32_TYPE__ int32_t
__UINT16_TYPE__ uint16_t
uint32_t ConvertFloatToTelemetry(float value)
Definition telemetry.c:191
bool GetTelemetryTagValid(uint16_t tag)
Definition telemetry.c:545
void UpdateTelemetryThermTripCount(uint16_t therm_trip_count)
Definition telemetry.c:535
int GetMaxGDDRTemp(void)
Definition telemetry.c:304
void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version)
Definition telemetry.c:513
void init_telemetry(uint32_t app_version)
Definition telemetry.c:491
uint32_t GetTelemetryTag(uint16_t tag)
Definition telemetry.c:550
void UpdateTelemetryBoardPowerLimit(uint32_t power_limit)
Definition telemetry.c:525
void UpdateTelemetryNocTranslation(bool translation_enabled)
Definition telemetry.c:519
float ConvertTelemetryToFloat(int32_t value)
Definition telemetry.c:211
void UpdateTelemetryTdpLimit(uint32_t tdp_limit)
Definition telemetry.c:530
void StartTelemetryTimer(void)
Definition telemetry.c:502
void UpdateTelemetryHostAiclkLimit(uint32_t fmax)
Definition telemetry.c:540
static uint32_t power_limit
Definition throttler.c:22