![]() |
TT-System-Firmware APIs 19.15.99
Tenstorrent Firmware
|
#include "chip_info.h"#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.h"#include "tensix_init.h"#include "aiclk_ppm.h"#include "bh_reset.h"#include <tenstorrent/bh_power.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 <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>#include <zephyr/drivers/reset/reset_tt_bh.h>#include <zephyr/dt-bindings/reset/tt-bh-reset.h>
Macros | |
| #define | DT_DRV_COMPAT tenstorrent_bh_clock_control |
| #define | PLL_DEVICE_INIT(inst) |
| #define | TENSIX_NUM_RESET_BANKS TT_BH_RESET_NUM_BANKS(DT_NODELABEL(tensix_reset)) |
| #define | TT_BH_GLOBAL_RESET_MASK |
| #define | TT_BH_ETH_TILE_MASK GENMASK(13, 0) |
| #define | TT_BH_ETH_RISC_MASK GENMASK(29, 16) |
| #define | TT_BH_DDR_TILE_MASK GENMASK(7, 0) |
| #define | TT_BH_DDR_RISC_MASK GENMASK(31, 8) |
| #define | TT_BH_L2CPU_TILE_MASK GENMASK(3, 0) |
Variables | |
| static const struct device *const | pll_devs [] = {DT_INST_FOREACH_STATUS_OKAY(PLL_DEVICE_INIT)} |
| static const struct device *const | global_reset_dev = DEVICE_DT_GET(DT_NODELABEL(global_reset)) |
| static const struct device *const | eth_reset_dev = DEVICE_DT_GET(DT_NODELABEL(eth_reset)) |
| static const struct device *const | ddr_reset_dev = DEVICE_DT_GET(DT_NODELABEL(ddr_reset)) |
| static const struct device *const | l2cpu_reset_dev = DEVICE_DT_GET(DT_NODELABEL(l2cpu_reset)) |
| static const struct device *const | tensix_reset_dev = DEVICE_DT_GET(DT_NODELABEL(tensix_reset)) |
| static const struct device *const | tensix_risc_reset_dev |
| uint32_t | 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 |
| #define DT_DRV_COMPAT tenstorrent_bh_clock_control |
| #define PLL_DEVICE_INIT | ( | inst | ) |
| #define TENSIX_NUM_RESET_BANKS TT_BH_RESET_NUM_BANKS(DT_NODELABEL(tensix_reset)) |
| #define TT_BH_DDR_RISC_MASK GENMASK(31, 8) |
| #define TT_BH_DDR_TILE_MASK GENMASK(7, 0) |
| #define TT_BH_ETH_RISC_MASK GENMASK(29, 16) |
| #define TT_BH_ETH_TILE_MASK GENMASK(13, 0) |
| #define TT_BH_GLOBAL_RESET_MASK |
| #define TT_BH_L2CPU_TILE_MASK GENMASK(3, 0) |
|
static |
| void bh_soft_reset_all_tensix | ( | void | ) |
| BUILD_ASSERT | ( | TT_BH_RESET_NUM_BANKS(DT_NODELABEL(tensix_reset)) | = =TT_BH_RESET_NUM_BANKS(DT_NODELABEL(tensix_risc_reset)), |
| "tensix tile and RISC reset bank counts must match" | ) |
|
static |
|
static |
| 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.
| LOG_MODULE_REGISTER | ( | InitHW | , |
| CONFIG_TT_APP_LOG_LEVEL | ) |
| void record_init_failure | ( | enum init_stage_id | stage | ) |
Record a failure from an init function.
Sets bit stage in STATUS_ERROR_STATUS0 and writes the shadow value through to scratch RAM immediately so the host can read it even if init hangs after this call. Safe to call multiple times; the bitmap accumulates.
| REGISTER_MESSAGE | ( | TT_SMC_MSG_REINIT_TENSIX | , |
| ReinitTensix | ) |
| REGISTER_MESSAGE | ( | TT_SMC_MSG_TOGGLE_SINGLE_TENSIX_RESET | , |
| ToggleSingleTensixReset | ) |
| REGISTER_MESSAGE | ( | TT_SMC_MSG_TOGGLE_TENSIX_RESET | , |
| ToggleTensixReset | ) |
Handler for TT_SMC_MSG_REINIT_TENSIX.
Redo Tensix init that gets cleared on Tensix reset. This includes all NOC programming and any programming within the tile.
| SYS_INIT_APP | ( | AssertSoftResets | ) |
| SYS_INIT_APP | ( | DeassertRiscvResets | ) |
| SYS_INIT_APP | ( | DeassertTileResets | ) |
|
static |
|
static |
Handler for TT_SMC_MSG_TOGGLE_TENSIX_RESET.
|
static |
|
static |
| uint32_t error_status0 |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |