TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
smbus_target.c File Reference
#include "reg.h"
#include "status_reg.h"
#include "dw_apb_i2c.h"
#include "cm2dm_msg.h"
#include "throttler.h"
#include "asic_state.h"
#include "smbus_target.h"
#include "fan_ctrl.h"
#include <stdint.h>
#include <tenstorrent/post_code.h>
#include <tenstorrent/sys_init_defines.h>
#include <tenstorrent/tt_smbus_regs.h>
#include <tenstorrent/smbus_target.h>
#include <zephyr/kernel.h>
#include <zephyr/init.h>
#include <zephyr/drivers/i2c.h>
#include <zephyr/sys/byteorder.h>
#include <zephyr/sys/crc.h>

Macros

#define CM_I2C_DM_TARGET_INST   0

Functions

static int32_t Dm2CmSendFanSpeedHandler (const uint8_t *data, uint8_t size)
static int32_t ReadByteTest (uint8_t *data, uint8_t *size)
static int32_t WriteByteTest (const uint8_t *data, uint8_t size)
static int32_t ReadWordTest (uint8_t *data, uint8_t *size)
static int32_t WriteWordTest (const uint8_t *data, uint8_t size)
static int32_t BlockReadTest (uint8_t *data, uint8_t *size)
int32_t BlockWriteTest (const uint8_t *data, uint8_t size)
int32_t UpdateArcStateHandler (const uint8_t *data, uint8_t size)
static int InitSmbusTarget (void)
 SYS_INIT_APP (InitSmbusTarget)
void PollSmbusTarget (void)

Variables

static const struct devicesmbus_target = DEVICE_DT_GET_OR_NULL(DT_NODELABEL(smbus_target0))
static const SmbusCmdDef smbus_req_cmd_def
static const SmbusCmdDef smbus_ack_cmd_def
static const SmbusCmdDef smbus_update_arc_state_cmd_def
static const SmbusCmdDef smbus_dm_static_info_cmd_def
static const SmbusCmdDef smbus_ping_cmd_def
static const SmbusCmdDef smbus_fan_speed_cmd_def
static const SmbusCmdDef smbus_fan_rpm_cmd_def
static const SmbusCmdDef smbus_telem_read_cmd_def
static const SmbusCmdDef smbus_telem_write_cmd_def
static const SmbusCmdDef smbus_power_limit_cmd_def
static const SmbusCmdDef smbus_power_instant_cmd_def
static const SmbusCmdDef smbus_telem_reg_cmd_def
static const SmbusCmdDef smbus_telem_data_cmd_def
static const SmbusCmdDef smbus_therm_trip_count_cmd_def
static const SmbusCmdDef smbus_dmc_log_cmd_def
static const SmbusCmdDef smbus_test_read_byte_cmd_def
static const SmbusCmdDef smbus_test_write_byte_cmd_def
static const SmbusCmdDef smbus_test_read_word_cmd_def
static const SmbusCmdDef smbus_test_write_word_cmd_def
static const SmbusCmdDef smbus_block_write_block_read_test
static const SmbusCmdDef smbus_test_read_block_cmd_def
static const SmbusCmdDef smbus_test_write_block_cmd_def

Macro Definition Documentation

◆ CM_I2C_DM_TARGET_INST

#define CM_I2C_DM_TARGET_INST   0

Function Documentation

◆ BlockReadTest()

int32_t BlockReadTest ( uint8_t * data,
uint8_t * size )
static

◆ BlockWriteTest()

int32_t BlockWriteTest ( const uint8_t * data,
uint8_t size )

◆ Dm2CmSendFanSpeedHandler()

int32_t Dm2CmSendFanSpeedHandler ( const uint8_t * data,
uint8_t size )
static

◆ InitSmbusTarget()

int InitSmbusTarget ( void )
static

◆ PollSmbusTarget()

void PollSmbusTarget ( void )

◆ ReadByteTest()

int32_t ReadByteTest ( uint8_t * data,
uint8_t * size )
static

◆ ReadWordTest()

int32_t ReadWordTest ( uint8_t * data,
uint8_t * size )
static

◆ SYS_INIT_APP()

SYS_INIT_APP ( InitSmbusTarget )

◆ UpdateArcStateHandler()

int32_t UpdateArcStateHandler ( const uint8_t * data,
uint8_t size )

◆ WriteByteTest()

int32_t WriteByteTest ( const uint8_t * data,
uint8_t size )
static

◆ WriteWordTest()

int32_t WriteWordTest ( const uint8_t * data,
uint8_t size )
static

Variable Documentation

◆ smbus_ack_cmd_def

const SmbusCmdDef smbus_ack_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Cm2DmMsgAckSmbusHandler}
int32_t Cm2DmMsgAckSmbusHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:101
@ kSmbusTransWriteWord
Definition smbus_target.h:18

◆ smbus_block_write_block_read_test

const SmbusCmdDef smbus_block_write_block_read_test
static
Initial value:
= {
.pec = 1U,
.rcv_handler = &BlockWriteTest,
.send_handler = BlockReadTest}
@ kSmbusTransBlockWriteBlockRead
Definition smbus_target.h:22
static int32_t BlockReadTest(uint8_t *data, uint8_t *size)
Definition smbus_target.c:89
int32_t BlockWriteTest(const uint8_t *data, uint8_t size)
Definition smbus_target.c:98

◆ smbus_dm_static_info_cmd_def

const SmbusCmdDef smbus_dm_static_info_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockWrite,
.rcv_handler = &Dm2CmSendDataHandler}
int32_t Dm2CmSendDataHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:240
@ kSmbusTransBlockWrite
Definition smbus_target.h:20

◆ smbus_dmc_log_cmd_def

const SmbusCmdDef smbus_dmc_log_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockWrite,
.rcv_handler = &Dm2CmDMCLogHandler}
int32_t Dm2CmDMCLogHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:392

◆ smbus_fan_rpm_cmd_def

const SmbusCmdDef smbus_fan_rpm_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Dm2CmSendFanRPMHandler}
int32_t Dm2CmSendFanRPMHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:297

◆ smbus_fan_speed_cmd_def

const SmbusCmdDef smbus_fan_speed_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Dm2CmSendFanSpeedHandler}
static int32_t Dm2CmSendFanSpeedHandler(const uint8_t *data, uint8_t size)
Definition smbus_target.c:34

◆ smbus_ping_cmd_def

const SmbusCmdDef smbus_ping_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Dm2CmPingHandler}
int32_t Dm2CmPingHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:264

◆ smbus_power_instant_cmd_def

const SmbusCmdDef smbus_power_instant_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Dm2CmSendPowerHandler}
int32_t Dm2CmSendPowerHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:279

◆ smbus_power_limit_cmd_def

const SmbusCmdDef smbus_power_limit_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &Dm2CmSetBoardPowerLimit}
int32_t Dm2CmSetBoardPowerLimit(const uint8_t *data, uint8_t size)
Definition throttler.c:208

◆ smbus_req_cmd_def

const SmbusCmdDef smbus_req_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockRead,
.send_handler = &Cm2DmMsgReqSmbusHandler}
int32_t Cm2DmMsgReqSmbusHandler(uint8_t *data, uint8_t *size)
Definition cm2dm_msg.c:71
@ kSmbusTransBlockRead
Definition smbus_target.h:21

◆ smbus_target

const struct device* smbus_target = DEVICE_DT_GET_OR_NULL(DT_NODELABEL(smbus_target0))
static

◆ smbus_telem_data_cmd_def

const SmbusCmdDef smbus_telem_data_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockRead,
.send_handler = &SMBusTelemDataHandler}
int32_t SMBusTelemDataHandler(uint8_t *data, uint8_t *size)
Definition cm2dm_msg.c:323

◆ smbus_telem_read_cmd_def

const SmbusCmdDef smbus_telem_read_cmd_def
static
Initial value:
= {.pec = 0U,
.rcv_handler = SMBusTelemRegHandler,
.send_handler = SMBusTelemDataHandler}
int32_t SMBusTelemRegHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:312

◆ smbus_telem_reg_cmd_def

const SmbusCmdDef smbus_telem_reg_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteByte, .rcv_handler = &SMBusTelemRegHandler}
@ kSmbusTransWriteByte
Definition smbus_target.h:16

◆ smbus_telem_write_cmd_def

const SmbusCmdDef smbus_telem_write_cmd_def
static
Initial value:
= {.pec = 0U,
.rcv_handler = Dm2CmWriteTelemetry,
.send_handler = Dm2CmReadControlData}
int32_t Dm2CmReadControlData(uint8_t *data, uint8_t *size)
Definition cm2dm_msg.c:357
int32_t Dm2CmWriteTelemetry(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:348

◆ smbus_test_read_block_cmd_def

const SmbusCmdDef smbus_test_read_block_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockRead,
.send_handler = &BlockReadTest}

◆ smbus_test_read_byte_cmd_def

const SmbusCmdDef smbus_test_read_byte_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransReadByte, .send_handler = &ReadByteTest}
@ kSmbusTransReadByte
Definition smbus_target.h:17
static int32_t ReadByteTest(uint8_t *data, uint8_t *size)
Definition smbus_target.c:51

◆ smbus_test_read_word_cmd_def

const SmbusCmdDef smbus_test_read_word_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransReadWord, .send_handler = &ReadWordTest}
@ kSmbusTransReadWord
Definition smbus_target.h:19
static int32_t ReadWordTest(uint8_t *data, uint8_t *size)
Definition smbus_target.c:68

◆ smbus_test_write_block_cmd_def

const SmbusCmdDef smbus_test_write_block_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransBlockWrite,
.rcv_handler = &BlockWriteTest}

◆ smbus_test_write_byte_cmd_def

const SmbusCmdDef smbus_test_write_byte_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteByte, .rcv_handler = &WriteByteTest}
static int32_t WriteByteTest(const uint8_t *data, uint8_t size)
Definition smbus_target.c:59

◆ smbus_test_write_word_cmd_def

const SmbusCmdDef smbus_test_write_word_cmd_def
static
Initial value:
= {
.pec = 1U, .trans_type = kSmbusTransWriteWord, .rcv_handler = &WriteWordTest}
static int32_t WriteWordTest(const uint8_t *data, uint8_t size)
Definition smbus_target.c:80

◆ smbus_therm_trip_count_cmd_def

const SmbusCmdDef smbus_therm_trip_count_cmd_def
static
Initial value:
= {.pec = 1U,
.trans_type = kSmbusTransWriteWord,
.rcv_handler =
int32_t Dm2CmSendThermTripCountHandler(const uint8_t *data, uint8_t size)
Definition cm2dm_msg.c:336

◆ smbus_update_arc_state_cmd_def

const SmbusCmdDef smbus_update_arc_state_cmd_def
static
Initial value:
= {.pec = 0U,
.trans_type = kSmbusTransBlockWrite,
.rcv_handler = &UpdateArcStateHandler}
int32_t UpdateArcStateHandler(const uint8_t *data, uint8_t size)
Definition smbus_target.c:110