TT-System-Firmware APIs 19.8.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
reset.c File Reference
#include "cm2dm_msg.h"
#include "eth.h"
#include "gddr.h"
#include "harvesting.h"
#include "init.h"
#include "irqnum.h"
#include "noc.h"
#include "noc_init.h"
#include "noc2axi.h"
#include "reg.h"
#include "status_reg.h"
#include "tensix_init.h"
#include "bh_reset.h"
#include <stdint.h>
#include <tenstorrent/msgqueue.h>
#include <tenstorrent/smc_msg.h>
#include <tenstorrent/post_code.h>
#include <tenstorrent/sys_init_defines.h>
#include <tenstorrent/tt_boot_fs.h>
#include <zephyr/drivers/misc/bh_fwtable.h>
#include <zephyr/init.h>
#include <zephyr/kernel.h>
#include <zephyr/logging/log.h>
#include <zephyr/sys/util.h>
#include <zephyr/toolchain.h>
#include <zephyr/device.h>
#include <zephyr/devicetree.h>
#include <zephyr/drivers/clock_control/clock_control_tt_bh.h>
#include <zephyr/drivers/clock_control.h>

Macros

#define DT_DRV_COMPAT   tenstorrent_bh_clock_control
#define PLL_DEVICE_INIT(inst)

Functions

 LOG_MODULE_REGISTER (InitHW, CONFIG_TT_APP_LOG_LEVEL)
bool is_cable_fault_mode (void)
 Check if the system is in cable fault mode.
void bh_soft_reset_all_tensix (void)
static int AssertSoftResets (void)
 SYS_INIT_APP (AssertSoftResets)
static int DeassertRiscvResets (void)
 SYS_INIT_APP (DeassertRiscvResets)
static __maybe_unused uint8_t ToggleTensixReset (const union request *req, struct response *rsp)
 Handler for TT_SMC_MSG_TOGGLE_TENSIX_RESET.
 REGISTER_MESSAGE (TT_SMC_MSG_TOGGLE_TENSIX_RESET, ToggleTensixReset)
static __maybe_unused uint8_t ReinitTensix (const union request *req, struct response *rsp)
 Handler for TT_SMC_MSG_REINIT_TENSIX.
 REGISTER_MESSAGE (TT_SMC_MSG_REINIT_TENSIX, ReinitTensix)
static int DeassertTileResets (void)
 SYS_INIT_APP (DeassertTileResets)

Variables

static const struct device *const pll_devs [] = {DT_INST_FOREACH_STATUS_OKAY(PLL_DEVICE_INIT)}
static const struct device *const fwtable_dev = DEVICE_DT_GET(DT_NODELABEL(fwtable))
STATUS_ERROR_STATUS0_reg_u error_status0
static bool cable_fault_mode
static const uint8_t kNocRing
static const uint8_t kNocTlb
static const uint32_t kSoftReset0Addr = 0xFFB121B0
static const uint32_t kAllRiscSoftReset = 0x47800

Macro Definition Documentation

◆ DT_DRV_COMPAT

#define DT_DRV_COMPAT   tenstorrent_bh_clock_control

◆ PLL_DEVICE_INIT

#define PLL_DEVICE_INIT ( inst)
Value:
#define DEVICE_DT_INST_GET(inst)

Function Documentation

◆ AssertSoftResets()

int AssertSoftResets ( void )
static

◆ bh_soft_reset_all_tensix()

void bh_soft_reset_all_tensix ( void )

◆ DeassertRiscvResets()

int DeassertRiscvResets ( void )
static

◆ DeassertTileResets()

int DeassertTileResets ( void )
static

◆ is_cable_fault_mode()

bool is_cable_fault_mode ( void )

Check if the system is in cable fault mode.

Cable fault mode is entered when DMC reports 0W power limit (no cable or improper installation). In this mode, all tiles except column 15 are clock-gated via NIU_CFG_0 TILE_CLK_OFF to minimize power draw while the full NOC mesh and ARC-PCIe path remain available for host communication.

Returns
true if cable fault mode is active, false otherwise

◆ LOG_MODULE_REGISTER()

LOG_MODULE_REGISTER ( InitHW ,
CONFIG_TT_APP_LOG_LEVEL  )

◆ REGISTER_MESSAGE() [1/2]

REGISTER_MESSAGE ( TT_SMC_MSG_REINIT_TENSIX ,
ReinitTensix  )

◆ REGISTER_MESSAGE() [2/2]

◆ ReinitTensix()

__maybe_unused uint8_t ReinitTensix ( const union request * req,
struct response * rsp )
static

Handler for TT_SMC_MSG_REINIT_TENSIX.

See also
reinit_tensix_rqst

Redo Tensix init that gets cleared on Tensix reset. This includes all NOC programming and any programming within the tile.

◆ SYS_INIT_APP() [1/3]

SYS_INIT_APP ( AssertSoftResets )

◆ SYS_INIT_APP() [2/3]

SYS_INIT_APP ( DeassertRiscvResets )

◆ SYS_INIT_APP() [3/3]

SYS_INIT_APP ( DeassertTileResets )

◆ ToggleTensixReset()

__maybe_unused uint8_t ToggleTensixReset ( const union request * req,
struct response * rsp )
static

Variable Documentation

◆ cable_fault_mode

bool cable_fault_mode
static

◆ error_status0

◆ fwtable_dev

const struct device* const fwtable_dev = DEVICE_DT_GET(DT_NODELABEL(fwtable))
static

◆ kAllRiscSoftReset

const uint32_t kAllRiscSoftReset = 0x47800
static

◆ kNocRing

const uint8_t kNocRing
static

◆ kNocTlb

const uint8_t kNocTlb
static

◆ kSoftReset0Addr

const uint32_t kSoftReset0Addr = 0xFFB121B0
static

◆ pll_devs

const struct device* const pll_devs[] = {DT_INST_FOREACH_STATUS_OKAY(PLL_DEVICE_INIT)}
static