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
82
extern
"C"
{
83
#endif
84
85
uint32_t
ReadFunctionalEfuse
(
uint32_t
start_bit,
uint32_t
end_bit);
86
87
#ifdef __cplusplus
88
}
89
#endif
90
91
#endif
ReadFunctionalEfuse
uint32_t ReadFunctionalEfuse(uint32_t start_bit, uint32_t end_bit)
Definition
functional_efuse.c:14
stdint.h
uint32_t
__UINT32_TYPE__ uint32_t
util.h
lib
tenstorrent
bh_arc
functional_efuse.h
Generated by
1.14.0