1 /******************************************************************************
2 *  Filename:       hw_flash_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_FLASH_H__
34 #define __HW_FLASH_H__
35 
36 //*****************************************************************************
37 //
38 // This section defines the register offsets of
39 // FLASH component
40 //
41 //*****************************************************************************
42 // Interrupt Mask Register
43 #define FLASH_O_IMASK                                               0x00000028U
44 
45 // Raw Interrupt Status Register
46 #define FLASH_O_RIS                                                 0x00000030U
47 
48 // Masked Interrupt Status Register
49 #define FLASH_O_MIS                                                 0x00000038U
50 
51 // Interrupt Set Register
52 #define FLASH_O_ISET                                                0x00000040U
53 
54 // Interrupt Clear Register
55 #define FLASH_O_ICLR                                                0x00000048U
56 
57 // Hardware Version Description Register
58 #define FLASH_O_DESC                                                0x000000FCU
59 
60 // Command Execute Register
61 #define FLASH_O_CMDEXEC                                             0x00000100U
62 
63 // Command Type Register
64 #define FLASH_O_CMDTYPE                                             0x00000104U
65 
66 // Command Control Register
67 #define FLASH_O_CMDCTL                                              0x00000108U
68 
69 // Command Address Register
70 #define FLASH_O_CMDADDR                                             0x00000120U
71 
72 // Command Program Byte Enable Register
73 #define FLASH_O_CMDBYTEN                                            0x00000124U
74 
75 // Command Data Register 0
76 #define FLASH_O_CMDDATA0                                            0x00000130U
77 
78 // Command Data Register 1
79 #define FLASH_O_CMDDATA1                                            0x00000134U
80 
81 // Command Data Register 2
82 #define FLASH_O_CMDDATA2                                            0x00000138U
83 
84 // Command Data Register Bits 127:96
85 #define FLASH_O_CMDDATA3                                            0x0000013CU
86 
87 // Command Write Erase Protect A Register
88 #define FLASH_O_CMDWEPROTA                                          0x000001D0U
89 
90 // Command Write Erase Protect B Register
91 #define FLASH_O_CMDWEPROTB                                          0x000001D4U
92 
93 // Command Write Erase Protect Non-Main Register
94 #define FLASH_O_CMDWEPROTNM                                         0x00000210U
95 
96 // Command Write Erase Protect Trim Register
97 #define FLASH_O_CMDWEPROTTR                                         0x00000214U
98 
99 // Command Write Erase Protect Engr Register
100 #define FLASH_O_CMDWEPROTEN                                         0x00000218U
101 
102 // Command Configuration Register
103 #define FLASH_O_CFGCMD                                              0x000003B0U
104 
105 // Pulse Counter Configuration Register
106 #define FLASH_O_CFGPCNT                                             0x000003B4U
107 
108 // Command Status Register
109 #define FLASH_O_STATCMD                                             0x000003D0U
110 
111 // Address Status Register
112 #define FLASH_O_STATADDR                                            0x000003D4U
113 
114 // Pulse Count Status Register
115 #define FLASH_O_STATPCNT                                            0x000003D8U
116 
117 // Mode Status Register
118 #define FLASH_O_STATMODE                                            0x000003DCU
119 
120 // Global Information Register 0
121 #define FLASH_O_GBLINFO0                                            0x000003F0U
122 
123 // Global Information Register 1
124 #define FLASH_O_GBLINFO1                                            0x000003F4U
125 
126 // Global Information Register 2
127 #define FLASH_O_GBLINFO2                                            0x000003F8U
128 
129 // Bank Information Register 0 for Bank 0
130 #define FLASH_O_BANK0INFO0                                          0x00000400U
131 
132 // Bank Information Register 1 for Bank 0
133 #define FLASH_O_BANK0INFO1                                          0x00000404U
134 
135 //*****************************************************************************
136 //
137 // Register: FLASH_O_IMASK
138 //
139 //*****************************************************************************
140 // Field:     [0] DONE
141 //
142 // Interrupt mask for DONE:
143 // 0: Interrupt is disabled in MIS register
144 // 1: Interrupt is enabled in MIS register
145 // ENUMs:
146 // ENABLED                  Interrupt will request an interrupt service
147 //                          routine and corresponding bit in IPSTANDARD.MIS
148 //                          will be set
149 // DISABLED                 Interrupt is masked out
150 #define FLASH_IMASK_DONE                                            0x00000001U
151 #define FLASH_IMASK_DONE_M                                          0x00000001U
152 #define FLASH_IMASK_DONE_S                                                   0U
153 #define FLASH_IMASK_DONE_ENABLED                                    0x00000001U
154 #define FLASH_IMASK_DONE_DISABLED                                   0x00000000U
155 
156 //*****************************************************************************
157 //
158 // Register: FLASH_O_RIS
159 //
160 //*****************************************************************************
161 // Field:     [0] DONE
162 //
163 // Flash wrapper operation completed.
164 // This interrupt bit is set by firmware or the corresponding bit in the ISET
165 // register.
166 // It is cleared by the corresponding bit in in the ICLR register or reading
167 // the IIDX register when this interrupt is the highest priority.
168 // ENUMs:
169 // SET                      Interrupt occurred
170 // CLR                      Interrupt did not occur
171 #define FLASH_RIS_DONE                                              0x00000001U
172 #define FLASH_RIS_DONE_M                                            0x00000001U
173 #define FLASH_RIS_DONE_S                                                     0U
174 #define FLASH_RIS_DONE_SET                                          0x00000001U
175 #define FLASH_RIS_DONE_CLR                                          0x00000000U
176 
177 //*****************************************************************************
178 //
179 // Register: FLASH_O_MIS
180 //
181 //*****************************************************************************
182 // Field:     [0] DONE
183 //
184 // Flash wrapper operation completed.
185 // This masked interrupt bit reflects the bitwise AND of the corresponding RIS
186 // and IMASK bits.
187 // ENUMs:
188 // SET                      Masked interrupt occurred
189 // CLR                      Masked interrupt did not occur
190 #define FLASH_MIS_DONE                                              0x00000001U
191 #define FLASH_MIS_DONE_M                                            0x00000001U
192 #define FLASH_MIS_DONE_S                                                     0U
193 #define FLASH_MIS_DONE_SET                                          0x00000001U
194 #define FLASH_MIS_DONE_CLR                                          0x00000000U
195 
196 //*****************************************************************************
197 //
198 // Register: FLASH_O_ISET
199 //
200 //*****************************************************************************
201 // Field:     [0] DONE
202 //
203 // 0: No effect
204 // 1: Set the DONE interrupt in the RIS register
205 // ENUMs:
206 // SET                      Set IPSTANDARD.RIS bit
207 // NO_EFFECT                Writing a 0 has no effect
208 #define FLASH_ISET_DONE                                             0x00000001U
209 #define FLASH_ISET_DONE_M                                           0x00000001U
210 #define FLASH_ISET_DONE_S                                                    0U
211 #define FLASH_ISET_DONE_SET                                         0x00000001U
212 #define FLASH_ISET_DONE_NO_EFFECT                                   0x00000000U
213 
214 //*****************************************************************************
215 //
216 // Register: FLASH_O_ICLR
217 //
218 //*****************************************************************************
219 // Field:     [0] DONE
220 //
221 // 0: No effect
222 // 1: Clear the DONE interrupt in the RIS register
223 // ENUMs:
224 // CLR                      Clear IPSTANDARD.RIS bit
225 // NO_EFFECT                Writing a 0 has no effect
226 #define FLASH_ICLR_DONE                                             0x00000001U
227 #define FLASH_ICLR_DONE_M                                           0x00000001U
228 #define FLASH_ICLR_DONE_S                                                    0U
229 #define FLASH_ICLR_DONE_CLR                                         0x00000001U
230 #define FLASH_ICLR_DONE_NO_EFFECT                                   0x00000000U
231 
232 //*****************************************************************************
233 //
234 // Register: FLASH_O_DESC
235 //
236 //*****************************************************************************
237 // Field: [31:16] MODULEID
238 //
239 // Module ID
240 // ENUMs:
241 // MAXIMUM                  Highest possible value
242 // MINIMUM                  Smallest value
243 #define FLASH_DESC_MODULEID_W                                               16U
244 #define FLASH_DESC_MODULEID_M                                       0xFFFF0000U
245 #define FLASH_DESC_MODULEID_S                                               16U
246 #define FLASH_DESC_MODULEID_MAXIMUM                                 0xFFFF0000U
247 #define FLASH_DESC_MODULEID_MINIMUM                                 0x00000000U
248 
249 // Field: [15:12] FEATUREVER
250 //
251 // Feature set
252 // ENUMs:
253 // MAXIMUM                  Maximum Value
254 // MINIMUM                  Minimum Value
255 #define FLASH_DESC_FEATUREVER_W                                              4U
256 #define FLASH_DESC_FEATUREVER_M                                     0x0000F000U
257 #define FLASH_DESC_FEATUREVER_S                                             12U
258 #define FLASH_DESC_FEATUREVER_MAXIMUM                               0x0000F000U
259 #define FLASH_DESC_FEATUREVER_MINIMUM                               0x00000000U
260 
261 // Field:  [11:8] INSTNUM
262 //
263 // Instance number
264 // ENUMs:
265 // MAXIMUM                  Highest possible value
266 // MINIMUM                  Smallest value
267 #define FLASH_DESC_INSTNUM_W                                                 4U
268 #define FLASH_DESC_INSTNUM_M                                        0x00000F00U
269 #define FLASH_DESC_INSTNUM_S                                                 8U
270 #define FLASH_DESC_INSTNUM_MAXIMUM                                  0x00000F00U
271 #define FLASH_DESC_INSTNUM_MINIMUM                                  0x00000000U
272 
273 // Field:   [7:4] MAJREV
274 //
275 // Major Revision
276 // ENUMs:
277 // MAXIMUM                  Highest possible value
278 // MINIMUM                  Smallest value
279 #define FLASH_DESC_MAJREV_W                                                  4U
280 #define FLASH_DESC_MAJREV_M                                         0x000000F0U
281 #define FLASH_DESC_MAJREV_S                                                  4U
282 #define FLASH_DESC_MAJREV_MAXIMUM                                   0x000000F0U
283 #define FLASH_DESC_MAJREV_MINIMUM                                   0x00000000U
284 
285 // Field:   [3:0] MINREV
286 //
287 // Minor Revision
288 // ENUMs:
289 // MAXIMUM                  Highest possible value
290 // MINIMUM                  Smallest value
291 #define FLASH_DESC_MINREV_W                                                  4U
292 #define FLASH_DESC_MINREV_M                                         0x0000000FU
293 #define FLASH_DESC_MINREV_S                                                  0U
294 #define FLASH_DESC_MINREV_MAXIMUM                                   0x0000000FU
295 #define FLASH_DESC_MINREV_MINIMUM                                   0x00000000U
296 
297 //*****************************************************************************
298 //
299 // Register: FLASH_O_CMDEXEC
300 //
301 //*****************************************************************************
302 // Field:     [0] VAL
303 //
304 // Command Execute value
305 // Initiates execution of the command specified in the CMDTYPE register.
306 // ENUMs:
307 // EXECUTE                  Command will execute or is executing in flash
308 //                          wrapper
309 // NOEXECUTE                Command will not execute or is not executing in
310 //                          flash wrapper
311 #define FLASH_CMDEXEC_VAL                                           0x00000001U
312 #define FLASH_CMDEXEC_VAL_M                                         0x00000001U
313 #define FLASH_CMDEXEC_VAL_S                                                  0U
314 #define FLASH_CMDEXEC_VAL_EXECUTE                                   0x00000001U
315 #define FLASH_CMDEXEC_VAL_NOEXECUTE                                 0x00000000U
316 
317 //*****************************************************************************
318 //
319 // Register: FLASH_O_CMDTYPE
320 //
321 //*****************************************************************************
322 // Field:   [6:4] SIZE
323 //
324 // Command size
325 // ENUMs:
326 // BANK                     Operate on an entire flash bank
327 // SECTOR                   Operate on a flash sector
328 // EIGHTWORD                Operate on 8 flash words
329 // FOURWORD                 Operate on 4 flash words
330 // TWOWORD                  Operate on 2 flash words
331 // ONEWORD                  Operate on 1 flash word
332 #define FLASH_CMDTYPE_SIZE_W                                                 3U
333 #define FLASH_CMDTYPE_SIZE_M                                        0x00000070U
334 #define FLASH_CMDTYPE_SIZE_S                                                 4U
335 #define FLASH_CMDTYPE_SIZE_BANK                                     0x00000050U
336 #define FLASH_CMDTYPE_SIZE_SECTOR                                   0x00000040U
337 #define FLASH_CMDTYPE_SIZE_EIGHTWORD                                0x00000030U
338 #define FLASH_CMDTYPE_SIZE_FOURWORD                                 0x00000020U
339 #define FLASH_CMDTYPE_SIZE_TWOWORD                                  0x00000010U
340 #define FLASH_CMDTYPE_SIZE_ONEWORD                                  0x00000000U
341 
342 // Field:   [2:0] COMMAND
343 //
344 // Command type
345 // ENUMs:
346 // BLANKVERIFY              Blank Verify - Check whether a flash word is in
347 //                          the erased state.
348 //                          This command may only be
349 //                          used with CMDTYPE.SIZE = ONEWORD
350 // CLEARSTATUS              Clear Status - Clear status bits in FW_SMSTAT
351 //                          only.
352 // MODECHANGE               Mode Change - Perform a mode change only, no other
353 //                          operation.
354 // ERASE                    Erase
355 // PROGRAM                  Program
356 // NOOP                     No Operation
357 #define FLASH_CMDTYPE_COMMAND_W                                              3U
358 #define FLASH_CMDTYPE_COMMAND_M                                     0x00000007U
359 #define FLASH_CMDTYPE_COMMAND_S                                              0U
360 #define FLASH_CMDTYPE_COMMAND_BLANKVERIFY                           0x00000006U
361 #define FLASH_CMDTYPE_COMMAND_CLEARSTATUS                           0x00000005U
362 #define FLASH_CMDTYPE_COMMAND_MODECHANGE                            0x00000004U
363 #define FLASH_CMDTYPE_COMMAND_ERASE                                 0x00000002U
364 #define FLASH_CMDTYPE_COMMAND_PROGRAM                               0x00000001U
365 #define FLASH_CMDTYPE_COMMAND_NOOP                                  0x00000000U
366 
367 //*****************************************************************************
368 //
369 // Register: FLASH_O_CMDCTL
370 //
371 //*****************************************************************************
372 // Field:    [21] DATAVEREN
373 //
374 // Enable invalid data verify.
375 // This checks for 0->1 transitions in the memory when
376 // a program operation is initiated.  If such a transition is found, the
377 // program will
378 // fail with an error without executing the program.
379 // ENUMs:
380 // ENABLE                   Enable
381 // DISABLE                  Disable
382 #define FLASH_CMDCTL_DATAVEREN                                      0x00200000U
383 #define FLASH_CMDCTL_DATAVEREN_M                                    0x00200000U
384 #define FLASH_CMDCTL_DATAVEREN_S                                            21U
385 #define FLASH_CMDCTL_DATAVEREN_ENABLE                               0x00200000U
386 #define FLASH_CMDCTL_DATAVEREN_DISABLE                              0x00000000U
387 
388 // Field:    [20] SSERASEDIS
389 //
390 // Disable Stair-Step Erase.  If set, the default VHV trim voltage setting will
391 // be used
392 // for all erase pulses.
393 // By default, this bit is reset, meaning that the VHV voltage will be stepped
394 // during
395 // successive erase pulses.  The step count, step voltage, begin and end
396 // voltages
397 // are all hard-wired.
398 // ENUMs:
399 // DISABLE                  Disable
400 // ENABLE                   Enable
401 #define FLASH_CMDCTL_SSERASEDIS                                     0x00100000U
402 #define FLASH_CMDCTL_SSERASEDIS_M                                   0x00100000U
403 #define FLASH_CMDCTL_SSERASEDIS_S                                           20U
404 #define FLASH_CMDCTL_SSERASEDIS_DISABLE                             0x00100000U
405 #define FLASH_CMDCTL_SSERASEDIS_ENABLE                              0x00000000U
406 
407 // Field:    [16] ADDRXLATEOVR
408 //
409 // Override hardware address translation of address in CMDADDR from a
410 // system address to a bank address and bank ID.  Use data written to
411 // CMDADDR directly as the bank address.  Use the value written to
412 // CMDCTL.BANKSEL directly as the bank ID.  Use the value written to
413 // CMDCTL.REGIONSEL directly as the region ID.
414 // ENUMs:
415 // OVERRIDE                 Override
416 // NOOVERRIDE               Do not override
417 #define FLASH_CMDCTL_ADDRXLATEOVR                                   0x00010000U
418 #define FLASH_CMDCTL_ADDRXLATEOVR_M                                 0x00010000U
419 #define FLASH_CMDCTL_ADDRXLATEOVR_S                                         16U
420 #define FLASH_CMDCTL_ADDRXLATEOVR_OVERRIDE                          0x00010000U
421 #define FLASH_CMDCTL_ADDRXLATEOVR_NOOVERRIDE                        0x00000000U
422 
423 // Field:  [12:9] REGIONSEL
424 //
425 // Bank Region
426 // A specific region ID can be written to this field to indicate to which
427 // region an
428 // operation is to be applied if CMDCTL.ADDRXLATEOVR is set.
429 // ENUMs:
430 // ENGR                     Engr Region
431 // TRIM                     Trim Region
432 // NONMAIN                  Non-Main Region
433 // MAIN                     Main Region
434 #define FLASH_CMDCTL_REGIONSEL_W                                             4U
435 #define FLASH_CMDCTL_REGIONSEL_M                                    0x00001E00U
436 #define FLASH_CMDCTL_REGIONSEL_S                                             9U
437 #define FLASH_CMDCTL_REGIONSEL_ENGR                                 0x00001000U
438 #define FLASH_CMDCTL_REGIONSEL_TRIM                                 0x00000800U
439 #define FLASH_CMDCTL_REGIONSEL_NONMAIN                              0x00000400U
440 #define FLASH_CMDCTL_REGIONSEL_MAIN                                 0x00000200U
441 
442 // Field:   [3:0] MODESEL
443 //
444 // Mode
445 // This field is only used for the Mode Change command type.  Otherwise, bank
446 // and pump modes are set automaticlly through the NW hardware.
447 // ENUMs:
448 // ERASEBNK                 Erase Bank
449 // PGMMW                    Program Multiple Word
450 // ERASESECT                Erase Sector
451 // ERASEVER                 Erase Verify Mode
452 // PGMSW                    Program Single Word
453 // PGMVER                   Program Verify Mode
454 // RDMARG1B                 Read Margin 1B Mode
455 // RDMARG0B                 Read Margin 0B Mode
456 // RDMARG1                  Read Margin 1 Mode
457 // RDMARG0                  Read Margin 0 Mode
458 // READ                     Read Mode
459 #define FLASH_CMDCTL_MODESEL_W                                               4U
460 #define FLASH_CMDCTL_MODESEL_M                                      0x0000000FU
461 #define FLASH_CMDCTL_MODESEL_S                                               0U
462 #define FLASH_CMDCTL_MODESEL_ERASEBNK                               0x0000000FU
463 #define FLASH_CMDCTL_MODESEL_PGMMW                                  0x0000000EU
464 #define FLASH_CMDCTL_MODESEL_ERASESECT                              0x0000000CU
465 #define FLASH_CMDCTL_MODESEL_ERASEVER                               0x0000000BU
466 #define FLASH_CMDCTL_MODESEL_PGMSW                                  0x0000000AU
467 #define FLASH_CMDCTL_MODESEL_PGMVER                                 0x00000009U
468 #define FLASH_CMDCTL_MODESEL_RDMARG1B                               0x00000007U
469 #define FLASH_CMDCTL_MODESEL_RDMARG0B                               0x00000006U
470 #define FLASH_CMDCTL_MODESEL_RDMARG1                                0x00000004U
471 #define FLASH_CMDCTL_MODESEL_RDMARG0                                0x00000002U
472 #define FLASH_CMDCTL_MODESEL_READ                                   0x00000000U
473 
474 //*****************************************************************************
475 //
476 // Register: FLASH_O_CMDADDR
477 //
478 //*****************************************************************************
479 // Field:  [31:0] VAL
480 //
481 // Address value
482 // ENUMs:
483 // MAXIMUM                  Maximum value of VAL
484 // MINIMUM                  Minimum value of VAL
485 #define FLASH_CMDADDR_VAL_W                                                 32U
486 #define FLASH_CMDADDR_VAL_M                                         0xFFFFFFFFU
487 #define FLASH_CMDADDR_VAL_S                                                  0U
488 #define FLASH_CMDADDR_VAL_MAXIMUM                                   0xFFFFFFFFU
489 #define FLASH_CMDADDR_VAL_MINIMUM                                   0x00000000U
490 
491 //*****************************************************************************
492 //
493 // Register: FLASH_O_CMDBYTEN
494 //
495 //*****************************************************************************
496 // Field:  [15:0] VAL
497 //
498 // Command Byte Enable value.
499 // A 1-bit per flash word byte value is placed in this register.
500 // ENUMs:
501 // MAXIMUM                  Maximum value of VAL
502 // MINIMUM                  Minimum value of VAL
503 #define FLASH_CMDBYTEN_VAL_W                                                16U
504 #define FLASH_CMDBYTEN_VAL_M                                        0x0000FFFFU
505 #define FLASH_CMDBYTEN_VAL_S                                                 0U
506 #define FLASH_CMDBYTEN_VAL_MAXIMUM                                  0x0003FFFFU
507 #define FLASH_CMDBYTEN_VAL_MINIMUM                                  0x00000000U
508 
509 //*****************************************************************************
510 //
511 // Register: FLASH_O_CMDDATA0
512 //
513 //*****************************************************************************
514 // Field:  [31:0] VAL
515 //
516 // A 32-bit data value is placed in this field.
517 // ENUMs:
518 // MAXIMUM                  Maximum value of VAL
519 // MINIMUM                  Minimum value of VAL
520 #define FLASH_CMDDATA0_VAL_W                                                32U
521 #define FLASH_CMDDATA0_VAL_M                                        0xFFFFFFFFU
522 #define FLASH_CMDDATA0_VAL_S                                                 0U
523 #define FLASH_CMDDATA0_VAL_MAXIMUM                                  0xFFFFFFFFU
524 #define FLASH_CMDDATA0_VAL_MINIMUM                                  0x00000000U
525 
526 //*****************************************************************************
527 //
528 // Register: FLASH_O_CMDDATA1
529 //
530 //*****************************************************************************
531 // Field:  [31:0] VAL
532 //
533 // A 32-bit data value is placed in this field.
534 // ENUMs:
535 // MAXIMUM                  Maximum value of VAL
536 // MINIMUM                  Minimum value of VAL
537 #define FLASH_CMDDATA1_VAL_W                                                32U
538 #define FLASH_CMDDATA1_VAL_M                                        0xFFFFFFFFU
539 #define FLASH_CMDDATA1_VAL_S                                                 0U
540 #define FLASH_CMDDATA1_VAL_MAXIMUM                                  0xFFFFFFFFU
541 #define FLASH_CMDDATA1_VAL_MINIMUM                                  0x00000000U
542 
543 //*****************************************************************************
544 //
545 // Register: FLASH_O_CMDDATA2
546 //
547 //*****************************************************************************
548 // Field:  [31:0] VAL
549 //
550 // A 32-bit data value is placed in this field.
551 // ENUMs:
552 // MAXIMUM                  Maximum value of VAL
553 // MINIMUM                  Minimum value of VAL
554 #define FLASH_CMDDATA2_VAL_W                                                32U
555 #define FLASH_CMDDATA2_VAL_M                                        0xFFFFFFFFU
556 #define FLASH_CMDDATA2_VAL_S                                                 0U
557 #define FLASH_CMDDATA2_VAL_MAXIMUM                                  0xFFFFFFFFU
558 #define FLASH_CMDDATA2_VAL_MINIMUM                                  0x00000000U
559 
560 //*****************************************************************************
561 //
562 // Register: FLASH_O_CMDDATA3
563 //
564 //*****************************************************************************
565 // Field:  [31:0] VAL
566 //
567 // A 32-bit data value is placed in this field.
568 // ENUMs:
569 // MAXIMUM                  Maximum value of VAL
570 // MINIMUM                  Minimum value of VAL
571 #define FLASH_CMDDATA3_VAL_W                                                32U
572 #define FLASH_CMDDATA3_VAL_M                                        0xFFFFFFFFU
573 #define FLASH_CMDDATA3_VAL_S                                                 0U
574 #define FLASH_CMDDATA3_VAL_MAXIMUM                                  0xFFFFFFFFU
575 #define FLASH_CMDDATA3_VAL_MINIMUM                                  0x00000000U
576 
577 //*****************************************************************************
578 //
579 // Register: FLASH_O_CMDWEPROTA
580 //
581 //*****************************************************************************
582 // Field:  [31:0] VAL
583 //
584 // Each bit protects 1 sector.
585 //
586 // bit [0]:	When 1, sector 0 of the flash memory will be protected from program
587 // 		and erase.
588 // bit [1]:	When 1, sector 1 of the flash memory will be protected from program
589 // 		and erase.
590 // 	:
591 // 	:
592 // bit [31]:	When 1, sector 31 of the flash memory will be protected from
593 // program
594 // 		and erase.
595 // ENUMs:
596 // MAXIMUM                  Maximum value of VAL
597 // MINIMUM                  Minimum value of VAL
598 #define FLASH_CMDWEPROTA_VAL_W                                              32U
599 #define FLASH_CMDWEPROTA_VAL_M                                      0xFFFFFFFFU
600 #define FLASH_CMDWEPROTA_VAL_S                                               0U
601 #define FLASH_CMDWEPROTA_VAL_MAXIMUM                                0xFFFFFFFFU
602 #define FLASH_CMDWEPROTA_VAL_MINIMUM                                0x00000000U
603 
604 //*****************************************************************************
605 //
606 // Register: FLASH_O_CMDWEPROTB
607 //
608 //*****************************************************************************
609 // Field:  [27:0] VAL
610 //
611 // Each bit protects a group of 8 sectors.  When a bit is 1, the associated 8
612 // sectors
613 // in the flash will be protected from program and erase.  A maximum of 256
614 // sectors can be protected with this register.
615 // ENUMs:
616 // MAXIMUM                  Maximum value of VAL
617 // MINIMUM                  Minimum value of VAL
618 #define FLASH_CMDWEPROTB_VAL_W                                              28U
619 #define FLASH_CMDWEPROTB_VAL_M                                      0x0FFFFFFFU
620 #define FLASH_CMDWEPROTB_VAL_S                                               0U
621 #define FLASH_CMDWEPROTB_VAL_MAXIMUM                                0xFFFFFFFFU
622 #define FLASH_CMDWEPROTB_VAL_MINIMUM                                0x00000000U
623 
624 //*****************************************************************************
625 //
626 // Register: FLASH_O_CMDWEPROTNM
627 //
628 //*****************************************************************************
629 // Field:     [0] VAL
630 //
631 // Each bit protects 1 sector.
632 //
633 // bit [0]:	When 1, sector 0 of the non-main region will be protected from
634 // program
635 // 		and erase.
636 // bit [1]:	When 1, sector 1 of the non-main region will be protected from
637 // program
638 // 		and erase.
639 // 	:
640 // 	:
641 // bit [31]:	When 1, sector 31 of the non-main will be protected from program
642 // 		and erase.
643 // ENUMs:
644 // MAXIMUM                  Maximum value of VAL
645 // MINIMUM                  Minimum value of VAL
646 #define FLASH_CMDWEPROTNM_VAL                                       0x00000001U
647 #define FLASH_CMDWEPROTNM_VAL_M                                     0x00000001U
648 #define FLASH_CMDWEPROTNM_VAL_S                                              0U
649 #define FLASH_CMDWEPROTNM_VAL_MAXIMUM                               0xFFFFFFFFU
650 #define FLASH_CMDWEPROTNM_VAL_MINIMUM                               0x00000000U
651 
652 //*****************************************************************************
653 //
654 // Register: FLASH_O_CMDWEPROTTR
655 //
656 //*****************************************************************************
657 // Field:     [0] VAL
658 //
659 // Each bit protects 1 sector.
660 //
661 // bit [0]:	When 1, sector 0 of the engr region will be protected from program
662 // 		and erase.
663 // bit [1]:	When 1, sector 1 of the engr region will be protected from program
664 // 		and erase.
665 // 	:
666 // 	:
667 // bit [31]:	When 1, sector 31 of the engr region will be protected from
668 // program
669 // 		and erase.
670 // ENUMs:
671 // MAXIMUM                  Maximum value of VAL
672 // MINIMUM                  Minimum value of VAL
673 #define FLASH_CMDWEPROTTR_VAL                                       0x00000001U
674 #define FLASH_CMDWEPROTTR_VAL_M                                     0x00000001U
675 #define FLASH_CMDWEPROTTR_VAL_S                                              0U
676 #define FLASH_CMDWEPROTTR_VAL_MAXIMUM                               0xFFFFFFFFU
677 #define FLASH_CMDWEPROTTR_VAL_MINIMUM                               0x00000000U
678 
679 //*****************************************************************************
680 //
681 // Register: FLASH_O_CMDWEPROTEN
682 //
683 //*****************************************************************************
684 // Field:     [0] VAL
685 //
686 // Each bit protects 1 sector.
687 //
688 // bit [0]:	When 1, sector 0 of the engr region will be protected from program
689 // 		and erase.
690 // bit [1]:	When 1, sector 1 of the engr region will be protected from program
691 // 		and erase.
692 // 	:
693 // 	:
694 // bit [31]:	When 1, sector 31 of the engr region will be protected from
695 // program
696 // 		and erase.
697 // ENUMs:
698 // MAXIMUM                  Maximum value of VAL
699 // MINIMUM                  Minimum value of VAL
700 #define FLASH_CMDWEPROTEN_VAL                                       0x00000001U
701 #define FLASH_CMDWEPROTEN_VAL_M                                     0x00000001U
702 #define FLASH_CMDWEPROTEN_VAL_S                                              0U
703 #define FLASH_CMDWEPROTEN_VAL_MAXIMUM                               0xFFFFFFFFU
704 #define FLASH_CMDWEPROTEN_VAL_MINIMUM                               0x00000000U
705 
706 //*****************************************************************************
707 //
708 // Register: FLASH_O_CFGCMD
709 //
710 //*****************************************************************************
711 // Field:   [3:0] WAITSTATE
712 //
713 // Wait State setting for verify reads
714 // ENUMs:
715 // MAXIMUM                  Maximum value
716 // MINIMUM                  Minimum value
717 #define FLASH_CFGCMD_WAITSTATE_W                                             4U
718 #define FLASH_CFGCMD_WAITSTATE_M                                    0x0000000FU
719 #define FLASH_CFGCMD_WAITSTATE_S                                             0U
720 #define FLASH_CFGCMD_WAITSTATE_MAXIMUM                              0x0000000FU
721 #define FLASH_CFGCMD_WAITSTATE_MINIMUM                              0x00000000U
722 
723 //*****************************************************************************
724 //
725 // Register: FLASH_O_CFGPCNT
726 //
727 //*****************************************************************************
728 // Field:  [11:4] MAXPCNTVAL
729 //
730 // Override maximum pulse counter with this value.
731 // If MAXPCNTOVR = 0, then this field is ignored.
732 // If MAXPCNTOVR = 1 and MAXERSPCNTOVR = 0, then this value will be used
733 // to override the max pulse count for both program and erase.  Full max value
734 // will be {4'h0, MAXPCNTVAL} .
735 // If MAXPCNTOVR = 1 and MAXERSPCNTOVR = 1, then this value will be used
736 // to override the max pulse count for program only.  Full max value will be
737 // {4'h0, MAXPCNTVAL}.
738 // ENUMs:
739 // MAXIMUM                  Maximum value
740 // MINIMUM                  Minimum value
741 #define FLASH_CFGPCNT_MAXPCNTVAL_W                                           8U
742 #define FLASH_CFGPCNT_MAXPCNTVAL_M                                  0x00000FF0U
743 #define FLASH_CFGPCNT_MAXPCNTVAL_S                                           4U
744 #define FLASH_CFGPCNT_MAXPCNTVAL_MAXIMUM                            0x00000FF0U
745 #define FLASH_CFGPCNT_MAXPCNTVAL_MINIMUM                            0x00000000U
746 
747 // Field:     [0] MAXPCNTOVR
748 //
749 // Override hard-wired maximum pulse count.  If MAXERSPCNTOVR
750 // is not set, then setting this value alone will override the max pulse count
751 // for
752 // both program and erase.  If MAXERSPCNTOVR is set, then this bit will only
753 // control the max pulse count setting for program.
754 // By default, this bit is 0, and a hard-wired max pulse count is used.
755 // ENUMs:
756 // OVERRIDE                 Use value from MAXPCNTVAL field as maximum puse
757 //                          count
758 // DEFAULT                  Use hard-wired (default) value for maximum pulse
759 //                          count
760 #define FLASH_CFGPCNT_MAXPCNTOVR                                    0x00000001U
761 #define FLASH_CFGPCNT_MAXPCNTOVR_M                                  0x00000001U
762 #define FLASH_CFGPCNT_MAXPCNTOVR_S                                           0U
763 #define FLASH_CFGPCNT_MAXPCNTOVR_OVERRIDE                           0x00000001U
764 #define FLASH_CFGPCNT_MAXPCNTOVR_DEFAULT                            0x00000000U
765 
766 //*****************************************************************************
767 //
768 // Register: FLASH_O_STATCMD
769 //
770 //*****************************************************************************
771 // Field:    [12] FAILMISC
772 //
773 // Command failed due to error other than write/erase protect violation or
774 // verify
775 // error.  This is an extra bit in case a new failure mechanism is added which
776 // requires a status bit.
777 // ENUMs:
778 // STATFAIL                 Fail
779 // STATNOFAIL               No Fail
780 #define FLASH_STATCMD_FAILMISC                                      0x00001000U
781 #define FLASH_STATCMD_FAILMISC_M                                    0x00001000U
782 #define FLASH_STATCMD_FAILMISC_S                                            12U
783 #define FLASH_STATCMD_FAILMISC_STATFAIL                             0x00001000U
784 #define FLASH_STATCMD_FAILMISC_STATNOFAIL                           0x00000000U
785 
786 // Field:     [8] FAILINVDATA
787 //
788 // Program command failed because an attempt was made to program a stored
789 // 0 value to a 1.
790 // ENUMs:
791 // STATFAIL                 Fail
792 // STATNOFAIL               No Fail
793 #define FLASH_STATCMD_FAILINVDATA                                   0x00000100U
794 #define FLASH_STATCMD_FAILINVDATA_M                                 0x00000100U
795 #define FLASH_STATCMD_FAILINVDATA_S                                          8U
796 #define FLASH_STATCMD_FAILINVDATA_STATFAIL                          0x00000100U
797 #define FLASH_STATCMD_FAILINVDATA_STATNOFAIL                        0x00000000U
798 
799 // Field:     [7] FAILMODE
800 //
801 // Command failed because a bank has been set to a mode other than READ.
802 // Program and Erase commands cannot be initiated unless all banks are in READ
803 // mode.
804 // ENUMs:
805 // STATFAIL                 Fail
806 // STATNOFAIL               No Fail
807 #define FLASH_STATCMD_FAILMODE                                      0x00000080U
808 #define FLASH_STATCMD_FAILMODE_M                                    0x00000080U
809 #define FLASH_STATCMD_FAILMODE_S                                             7U
810 #define FLASH_STATCMD_FAILMODE_STATFAIL                             0x00000080U
811 #define FLASH_STATCMD_FAILMODE_STATNOFAIL                           0x00000000U
812 
813 // Field:     [6] FAILILLADDR
814 //
815 // Command failed due to the use of an illegal address
816 // ENUMs:
817 // STATFAIL                 Fail
818 // STATNOFAIL               No Fail
819 #define FLASH_STATCMD_FAILILLADDR                                   0x00000040U
820 #define FLASH_STATCMD_FAILILLADDR_M                                 0x00000040U
821 #define FLASH_STATCMD_FAILILLADDR_S                                          6U
822 #define FLASH_STATCMD_FAILILLADDR_STATFAIL                          0x00000040U
823 #define FLASH_STATCMD_FAILILLADDR_STATNOFAIL                        0x00000000U
824 
825 // Field:     [5] FAILVERIFY
826 //
827 // Command failed due to verify error
828 // ENUMs:
829 // STATFAIL                 Fail
830 // STATNOFAIL               No Fail
831 #define FLASH_STATCMD_FAILVERIFY                                    0x00000020U
832 #define FLASH_STATCMD_FAILVERIFY_M                                  0x00000020U
833 #define FLASH_STATCMD_FAILVERIFY_S                                           5U
834 #define FLASH_STATCMD_FAILVERIFY_STATFAIL                           0x00000020U
835 #define FLASH_STATCMD_FAILVERIFY_STATNOFAIL                         0x00000000U
836 
837 // Field:     [4] FAILWEPROT
838 //
839 // Command failed due to Write/Erase Protect Sector Violation
840 // ENUMs:
841 // STATFAIL                 Fail
842 // STATNOFAIL               No Fail
843 #define FLASH_STATCMD_FAILWEPROT                                    0x00000010U
844 #define FLASH_STATCMD_FAILWEPROT_M                                  0x00000010U
845 #define FLASH_STATCMD_FAILWEPROT_S                                           4U
846 #define FLASH_STATCMD_FAILWEPROT_STATFAIL                           0x00000010U
847 #define FLASH_STATCMD_FAILWEPROT_STATNOFAIL                         0x00000000U
848 
849 // Field:     [2] CMDINPROGRESS
850 //
851 // Command In Progress
852 // ENUMs:
853 // STATINPROGRESS           In Progress
854 // STATCOMPLETE             Complete
855 #define FLASH_STATCMD_CMDINPROGRESS                                 0x00000004U
856 #define FLASH_STATCMD_CMDINPROGRESS_M                               0x00000004U
857 #define FLASH_STATCMD_CMDINPROGRESS_S                                        2U
858 #define FLASH_STATCMD_CMDINPROGRESS_STATINPROGRESS                  0x00000004U
859 #define FLASH_STATCMD_CMDINPROGRESS_STATCOMPLETE                    0x00000000U
860 
861 // Field:     [1] CMDPASS
862 //
863 // Command Pass - valid when CMD_DONE field is 1
864 // ENUMs:
865 // STATPASS                 Pass
866 // STATFAIL                 Fail
867 #define FLASH_STATCMD_CMDPASS                                       0x00000002U
868 #define FLASH_STATCMD_CMDPASS_M                                     0x00000002U
869 #define FLASH_STATCMD_CMDPASS_S                                              1U
870 #define FLASH_STATCMD_CMDPASS_STATPASS                              0x00000002U
871 #define FLASH_STATCMD_CMDPASS_STATFAIL                              0x00000000U
872 
873 // Field:     [0] CMDDONE
874 //
875 // Command Done
876 // ENUMs:
877 // STATDONE                 Done
878 // STATNOTDONE              Not Done
879 #define FLASH_STATCMD_CMDDONE                                       0x00000001U
880 #define FLASH_STATCMD_CMDDONE_M                                     0x00000001U
881 #define FLASH_STATCMD_CMDDONE_S                                              0U
882 #define FLASH_STATCMD_CMDDONE_STATDONE                              0x00000001U
883 #define FLASH_STATCMD_CMDDONE_STATNOTDONE                           0x00000000U
884 
885 //*****************************************************************************
886 //
887 // Register: FLASH_O_STATADDR
888 //
889 //*****************************************************************************
890 // Field: [25:21] BANKID
891 //
892 // Current Bank ID
893 // A bank indicator is stored in this register which represents the current
894 // bank on
895 // which the state  machine is operating.  There is 1 bit per bank.
896 // ENUMs:
897 // BANK4                    Bank 4
898 // BANK3                    Bank 3
899 // BANK2                    Bank 2
900 // BANK1                    Bank 1
901 // BANK0                    Bank 0
902 #define FLASH_STATADDR_BANKID_W                                              5U
903 #define FLASH_STATADDR_BANKID_M                                     0x03E00000U
904 #define FLASH_STATADDR_BANKID_S                                             21U
905 #define FLASH_STATADDR_BANKID_BANK4                                 0x02000000U
906 #define FLASH_STATADDR_BANKID_BANK3                                 0x01000000U
907 #define FLASH_STATADDR_BANKID_BANK2                                 0x00800000U
908 #define FLASH_STATADDR_BANKID_BANK1                                 0x00400000U
909 #define FLASH_STATADDR_BANKID_BANK0                                 0x00200000U
910 
911 // Field: [20:16] REGIONID
912 //
913 // Current Region ID
914 // A region indicator is stored in this register which represents the current
915 // flash
916 // region on which the state  machine is operating.
917 // ENUMs:
918 // ENGR                     Engr Region
919 // TRIM                     Trim Region
920 // NONMAIN                  Non-Main Region
921 // MAIN                     Main Region
922 #define FLASH_STATADDR_REGIONID_W                                            5U
923 #define FLASH_STATADDR_REGIONID_M                                   0x001F0000U
924 #define FLASH_STATADDR_REGIONID_S                                           16U
925 #define FLASH_STATADDR_REGIONID_ENGR                                0x00080000U
926 #define FLASH_STATADDR_REGIONID_TRIM                                0x00040000U
927 #define FLASH_STATADDR_REGIONID_NONMAIN                             0x00020000U
928 #define FLASH_STATADDR_REGIONID_MAIN                                0x00010000U
929 
930 // Field:  [15:0] BANKADDR
931 //
932 // Current Bank Address
933 // A bank offset address is stored in this register.
934 // ENUMs:
935 // MAXIMUM                  Maximum value
936 // MINIMUM                  Minimum value
937 #define FLASH_STATADDR_BANKADDR_W                                           16U
938 #define FLASH_STATADDR_BANKADDR_M                                   0x0000FFFFU
939 #define FLASH_STATADDR_BANKADDR_S                                            0U
940 #define FLASH_STATADDR_BANKADDR_MAXIMUM                             0x0000FFFFU
941 #define FLASH_STATADDR_BANKADDR_MINIMUM                             0x00000000U
942 
943 //*****************************************************************************
944 //
945 // Register: FLASH_O_STATPCNT
946 //
947 //*****************************************************************************
948 // Field:  [11:0] PULSECNT
949 //
950 // Current Pulse Counter Value
951 // ENUMs:
952 // MAXIMUM                  Maximum value
953 // MINIMUM                  Minimum value
954 #define FLASH_STATPCNT_PULSECNT_W                                           12U
955 #define FLASH_STATPCNT_PULSECNT_M                                   0x00000FFFU
956 #define FLASH_STATPCNT_PULSECNT_S                                            0U
957 #define FLASH_STATPCNT_PULSECNT_MAXIMUM                             0x00000FFFU
958 #define FLASH_STATPCNT_PULSECNT_MINIMUM                             0x00000000U
959 
960 //*****************************************************************************
961 //
962 // Register: FLASH_O_STATMODE
963 //
964 //*****************************************************************************
965 // Field:    [17] BANK1TRDY
966 //
967 // Bank 1T Ready.
968 // Bank(s) are ready for 1T access.  This is accomplished when the bank and
969 // pump
970 // have been trimmed.
971 // ENUMs:
972 // TRUE                     Ready
973 // FALSE                    Not ready
974 #define FLASH_STATMODE_BANK1TRDY                                    0x00020000U
975 #define FLASH_STATMODE_BANK1TRDY_M                                  0x00020000U
976 #define FLASH_STATMODE_BANK1TRDY_S                                          17U
977 #define FLASH_STATMODE_BANK1TRDY_TRUE                               0x00020000U
978 #define FLASH_STATMODE_BANK1TRDY_FALSE                              0x00000000U
979 
980 // Field:    [16] BANK2TRDY
981 //
982 // Bank 2T Ready.
983 // Bank(s) are ready for 2T access.  This is accomplished when the pump has
984 // fully driven power rails to the bank(s).
985 // ENUMs:
986 // TRUE                     Ready
987 // FALSE                    Not ready
988 #define FLASH_STATMODE_BANK2TRDY                                    0x00010000U
989 #define FLASH_STATMODE_BANK2TRDY_M                                  0x00010000U
990 #define FLASH_STATMODE_BANK2TRDY_S                                          16U
991 #define FLASH_STATMODE_BANK2TRDY_TRUE                               0x00010000U
992 #define FLASH_STATMODE_BANK2TRDY_FALSE                              0x00000000U
993 
994 // Field:  [11:8] BANKMODE
995 //
996 // Indicates mode of bank(s) that are not in READ mode
997 // ENUMs:
998 // ERASEBNK                 Erase Bank
999 // PGMMW                    Program Multiple Word
1000 // ERASESECT                Erase Sector
1001 // ERASEVER                 Erase Verify Mode
1002 // PGMSW                    Program Single Word
1003 // PGMVER                   Program Verify Mode
1004 // RDMARG1B                 Read Margin 1B Mode
1005 // RDMARG0B                 Read Margin 0B Mode
1006 // RDMARG1                  Read Margin 1 Mode
1007 // RDMARG0                  Read Margin 0 Mode
1008 // READ                     Read Mode
1009 #define FLASH_STATMODE_BANKMODE_W                                            4U
1010 #define FLASH_STATMODE_BANKMODE_M                                   0x00000F00U
1011 #define FLASH_STATMODE_BANKMODE_S                                            8U
1012 #define FLASH_STATMODE_BANKMODE_ERASEBNK                            0x00000F00U
1013 #define FLASH_STATMODE_BANKMODE_PGMMW                               0x00000E00U
1014 #define FLASH_STATMODE_BANKMODE_ERASESECT                           0x00000C00U
1015 #define FLASH_STATMODE_BANKMODE_ERASEVER                            0x00000B00U
1016 #define FLASH_STATMODE_BANKMODE_PGMSW                               0x00000A00U
1017 #define FLASH_STATMODE_BANKMODE_PGMVER                              0x00000900U
1018 #define FLASH_STATMODE_BANKMODE_RDMARG1B                            0x00000700U
1019 #define FLASH_STATMODE_BANKMODE_RDMARG0B                            0x00000600U
1020 #define FLASH_STATMODE_BANKMODE_RDMARG1                             0x00000400U
1021 #define FLASH_STATMODE_BANKMODE_RDMARG0                             0x00000200U
1022 #define FLASH_STATMODE_BANKMODE_READ                                0x00000000U
1023 
1024 // Field:     [0] BANKNOTINRD
1025 //
1026 // Bank not in read mode.
1027 // Indicates which banks are not in READ mode.  There is 1 bit per bank.
1028 // ENUMs:
1029 // BANK4                    Bank 4
1030 // BANK3                    Bank 3
1031 // BANK2                    Bank 2
1032 // BANK1                    Bank 1
1033 // BANK0                    Bank 0
1034 #define FLASH_STATMODE_BANKNOTINRD                                  0x00000001U
1035 #define FLASH_STATMODE_BANKNOTINRD_M                                0x00000001U
1036 #define FLASH_STATMODE_BANKNOTINRD_S                                         0U
1037 #define FLASH_STATMODE_BANKNOTINRD_BANK4                            0x00000010U
1038 #define FLASH_STATMODE_BANKNOTINRD_BANK3                            0x00000008U
1039 #define FLASH_STATMODE_BANKNOTINRD_BANK2                            0x00000004U
1040 #define FLASH_STATMODE_BANKNOTINRD_BANK1                            0x00000002U
1041 #define FLASH_STATMODE_BANKNOTINRD_BANK0                            0x00000001U
1042 
1043 //*****************************************************************************
1044 //
1045 // Register: FLASH_O_GBLINFO0
1046 //
1047 //*****************************************************************************
1048 // Field: [18:16] NUMBANKS
1049 //
1050 // Number of banks instantiated
1051 // Minimum:	1
1052 // Maximum:	5
1053 // ENUMs:
1054 // MAXIMUM                  Maximum value
1055 // MINIMUM                  Minimum value
1056 #define FLASH_GBLINFO0_NUMBANKS_W                                            3U
1057 #define FLASH_GBLINFO0_NUMBANKS_M                                   0x00070000U
1058 #define FLASH_GBLINFO0_NUMBANKS_S                                           16U
1059 #define FLASH_GBLINFO0_NUMBANKS_MAXIMUM                             0x00050000U
1060 #define FLASH_GBLINFO0_NUMBANKS_MINIMUM                             0x00010000U
1061 
1062 // Field:  [15:0] SECTORSIZE
1063 //
1064 // Sector size in bytes
1065 // ENUMs:
1066 // TWOKB                    Sector size is TWOKB
1067 // ONEKB                    Sector size is ONEKB
1068 #define FLASH_GBLINFO0_SECTORSIZE_W                                         16U
1069 #define FLASH_GBLINFO0_SECTORSIZE_M                                 0x0000FFFFU
1070 #define FLASH_GBLINFO0_SECTORSIZE_S                                          0U
1071 #define FLASH_GBLINFO0_SECTORSIZE_TWOKB                             0x00000800U
1072 #define FLASH_GBLINFO0_SECTORSIZE_ONEKB                             0x00000400U
1073 
1074 //*****************************************************************************
1075 //
1076 // Register: FLASH_O_GBLINFO1
1077 //
1078 //*****************************************************************************
1079 // Field: [18:16] REDWIDTH
1080 //
1081 // Redundant data width in bits
1082 // ENUMs:
1083 // W4BIT                    Redundant data width is 4 bits
1084 // W2BIT                    Redundant data width is 2 bits
1085 // W0BIT                    Redundant data width is 0.  Redundancy/Repair not
1086 //                          present.
1087 #define FLASH_GBLINFO1_REDWIDTH_W                                            3U
1088 #define FLASH_GBLINFO1_REDWIDTH_M                                   0x00070000U
1089 #define FLASH_GBLINFO1_REDWIDTH_S                                           16U
1090 #define FLASH_GBLINFO1_REDWIDTH_W4BIT                               0x00040000U
1091 #define FLASH_GBLINFO1_REDWIDTH_W2BIT                               0x00020000U
1092 #define FLASH_GBLINFO1_REDWIDTH_W0BIT                               0x00000000U
1093 
1094 // Field:  [12:8] ECCWIDTH
1095 //
1096 // ECC data width in bits
1097 // ENUMs:
1098 // W16BIT                   ECC data width is 16 bits
1099 // W8BIT                    ECC data width is 8 bits
1100 // W0BIT                    ECC data width is 0.  ECC not used.
1101 #define FLASH_GBLINFO1_ECCWIDTH_W                                            5U
1102 #define FLASH_GBLINFO1_ECCWIDTH_M                                   0x00001F00U
1103 #define FLASH_GBLINFO1_ECCWIDTH_S                                            8U
1104 #define FLASH_GBLINFO1_ECCWIDTH_W16BIT                              0x00001000U
1105 #define FLASH_GBLINFO1_ECCWIDTH_W8BIT                               0x00000800U
1106 #define FLASH_GBLINFO1_ECCWIDTH_W0BIT                               0x00000000U
1107 
1108 // Field:   [7:0] DATAWIDTH
1109 //
1110 // Data width in bits
1111 // ENUMs:
1112 // W128BIT                  Data width is 128 bits
1113 // W64BIT                   Data width is 64 bits
1114 #define FLASH_GBLINFO1_DATAWIDTH_W                                           8U
1115 #define FLASH_GBLINFO1_DATAWIDTH_M                                  0x000000FFU
1116 #define FLASH_GBLINFO1_DATAWIDTH_S                                           0U
1117 #define FLASH_GBLINFO1_DATAWIDTH_W128BIT                            0x00000080U
1118 #define FLASH_GBLINFO1_DATAWIDTH_W64BIT                             0x00000040U
1119 
1120 //*****************************************************************************
1121 //
1122 // Register: FLASH_O_GBLINFO2
1123 //
1124 //*****************************************************************************
1125 // Field:   [3:0] DATAREGISTERS
1126 //
1127 // Number of data registers present.
1128 // ENUMs:
1129 // MAXIMUM                  Maximum value of DATAREGISTERS
1130 // MINIMUM                  Minimum value of DATAREGISTERS
1131 #define FLASH_GBLINFO2_DATAREGISTERS_W                                       4U
1132 #define FLASH_GBLINFO2_DATAREGISTERS_M                              0x0000000FU
1133 #define FLASH_GBLINFO2_DATAREGISTERS_S                                       0U
1134 #define FLASH_GBLINFO2_DATAREGISTERS_MAXIMUM                        0x00000008U
1135 #define FLASH_GBLINFO2_DATAREGISTERS_MINIMUM                        0x00000001U
1136 
1137 //*****************************************************************************
1138 //
1139 // Register: FLASH_O_BANK0INFO0
1140 //
1141 //*****************************************************************************
1142 // Field:  [11:0] MAINSIZE
1143 //
1144 // Main region size in sectors
1145 // Minimum:	0x8 (8)
1146 // Maximum:	0x200 (512)
1147 // ENUMs:
1148 // MAXSECTORS               Maximum value of MAINSIZE
1149 // MINSECTORS               Minimum value of MAINSIZE
1150 #define FLASH_BANK0INFO0_MAINSIZE_W                                         12U
1151 #define FLASH_BANK0INFO0_MAINSIZE_M                                 0x00000FFFU
1152 #define FLASH_BANK0INFO0_MAINSIZE_S                                          0U
1153 #define FLASH_BANK0INFO0_MAINSIZE_MAXSECTORS                        0x00000200U
1154 #define FLASH_BANK0INFO0_MAINSIZE_MINSECTORS                        0x00000008U
1155 
1156 //*****************************************************************************
1157 //
1158 // Register: FLASH_O_BANK0INFO1
1159 //
1160 //*****************************************************************************
1161 // Field: [23:16] ENGRSIZE
1162 //
1163 // Engr region size in sectors
1164 // Minimum:	0x0 (0)
1165 // Maximum:	0x10 (16)
1166 // ENUMs:
1167 // MAXSECTORS               Maximum value of ENGRSIZE
1168 // MINSECTORS               Minimum value of ENGRSIZE
1169 #define FLASH_BANK0INFO1_ENGRSIZE_W                                          8U
1170 #define FLASH_BANK0INFO1_ENGRSIZE_M                                 0x00FF0000U
1171 #define FLASH_BANK0INFO1_ENGRSIZE_S                                         16U
1172 #define FLASH_BANK0INFO1_ENGRSIZE_MAXSECTORS                        0x00200000U
1173 #define FLASH_BANK0INFO1_ENGRSIZE_MINSECTORS                        0x00000000U
1174 
1175 // Field:  [15:8] TRIMSIZE
1176 //
1177 // Trim region size in sectors
1178 // Minimum:	0x0 (0)
1179 // Maximum:	0x10 (16)
1180 // ENUMs:
1181 // MAXSECTORS               Maximum value of TRIMSIZE
1182 // MINSECTORS               Minimum value of TRIMSIZE
1183 #define FLASH_BANK0INFO1_TRIMSIZE_W                                          8U
1184 #define FLASH_BANK0INFO1_TRIMSIZE_M                                 0x0000FF00U
1185 #define FLASH_BANK0INFO1_TRIMSIZE_S                                          8U
1186 #define FLASH_BANK0INFO1_TRIMSIZE_MAXSECTORS                        0x00002000U
1187 #define FLASH_BANK0INFO1_TRIMSIZE_MINSECTORS                        0x00000000U
1188 
1189 // Field:   [7:0] NONMAINSIZE
1190 //
1191 // Non-main region size in sectors
1192 // Minimum:	0x0 (0)
1193 // Maximum:	0x10 (16)
1194 // ENUMs:
1195 // MAXSECTORS               Maximum value of NONMAINSIZE
1196 // MINSECTORS               Minimum value of NONMAINSIZE
1197 #define FLASH_BANK0INFO1_NONMAINSIZE_W                                       8U
1198 #define FLASH_BANK0INFO1_NONMAINSIZE_M                              0x000000FFU
1199 #define FLASH_BANK0INFO1_NONMAINSIZE_S                                       0U
1200 #define FLASH_BANK0INFO1_NONMAINSIZE_MAXSECTORS                     0x00000020U
1201 #define FLASH_BANK0INFO1_NONMAINSIZE_MINSECTORS                     0x00000000U
1202 
1203 
1204 #endif // __FLASH__
1205