TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
status_reg.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6/* Scratch registers used for status and error reporting */
7#ifndef STATUS_REG_H
8#define STATUS_REG_H
9
10#include <stdint.h>
11
12#define RESET_UNIT_SCRATCH_RAM_BASE_ADDR 0x80030400
13#define RESET_UNIT_SCRATCH_RAM_REG_ADDR(n) \
14 (RESET_UNIT_SCRATCH_RAM_BASE_ADDR + sizeof(uint32_t) * (n))
15
16#define RESET_UNIT_SCRATCH_BASE_ADDR 0x80030060
17#define RESET_UNIT_SCRATCH_REG_ADDR(n) (RESET_UNIT_SCRATCH_BASE_ADDR + sizeof(uint32_t) * (n))
18
19/* SCRATCH_[0-7] */
20#define STATUS_POST_CODE_REG_ADDR RESET_UNIT_SCRATCH_REG_ADDR(0)
21
22/* SCRATCH_RAM[0-63] */
23#define STATUS_FW_VERSION_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(0)
24/* SCRATCH_RAM_1 is reserved for the security handshake used by bootcode */
25#define STATUS_BOOT_STATUS0_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(2)
26#define STATUS_BOOT_STATUS1_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(3)
27#define STATUS_ERROR_STATUS0_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(4)
28#define STATUS_ERROR_STATUS1_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(5)
29#define STATUS_INTERFACE_TABLE_BASE_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(6)
30/* SCRATCH_RAM_7 is reserved for possible future interface table uses */
31#define STATUS_MSG_Q_STATUS_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(8)
32#define STATUS_MSG_Q_ERR_FLAGS_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(9)
33#define SPI_BUFFER_INFO_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(10)
34#define STATUS_MSG_Q_INFO_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(11)
35#define TELEMETRY_DATA_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(12)
36#define TELEMETRY_TABLE_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(13)
37#define PCIE_INIT_CPL_TIME_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(14)
38#define CMFW_START_TIME_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(15)
39#define ARC_START_TIME_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(16)
40#define PERST_TO_DMFW_INIT_DONE_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(17)
41#define PING_DMFW_DURATION_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(18)
42#define I2C0_TARGET_DEBUG_STATE_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(19)
43#define I2C0_TARGET_DEBUG_STATE_2_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(20)
44#define ARC_HANG_PC RESET_UNIT_SCRATCH_RAM_REG_ADDR(21)
45
46#define STATUS_FW_VUART_REG_ADDR(n) RESET_UNIT_SCRATCH_RAM_REG_ADDR(40 + (n))
47/* SCRATCH_RAM_40 - SCRATCH_RAM_41 reserved for virtual uarts */
48#define STATUS_FW_SCRATCH_REG_ADDR RESET_UNIT_SCRATCH_RAM_REG_ADDR(63)
49
56
61
65
70
71#endif
__UINT32_TYPE__ uint32_t
Definition status_reg.h:50
uint32_t msg_queue_ready
Definition status_reg.h:51
uint32_t fw_id
Definition status_reg.h:53
uint32_t hw_init_status
Definition status_reg.h:52
uint32_t spare
Definition status_reg.h:54
Definition status_reg.h:62
uint32_t regulator_init_error
Definition status_reg.h:63
Definition status_reg.h:57
STATUS_BOOT_STATUS0_reg_t f
Definition status_reg.h:59
uint32_t val
Definition status_reg.h:58
Definition status_reg.h:66
STATUS_ERROR_STATUS0_reg_t f
Definition status_reg.h:68
uint32_t val
Definition status_reg.h:67