TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
functional_efuse.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef FUNCTIONAL_EFUSE_H
8#define FUNCTIONAL_EFUSE_H
9
10#include <stdint.h>
11#include <zephyr/sys/util.h>
12
13#define FUSE_ASIC_ID_OLD_START_BIT 1056
14#define FUSE_ASIC_ID_OLD_END_BIT 1071
15#define FUSE_ASIC_ID_LOW_START_BIT 1600
16#define FUSE_ASIC_ID_LOW_END_BIT 1631
17#define FUSE_ATE_TENSIX_ROW0_TEST_STATUS_START_BIT 3168
18#define FUSE_ATE_TENSIX_ROW0_TEST_STATUS_END_BIT 3199
19#define FUSE_ATE_TENSIX_ROW1_TEST_STATUS_START_BIT 3200
20#define FUSE_ATE_TENSIX_ROW1_TEST_STATUS_END_BIT 3231
21#define FUSE_ATE_TENSIX_ROW2_TEST_STATUS_START_BIT 3232
22#define FUSE_ATE_TENSIX_ROW2_TEST_STATUS_END_BIT 3263
23#define FUSE_ATE_TENSIX_ROW3_TEST_STATUS_START_BIT 3264
24#define FUSE_ATE_TENSIX_ROW3_TEST_STATUS_END_BIT 3295
25#define FUSE_ATE_TENSIX_ROW4_TEST_STATUS_START_BIT 3296
26#define FUSE_ATE_TENSIX_ROW4_TEST_STATUS_END_BIT 3327
27#define FUSE_ATE_TENSIX_ROW5_TEST_STATUS_START_BIT 3328
28#define FUSE_ATE_TENSIX_ROW5_TEST_STATUS_END_BIT 3359
29#define FUSE_ATE_TENSIX_ROW6_TEST_STATUS_START_BIT 3360
30#define FUSE_ATE_TENSIX_ROW6_TEST_STATUS_END_BIT 3391
31#define FUSE_ATE_TENSIX_ROW7_TEST_STATUS_START_BIT 3392
32#define FUSE_ATE_TENSIX_ROW7_TEST_STATUS_END_BIT 3423
33#define FUSE_ATE_TENSIX_ROW8_TEST_STATUS_START_BIT 3424
34#define FUSE_ATE_TENSIX_ROW8_TEST_STATUS_END_BIT 3455
35#define FUSE_ATE_TENSIX_ROW9_TEST_STATUS_START_BIT 3456
36#define FUSE_ATE_TENSIX_ROW9_TEST_STATUS_END_BIT 3487
37#define FUSE_ATE_SERDES_PHY_TEST_STATUS_START_BIT 3488
38#define FUSE_ATE_SERDES_PHY_TEST_STATUS_END_BIT 3503
39#define FUSE_ATE_DDR_TEST_STATUS_START_BIT 3504
40#define FUSE_ATE_DDR_TEST_STATUS_END_BIT 3511
41#define FUSE_ATE_PCIE_SPEED_TEST_START_BIT 3512
42#define FUSE_ATE_PCIE_SPEED_TEST_END_BIT 3515
43#define FUSE_ATE_AT_SPEED_AICLK_TEST_STATUS_START_BIT 3516
44#define FUSE_ATE_AT_SPEED_AICLK_TEST_STATUS_END_BIT 3519
45#define FUSE_ATE_RISCV_L2_TEST_STATUS_START_BIT 3520
46#define FUSE_ATE_RISCV_L2_TEST_STATUS_END_BIT 3535
47#define FUSE_ATE_ETH_CTRL_TEST_STATUS_START_BIT 3536
48#define FUSE_ATE_ETH_CTRL_TEST_STATUS_END_BIT 3551
49#define FUSE_SLT_ATE_SLT_STATUS_START_BIT 4160
50#define FUSE_SLT_ATE_SLT_STATUS_END_BIT 4161
51#define FUSE_SLT_FUSE_MAP_VERSION_START_BIT 4162
52#define FUSE_SLT_FUSE_MAP_VERSION_END_BIT 4191
53#define FUSE_SLT_SLT_BINNING_START_BIT 4192
54#define FUSE_SLT_SLT_BINNING_END_BIT 4223
55#define FUSE_SLT_DDR_TEST_STATUS_16G_START_BIT 5472
56#define FUSE_SLT_DDR_TEST_STATUS_16G_END_BIT 5479
57#define FUSE_SLT_DDR_TEST_STATUS_14G_START_BIT 5480
58#define FUSE_SLT_DDR_TEST_STATUS_14G_END_BIT 5487
59#define FUSE_SLT_DDR_TEST_STATUS_12G_START_BIT 5488
60#define FUSE_SLT_DDR_TEST_STATUS_12G_END_BIT 5495
61#define FUSE_SLT_PCIE_SPEED_TEST_START_BIT 5496
62#define FUSE_SLT_PCIE_SPEED_TEST_END_BIT 5499
63#define FUSE_SLT_SLT_SPEED_TEST_START_BIT 5500
64#define FUSE_SLT_SLT_SPEED_TEST_END_BIT 5503
65#define FUSE_SLT_RISCV_L2_TEST_STATUS_START_BIT 5504
66#define FUSE_SLT_RISCV_L2_TEST_STATUS_END_BIT 5519
67#define FUSE_SLT_ETH_CTRL_TEST_STATUS_START_BIT 5520
68#define FUSE_SLT_ETH_CTRL_TEST_STATUS_END_BIT 5535
69#define FUSE_SLT_HARVESTED_TENSIX_COLUMNS_START_BIT 5536
70#define FUSE_SLT_HARVESTED_TENSIX_COLUMNS_END_BIT 5551
71#define FUSE_ASIC_ID_HIGH_START_BIT 5568
72#define FUSE_ASIC_ID_HIGH_END_BIT 5599
73
74/* Use this helper macro to read functional efuse fields */
75/* Note that it only works for fields that are 32-bits or smaller */
76#define READ_FUNCTIONAL_EFUSE(fuse_name) \
77 (ZERO_OR_COMPILE_ERROR(FUSE_##fuse_name##_END_BIT > FUSE_##fuse_name##_START_BIT) + \
78 ZERO_OR_COMPILE_ERROR(FUSE_##fuse_name##_END_BIT - FUSE_##fuse_name##_START_BIT < 32) + \
79 ReadFunctionalEfuse(FUSE_##fuse_name##_START_BIT, FUSE_##fuse_name##_END_BIT))
80
81#ifdef __cplusplus
82extern "C" {
83#endif
84
86
87#ifdef __cplusplus
88}
89#endif
90
91#endif
uint32_t ReadFunctionalEfuse(uint32_t start_bit, uint32_t end_bit)
Definition functional_efuse.c:14
__UINT32_TYPE__ uint32_t