26#define TELEMETRY_VERSION 0x00000100
105#define TAG_BOARD_ID_HIGH 1
108#define TAG_BOARD_ID_LOW 2
114#define TAG_HARVESTING_STATE 4
117#define TAG_UPDATE_TELEM_SPEED 5
129#define TAG_VDD_LIMITS 9
132#define TAG_THM_LIMIT_SHUTDOWN 10
135#define TAG_ASIC_TEMPERATURE 11
138#define TAG_VREG_TEMPERATURE 12
141#define TAG_BOARD_TEMPERATURE 13
153#define TAG_L2CPUCLK0 17
156#define TAG_L2CPUCLK1 18
159#define TAG_L2CPUCLK2 19
162#define TAG_L2CPUCLK3 20
170#define TAG_ETH_LIVE_STATUS 21
188#define TAG_GDDR_STATUS 22
191#define TAG_GDDR_SPEED 23
194#define TAG_ETH_FW_VERSION 24
197#define TAG_GDDR_FW_VERSION 25
200#define TAG_DM_APP_FW_VERSION 26
203#define TAG_DM_BL_FW_VERSION 27
206#define TAG_FLASH_BUNDLE_VERSION 28
209#define TAG_CM_FW_VERSION 29
212#define TAG_L2CPU_FW_VERSION 30
215#define TAG_FAN_SPEED 31
218#define TAG_TIMER_HEARTBEAT 32
221#define TAG_TELEM_ENUM_COUNT 33
224#define TAG_ENABLED_TENSIX_COL 34
227#define TAG_ENABLED_ETH 35
230#define TAG_ENABLED_GDDR 36
233#define TAG_ENABLED_L2CPU 37
236#define TAG_PCIE_USAGE 38
239#define TAG_INPUT_CURRENT 39
242#define TAG_NOC_TRANSLATION 40
245#define TAG_FAN_RPM 41
255#define TAG_GDDR_0_1_TEMP 42
265#define TAG_GDDR_2_3_TEMP 43
275#define TAG_GDDR_4_5_TEMP 44
285#define TAG_GDDR_6_7_TEMP 45
288#define TAG_GDDR_0_1_CORR_ERRS 46
291#define TAG_GDDR_2_3_CORR_ERRS 47
294#define TAG_GDDR_4_5_CORR_ERRS 48
297#define TAG_GDDR_6_7_CORR_ERRS 49
300#define TAG_GDDR_UNCORR_ERRS 50
303#define TAG_MAX_GDDR_TEMP 51
306#define TAG_ASIC_LOCATION 52
309#define TAG_BOARD_POWER_LIMIT 53
312#define TAG_INPUT_POWER 54
315#define TAG_TDC_LIMIT_MAX 55
318#define TAG_THM_LIMIT_THROTTLE 56
321#define TAG_FW_BUILD_DATE 57
324#define TAG_TT_FLASH_VERSION 58
327#define TAG_ENABLED_TENSIX_ROW 59
330#define TAG_THERM_TRIP_COUNT 60
333#define TAG_ASIC_ID_HIGH 61
336#define TAG_ASIC_ID_LOW 62
339#define TAG_AICLK_LIMIT_MAX 63
342#define TAG_TDP_LIMIT_MAX 64
356#define TAG_AICLK_ARB_MIN 65
372#define TAG_AICLK_ARB_MAX 66
382#define TAG_ENABLED_MIN_ARB 67
392#define TAG_ENABLED_MAX_ARB 68
402#define TAG_AICLK_PPM_INFO 69
412#define TAG_HOST_AICLK_LIMIT 70
415#define TAG_SMBUS_ERRORS 71
425#define TAG_GDDR_MRISC_NOC2AXI_PORT 72
432#define TAG_GDDR_WEST_IO_POWER 73
439#define TAG_GDDR_EAST_IO_POWER 74
449#define TAG_KERNEL_THROTTLER 75
456#define TAG_NOP_START_COUNT 76
463#define TAG_NOP_ON_DURATION 77
475#define TAG_FW_CAPABILITIES_0 78
493#define TAG_FW_ACTIVE_CONFIG_0 79
501#define TAG_FLASH_JEDEC_ID 80
514#define TAG_CCFGOVR_STATE 81
520#define TAG_CCFGOVR_SEQ 82
523#define TAG_BOARD_ID_EXT_HIGH 83
526#define TAG_BOARD_ID_EXT_MIDDLE 84
529#define TAG_BOARD_ID_EXT_LOW 85
539#define TELEM_UPDATE_INTERVAL_DEFAULT_MS 100
547#define TELEM_UPDATE_INTERVAL_MIN_MS 1
telemetry_feature_flags_bits_0_t GetActiveFeatures(void)
Get the current active firmware feature bits from TAG_FW_ACTIVE_CONFIG_0.
Definition telemetry.c:146
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 gddr_therm_trip
GDDR thermal-trip action feature.
Definition telemetry.h:80
uint32_t reserved
Reserved for future use.
Definition telemetry.h:86
uint32_t extended_board_id
Extended board ID.
Definition telemetry.h:83
uint8_t TelemetrySetUpdateInterval(uint32_t interval_ms)
Set the periodic telemetry update interval.
uint32_t ConvertFloatToTelemetry(float value)
Definition telemetry.c:49
bool GetTelemetryTagValid(uint16_t tag)
Definition telemetry.c:155
void UpdateTelemetryThermTripCount(uint16_t therm_trip_count)
Definition telemetry.c:101
void UpdateTelemetryGddrThermTrip(bool enabled)
Update the GDDR thermal-trip active-config bit in TAG_FW_ACTIVE_CONFIG_0.
Definition telemetry.c:136
void UpdateDmFwVersion(uint32_t bl_version, uint32_t app_version)
Definition telemetry.c:79
int StartTelemetryTimer(void)
uint32_t GetTelemetryTag(uint16_t tag)
Definition telemetry.c:160
void UpdateTelemetryBoardPowerLimit(uint32_t power_limit)
Definition telemetry.c:91
void UpdateTelemetryNocTranslation(bool translation_enabled)
Definition telemetry.c:85
float ConvertTelemetryToFloat(int32_t value)
Definition telemetry.c:69
void UpdateTelemetryTdpLimit(uint32_t tdp_limit)
Definition telemetry.c:96
void UpdateTelemetryFlashJedecId(uint32_t jedec_id)
Record the flash JEDEC ID in TAG_FLASH_JEDEC_ID.
Definition telemetry.c:123
void UpdateTelemetryKernelThrottler(bool enabled, uint32_t stop_nops_freq)
Definition telemetry.c:111
uint32_t GetTelemetryFlashJedecId(void)
Get the flash JEDEC ID from TAG_FLASH_JEDEC_ID, 0 if it was never read.
Definition telemetry.c:131
void UpdateTelemetryHostAiclkLimit(uint32_t fmax)
Definition telemetry.c:106
static uint32_t power_limit
Definition throttler.c:23
Packed 32-bit representation of telemetry_feature_flags_bits_0_t.
Definition telemetry.h:90
telemetry_feature_flags_bits_0_t bits
Definition telemetry.h:92
uint32_t u32_all
Definition telemetry.h:91