1 /******************************************************************************
2 *  Filename:       hw_vims_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_VIMS_H__
34 #define __HW_VIMS_H__
35 
36 //*****************************************************************************
37 //
38 // This section defines the register offsets of
39 // VIMS component
40 //
41 //*****************************************************************************
42 // Module Description
43 #define VIMS_O_DESC                                                 0x00000000U
44 
45 // Extended Module Description
46 #define VIMS_O_DESCEX                                               0x00000004U
47 
48 // Internal. Only to be used through TI provided API.
49 #define VIMS_O_FLWS1T                                               0x00000008U
50 
51 // Internal. Only to be used through TI provided API.
52 #define VIMS_O_FLWS2T                                               0x0000000CU
53 
54 // Internal. Only to be used through TI provided API.
55 #define VIMS_O_PTRMC0                                               0x00000018U
56 
57 // Internal. Only to be used through TI provided API.
58 #define VIMS_O_B0TRMC1                                              0x0000001CU
59 
60 // Internal. Only to be used through TI provided API.
61 #define VIMS_O_B0TRMC0                                              0x00000020U
62 
63 // Internal. Only to be used through TI provided API.
64 #define VIMS_O_FLBLCK                                               0x00000100U
65 
66 // Internal. Only to be used through TI provided API.
67 #define VIMS_O_CFG                                                  0x000003FCU
68 
69 // Flash main region write/erase protection configuration 1
70 #define VIMS_O_WEPRA                                                0x00000410U
71 
72 // Flash main region write/erase protection configuration 2
73 #define VIMS_O_WEPRB                                                0x00000414U
74 
75 // Flash write/erase protection configuration for other regions
76 #define VIMS_O_WEPRAUX                                              0x0000041CU
77 
78 // Flash status
79 #define VIMS_O_FLBSTAT                                              0x00000420U
80 
81 // Cache control
82 #define VIMS_O_CCHCTRL                                              0x00000424U
83 
84 //*****************************************************************************
85 //
86 // Register: VIMS_O_DESC
87 //
88 //*****************************************************************************
89 // Field: [31:16] MODID
90 //
91 // Module identifier used to uniquely identify this IP.
92 #define VIMS_DESC_MODID_W                                                   16U
93 #define VIMS_DESC_MODID_M                                           0xFFFF0000U
94 #define VIMS_DESC_MODID_S                                                   16U
95 
96 // Field: [15:12] STDIPOFF
97 //
98 // Standard IP MMR block offset. Standard IP MMRs are the set of from
99 // aggregated IRQ registers till DTB.
100 //
101 // 0: Standard IP MMRs do not exist
102 //
103 // 0x1-0xF: Standard IP MMRs begin at offset of (64*STDIPOFF from the base IP
104 // address)
105 #define VIMS_DESC_STDIPOFF_W                                                 4U
106 #define VIMS_DESC_STDIPOFF_M                                        0x0000F000U
107 #define VIMS_DESC_STDIPOFF_S                                                12U
108 
109 // Field:  [11:8] INSTIDX
110 //
111 // IP Instance ID number. If multiple instances of IP exist in the device, this
112 // field can identify the instance number (0-15).
113 #define VIMS_DESC_INSTIDX_W                                                  4U
114 #define VIMS_DESC_INSTIDX_M                                         0x00000F00U
115 #define VIMS_DESC_INSTIDX_S                                                  8U
116 
117 // Field:   [7:4] MAJREV
118 //
119 // Major revision of IP (0-15).
120 #define VIMS_DESC_MAJREV_W                                                   4U
121 #define VIMS_DESC_MAJREV_M                                          0x000000F0U
122 #define VIMS_DESC_MAJREV_S                                                   4U
123 
124 // Field:   [3:0] MINREV
125 //
126 // Minor revision of IP (0-15).
127 #define VIMS_DESC_MINREV_W                                                   4U
128 #define VIMS_DESC_MINREV_M                                          0x0000000FU
129 #define VIMS_DESC_MINREV_S                                                   0U
130 
131 //*****************************************************************************
132 //
133 // Register: VIMS_O_DESCEX
134 //
135 //*****************************************************************************
136 // Field:    [27] NBANK
137 //
138 // Provides the FLASH Bank count
139 #define VIMS_DESCEX_NBANK                                           0x08000000U
140 #define VIMS_DESCEX_NBANK_M                                         0x08000000U
141 #define VIMS_DESCEX_NBANK_S                                                 27U
142 
143 // Field: [26:15] FLSZ
144 //
145 // This provides the total FLASH size in Kilo Bytes. The total FLASH size is
146 // (FLSZ + 1)KB
147 #define VIMS_DESCEX_FLSZ_W                                                  12U
148 #define VIMS_DESCEX_FLSZ_M                                          0x07FF8000U
149 #define VIMS_DESCEX_FLSZ_S                                                  15U
150 
151 // Field:  [14:0] ROMSZ
152 //
153 // Provides the size of ROM in Bytes.
154 #define VIMS_DESCEX_ROMSZ_W                                                 15U
155 #define VIMS_DESCEX_ROMSZ_M                                         0x00007FFFU
156 #define VIMS_DESCEX_ROMSZ_S                                                  0U
157 
158 //*****************************************************************************
159 //
160 // Register: VIMS_O_FLWS1T
161 //
162 //*****************************************************************************
163 // Field:   [2:0] VAL
164 //
165 // Internal. Only to be used through TI provided API.
166 // ENUMs:
167 // WS7                      Internal. Only to be used through TI provided API.
168 // WS6                      Internal. Only to be used through TI provided API.
169 // WS5                      Internal. Only to be used through TI provided API.
170 // WS4                      Internal. Only to be used through TI provided API.
171 // WS3                      Internal. Only to be used through TI provided API.
172 // WS2                      Internal. Only to be used through TI provided API.
173 // WS1                      Internal. Only to be used through TI provided API.
174 // WS0                      Internal. Only to be used through TI provided API.
175 #define VIMS_FLWS1T_VAL_W                                                    3U
176 #define VIMS_FLWS1T_VAL_M                                           0x00000007U
177 #define VIMS_FLWS1T_VAL_S                                                    0U
178 #define VIMS_FLWS1T_VAL_WS7                                         0x00000007U
179 #define VIMS_FLWS1T_VAL_WS6                                         0x00000006U
180 #define VIMS_FLWS1T_VAL_WS5                                         0x00000005U
181 #define VIMS_FLWS1T_VAL_WS4                                         0x00000004U
182 #define VIMS_FLWS1T_VAL_WS3                                         0x00000003U
183 #define VIMS_FLWS1T_VAL_WS2                                         0x00000002U
184 #define VIMS_FLWS1T_VAL_WS1                                         0x00000001U
185 #define VIMS_FLWS1T_VAL_WS0                                         0x00000000U
186 
187 //*****************************************************************************
188 //
189 // Register: VIMS_O_FLWS2T
190 //
191 //*****************************************************************************
192 // Field:   [2:0] VAL
193 //
194 // Internal. Only to be used through TI provided API.
195 // ENUMs:
196 // WS7                      Internal. Only to be used through TI provided API.
197 // WS6                      Internal. Only to be used through TI provided API.
198 // WS5                      Internal. Only to be used through TI provided API.
199 // WS4                      Internal. Only to be used through TI provided API.
200 // WS3                      Internal. Only to be used through TI provided API.
201 // WS2                      Internal. Only to be used through TI provided API.
202 // WS1                      Internal. Only to be used through TI provided API.
203 // WS0                      Internal. Only to be used through TI provided API.
204 #define VIMS_FLWS2T_VAL_W                                                    3U
205 #define VIMS_FLWS2T_VAL_M                                           0x00000007U
206 #define VIMS_FLWS2T_VAL_S                                                    0U
207 #define VIMS_FLWS2T_VAL_WS7                                         0x00000007U
208 #define VIMS_FLWS2T_VAL_WS6                                         0x00000006U
209 #define VIMS_FLWS2T_VAL_WS5                                         0x00000005U
210 #define VIMS_FLWS2T_VAL_WS4                                         0x00000004U
211 #define VIMS_FLWS2T_VAL_WS3                                         0x00000003U
212 #define VIMS_FLWS2T_VAL_WS2                                         0x00000002U
213 #define VIMS_FLWS2T_VAL_WS1                                         0x00000001U
214 #define VIMS_FLWS2T_VAL_WS0                                         0x00000000U
215 
216 //*****************************************************************************
217 //
218 // Register: VIMS_O_PTRMC0
219 //
220 //*****************************************************************************
221 // Field:  [31:0] VAL
222 //
223 // Internal. Only to be used through TI provided API.
224 #define VIMS_PTRMC0_VAL_W                                                   32U
225 #define VIMS_PTRMC0_VAL_M                                           0xFFFFFFFFU
226 #define VIMS_PTRMC0_VAL_S                                                    0U
227 
228 //*****************************************************************************
229 //
230 // Register: VIMS_O_B0TRMC1
231 //
232 //*****************************************************************************
233 // Field:  [31:0] VAL
234 //
235 // Internal. Only to be used through TI provided API.
236 #define VIMS_B0TRMC1_VAL_W                                                  32U
237 #define VIMS_B0TRMC1_VAL_M                                          0xFFFFFFFFU
238 #define VIMS_B0TRMC1_VAL_S                                                   0U
239 
240 //*****************************************************************************
241 //
242 // Register: VIMS_O_B0TRMC0
243 //
244 //*****************************************************************************
245 // Field:  [31:0] VAL
246 //
247 // Internal. Only to be used through TI provided API.
248 #define VIMS_B0TRMC0_VAL_W                                                  32U
249 #define VIMS_B0TRMC0_VAL_M                                          0xFFFFFFFFU
250 #define VIMS_B0TRMC0_VAL_S                                                   0U
251 
252 //*****************************************************************************
253 //
254 // Register: VIMS_O_FLBLCK
255 //
256 //*****************************************************************************
257 // Field:     [0] VAL
258 //
259 // Internal. Only to be used through TI provided API.
260 // ENUMs:
261 // BLOCK                    Internal. Only to be used through TI provided API.
262 // ALLOW                    Internal. Only to be used through TI provided API.
263 #define VIMS_FLBLCK_VAL                                             0x00000001U
264 #define VIMS_FLBLCK_VAL_M                                           0x00000001U
265 #define VIMS_FLBLCK_VAL_S                                                    0U
266 #define VIMS_FLBLCK_VAL_BLOCK                                       0x00000001U
267 #define VIMS_FLBLCK_VAL_ALLOW                                       0x00000000U
268 
269 //*****************************************************************************
270 //
271 // Register: VIMS_O_CFG
272 //
273 //*****************************************************************************
274 // Field:     [1] TRMVLID
275 //
276 // Internal. Only to be used through TI provided API.
277 #define VIMS_CFG_TRMVLID                                            0x00000002U
278 #define VIMS_CFG_TRMVLID_M                                          0x00000002U
279 #define VIMS_CFG_TRMVLID_S                                                   1U
280 
281 // Field:     [0] WEPRTRM
282 //
283 // Internal. Only to be used through TI provided API.
284 // ENUMs:
285 // ALLOW                    Internal. Only to be used through TI provided API.
286 // RESTRICT                 Internal. Only to be used through TI provided API.
287 #define VIMS_CFG_WEPRTRM                                            0x00000001U
288 #define VIMS_CFG_WEPRTRM_M                                          0x00000001U
289 #define VIMS_CFG_WEPRTRM_S                                                   0U
290 #define VIMS_CFG_WEPRTRM_ALLOW                                      0x00000001U
291 #define VIMS_CFG_WEPRTRM_RESTRICT                                   0x00000000U
292 
293 //*****************************************************************************
294 //
295 // Register: VIMS_O_WEPRA
296 //
297 //*****************************************************************************
298 // Field:  [31:0] VAL
299 //
300 // Flash write/erase protection configuration value.
301 #define VIMS_WEPRA_VAL_W                                                    32U
302 #define VIMS_WEPRA_VAL_M                                            0xFFFFFFFFU
303 #define VIMS_WEPRA_VAL_S                                                     0U
304 
305 //*****************************************************************************
306 //
307 // Register: VIMS_O_WEPRB
308 //
309 //*****************************************************************************
310 // Field:  [27:0] VAL
311 //
312 // Flash write/erase protection configuration value.
313 #define VIMS_WEPRB_VAL_W                                                    28U
314 #define VIMS_WEPRB_VAL_M                                            0x0FFFFFFFU
315 #define VIMS_WEPRB_VAL_S                                                     0U
316 
317 //*****************************************************************************
318 //
319 // Register: VIMS_O_WEPRAUX
320 //
321 //*****************************************************************************
322 // Field:     [2] WEPREGR
323 //
324 // Flash engr region write/erase protection configuration value.
325 #define VIMS_WEPRAUX_WEPREGR                                        0x00000004U
326 #define VIMS_WEPRAUX_WEPREGR_M                                      0x00000004U
327 #define VIMS_WEPRAUX_WEPREGR_S                                               2U
328 
329 // Field:     [1] WEPRTRM
330 //
331 // Flash trim region write/erase protection configuration value.
332 #define VIMS_WEPRAUX_WEPRTRM                                        0x00000002U
333 #define VIMS_WEPRAUX_WEPRTRM_M                                      0x00000002U
334 #define VIMS_WEPRAUX_WEPRTRM_S                                               1U
335 
336 // Field:     [0] WEPRNMN
337 //
338 // Flash non main region write/erase protection configuration value.
339 #define VIMS_WEPRAUX_WEPRNMN                                        0x00000001U
340 #define VIMS_WEPRAUX_WEPRNMN_M                                      0x00000001U
341 #define VIMS_WEPRAUX_WEPRNMN_S                                               0U
342 
343 //*****************************************************************************
344 //
345 // Register: VIMS_O_FLBSTAT
346 //
347 //*****************************************************************************
348 // Field:     [3] PARERR
349 //
350 // This bit indicates parity error on write/erase and read protection MMRs.
351 // This bit is sticky when set to 1 by hardware.
352 // ENUMs:
353 // ERROR                    Error
354 // NOERROR                  No Error
355 #define VIMS_FLBSTAT_PARERR                                         0x00000008U
356 #define VIMS_FLBSTAT_PARERR_M                                       0x00000008U
357 #define VIMS_FLBSTAT_PARERR_S                                                3U
358 #define VIMS_FLBSTAT_PARERR_ERROR                                   0x00000008U
359 #define VIMS_FLBSTAT_PARERR_NOERROR                                 0x00000000U
360 
361 // Field:     [2] B0BSY
362 //
363 // This bit indicates if flash is busy.
364 // ENUMs:
365 // BUSY                     Busy
366 // IDLE                     Idle
367 #define VIMS_FLBSTAT_B0BSY                                          0x00000004U
368 #define VIMS_FLBSTAT_B0BSY_M                                        0x00000004U
369 #define VIMS_FLBSTAT_B0BSY_S                                                 2U
370 #define VIMS_FLBSTAT_B0BSY_BUSY                                     0x00000004U
371 #define VIMS_FLBSTAT_B0BSY_IDLE                                     0x00000000U
372 
373 // Field:     [1] B2TRDY
374 //
375 // This bit indicates if flash is ready in 2T mode.
376 // ENUMs:
377 // READY                    Ready
378 // NOTREADY                 Not Ready
379 #define VIMS_FLBSTAT_B2TRDY                                         0x00000002U
380 #define VIMS_FLBSTAT_B2TRDY_M                                       0x00000002U
381 #define VIMS_FLBSTAT_B2TRDY_S                                                1U
382 #define VIMS_FLBSTAT_B2TRDY_READY                                   0x00000002U
383 #define VIMS_FLBSTAT_B2TRDY_NOTREADY                                0x00000000U
384 
385 // Field:     [0] B1TRDY
386 //
387 // This bit indicates if flash is ready in 1T mode.
388 // ENUMs:
389 // READY                    Ready
390 // NOTREADY                 Not Ready
391 #define VIMS_FLBSTAT_B1TRDY                                         0x00000001U
392 #define VIMS_FLBSTAT_B1TRDY_M                                       0x00000001U
393 #define VIMS_FLBSTAT_B1TRDY_S                                                0U
394 #define VIMS_FLBSTAT_B1TRDY_READY                                   0x00000001U
395 #define VIMS_FLBSTAT_B1TRDY_NOTREADY                                0x00000000U
396 
397 //*****************************************************************************
398 //
399 // Register: VIMS_O_CCHCTRL
400 //
401 //*****************************************************************************
402 // Field:     [2] CCHMPEN
403 //
404 // This bit is used to enable the micropredictor unit.
405 // ENUMs:
406 // EN                       Enable
407 // DIS                      Disable
408 #define VIMS_CCHCTRL_CCHMPEN                                        0x00000004U
409 #define VIMS_CCHCTRL_CCHMPEN_M                                      0x00000004U
410 #define VIMS_CCHCTRL_CCHMPEN_S                                               2U
411 #define VIMS_CCHCTRL_CCHMPEN_EN                                     0x00000004U
412 #define VIMS_CCHCTRL_CCHMPEN_DIS                                    0x00000000U
413 
414 // Field:     [1] CCHPFEN
415 //
416 // This bit is used to enable the prefetch unit.
417 // ENUMs:
418 // EN                       Enable
419 // DIS                      Disable
420 #define VIMS_CCHCTRL_CCHPFEN                                        0x00000002U
421 #define VIMS_CCHCTRL_CCHPFEN_M                                      0x00000002U
422 #define VIMS_CCHCTRL_CCHPFEN_S                                               1U
423 #define VIMS_CCHCTRL_CCHPFEN_EN                                     0x00000002U
424 #define VIMS_CCHCTRL_CCHPFEN_DIS                                    0x00000000U
425 
426 // Field:     [0] CCHEN
427 //
428 // This bit is used to enable the cache.
429 // ENUMs:
430 // EN                       Enable
431 // DIS                      Disable
432 #define VIMS_CCHCTRL_CCHEN                                          0x00000001U
433 #define VIMS_CCHCTRL_CCHEN_M                                        0x00000001U
434 #define VIMS_CCHCTRL_CCHEN_S                                                 0U
435 #define VIMS_CCHCTRL_CCHEN_EN                                       0x00000001U
436 #define VIMS_CCHCTRL_CCHEN_DIS                                      0x00000000U
437 
438 
439 //*****************************************************************************
440 //
441 // This section defines the register offsets of
442 // VIMS component
443 //
444 //*****************************************************************************
445 // Status
446 #define VIMS_O_STAT                                                 0x00000000
447 
448 // Control
449 #define VIMS_O_CTL                                                  0x00000004
450 
451 //*****************************************************************************
452 //
453 // Register: VIMS_O_STAT
454 //
455 //*****************************************************************************
456 // Field:     [5] IDCODE_LB_DIS
457 //
458 // Icode/Dcode flash line buffer status
459 //
460 // 0: Enabled or in transition to disabled
461 // 1: Disabled and flushed
462 #define VIMS_STAT_IDCODE_LB_DIS                                     0x00000020
463 #define VIMS_STAT_IDCODE_LB_DIS_BITN                                         5
464 #define VIMS_STAT_IDCODE_LB_DIS_M                                   0x00000020
465 #define VIMS_STAT_IDCODE_LB_DIS_S                                            5
466 
467 // Field:     [4] SYSBUS_LB_DIS
468 //
469 // Sysbus flash line buffer control
470 //
471 // 0: Enabled or in transition to disabled
472 // 1: Disabled and flushed
473 #define VIMS_STAT_SYSBUS_LB_DIS                                     0x00000010
474 #define VIMS_STAT_SYSBUS_LB_DIS_BITN                                         4
475 #define VIMS_STAT_SYSBUS_LB_DIS_M                                   0x00000010
476 #define VIMS_STAT_SYSBUS_LB_DIS_S                                            4
477 
478 // Field:     [3] MODE_CHANGING
479 //
480 // VIMS mode change status
481 //
482 // 0: VIMS is in the mode defined by MODE
483 // 1: VIMS is in the process of changing to the mode given in CTL.MODE
484 #define VIMS_STAT_MODE_CHANGING                                     0x00000008
485 #define VIMS_STAT_MODE_CHANGING_BITN                                         3
486 #define VIMS_STAT_MODE_CHANGING_M                                   0x00000008
487 #define VIMS_STAT_MODE_CHANGING_S                                            3
488 
489 // Field:     [2] INV
490 //
491 // This bit is set when invalidation of the cache memory is active / ongoing
492 #define VIMS_STAT_INV                                               0x00000004
493 #define VIMS_STAT_INV_BITN                                                   2
494 #define VIMS_STAT_INV_M                                             0x00000004
495 #define VIMS_STAT_INV_S                                                      2
496 
497 // Field:   [1:0] MODE
498 //
499 // Current VIMS mode
500 // ENUMs:
501 // OFF                      VIMS Off mode
502 // CACHE                    VIMS Cache mode
503 // GPRAM                    VIMS GPRAM mode
504 #define VIMS_STAT_MODE_W                                                     2
505 #define VIMS_STAT_MODE_M                                            0x00000003
506 #define VIMS_STAT_MODE_S                                                     0
507 #define VIMS_STAT_MODE_OFF                                          0x00000003
508 #define VIMS_STAT_MODE_CACHE                                        0x00000001
509 #define VIMS_STAT_MODE_GPRAM                                        0x00000000
510 
511 //*****************************************************************************
512 //
513 // Register: VIMS_O_CTL
514 //
515 //*****************************************************************************
516 // Field:    [31] STATS_CLR
517 //
518 // Set this bit to clear statistic counters.
519 #define VIMS_CTL_STATS_CLR                                          0x80000000
520 #define VIMS_CTL_STATS_CLR_BITN                                             31
521 #define VIMS_CTL_STATS_CLR_M                                        0x80000000
522 #define VIMS_CTL_STATS_CLR_S                                                31
523 
524 // Field:    [30] STATS_EN
525 //
526 // Set this bit to enable statistic counters.
527 #define VIMS_CTL_STATS_EN                                           0x40000000
528 #define VIMS_CTL_STATS_EN_BITN                                              30
529 #define VIMS_CTL_STATS_EN_M                                         0x40000000
530 #define VIMS_CTL_STATS_EN_S                                                 30
531 
532 // Field:    [29] DYN_CG_EN
533 //
534 // 0: The in-built clock gate functionality is bypassed.
535 // 1: The in-built clock gate functionality is enabled, automatically gating
536 // the clock when not needed.
537 #define VIMS_CTL_DYN_CG_EN                                          0x20000000
538 #define VIMS_CTL_DYN_CG_EN_BITN                                             29
539 #define VIMS_CTL_DYN_CG_EN_M                                        0x20000000
540 #define VIMS_CTL_DYN_CG_EN_S                                                29
541 
542 // Field:     [5] IDCODE_LB_DIS
543 //
544 // Icode/Dcode flash line buffer control
545 //
546 // 0: Enable
547 // 1: Disable
548 #define VIMS_CTL_IDCODE_LB_DIS                                      0x00000020
549 #define VIMS_CTL_IDCODE_LB_DIS_BITN                                          5
550 #define VIMS_CTL_IDCODE_LB_DIS_M                                    0x00000020
551 #define VIMS_CTL_IDCODE_LB_DIS_S                                             5
552 
553 // Field:     [4] SYSBUS_LB_DIS
554 //
555 // Sysbus flash line buffer control
556 //
557 // 0: Enable
558 // 1: Disable
559 #define VIMS_CTL_SYSBUS_LB_DIS                                      0x00000010
560 #define VIMS_CTL_SYSBUS_LB_DIS_BITN                                          4
561 #define VIMS_CTL_SYSBUS_LB_DIS_M                                    0x00000010
562 #define VIMS_CTL_SYSBUS_LB_DIS_S                                             4
563 
564 // Field:     [3] ARB_CFG
565 //
566 // Icode/Dcode and sysbus arbitation scheme
567 //
568 // 0: Static arbitration  (icode/docde > sysbus)
569 // 1: Round-robin arbitration
570 #define VIMS_CTL_ARB_CFG                                            0x00000008
571 #define VIMS_CTL_ARB_CFG_BITN                                                3
572 #define VIMS_CTL_ARB_CFG_M                                          0x00000008
573 #define VIMS_CTL_ARB_CFG_S                                                   3
574 
575 // Field:     [2] PREF_EN
576 //
577 // Tag prefetch control
578 //
579 // 0: Disabled
580 // 1: Enabled
581 #define VIMS_CTL_PREF_EN                                            0x00000004
582 #define VIMS_CTL_PREF_EN_BITN                                                2
583 #define VIMS_CTL_PREF_EN_M                                          0x00000004
584 #define VIMS_CTL_PREF_EN_S                                                   2
585 
586 // Field:   [1:0] MODE
587 //
588 // VIMS mode request.
589 // Write accesses to this field will be blocked while STAT.MODE_CHANGING is set
590 // to 1.
591 // ENUMs:
592 // OFF                      VIMS Off mode
593 // CACHE                    VIMS Cache mode
594 // GPRAM                    VIMS GPRAM mode
595 #define VIMS_CTL_MODE_W                                                      2
596 #define VIMS_CTL_MODE_M                                             0x00000003
597 #define VIMS_CTL_MODE_S                                                      0
598 #define VIMS_CTL_MODE_OFF                                           0x00000003
599 #define VIMS_CTL_MODE_CACHE                                         0x00000001
600 #define VIMS_CTL_MODE_GPRAM                                         0x00000000
601 
602 
603 
604 #endif // __VIMS__
605