AM62x MCU+ SDK  10.01.00
sdlr_lbist.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 #ifndef SDLR_LBIST_H_
33 #define SDLR_LBIST_H_
34 
35 #ifdef __cplusplus
36 extern "C"
37 {
38 #endif
39 #include <sdl/sdlr.h>
40 #include <stdint.h>
41 
42 /**************************************************************************
43 * Hardware Region :
44 **************************************************************************/
45 
46 
47 /**************************************************************************
48 * Register Overlay Structure
49 **************************************************************************/
50 
51 typedef struct
52 {
54  volatile uint32_t LBIST_CTRL;
56  volatile uint32_t LBIST_PATCOUNT;
58  volatile uint32_t LBIST_SEED0;
60  volatile uint32_t LBIST_SEED1;
62  volatile uint32_t LBIST_SPARE0;
64  volatile uint32_t LBIST_SPARE1;
66  volatile uint32_t LBIST_STAT;
68  volatile uint32_t LBIST_MISR;
70 
71 
72 
73 /**************************************************************************
74 * Register Macros
75 **************************************************************************/
76 
77 #define SDL_LBIST_CTRL (0x00000000U)
78 #define SDL_LBIST_PATCOUNT (0x00000004U)
79 #define SDL_LBIST_SEED0 (0x00000008U)
80 #define SDL_LBIST_SEED1 (0x0000000CU)
81 #define SDL_LBIST_SPARE0 (0x00000010U)
82 #define SDL_LBIST_SPARE1 (0x00000014U)
83 #define SDL_LBIST_STAT (0x00000018U)
84 #define SDL_LBIST_MISR (0x0000001CU)
85 
86 
87 /**************************************************************************
88 * Field Definition Macros
89 **************************************************************************/
90 
91 
92 /* LBIST_CTRL */
93 
94 #define SDL_LBIST_CTRL_DIVIDE_RATIO_MASK (0x0000001FU)
95 #define SDL_LBIST_CTRL_DIVIDE_RATIO_SHIFT (0x00000000U)
96 #define SDL_LBIST_CTRL_DIVIDE_RATIO_MAX (0x0000001FU)
97 
98 #define SDL_LBIST_CTRL_LOAD_DIV_MASK (0x00000080U)
99 #define SDL_LBIST_CTRL_LOAD_DIV_SHIFT (0x00000007U)
100 #define SDL_LBIST_CTRL_LOAD_DIV_MAX (0x00000001U)
101 
102 #define SDL_LBIST_CTRL_DC_DEF_MASK (0x00000300U)
103 #define SDL_LBIST_CTRL_DC_DEF_SHIFT (0x00000008U)
104 #define SDL_LBIST_CTRL_DC_DEF_MAX (0x00000003U)
105 
106 #define SDL_LBIST_CTRL_RUNBIST_MODE_MASK (0x0000F000U)
107 #define SDL_LBIST_CTRL_RUNBIST_MODE_SHIFT (0x0000000CU)
108 #define SDL_LBIST_CTRL_RUNBIST_MODE_MAX (0x0000000FU)
109 
110 #define SDL_LBIST_CTRL_BIST_RUN_MASK (0x0F000000U)
111 #define SDL_LBIST_CTRL_BIST_RUN_SHIFT (0x00000018U)
112 #define SDL_LBIST_CTRL_BIST_RUN_MAX (0x0000000FU)
113 
114 #define SDL_LBIST_CTRL_BIST_RESET_MASK (0x80000000U)
115 #define SDL_LBIST_CTRL_BIST_RESET_SHIFT (0x0000001FU)
116 #define SDL_LBIST_CTRL_BIST_RESET_MAX (0x00000001U)
117 
118 /* LBIST_PATCOUNT */
119 
120 #define SDL_LBIST_PATCOUNT_SCAN_PC_DEF_MASK (0x0000000FU)
121 #define SDL_LBIST_PATCOUNT_SCAN_PC_DEF_SHIFT (0x00000000U)
122 #define SDL_LBIST_PATCOUNT_SCAN_PC_DEF_MAX (0x0000000FU)
123 
124 #define SDL_LBIST_PATCOUNT_RESET_PC_DEF_MASK (0x000000F0U)
125 #define SDL_LBIST_PATCOUNT_RESET_PC_DEF_SHIFT (0x00000004U)
126 #define SDL_LBIST_PATCOUNT_RESET_PC_DEF_MAX (0x0000000FU)
127 
128 #define SDL_LBIST_PATCOUNT_SET_PC_DEF_MASK (0x00000F00U)
129 #define SDL_LBIST_PATCOUNT_SET_PC_DEF_SHIFT (0x00000008U)
130 #define SDL_LBIST_PATCOUNT_SET_PC_DEF_MAX (0x0000000FU)
131 
132 #define SDL_LBIST_PATCOUNT_STATIC_PC_DEF_MASK (0x3FFF0000U)
133 #define SDL_LBIST_PATCOUNT_STATIC_PC_DEF_SHIFT (0x00000010U)
134 #define SDL_LBIST_PATCOUNT_STATIC_PC_DEF_MAX (0x00003FFFU)
135 
136 /* LBIST_SEED0 */
137 
138 #define SDL_LBIST_SEED0_PRPG_DEF_MASK (0xFFFFFFFFU)
139 #define SDL_LBIST_SEED0_PRPG_DEF_SHIFT (0x00000000U)
140 #define SDL_LBIST_SEED0_PRPG_DEF_MAX (0xFFFFFFFFU)
141 
142 /* LBIST_SEED1 */
143 
144 #define SDL_LBIST_SEED1_PRPG_DEF_MASK (0x001FFFFFU)
145 #define SDL_LBIST_SEED1_PRPG_DEF_SHIFT (0x00000000U)
146 #define SDL_LBIST_SEED1_PRPG_DEF_MAX (0x001FFFFFU)
147 
148 /* LBIST_SPARE0 */
149 
150 #define SDL_LBIST_SPARE0_LBIST_SELFTEST_EN_MASK (0x00000001U)
151 #define SDL_LBIST_SPARE0_LBIST_SELFTEST_EN_SHIFT (0x00000000U)
152 #define SDL_LBIST_SPARE0_LBIST_SELFTEST_EN_MAX (0x00000001U)
153 
154 #define SDL_LBIST_SPARE0_PBIST_SELFTEST_EN_MASK (0x00000002U)
155 #define SDL_LBIST_SPARE0_PBIST_SELFTEST_EN_SHIFT (0x00000001U)
156 #define SDL_LBIST_SPARE0_PBIST_SELFTEST_EN_MAX (0x00000001U)
157 
158 #define SDL_LBIST_SPARE0_SPARE0_MASK (0xFFFFFFFCU)
159 #define SDL_LBIST_SPARE0_SPARE0_SHIFT (0x00000002U)
160 #define SDL_LBIST_SPARE0_SPARE0_MAX (0x3FFFFFFFU)
161 
162 /* LBIST_SPARE1 */
163 
164 #define SDL_LBIST_SPARE1_SPARE1_MASK (0xFFFFFFFFU)
165 #define SDL_LBIST_SPARE1_SPARE1_SHIFT (0x00000000U)
166 #define SDL_LBIST_SPARE1_SPARE1_MAX (0xFFFFFFFFU)
167 
168 /* LBIST_STAT */
169 
170 #define SDL_LBIST_STAT_MISR_MUX_CTL_MASK (0x000000FFU)
171 #define SDL_LBIST_STAT_MISR_MUX_CTL_SHIFT (0x00000000U)
172 #define SDL_LBIST_STAT_MISR_MUX_CTL_MAX (0x000000FFU)
173 
174 #define SDL_LBIST_STAT_OUT_MUX_CTL_MASK (0x00000300U)
175 #define SDL_LBIST_STAT_OUT_MUX_CTL_SHIFT (0x00000008U)
176 #define SDL_LBIST_STAT_OUT_MUX_CTL_MAX (0x00000003U)
177 
178 #define SDL_LBIST_STAT_BIST_RUNNING_MASK (0x00008000U)
179 #define SDL_LBIST_STAT_BIST_RUNNING_SHIFT (0x0000000FU)
180 #define SDL_LBIST_STAT_BIST_RUNNING_MAX (0x00000001U)
181 
182 #define SDL_LBIST_STAT_BIST_DONE_MASK (0x80000000U)
183 #define SDL_LBIST_STAT_BIST_DONE_SHIFT (0x0000001FU)
184 #define SDL_LBIST_STAT_BIST_DONE_MAX (0x00000001U)
185 
186 /* LBIST_MISR */
187 
188 #define SDL_LBIST_MISR_MISR_RESULT_MASK (0xFFFFFFFFU)
189 #define SDL_LBIST_MISR_MISR_RESULT_SHIFT (0x00000000U)
190 #define SDL_LBIST_MISR_MISR_RESULT_MAX (0xFFFFFFFFU)
191 
192 #ifdef __cplusplus
193 }
194 #endif
195 #endif /* SDLR_LBIST_H_ */
SDL_lbistRegs
Definition: sdlr_lbist.h:52
SDL_lbistRegs::LBIST_SEED0
volatile uint32_t LBIST_SEED0
Definition: sdlr_lbist.h:58
SDL_lbistRegs::LBIST_SPARE1
volatile uint32_t LBIST_SPARE1
Definition: sdlr_lbist.h:64
SDL_lbistRegs::LBIST_STAT
volatile uint32_t LBIST_STAT
Definition: sdlr_lbist.h:66
SDL_lbistRegs::LBIST_CTRL
volatile uint32_t LBIST_CTRL
Definition: sdlr_lbist.h:54
SDL_lbistRegs::LBIST_SEED1
volatile uint32_t LBIST_SEED1
Definition: sdlr_lbist.h:60
SDL_lbistRegs::LBIST_SPARE0
volatile uint32_t LBIST_SPARE0
Definition: sdlr_lbist.h:62
sdlr.h
This file contains the macro definations for Register layer.
SDL_lbistRegs::LBIST_MISR
volatile uint32_t LBIST_MISR
Definition: sdlr_lbist.h:68
SDL_lbistRegs::LBIST_PATCOUNT
volatile uint32_t LBIST_PATCOUNT
Definition: sdlr_lbist.h:56