TT Zephyr Platforms 18.11.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
12#define TELEMETRY_VERSION 0x00000100 /* v0.1.0 - Only update when redefining the
13 * meaning of an existing tag
14 * Semver format: 0 x 00 Major Minor Patch
15 */
17/* Tags - these will be guaranteed and will not change */
18#define TAG_BOARD_ID_HIGH 1
19#define TAG_BOARD_ID_LOW 2
20#define TAG_ASIC_ID 3
21#define TAG_HARVESTING_STATE 4
22#define TAG_UPDATE_TELEM_SPEED 5
23#define TAG_VCORE 6
24#define TAG_TDP 7
25#define TAG_TDC 8
26#define TAG_VDD_LIMITS 9
27#define TAG_THM_LIMIT_SHUTDOWN 10
28#define TAG_ASIC_TEMPERATURE 11
29#define TAG_VREG_TEMPERATURE 12
30#define TAG_BOARD_TEMPERATURE 13
31#define TAG_AICLK 14
32#define TAG_AXICLK 15
33#define TAG_ARCCLK 16
34#define TAG_L2CPUCLK0 17
35#define TAG_L2CPUCLK1 18
36#define TAG_L2CPUCLK2 19
37#define TAG_L2CPUCLK3 20
38#define TAG_ETH_LIVE_STATUS 21
39#define TAG_GDDR_STATUS 22
40#define TAG_GDDR_SPEED 23
41#define TAG_ETH_FW_VERSION 24
42#define TAG_GDDR_FW_VERSION 25
43#define TAG_DM_APP_FW_VERSION 26
44#define TAG_DM_BL_FW_VERSION 27
45#define TAG_FLASH_BUNDLE_VERSION 28
46#define TAG_CM_FW_VERSION 29
47#define TAG_L2CPU_FW_VERSION 30
48#define TAG_FAN_SPEED 31
49#define TAG_TIMER_HEARTBEAT 32
50#define TAG_TELEM_ENUM_COUNT 33
51#define TAG_ENABLED_TENSIX_COL 34
52#define TAG_ENABLED_ETH 35
53#define TAG_ENABLED_GDDR 36
54#define TAG_ENABLED_L2CPU 37
55#define TAG_PCIE_USAGE 38
56#define TAG_INPUT_CURRENT 39
57#define TAG_NOC_TRANSLATION 40
58#define TAG_FAN_RPM 41
59#define TAG_GDDR_0_1_TEMP 42
60#define TAG_GDDR_2_3_TEMP 43
61#define TAG_GDDR_4_5_TEMP 44
62#define TAG_GDDR_6_7_TEMP 45
63#define TAG_GDDR_0_1_CORR_ERRS 46
64#define TAG_GDDR_2_3_CORR_ERRS 47
65#define TAG_GDDR_4_5_CORR_ERRS 48
66#define TAG_GDDR_6_7_CORR_ERRS 49
67#define TAG_GDDR_UNCORR_ERRS 50
68#define TAG_MAX_GDDR_TEMP 51
69#define TAG_ASIC_LOCATION 52
70#define TAG_BOARD_POWER_LIMIT 53
71#define TAG_INPUT_POWER 54
72#define TAG_TDC_LIMIT_MAX 55
73#define TAG_THM_LIMIT_THROTTLE 56
74#define TAG_FW_BUILD_DATE 57
75#define TAG_TT_FLASH_VERSION 58
76#define TAG_ENABLED_TENSIX_ROW 59
77#define TAG_THERM_TRIP_COUNT 60
78#define TAG_ASIC_ID_HIGH 61
79#define TAG_ASIC_ID_LOW 62
80#define TAG_AICLK_LIMIT_MAX 63
81#define TAG_TDP_LIMIT_MAX 64
82
83/* Not a real tag, signifies the last tag in the list.
84 * MUST be incremented if new tags are defined.
85 */
86#define TAG_COUNT 65
87
88/* Telemetry tags are at offset `tag` in the telemetry buffer */
89#define TELEM_OFFSET(tag) (tag)
90
91void init_telemetry(uint32_t app_version);
94int GetMaxGDDRTemp(void);
95void StartTelemetryTimer(void);
96void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version);
97void UpdateTelemetryNocTranslation(bool translation_enabled);
99void UpdateTelemetryThermTripCount(uint16_t therm_trip_count);
102
103#endif
__UINT32_TYPE__ uint32_t
__INT32_TYPE__ int32_t
__UINT16_TYPE__ uint16_t
uint32_t ConvertFloatToTelemetry(float value)
Definition telemetry.c:124
bool GetTelemetryTagValid(uint16_t tag)
Definition telemetry.c:448
void UpdateTelemetryThermTripCount(uint16_t therm_trip_count)
Definition telemetry.c:443
int GetMaxGDDRTemp(void)
Definition telemetry.c:225
void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version)
Definition telemetry.c:426
void init_telemetry(uint32_t app_version)
Definition telemetry.c:404
uint32_t GetTelemetryTag(uint16_t tag)
Definition telemetry.c:453
void UpdateTelemetryBoardPowerLimit(uint32_t power_limit)
Definition telemetry.c:438
void UpdateTelemetryNocTranslation(bool translation_enabled)
Definition telemetry.c:432
float ConvertTelemetryToFloat(int32_t value)
Definition telemetry.c:144
void StartTelemetryTimer(void)
Definition telemetry.c:415