1 /******************************************************************************
2 *  Filename:       hw_scscs_h
3 ******************************************************************************
4 *  Copyright (c) 2021 Texas Instruments Incorporated. All rights reserved.
5 *
6 *  Redistribution and use in source and binary forms, with or without
7 *  modification, are permitted provided that the following conditions are met:
8 *
9 *  1) Redistributions of source code must retain the above copyright notice,
10 *     this list of conditions and the following disclaimer.
11 *
12 *  2) Redistributions in binary form must reproduce the above copyright notice,
13 *     this list of conditions and the following disclaimer in the documentation
14 *     and/or other materials provided with the distribution.
15 *
16 *  3) Neither the name of the copyright holder nor the names of its contributors
17 *     may be used to endorse or promote products derived from this software
18 *     without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 *  POSSIBILITY OF SUCH DAMAGE.
31 ******************************************************************************/
32 
33 #ifndef __HW_SCSCS_H__
34 #define __HW_SCSCS_H__
35 
36 //*****************************************************************************
37 //
38 // This section defines the register offsets of
39 // SCSCS component
40 //
41 //*****************************************************************************
42 // Peripheral ID Register 4
43 #define SCSCS_O_PIDR4                                               0x00000010U
44 
45 // Peripheral ID Register 5
46 #define SCSCS_O_PIDR5                                               0x00000014U
47 
48 // Peripheral ID Register 6
49 #define SCSCS_O_PIDR6                                               0x00000018U
50 
51 // Peripheral ID Register 7
52 #define SCSCS_O_PIDR7                                               0x0000001CU
53 
54 // Peripheral ID Register 0
55 #define SCSCS_O_PIDR0                                               0x00000020U
56 
57 // Peripheral ID Register 1
58 #define SCSCS_O_PIDR1                                               0x00000024U
59 
60 // Peripheral ID Register 2
61 #define SCSCS_O_PIDR2                                               0x00000028U
62 
63 // Peripheral ID Register 3
64 #define SCSCS_O_PIDR3                                               0x0000002CU
65 
66 // Component ID Register 0
67 #define SCSCS_O_CIDR0                                               0x00000030U
68 
69 // Component ID Register 1
70 #define SCSCS_O_CIDR1                                               0x00000034U
71 
72 // Component ID Register 2
73 #define SCSCS_O_CIDR2                                               0x00000038U
74 
75 // Component ID Register 3
76 #define SCSCS_O_CIDR3                                               0x0000003CU
77 
78 //*****************************************************************************
79 //
80 // Register: SCSCS_O_PIDR4
81 //
82 //*****************************************************************************
83 // Field:   [7:4] SIZE
84 //
85 // This is a 4-bit value that indicates the total contiguous size of the memory
86 // window used by this component in powers of 2 from the standard 4KB. If a
87 // component only requires the standard 4KB then this should read as 0x0, 4KB
88 // only, for 8KB set to 0x1, 16KB == 0x2, 32KB == 0x3, and so on.
89 #define SCSCS_PIDR4_SIZE_W                                                   4U
90 #define SCSCS_PIDR4_SIZE_M                                          0x000000F0U
91 #define SCSCS_PIDR4_SIZE_S                                                   4U
92 
93 // Field:   [3:0] DES_2
94 //
95 // Number of JEDEC continuation codes. Indicates the designer of the component
96 // (along with the identity code)
97 #define SCSCS_PIDR4_DES_2_W                                                  4U
98 #define SCSCS_PIDR4_DES_2_M                                         0x0000000FU
99 #define SCSCS_PIDR4_DES_2_S                                                  0U
100 
101 //*****************************************************************************
102 //
103 // Register: SCSCS_O_PIDR5
104 //
105 //*****************************************************************************
106 //*****************************************************************************
107 //
108 // Register: SCSCS_O_PIDR6
109 //
110 //*****************************************************************************
111 //*****************************************************************************
112 //
113 // Register: SCSCS_O_PIDR7
114 //
115 //*****************************************************************************
116 //*****************************************************************************
117 //
118 // Register: SCSCS_O_PIDR0
119 //
120 //*****************************************************************************
121 // Field:   [7:0] PART_0
122 //
123 // Bits [7:0] of the component's part number. This is selected by the designer
124 // of the component.
125 #define SCSCS_PIDR0_PART_0_W                                                 8U
126 #define SCSCS_PIDR0_PART_0_M                                        0x000000FFU
127 #define SCSCS_PIDR0_PART_0_S                                                 0U
128 
129 //*****************************************************************************
130 //
131 // Register: SCSCS_O_PIDR1
132 //
133 //*****************************************************************************
134 // Field:   [7:4] DES_0
135 //
136 // Bits [3:0] of the JEDEC identity code indicating the designer of the
137 // component (along with the continuation code)
138 #define SCSCS_PIDR1_DES_0_W                                                  4U
139 #define SCSCS_PIDR1_DES_0_M                                         0x000000F0U
140 #define SCSCS_PIDR1_DES_0_S                                                  4U
141 
142 // Field:   [3:0] PART_1
143 //
144 // Bits [11:8] of the component's part number. This is selected by the designer
145 // of the component.
146 #define SCSCS_PIDR1_PART_1_W                                                 4U
147 #define SCSCS_PIDR1_PART_1_M                                        0x0000000FU
148 #define SCSCS_PIDR1_PART_1_S                                                 0U
149 
150 //*****************************************************************************
151 //
152 // Register: SCSCS_O_PIDR2
153 //
154 //*****************************************************************************
155 // Field:   [7:4] REVISION
156 //
157 // The Revision field is an incremental value starting at 0x0 for the first
158 // design of this component. This only increases by 1 for both major and minor
159 // revisions and is simply used as a look-up to establish the exact major/minor
160 // revision.
161 #define SCSCS_PIDR2_REVISION_W                                               4U
162 #define SCSCS_PIDR2_REVISION_M                                      0x000000F0U
163 #define SCSCS_PIDR2_REVISION_S                                               4U
164 
165 // Field:     [3] JEDEC
166 //
167 // Always set. Indicates that a JEDEC assigned value is used
168 #define SCSCS_PIDR2_JEDEC                                           0x00000008U
169 #define SCSCS_PIDR2_JEDEC_M                                         0x00000008U
170 #define SCSCS_PIDR2_JEDEC_S                                                  3U
171 
172 // Field:   [2:0] DES_1
173 //
174 // Bits [6:4] of the JEDEC identity code indicating the designer of the
175 // component (along with the continuation code)
176 #define SCSCS_PIDR2_DES_1_W                                                  3U
177 #define SCSCS_PIDR2_DES_1_M                                         0x00000007U
178 #define SCSCS_PIDR2_DES_1_S                                                  0U
179 
180 //*****************************************************************************
181 //
182 // Register: SCSCS_O_PIDR3
183 //
184 //*****************************************************************************
185 // Field:   [7:4] REVAND
186 //
187 // This field indicates minor errata fixes specific to this design, for example
188 // metal fixes after implementation. In most cases this field is zero. It is
189 // recommended that component designers ensure this field can be changed by a
190 // metal fix if required, for example by driving it from registers that reset
191 // to zero.
192 #define SCSCS_PIDR3_REVAND_W                                                 4U
193 #define SCSCS_PIDR3_REVAND_M                                        0x000000F0U
194 #define SCSCS_PIDR3_REVAND_S                                                 4U
195 
196 // Field:   [3:0] CMOD
197 //
198 // Where the component is reusable IP, this value indicates if the customer has
199 // modified the behavior of the component. In most cases this field is zero.
200 #define SCSCS_PIDR3_CMOD_W                                                   4U
201 #define SCSCS_PIDR3_CMOD_M                                          0x0000000FU
202 #define SCSCS_PIDR3_CMOD_S                                                   0U
203 
204 //*****************************************************************************
205 //
206 // Register: SCSCS_O_CIDR0
207 //
208 //*****************************************************************************
209 // Field:   [7:0] PRMBL_0
210 //
211 // Contains bits [7:0] of the component identification
212 #define SCSCS_CIDR0_PRMBL_0_W                                                8U
213 #define SCSCS_CIDR0_PRMBL_0_M                                       0x000000FFU
214 #define SCSCS_CIDR0_PRMBL_0_S                                                0U
215 
216 //*****************************************************************************
217 //
218 // Register: SCSCS_O_CIDR1
219 //
220 //*****************************************************************************
221 // Field:   [7:4] CLASS
222 //
223 // Class of the component. E.g. ROM table, CoreSight component etc. Constitutes
224 // bits [15:12] of the component identification.
225 #define SCSCS_CIDR1_CLASS_W                                                  4U
226 #define SCSCS_CIDR1_CLASS_M                                         0x000000F0U
227 #define SCSCS_CIDR1_CLASS_S                                                  4U
228 
229 // Field:   [3:0] PRMBL_1
230 //
231 // Contains bits [11:8] of the component identification
232 #define SCSCS_CIDR1_PRMBL_1_W                                                4U
233 #define SCSCS_CIDR1_PRMBL_1_M                                       0x0000000FU
234 #define SCSCS_CIDR1_PRMBL_1_S                                                0U
235 
236 //*****************************************************************************
237 //
238 // Register: SCSCS_O_CIDR2
239 //
240 //*****************************************************************************
241 // Field:   [7:0] PRMBL_2
242 //
243 // Contains bits [23:16] of the component identification
244 #define SCSCS_CIDR2_PRMBL_2_W                                                8U
245 #define SCSCS_CIDR2_PRMBL_2_M                                       0x000000FFU
246 #define SCSCS_CIDR2_PRMBL_2_S                                                0U
247 
248 //*****************************************************************************
249 //
250 // Register: SCSCS_O_CIDR3
251 //
252 //*****************************************************************************
253 // Field:   [7:0] PRMBL_3
254 //
255 // Contains bits [31:24] of the component identification
256 #define SCSCS_CIDR3_PRMBL_3_W                                                8U
257 #define SCSCS_CIDR3_PRMBL_3_M                                       0x000000FFU
258 #define SCSCS_CIDR3_PRMBL_3_S                                                0U
259 
260 
261 #endif // __SCSCS__
262