TT Zephyr Platforms 19.0.0-rc2
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
96#define TAG_ETH_LIVE_STATUS 21
97
99#define TAG_GDDR_STATUS 22
100
102#define TAG_GDDR_SPEED 23
103
105#define TAG_ETH_FW_VERSION 24
106
108#define TAG_GDDR_FW_VERSION 25
109
111#define TAG_DM_APP_FW_VERSION 26
112
114#define TAG_DM_BL_FW_VERSION 27
115
117#define TAG_FLASH_BUNDLE_VERSION 28
118
120#define TAG_CM_FW_VERSION 29
121
123#define TAG_L2CPU_FW_VERSION 30
124
126#define TAG_FAN_SPEED 31
127
129#define TAG_TIMER_HEARTBEAT 32
130
132#define TAG_TELEM_ENUM_COUNT 33
133
135#define TAG_ENABLED_TENSIX_COL 34
136
138#define TAG_ENABLED_ETH 35
139
141#define TAG_ENABLED_GDDR 36
142
144#define TAG_ENABLED_L2CPU 37
145
147#define TAG_PCIE_USAGE 38
148
150#define TAG_INPUT_CURRENT 39
151
153#define TAG_NOC_TRANSLATION 40
154
156#define TAG_FAN_RPM 41
157
159#define TAG_GDDR_0_1_TEMP 42
160
162#define TAG_GDDR_2_3_TEMP 43
163
165#define TAG_GDDR_4_5_TEMP 44
166
168#define TAG_GDDR_6_7_TEMP 45
169
171#define TAG_GDDR_0_1_CORR_ERRS 46
172
174#define TAG_GDDR_2_3_CORR_ERRS 47
175
177#define TAG_GDDR_4_5_CORR_ERRS 48
178
180#define TAG_GDDR_6_7_CORR_ERRS 49
181
183#define TAG_GDDR_UNCORR_ERRS 50
184
186#define TAG_MAX_GDDR_TEMP 51
187
189#define TAG_ASIC_LOCATION 52
190
192#define TAG_BOARD_POWER_LIMIT 53
193
195#define TAG_INPUT_POWER 54
196
198#define TAG_TDC_LIMIT_MAX 55
199
201#define TAG_THM_LIMIT_THROTTLE 56
202
204#define TAG_FW_BUILD_DATE 57
205
207#define TAG_TT_FLASH_VERSION 58
208
210#define TAG_ENABLED_TENSIX_ROW 59
211
213#define TAG_THERM_TRIP_COUNT 60
214
216#define TAG_ASIC_ID_HIGH 61
217
219#define TAG_ASIC_ID_LOW 62
220
222#define TAG_AICLK_LIMIT_MAX 63
223
225#define TAG_TDP_LIMIT_MAX 64
226 /* end of telemetry_tag group */
228
229/* Not a real tag, signifies the last tag in the list.
230 * MUST be incremented if new tags are defined.
231 */
232#define TAG_COUNT 65
233
234/* Telemetry tags are at offset `tag` in the telemetry buffer */
235#define TELEM_OFFSET(tag) (tag)
236
237void init_telemetry(uint32_t app_version);
240int GetMaxGDDRTemp(void);
241void StartTelemetryTimer(void);
242void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version);
243void UpdateTelemetryNocTranslation(bool translation_enabled);
245void UpdateTelemetryThermTripCount(uint16_t therm_trip_count);
248
249#endif
__UINT32_TYPE__ uint32_t
__INT32_TYPE__ int32_t
__UINT16_TYPE__ uint16_t
uint32_t ConvertFloatToTelemetry(float value)
Definition telemetry.c:182
bool GetTelemetryTagValid(uint16_t tag)
Definition telemetry.c:501
void UpdateTelemetryThermTripCount(uint16_t therm_trip_count)
Definition telemetry.c:496
int GetMaxGDDRTemp(void)
Definition telemetry.c:283
void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version)
Definition telemetry.c:479
void init_telemetry(uint32_t app_version)
Definition telemetry.c:457
uint32_t GetTelemetryTag(uint16_t tag)
Definition telemetry.c:506
void UpdateTelemetryBoardPowerLimit(uint32_t power_limit)
Definition telemetry.c:491
void UpdateTelemetryNocTranslation(bool translation_enabled)
Definition telemetry.c:485
float ConvertTelemetryToFloat(int32_t value)
Definition telemetry.c:202
void StartTelemetryTimer(void)
Definition telemetry.c:468