TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
cm2dm_msg.c File Reference

CMFW to DMFW message handling. More...

#include <string.h>
#include <zephyr/kernel.h>
#include <zephyr/drivers/misc/bh_fwtable.h>
#include <zephyr/drivers/watchdog.h>
#include <zephyr/drivers/uart.h>
#include <zephyr/sys/byteorder.h>
#include <zephyr/sys/crc.h>
#include <tenstorrent/smc_msg.h>
#include <tenstorrent/msgqueue.h>
#include "cm2dm_msg.h"
#include "asic_state.h"
#include "reg.h"
#include "status_reg.h"
#include "fan_ctrl.h"
#include "telemetry.h"

Data Structures

struct  Cm2DmMsgState

Functions

 K_SEM_DEFINE (dmfw_ping_sem, 0, 1)
void PostCm2DmMsg (Cm2DmMsgId msg_id, uint32_t data)
static Cm2DmMsgId next_id_rr (uint32_t pending_messages)
int32_t Cm2DmMsgReqSmbusHandler (uint8_t *data, uint8_t *size)
int32_t Cm2DmMsgAckSmbusHandler (const uint8_t *data, uint8_t size)
void IssueChipReset (Cm2DmResetLevel reset_level)
void ChipResetRequest (void *arg)
void UpdateFanSpeedRequest (uint32_t fan_speed)
void UpdateForcedFanSpeedRequest (uint32_t fan_speed)
void Dm2CmReadyRequest (void)
void UpdateAutoResetTimeoutRequest (uint32_t timeout)
void UpdateTelemHeartbeatRequest (uint32_t heartbeat)
static uint8_t reset_dm_handler (const union request *request, struct response *response)
 REGISTER_MESSAGE (TT_SMC_MSG_TRIGGER_RESET, reset_dm_handler)
static uint8_t ping_dm_handler (const union request *request, struct response *response)
 REGISTER_MESSAGE (TT_SMC_MSG_PING_DM, ping_dm_handler)
static uint8_t set_watchdog_timeout (const union request *request, struct response *response)
 REGISTER_MESSAGE (TT_SMC_MSG_SET_WDT_TIMEOUT, set_watchdog_timeout)
int32_t Dm2CmSendDataHandler (const uint8_t *data, uint8_t size)
int32_t Dm2CmPingHandler (const uint8_t *data, uint8_t size)
int32_t Dm2CmSendPowerHandler (const uint8_t *data, uint8_t size)
uint16_t GetInputPower (void)
int32_t Dm2CmSendFanRPMHandler (const uint8_t *data, uint8_t size)
int32_t SMBusTelemRegHandler (const uint8_t *data, uint8_t size)
int32_t SMBusTelemDataHandler (uint8_t *data, uint8_t *size)
int32_t Dm2CmSendThermTripCountHandler (const uint8_t *data, uint8_t size)
int32_t Dm2CmWriteTelemetry (const uint8_t *data, uint8_t size)
int32_t Dm2CmReadControlData (uint8_t *data, uint8_t *size)
int32_t Dm2CmDMCLogHandler (const uint8_t *data, uint8_t size)

Variables

static Cm2DmMsgState cm2dm_msg_state
static uint16_t power
static uint16_t telemetry_reg
struct { 
   uint8_t   chip_reset_asic_called: 1 
   uint8_t   chip_reset_dmc_called: 1 
chip_reset_state
const struct devicedmc_uart = DEVICE_DT_GET_OR_NULL(DT_ALIAS(dmc_vuart))

Detailed Description

CMFW to DMFW message handling.

Function Documentation

◆ ChipResetRequest()

void ChipResetRequest ( void * arg)

◆ Cm2DmMsgAckSmbusHandler()

int32_t Cm2DmMsgAckSmbusHandler ( const uint8_t * data,
uint8_t size )

◆ Cm2DmMsgReqSmbusHandler()

int32_t Cm2DmMsgReqSmbusHandler ( uint8_t * data,
uint8_t * size )

◆ Dm2CmDMCLogHandler()

int32_t Dm2CmDMCLogHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmPingHandler()

int32_t Dm2CmPingHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmReadControlData()

int32_t Dm2CmReadControlData ( uint8_t * data,
uint8_t * size )

◆ Dm2CmReadyRequest()

void Dm2CmReadyRequest ( void )

◆ Dm2CmSendDataHandler()

int32_t Dm2CmSendDataHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmSendFanRPMHandler()

int32_t Dm2CmSendFanRPMHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmSendPowerHandler()

int32_t Dm2CmSendPowerHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmSendThermTripCountHandler()

int32_t Dm2CmSendThermTripCountHandler ( const uint8_t * data,
uint8_t size )

◆ Dm2CmWriteTelemetry()

int32_t Dm2CmWriteTelemetry ( const uint8_t * data,
uint8_t size )

◆ GetInputPower()

uint16_t GetInputPower ( void )

◆ IssueChipReset()

void IssueChipReset ( Cm2DmResetLevel reset_level)

◆ K_SEM_DEFINE()

K_SEM_DEFINE ( dmfw_ping_sem ,
0 ,
1  )

◆ next_id_rr()

Cm2DmMsgId next_id_rr ( uint32_t pending_messages)
static

◆ ping_dm_handler()

uint8_t ping_dm_handler ( const union request * request,
struct response * response )
static

◆ PostCm2DmMsg()

void PostCm2DmMsg ( Cm2DmMsgId msg_id,
uint32_t data )

◆ REGISTER_MESSAGE() [1/3]

REGISTER_MESSAGE ( TT_SMC_MSG_PING_DM ,
ping_dm_handler  )

◆ REGISTER_MESSAGE() [2/3]

◆ REGISTER_MESSAGE() [3/3]

REGISTER_MESSAGE ( TT_SMC_MSG_TRIGGER_RESET ,
reset_dm_handler  )

◆ reset_dm_handler()

uint8_t reset_dm_handler ( const union request * request,
struct response * response )
static

◆ set_watchdog_timeout()

uint8_t set_watchdog_timeout ( const union request * request,
struct response * response )
static

◆ SMBusTelemDataHandler()

int32_t SMBusTelemDataHandler ( uint8_t * data,
uint8_t * size )

◆ SMBusTelemRegHandler()

int32_t SMBusTelemRegHandler ( const uint8_t * data,
uint8_t size )

◆ UpdateAutoResetTimeoutRequest()

void UpdateAutoResetTimeoutRequest ( uint32_t timeout)

◆ UpdateFanSpeedRequest()

void UpdateFanSpeedRequest ( uint32_t fan_speed)

◆ UpdateForcedFanSpeedRequest()

void UpdateForcedFanSpeedRequest ( uint32_t fan_speed)

◆ UpdateTelemHeartbeatRequest()

void UpdateTelemHeartbeatRequest ( uint32_t heartbeat)

Variable Documentation

◆ chip_reset_asic_called

uint8_t chip_reset_asic_called

◆ chip_reset_dmc_called

uint8_t chip_reset_dmc_called

◆ [struct]

struct { ... } chip_reset_state

◆ cm2dm_msg_state

Cm2DmMsgState cm2dm_msg_state
static

◆ dmc_uart

const struct device* dmc_uart = DEVICE_DT_GET_OR_NULL(DT_ALIAS(dmc_vuart))

◆ power

uint16_t power
static

◆ telemetry_reg

uint16_t telemetry_reg
static