nvmctrl.h 91 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051
  1. /**
  2. * \file
  3. *
  4. * \brief Component description for NVMCTRL
  5. *
  6. * Copyright (c) 2018 Microchip Technology Inc.
  7. *
  8. * \license_start
  9. *
  10. * \page License
  11. *
  12. * SPDX-License-Identifier: Apache-2.0
  13. *
  14. * Licensed under the Apache License, Version 2.0 (the "License");
  15. * you may not use this file except in compliance with the License.
  16. * You may obtain a copy of the License at
  17. *
  18. * http://www.apache.org/licenses/LICENSE-2.0
  19. *
  20. * Unless required by applicable law or agreed to in writing, software
  21. * distributed under the License is distributed on an "AS IS" BASIS,
  22. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  23. * See the License for the specific language governing permissions and
  24. * limitations under the License.
  25. *
  26. * \license_stop
  27. *
  28. */
  29. /* file generated from device description version 2018-05-30T11:07:17Z */
  30. #ifndef _SAML11_NVMCTRL_COMPONENT_H_
  31. #define _SAML11_NVMCTRL_COMPONENT_H_
  32. #define _SAML11_NVMCTRL_COMPONENT_ /**< \deprecated Backward compatibility for ASF */
  33. /** \addtogroup SAML_SAML11 Non-Volatile Memory Controller
  34. * @{
  35. */
  36. /* ========================================================================== */
  37. /** SOFTWARE API DEFINITION FOR NVMCTRL */
  38. /* ========================================================================== */
  39. #define NVMCTRL_U2802 /**< (NVMCTRL) Module ID */
  40. #define REV_NVMCTRL 0x100 /**< (NVMCTRL) Module revision */
  41. /* -------- NVMCTRL_CTRLA : (NVMCTRL Offset: 0x00) (/W 16) Control A -------- */
  42. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  43. typedef union {
  44. struct {
  45. uint16_t CMD:7; /**< bit: 0..6 Command */
  46. uint16_t :1; /**< bit: 7 Reserved */
  47. uint16_t CMDEX:8; /**< bit: 8..15 Command Execution */
  48. } bit; /**< Structure used for bit access */
  49. uint16_t reg; /**< Type used for register access */
  50. } NVMCTRL_CTRLA_Type;
  51. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  52. #define NVMCTRL_CTRLA_OFFSET (0x00) /**< (NVMCTRL_CTRLA) Control A Offset */
  53. #define NVMCTRL_CTRLA_RESETVALUE _U_(0x00) /**< (NVMCTRL_CTRLA) Control A Reset Value */
  54. #define NVMCTRL_CTRLA_CMD_Pos 0 /**< (NVMCTRL_CTRLA) Command Position */
  55. #define NVMCTRL_CTRLA_CMD_Msk (_U_(0x7F) << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Command Mask */
  56. #define NVMCTRL_CTRLA_CMD(value) (NVMCTRL_CTRLA_CMD_Msk & ((value) << NVMCTRL_CTRLA_CMD_Pos))
  57. #define NVMCTRL_CTRLA_CMD_ER_Val _U_(0x2) /**< (NVMCTRL_CTRLA) Erase Row - Erases the row addressed by the ADDR register. */
  58. #define NVMCTRL_CTRLA_CMD_WP_Val _U_(0x4) /**< (NVMCTRL_CTRLA) Write Page - Writes the contents of the page buffer to the page addressed by the ADDR register. */
  59. #define NVMCTRL_CTRLA_CMD_SPRM_Val _U_(0x42) /**< (NVMCTRL_CTRLA) Sets the power reduction mode. */
  60. #define NVMCTRL_CTRLA_CMD_CPRM_Val _U_(0x43) /**< (NVMCTRL_CTRLA) Clears the power reduction mode. */
  61. #define NVMCTRL_CTRLA_CMD_PBC_Val _U_(0x44) /**< (NVMCTRL_CTRLA) Page Buffer Clear - Clears the page buffer. */
  62. #define NVMCTRL_CTRLA_CMD_INVALL_Val _U_(0x46) /**< (NVMCTRL_CTRLA) Invalidate all cache lines. */
  63. #define NVMCTRL_CTRLA_CMD_SDAL0_Val _U_(0x4B) /**< (NVMCTRL_CTRLA) Set DAL=0 */
  64. #define NVMCTRL_CTRLA_CMD_SDAL1_Val _U_(0x4C) /**< (NVMCTRL_CTRLA) Set DAL=1 */
  65. #define NVMCTRL_CTRLA_CMD_ER (NVMCTRL_CTRLA_CMD_ER_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Erase Row - Erases the row addressed by the ADDR register. Position */
  66. #define NVMCTRL_CTRLA_CMD_WP (NVMCTRL_CTRLA_CMD_WP_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Write Page - Writes the contents of the page buffer to the page addressed by the ADDR register. Position */
  67. #define NVMCTRL_CTRLA_CMD_SPRM (NVMCTRL_CTRLA_CMD_SPRM_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Sets the power reduction mode. Position */
  68. #define NVMCTRL_CTRLA_CMD_CPRM (NVMCTRL_CTRLA_CMD_CPRM_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Clears the power reduction mode. Position */
  69. #define NVMCTRL_CTRLA_CMD_PBC (NVMCTRL_CTRLA_CMD_PBC_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Page Buffer Clear - Clears the page buffer. Position */
  70. #define NVMCTRL_CTRLA_CMD_INVALL (NVMCTRL_CTRLA_CMD_INVALL_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Invalidate all cache lines. Position */
  71. #define NVMCTRL_CTRLA_CMD_SDAL0 (NVMCTRL_CTRLA_CMD_SDAL0_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Set DAL=0 Position */
  72. #define NVMCTRL_CTRLA_CMD_SDAL1 (NVMCTRL_CTRLA_CMD_SDAL1_Val << NVMCTRL_CTRLA_CMD_Pos) /**< (NVMCTRL_CTRLA) Set DAL=1 Position */
  73. #define NVMCTRL_CTRLA_CMDEX_Pos 8 /**< (NVMCTRL_CTRLA) Command Execution Position */
  74. #define NVMCTRL_CTRLA_CMDEX_Msk (_U_(0xFF) << NVMCTRL_CTRLA_CMDEX_Pos) /**< (NVMCTRL_CTRLA) Command Execution Mask */
  75. #define NVMCTRL_CTRLA_CMDEX(value) (NVMCTRL_CTRLA_CMDEX_Msk & ((value) << NVMCTRL_CTRLA_CMDEX_Pos))
  76. #define NVMCTRL_CTRLA_CMDEX_KEY_Val _U_(0xA5) /**< (NVMCTRL_CTRLA) Execution Key */
  77. #define NVMCTRL_CTRLA_CMDEX_KEY (NVMCTRL_CTRLA_CMDEX_KEY_Val << NVMCTRL_CTRLA_CMDEX_Pos) /**< (NVMCTRL_CTRLA) Execution Key Position */
  78. #define NVMCTRL_CTRLA_MASK _U_(0xFF7F) /**< \deprecated (NVMCTRL_CTRLA) Register MASK (Use NVMCTRL_CTRLA_Msk instead) */
  79. #define NVMCTRL_CTRLA_Msk _U_(0xFF7F) /**< (NVMCTRL_CTRLA) Register Mask */
  80. /* -------- NVMCTRL_CTRLB : (NVMCTRL Offset: 0x04) (R/W 32) Control B -------- */
  81. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  82. typedef union {
  83. struct {
  84. uint32_t :1; /**< bit: 0 Reserved */
  85. uint32_t RWS:4; /**< bit: 1..4 NVM Read Wait States */
  86. uint32_t :3; /**< bit: 5..7 Reserved */
  87. uint32_t SLEEPPRM:2; /**< bit: 8..9 Power Reduction Mode during Sleep */
  88. uint32_t :1; /**< bit: 10 Reserved */
  89. uint32_t FWUP:1; /**< bit: 11 fast wake-up */
  90. uint32_t :4; /**< bit: 12..15 Reserved */
  91. uint32_t READMODE:2; /**< bit: 16..17 NVMCTRL Read Mode */
  92. uint32_t CACHEDIS:1; /**< bit: 18 Cache Disable */
  93. uint32_t QWEN:1; /**< bit: 19 Quick Write Enable */
  94. uint32_t :12; /**< bit: 20..31 Reserved */
  95. } bit; /**< Structure used for bit access */
  96. uint32_t reg; /**< Type used for register access */
  97. } NVMCTRL_CTRLB_Type;
  98. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  99. #define NVMCTRL_CTRLB_OFFSET (0x04) /**< (NVMCTRL_CTRLB) Control B Offset */
  100. #define NVMCTRL_CTRLB_RESETVALUE _U_(0x00) /**< (NVMCTRL_CTRLB) Control B Reset Value */
  101. #define NVMCTRL_CTRLB_RWS_Pos 1 /**< (NVMCTRL_CTRLB) NVM Read Wait States Position */
  102. #define NVMCTRL_CTRLB_RWS_Msk (_U_(0xF) << NVMCTRL_CTRLB_RWS_Pos) /**< (NVMCTRL_CTRLB) NVM Read Wait States Mask */
  103. #define NVMCTRL_CTRLB_RWS(value) (NVMCTRL_CTRLB_RWS_Msk & ((value) << NVMCTRL_CTRLB_RWS_Pos))
  104. #define NVMCTRL_CTRLB_SLEEPPRM_Pos 8 /**< (NVMCTRL_CTRLB) Power Reduction Mode during Sleep Position */
  105. #define NVMCTRL_CTRLB_SLEEPPRM_Msk (_U_(0x3) << NVMCTRL_CTRLB_SLEEPPRM_Pos) /**< (NVMCTRL_CTRLB) Power Reduction Mode during Sleep Mask */
  106. #define NVMCTRL_CTRLB_SLEEPPRM(value) (NVMCTRL_CTRLB_SLEEPPRM_Msk & ((value) << NVMCTRL_CTRLB_SLEEPPRM_Pos))
  107. #define NVMCTRL_CTRLB_SLEEPPRM_WAKEONACCESS_Val _U_(0x0) /**< (NVMCTRL_CTRLB) NVM block enters low-power mode when entering sleep.NVM block exits low-power mode upon first access. */
  108. #define NVMCTRL_CTRLB_SLEEPPRM_WAKEUPINSTANT_Val _U_(0x1) /**< (NVMCTRL_CTRLB) NVM block enters low-power mode when entering sleep.NVM block exits low-power mode when exiting sleep. */
  109. #define NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val _U_(0x3) /**< (NVMCTRL_CTRLB) Auto power reduction disabled. */
  110. #define NVMCTRL_CTRLB_SLEEPPRM_WAKEONACCESS (NVMCTRL_CTRLB_SLEEPPRM_WAKEONACCESS_Val << NVMCTRL_CTRLB_SLEEPPRM_Pos) /**< (NVMCTRL_CTRLB) NVM block enters low-power mode when entering sleep.NVM block exits low-power mode upon first access. Position */
  111. #define NVMCTRL_CTRLB_SLEEPPRM_WAKEUPINSTANT (NVMCTRL_CTRLB_SLEEPPRM_WAKEUPINSTANT_Val << NVMCTRL_CTRLB_SLEEPPRM_Pos) /**< (NVMCTRL_CTRLB) NVM block enters low-power mode when entering sleep.NVM block exits low-power mode when exiting sleep. Position */
  112. #define NVMCTRL_CTRLB_SLEEPPRM_DISABLED (NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val << NVMCTRL_CTRLB_SLEEPPRM_Pos) /**< (NVMCTRL_CTRLB) Auto power reduction disabled. Position */
  113. #define NVMCTRL_CTRLB_FWUP_Pos 11 /**< (NVMCTRL_CTRLB) fast wake-up Position */
  114. #define NVMCTRL_CTRLB_FWUP_Msk (_U_(0x1) << NVMCTRL_CTRLB_FWUP_Pos) /**< (NVMCTRL_CTRLB) fast wake-up Mask */
  115. #define NVMCTRL_CTRLB_FWUP NVMCTRL_CTRLB_FWUP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_CTRLB_FWUP_Msk instead */
  116. #define NVMCTRL_CTRLB_READMODE_Pos 16 /**< (NVMCTRL_CTRLB) NVMCTRL Read Mode Position */
  117. #define NVMCTRL_CTRLB_READMODE_Msk (_U_(0x3) << NVMCTRL_CTRLB_READMODE_Pos) /**< (NVMCTRL_CTRLB) NVMCTRL Read Mode Mask */
  118. #define NVMCTRL_CTRLB_READMODE(value) (NVMCTRL_CTRLB_READMODE_Msk & ((value) << NVMCTRL_CTRLB_READMODE_Pos))
  119. #define NVMCTRL_CTRLB_READMODE_NO_MISS_PENALTY_Val _U_(0x0) /**< (NVMCTRL_CTRLB) The NVM Controller (cache system) does not insert wait states on a cache miss. Gives the best system performance. */
  120. #define NVMCTRL_CTRLB_READMODE_LOW_POWER_Val _U_(0x1) /**< (NVMCTRL_CTRLB) Reduces power consumption of the cache system, but inserts a wait state each time there is a cache miss. This mode may not be relevant if CPU performance is required, as the application will be stalled and may lead to increase run time. */
  121. #define NVMCTRL_CTRLB_READMODE_DETERMINISTIC_Val _U_(0x2) /**< (NVMCTRL_CTRLB) The cache system ensures that a cache hit or miss takes the same amount of time, determined by the number of programmed flash wait states. This mode can be used for real-time applications that require deterministic execution timings. */
  122. #define NVMCTRL_CTRLB_READMODE_NO_MISS_PENALTY (NVMCTRL_CTRLB_READMODE_NO_MISS_PENALTY_Val << NVMCTRL_CTRLB_READMODE_Pos) /**< (NVMCTRL_CTRLB) The NVM Controller (cache system) does not insert wait states on a cache miss. Gives the best system performance. Position */
  123. #define NVMCTRL_CTRLB_READMODE_LOW_POWER (NVMCTRL_CTRLB_READMODE_LOW_POWER_Val << NVMCTRL_CTRLB_READMODE_Pos) /**< (NVMCTRL_CTRLB) Reduces power consumption of the cache system, but inserts a wait state each time there is a cache miss. This mode may not be relevant if CPU performance is required, as the application will be stalled and may lead to increase run time. Position */
  124. #define NVMCTRL_CTRLB_READMODE_DETERMINISTIC (NVMCTRL_CTRLB_READMODE_DETERMINISTIC_Val << NVMCTRL_CTRLB_READMODE_Pos) /**< (NVMCTRL_CTRLB) The cache system ensures that a cache hit or miss takes the same amount of time, determined by the number of programmed flash wait states. This mode can be used for real-time applications that require deterministic execution timings. Position */
  125. #define NVMCTRL_CTRLB_CACHEDIS_Pos 18 /**< (NVMCTRL_CTRLB) Cache Disable Position */
  126. #define NVMCTRL_CTRLB_CACHEDIS_Msk (_U_(0x1) << NVMCTRL_CTRLB_CACHEDIS_Pos) /**< (NVMCTRL_CTRLB) Cache Disable Mask */
  127. #define NVMCTRL_CTRLB_CACHEDIS NVMCTRL_CTRLB_CACHEDIS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_CTRLB_CACHEDIS_Msk instead */
  128. #define NVMCTRL_CTRLB_QWEN_Pos 19 /**< (NVMCTRL_CTRLB) Quick Write Enable Position */
  129. #define NVMCTRL_CTRLB_QWEN_Msk (_U_(0x1) << NVMCTRL_CTRLB_QWEN_Pos) /**< (NVMCTRL_CTRLB) Quick Write Enable Mask */
  130. #define NVMCTRL_CTRLB_QWEN NVMCTRL_CTRLB_QWEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_CTRLB_QWEN_Msk instead */
  131. #define NVMCTRL_CTRLB_MASK _U_(0xF0B1E) /**< \deprecated (NVMCTRL_CTRLB) Register MASK (Use NVMCTRL_CTRLB_Msk instead) */
  132. #define NVMCTRL_CTRLB_Msk _U_(0xF0B1E) /**< (NVMCTRL_CTRLB) Register Mask */
  133. /* -------- NVMCTRL_CTRLC : (NVMCTRL Offset: 0x08) (R/W 8) Control C -------- */
  134. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  135. typedef union {
  136. struct {
  137. uint8_t MANW:1; /**< bit: 0 Manual Write */
  138. uint8_t :7; /**< bit: 1..7 Reserved */
  139. } bit; /**< Structure used for bit access */
  140. uint8_t reg; /**< Type used for register access */
  141. } NVMCTRL_CTRLC_Type;
  142. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  143. #define NVMCTRL_CTRLC_OFFSET (0x08) /**< (NVMCTRL_CTRLC) Control C Offset */
  144. #define NVMCTRL_CTRLC_RESETVALUE _U_(0x01) /**< (NVMCTRL_CTRLC) Control C Reset Value */
  145. #define NVMCTRL_CTRLC_MANW_Pos 0 /**< (NVMCTRL_CTRLC) Manual Write Position */
  146. #define NVMCTRL_CTRLC_MANW_Msk (_U_(0x1) << NVMCTRL_CTRLC_MANW_Pos) /**< (NVMCTRL_CTRLC) Manual Write Mask */
  147. #define NVMCTRL_CTRLC_MANW NVMCTRL_CTRLC_MANW_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_CTRLC_MANW_Msk instead */
  148. #define NVMCTRL_CTRLC_MASK _U_(0x01) /**< \deprecated (NVMCTRL_CTRLC) Register MASK (Use NVMCTRL_CTRLC_Msk instead) */
  149. #define NVMCTRL_CTRLC_Msk _U_(0x01) /**< (NVMCTRL_CTRLC) Register Mask */
  150. /* -------- NVMCTRL_EVCTRL : (NVMCTRL Offset: 0x0a) (R/W 8) Event Control -------- */
  151. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  152. typedef union {
  153. struct {
  154. uint8_t AUTOWEI:1; /**< bit: 0 Auto Write Event Enable */
  155. uint8_t AUTOWINV:1; /**< bit: 1 Auto Write Event Polarity Inverted */
  156. uint8_t :6; /**< bit: 2..7 Reserved */
  157. } bit; /**< Structure used for bit access */
  158. uint8_t reg; /**< Type used for register access */
  159. } NVMCTRL_EVCTRL_Type;
  160. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  161. #define NVMCTRL_EVCTRL_OFFSET (0x0A) /**< (NVMCTRL_EVCTRL) Event Control Offset */
  162. #define NVMCTRL_EVCTRL_RESETVALUE _U_(0x00) /**< (NVMCTRL_EVCTRL) Event Control Reset Value */
  163. #define NVMCTRL_EVCTRL_AUTOWEI_Pos 0 /**< (NVMCTRL_EVCTRL) Auto Write Event Enable Position */
  164. #define NVMCTRL_EVCTRL_AUTOWEI_Msk (_U_(0x1) << NVMCTRL_EVCTRL_AUTOWEI_Pos) /**< (NVMCTRL_EVCTRL) Auto Write Event Enable Mask */
  165. #define NVMCTRL_EVCTRL_AUTOWEI NVMCTRL_EVCTRL_AUTOWEI_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_EVCTRL_AUTOWEI_Msk instead */
  166. #define NVMCTRL_EVCTRL_AUTOWINV_Pos 1 /**< (NVMCTRL_EVCTRL) Auto Write Event Polarity Inverted Position */
  167. #define NVMCTRL_EVCTRL_AUTOWINV_Msk (_U_(0x1) << NVMCTRL_EVCTRL_AUTOWINV_Pos) /**< (NVMCTRL_EVCTRL) Auto Write Event Polarity Inverted Mask */
  168. #define NVMCTRL_EVCTRL_AUTOWINV NVMCTRL_EVCTRL_AUTOWINV_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_EVCTRL_AUTOWINV_Msk instead */
  169. #define NVMCTRL_EVCTRL_MASK _U_(0x03) /**< \deprecated (NVMCTRL_EVCTRL) Register MASK (Use NVMCTRL_EVCTRL_Msk instead) */
  170. #define NVMCTRL_EVCTRL_Msk _U_(0x03) /**< (NVMCTRL_EVCTRL) Register Mask */
  171. /* -------- NVMCTRL_INTENCLR : (NVMCTRL Offset: 0x0c) (R/W 8) Interrupt Enable Clear -------- */
  172. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  173. typedef union {
  174. struct {
  175. uint8_t DONE:1; /**< bit: 0 NVM Done Interrupt Clear */
  176. uint8_t PROGE:1; /**< bit: 1 Programming Error Status Interrupt Clear */
  177. uint8_t LOCKE:1; /**< bit: 2 Lock Error Status Interrupt Clear */
  178. uint8_t NVME:1; /**< bit: 3 NVM Error Interrupt Clear */
  179. uint8_t KEYE:1; /**< bit: 4 Key Write Error Interrupt Clear */
  180. uint8_t NSCHK:1; /**< bit: 5 NS configuration change detected Interrupt Clear */
  181. uint8_t :2; /**< bit: 6..7 Reserved */
  182. } bit; /**< Structure used for bit access */
  183. uint8_t reg; /**< Type used for register access */
  184. } NVMCTRL_INTENCLR_Type;
  185. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  186. #define NVMCTRL_INTENCLR_OFFSET (0x0C) /**< (NVMCTRL_INTENCLR) Interrupt Enable Clear Offset */
  187. #define NVMCTRL_INTENCLR_RESETVALUE _U_(0x00) /**< (NVMCTRL_INTENCLR) Interrupt Enable Clear Reset Value */
  188. #define NVMCTRL_INTENCLR_DONE_Pos 0 /**< (NVMCTRL_INTENCLR) NVM Done Interrupt Clear Position */
  189. #define NVMCTRL_INTENCLR_DONE_Msk (_U_(0x1) << NVMCTRL_INTENCLR_DONE_Pos) /**< (NVMCTRL_INTENCLR) NVM Done Interrupt Clear Mask */
  190. #define NVMCTRL_INTENCLR_DONE NVMCTRL_INTENCLR_DONE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_DONE_Msk instead */
  191. #define NVMCTRL_INTENCLR_PROGE_Pos 1 /**< (NVMCTRL_INTENCLR) Programming Error Status Interrupt Clear Position */
  192. #define NVMCTRL_INTENCLR_PROGE_Msk (_U_(0x1) << NVMCTRL_INTENCLR_PROGE_Pos) /**< (NVMCTRL_INTENCLR) Programming Error Status Interrupt Clear Mask */
  193. #define NVMCTRL_INTENCLR_PROGE NVMCTRL_INTENCLR_PROGE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_PROGE_Msk instead */
  194. #define NVMCTRL_INTENCLR_LOCKE_Pos 2 /**< (NVMCTRL_INTENCLR) Lock Error Status Interrupt Clear Position */
  195. #define NVMCTRL_INTENCLR_LOCKE_Msk (_U_(0x1) << NVMCTRL_INTENCLR_LOCKE_Pos) /**< (NVMCTRL_INTENCLR) Lock Error Status Interrupt Clear Mask */
  196. #define NVMCTRL_INTENCLR_LOCKE NVMCTRL_INTENCLR_LOCKE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_LOCKE_Msk instead */
  197. #define NVMCTRL_INTENCLR_NVME_Pos 3 /**< (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Position */
  198. #define NVMCTRL_INTENCLR_NVME_Msk (_U_(0x1) << NVMCTRL_INTENCLR_NVME_Pos) /**< (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Mask */
  199. #define NVMCTRL_INTENCLR_NVME NVMCTRL_INTENCLR_NVME_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_NVME_Msk instead */
  200. #define NVMCTRL_INTENCLR_KEYE_Pos 4 /**< (NVMCTRL_INTENCLR) Key Write Error Interrupt Clear Position */
  201. #define NVMCTRL_INTENCLR_KEYE_Msk (_U_(0x1) << NVMCTRL_INTENCLR_KEYE_Pos) /**< (NVMCTRL_INTENCLR) Key Write Error Interrupt Clear Mask */
  202. #define NVMCTRL_INTENCLR_KEYE NVMCTRL_INTENCLR_KEYE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_KEYE_Msk instead */
  203. #define NVMCTRL_INTENCLR_NSCHK_Pos 5 /**< (NVMCTRL_INTENCLR) NS configuration change detected Interrupt Clear Position */
  204. #define NVMCTRL_INTENCLR_NSCHK_Msk (_U_(0x1) << NVMCTRL_INTENCLR_NSCHK_Pos) /**< (NVMCTRL_INTENCLR) NS configuration change detected Interrupt Clear Mask */
  205. #define NVMCTRL_INTENCLR_NSCHK NVMCTRL_INTENCLR_NSCHK_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENCLR_NSCHK_Msk instead */
  206. #define NVMCTRL_INTENCLR_MASK _U_(0x3F) /**< \deprecated (NVMCTRL_INTENCLR) Register MASK (Use NVMCTRL_INTENCLR_Msk instead) */
  207. #define NVMCTRL_INTENCLR_Msk _U_(0x3F) /**< (NVMCTRL_INTENCLR) Register Mask */
  208. /* -------- NVMCTRL_INTENSET : (NVMCTRL Offset: 0x10) (R/W 8) Interrupt Enable Set -------- */
  209. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  210. typedef union {
  211. struct {
  212. uint8_t DONE:1; /**< bit: 0 NVM Done Interrupt Enable */
  213. uint8_t PROGE:1; /**< bit: 1 Programming Error Status Interrupt Enable */
  214. uint8_t LOCKE:1; /**< bit: 2 Lock Error Status Interrupt Enable */
  215. uint8_t NVME:1; /**< bit: 3 NVM Error Interrupt Enable */
  216. uint8_t KEYE:1; /**< bit: 4 Key Write Error Interrupt Enable */
  217. uint8_t NSCHK:1; /**< bit: 5 NS configuration change detected Interrupt Enable */
  218. uint8_t :2; /**< bit: 6..7 Reserved */
  219. } bit; /**< Structure used for bit access */
  220. uint8_t reg; /**< Type used for register access */
  221. } NVMCTRL_INTENSET_Type;
  222. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  223. #define NVMCTRL_INTENSET_OFFSET (0x10) /**< (NVMCTRL_INTENSET) Interrupt Enable Set Offset */
  224. #define NVMCTRL_INTENSET_RESETVALUE _U_(0x00) /**< (NVMCTRL_INTENSET) Interrupt Enable Set Reset Value */
  225. #define NVMCTRL_INTENSET_DONE_Pos 0 /**< (NVMCTRL_INTENSET) NVM Done Interrupt Enable Position */
  226. #define NVMCTRL_INTENSET_DONE_Msk (_U_(0x1) << NVMCTRL_INTENSET_DONE_Pos) /**< (NVMCTRL_INTENSET) NVM Done Interrupt Enable Mask */
  227. #define NVMCTRL_INTENSET_DONE NVMCTRL_INTENSET_DONE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_DONE_Msk instead */
  228. #define NVMCTRL_INTENSET_PROGE_Pos 1 /**< (NVMCTRL_INTENSET) Programming Error Status Interrupt Enable Position */
  229. #define NVMCTRL_INTENSET_PROGE_Msk (_U_(0x1) << NVMCTRL_INTENSET_PROGE_Pos) /**< (NVMCTRL_INTENSET) Programming Error Status Interrupt Enable Mask */
  230. #define NVMCTRL_INTENSET_PROGE NVMCTRL_INTENSET_PROGE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_PROGE_Msk instead */
  231. #define NVMCTRL_INTENSET_LOCKE_Pos 2 /**< (NVMCTRL_INTENSET) Lock Error Status Interrupt Enable Position */
  232. #define NVMCTRL_INTENSET_LOCKE_Msk (_U_(0x1) << NVMCTRL_INTENSET_LOCKE_Pos) /**< (NVMCTRL_INTENSET) Lock Error Status Interrupt Enable Mask */
  233. #define NVMCTRL_INTENSET_LOCKE NVMCTRL_INTENSET_LOCKE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_LOCKE_Msk instead */
  234. #define NVMCTRL_INTENSET_NVME_Pos 3 /**< (NVMCTRL_INTENSET) NVM Error Interrupt Enable Position */
  235. #define NVMCTRL_INTENSET_NVME_Msk (_U_(0x1) << NVMCTRL_INTENSET_NVME_Pos) /**< (NVMCTRL_INTENSET) NVM Error Interrupt Enable Mask */
  236. #define NVMCTRL_INTENSET_NVME NVMCTRL_INTENSET_NVME_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_NVME_Msk instead */
  237. #define NVMCTRL_INTENSET_KEYE_Pos 4 /**< (NVMCTRL_INTENSET) Key Write Error Interrupt Enable Position */
  238. #define NVMCTRL_INTENSET_KEYE_Msk (_U_(0x1) << NVMCTRL_INTENSET_KEYE_Pos) /**< (NVMCTRL_INTENSET) Key Write Error Interrupt Enable Mask */
  239. #define NVMCTRL_INTENSET_KEYE NVMCTRL_INTENSET_KEYE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_KEYE_Msk instead */
  240. #define NVMCTRL_INTENSET_NSCHK_Pos 5 /**< (NVMCTRL_INTENSET) NS configuration change detected Interrupt Enable Position */
  241. #define NVMCTRL_INTENSET_NSCHK_Msk (_U_(0x1) << NVMCTRL_INTENSET_NSCHK_Pos) /**< (NVMCTRL_INTENSET) NS configuration change detected Interrupt Enable Mask */
  242. #define NVMCTRL_INTENSET_NSCHK NVMCTRL_INTENSET_NSCHK_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTENSET_NSCHK_Msk instead */
  243. #define NVMCTRL_INTENSET_MASK _U_(0x3F) /**< \deprecated (NVMCTRL_INTENSET) Register MASK (Use NVMCTRL_INTENSET_Msk instead) */
  244. #define NVMCTRL_INTENSET_Msk _U_(0x3F) /**< (NVMCTRL_INTENSET) Register Mask */
  245. /* -------- NVMCTRL_INTFLAG : (NVMCTRL Offset: 0x14) (R/W 8) Interrupt Flag Status and Clear -------- */
  246. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  247. typedef union { // __I to avoid read-modify-write on write-to-clear register
  248. struct {
  249. __I uint8_t DONE:1; /**< bit: 0 NVM Done */
  250. __I uint8_t PROGE:1; /**< bit: 1 Programming Error Status */
  251. __I uint8_t LOCKE:1; /**< bit: 2 Lock Error Status */
  252. __I uint8_t NVME:1; /**< bit: 3 NVM Error */
  253. __I uint8_t KEYE:1; /**< bit: 4 KEY Write Error */
  254. __I uint8_t NSCHK:1; /**< bit: 5 NS configuration change detected */
  255. __I uint8_t :2; /**< bit: 6..7 Reserved */
  256. } bit; /**< Structure used for bit access */
  257. uint8_t reg; /**< Type used for register access */
  258. } NVMCTRL_INTFLAG_Type;
  259. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  260. #define NVMCTRL_INTFLAG_OFFSET (0x14) /**< (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear Offset */
  261. #define NVMCTRL_INTFLAG_RESETVALUE _U_(0x00) /**< (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear Reset Value */
  262. #define NVMCTRL_INTFLAG_DONE_Pos 0 /**< (NVMCTRL_INTFLAG) NVM Done Position */
  263. #define NVMCTRL_INTFLAG_DONE_Msk (_U_(0x1) << NVMCTRL_INTFLAG_DONE_Pos) /**< (NVMCTRL_INTFLAG) NVM Done Mask */
  264. #define NVMCTRL_INTFLAG_DONE NVMCTRL_INTFLAG_DONE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_DONE_Msk instead */
  265. #define NVMCTRL_INTFLAG_PROGE_Pos 1 /**< (NVMCTRL_INTFLAG) Programming Error Status Position */
  266. #define NVMCTRL_INTFLAG_PROGE_Msk (_U_(0x1) << NVMCTRL_INTFLAG_PROGE_Pos) /**< (NVMCTRL_INTFLAG) Programming Error Status Mask */
  267. #define NVMCTRL_INTFLAG_PROGE NVMCTRL_INTFLAG_PROGE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_PROGE_Msk instead */
  268. #define NVMCTRL_INTFLAG_LOCKE_Pos 2 /**< (NVMCTRL_INTFLAG) Lock Error Status Position */
  269. #define NVMCTRL_INTFLAG_LOCKE_Msk (_U_(0x1) << NVMCTRL_INTFLAG_LOCKE_Pos) /**< (NVMCTRL_INTFLAG) Lock Error Status Mask */
  270. #define NVMCTRL_INTFLAG_LOCKE NVMCTRL_INTFLAG_LOCKE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_LOCKE_Msk instead */
  271. #define NVMCTRL_INTFLAG_NVME_Pos 3 /**< (NVMCTRL_INTFLAG) NVM Error Position */
  272. #define NVMCTRL_INTFLAG_NVME_Msk (_U_(0x1) << NVMCTRL_INTFLAG_NVME_Pos) /**< (NVMCTRL_INTFLAG) NVM Error Mask */
  273. #define NVMCTRL_INTFLAG_NVME NVMCTRL_INTFLAG_NVME_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_NVME_Msk instead */
  274. #define NVMCTRL_INTFLAG_KEYE_Pos 4 /**< (NVMCTRL_INTFLAG) KEY Write Error Position */
  275. #define NVMCTRL_INTFLAG_KEYE_Msk (_U_(0x1) << NVMCTRL_INTFLAG_KEYE_Pos) /**< (NVMCTRL_INTFLAG) KEY Write Error Mask */
  276. #define NVMCTRL_INTFLAG_KEYE NVMCTRL_INTFLAG_KEYE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_KEYE_Msk instead */
  277. #define NVMCTRL_INTFLAG_NSCHK_Pos 5 /**< (NVMCTRL_INTFLAG) NS configuration change detected Position */
  278. #define NVMCTRL_INTFLAG_NSCHK_Msk (_U_(0x1) << NVMCTRL_INTFLAG_NSCHK_Pos) /**< (NVMCTRL_INTFLAG) NS configuration change detected Mask */
  279. #define NVMCTRL_INTFLAG_NSCHK NVMCTRL_INTFLAG_NSCHK_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_INTFLAG_NSCHK_Msk instead */
  280. #define NVMCTRL_INTFLAG_MASK _U_(0x3F) /**< \deprecated (NVMCTRL_INTFLAG) Register MASK (Use NVMCTRL_INTFLAG_Msk instead) */
  281. #define NVMCTRL_INTFLAG_Msk _U_(0x3F) /**< (NVMCTRL_INTFLAG) Register Mask */
  282. /* -------- NVMCTRL_STATUS : (NVMCTRL Offset: 0x18) (R/ 16) Status -------- */
  283. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  284. typedef union {
  285. struct {
  286. uint16_t PRM:1; /**< bit: 0 Power Reduction Mode */
  287. uint16_t LOAD:1; /**< bit: 1 NVM Page Buffer Active Loading */
  288. uint16_t READY:1; /**< bit: 2 NVM Ready */
  289. uint16_t DALFUSE:2; /**< bit: 3..4 Debug Access Level Fuse */
  290. uint16_t :11; /**< bit: 5..15 Reserved */
  291. } bit; /**< Structure used for bit access */
  292. uint16_t reg; /**< Type used for register access */
  293. } NVMCTRL_STATUS_Type;
  294. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  295. #define NVMCTRL_STATUS_OFFSET (0x18) /**< (NVMCTRL_STATUS) Status Offset */
  296. #define NVMCTRL_STATUS_RESETVALUE _U_(0x00) /**< (NVMCTRL_STATUS) Status Reset Value */
  297. #define NVMCTRL_STATUS_PRM_Pos 0 /**< (NVMCTRL_STATUS) Power Reduction Mode Position */
  298. #define NVMCTRL_STATUS_PRM_Msk (_U_(0x1) << NVMCTRL_STATUS_PRM_Pos) /**< (NVMCTRL_STATUS) Power Reduction Mode Mask */
  299. #define NVMCTRL_STATUS_PRM NVMCTRL_STATUS_PRM_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_STATUS_PRM_Msk instead */
  300. #define NVMCTRL_STATUS_LOAD_Pos 1 /**< (NVMCTRL_STATUS) NVM Page Buffer Active Loading Position */
  301. #define NVMCTRL_STATUS_LOAD_Msk (_U_(0x1) << NVMCTRL_STATUS_LOAD_Pos) /**< (NVMCTRL_STATUS) NVM Page Buffer Active Loading Mask */
  302. #define NVMCTRL_STATUS_LOAD NVMCTRL_STATUS_LOAD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_STATUS_LOAD_Msk instead */
  303. #define NVMCTRL_STATUS_READY_Pos 2 /**< (NVMCTRL_STATUS) NVM Ready Position */
  304. #define NVMCTRL_STATUS_READY_Msk (_U_(0x1) << NVMCTRL_STATUS_READY_Pos) /**< (NVMCTRL_STATUS) NVM Ready Mask */
  305. #define NVMCTRL_STATUS_READY NVMCTRL_STATUS_READY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_STATUS_READY_Msk instead */
  306. #define NVMCTRL_STATUS_DALFUSE_Pos 3 /**< (NVMCTRL_STATUS) Debug Access Level Fuse Position */
  307. #define NVMCTRL_STATUS_DALFUSE_Msk (_U_(0x3) << NVMCTRL_STATUS_DALFUSE_Pos) /**< (NVMCTRL_STATUS) Debug Access Level Fuse Mask */
  308. #define NVMCTRL_STATUS_DALFUSE(value) (NVMCTRL_STATUS_DALFUSE_Msk & ((value) << NVMCTRL_STATUS_DALFUSE_Pos))
  309. #define NVMCTRL_STATUS_MASK _U_(0x1F) /**< \deprecated (NVMCTRL_STATUS) Register MASK (Use NVMCTRL_STATUS_Msk instead) */
  310. #define NVMCTRL_STATUS_Msk _U_(0x1F) /**< (NVMCTRL_STATUS) Register Mask */
  311. /* -------- NVMCTRL_ADDR : (NVMCTRL Offset: 0x1c) (R/W 32) Address -------- */
  312. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  313. typedef union {
  314. struct {
  315. uint32_t AOFFSET:16; /**< bit: 0..15 NVM Address Offset In The Selected Array */
  316. uint32_t :6; /**< bit: 16..21 Reserved */
  317. uint32_t ARRAY:2; /**< bit: 22..23 Array Select */
  318. uint32_t :8; /**< bit: 24..31 Reserved */
  319. } bit; /**< Structure used for bit access */
  320. uint32_t reg; /**< Type used for register access */
  321. } NVMCTRL_ADDR_Type;
  322. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  323. #define NVMCTRL_ADDR_OFFSET (0x1C) /**< (NVMCTRL_ADDR) Address Offset */
  324. #define NVMCTRL_ADDR_RESETVALUE _U_(0x00) /**< (NVMCTRL_ADDR) Address Reset Value */
  325. #define NVMCTRL_ADDR_AOFFSET_Pos 0 /**< (NVMCTRL_ADDR) NVM Address Offset In The Selected Array Position */
  326. #define NVMCTRL_ADDR_AOFFSET_Msk (_U_(0xFFFF) << NVMCTRL_ADDR_AOFFSET_Pos) /**< (NVMCTRL_ADDR) NVM Address Offset In The Selected Array Mask */
  327. #define NVMCTRL_ADDR_AOFFSET(value) (NVMCTRL_ADDR_AOFFSET_Msk & ((value) << NVMCTRL_ADDR_AOFFSET_Pos))
  328. #define NVMCTRL_ADDR_ARRAY_Pos 22 /**< (NVMCTRL_ADDR) Array Select Position */
  329. #define NVMCTRL_ADDR_ARRAY_Msk (_U_(0x3) << NVMCTRL_ADDR_ARRAY_Pos) /**< (NVMCTRL_ADDR) Array Select Mask */
  330. #define NVMCTRL_ADDR_ARRAY(value) (NVMCTRL_ADDR_ARRAY_Msk & ((value) << NVMCTRL_ADDR_ARRAY_Pos))
  331. #define NVMCTRL_ADDR_ARRAY_FLASH_Val _U_(0x0) /**< (NVMCTRL_ADDR) FLASH Array */
  332. #define NVMCTRL_ADDR_ARRAY_DATAFLASH_Val _U_(0x1) /**< (NVMCTRL_ADDR) DATA FLASH Array */
  333. #define NVMCTRL_ADDR_ARRAY_AUX_Val _U_(0x2) /**< (NVMCTRL_ADDR) Auxilliary Space */
  334. #define NVMCTRL_ADDR_ARRAY_RESERVED_Val _U_(0x3) /**< (NVMCTRL_ADDR) Reserved Array */
  335. #define NVMCTRL_ADDR_ARRAY_FLASH (NVMCTRL_ADDR_ARRAY_FLASH_Val << NVMCTRL_ADDR_ARRAY_Pos) /**< (NVMCTRL_ADDR) FLASH Array Position */
  336. #define NVMCTRL_ADDR_ARRAY_DATAFLASH (NVMCTRL_ADDR_ARRAY_DATAFLASH_Val << NVMCTRL_ADDR_ARRAY_Pos) /**< (NVMCTRL_ADDR) DATA FLASH Array Position */
  337. #define NVMCTRL_ADDR_ARRAY_AUX (NVMCTRL_ADDR_ARRAY_AUX_Val << NVMCTRL_ADDR_ARRAY_Pos) /**< (NVMCTRL_ADDR) Auxilliary Space Position */
  338. #define NVMCTRL_ADDR_ARRAY_RESERVED (NVMCTRL_ADDR_ARRAY_RESERVED_Val << NVMCTRL_ADDR_ARRAY_Pos) /**< (NVMCTRL_ADDR) Reserved Array Position */
  339. #define NVMCTRL_ADDR_MASK _U_(0xC0FFFF) /**< \deprecated (NVMCTRL_ADDR) Register MASK (Use NVMCTRL_ADDR_Msk instead) */
  340. #define NVMCTRL_ADDR_Msk _U_(0xC0FFFF) /**< (NVMCTRL_ADDR) Register Mask */
  341. /* -------- NVMCTRL_SULCK : (NVMCTRL Offset: 0x20) (R/W 16) Secure Unlock Register -------- */
  342. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  343. typedef union {
  344. struct {
  345. uint16_t BS:1; /**< bit: 0 Secure Boot Region */
  346. uint16_t AS:1; /**< bit: 1 Secure Application Region */
  347. uint16_t DS:1; /**< bit: 2 Data Secure Region */
  348. uint16_t :5; /**< bit: 3..7 Reserved */
  349. uint16_t SLKEY:8; /**< bit: 8..15 Write Key */
  350. } bit; /**< Structure used for bit access */
  351. uint16_t reg; /**< Type used for register access */
  352. } NVMCTRL_SULCK_Type;
  353. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  354. #define NVMCTRL_SULCK_OFFSET (0x20) /**< (NVMCTRL_SULCK) Secure Unlock Register Offset */
  355. #define NVMCTRL_SULCK_BS_Pos 0 /**< (NVMCTRL_SULCK) Secure Boot Region Position */
  356. #define NVMCTRL_SULCK_BS_Msk (_U_(0x1) << NVMCTRL_SULCK_BS_Pos) /**< (NVMCTRL_SULCK) Secure Boot Region Mask */
  357. #define NVMCTRL_SULCK_BS NVMCTRL_SULCK_BS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SULCK_BS_Msk instead */
  358. #define NVMCTRL_SULCK_AS_Pos 1 /**< (NVMCTRL_SULCK) Secure Application Region Position */
  359. #define NVMCTRL_SULCK_AS_Msk (_U_(0x1) << NVMCTRL_SULCK_AS_Pos) /**< (NVMCTRL_SULCK) Secure Application Region Mask */
  360. #define NVMCTRL_SULCK_AS NVMCTRL_SULCK_AS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SULCK_AS_Msk instead */
  361. #define NVMCTRL_SULCK_DS_Pos 2 /**< (NVMCTRL_SULCK) Data Secure Region Position */
  362. #define NVMCTRL_SULCK_DS_Msk (_U_(0x1) << NVMCTRL_SULCK_DS_Pos) /**< (NVMCTRL_SULCK) Data Secure Region Mask */
  363. #define NVMCTRL_SULCK_DS NVMCTRL_SULCK_DS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SULCK_DS_Msk instead */
  364. #define NVMCTRL_SULCK_SLKEY_Pos 8 /**< (NVMCTRL_SULCK) Write Key Position */
  365. #define NVMCTRL_SULCK_SLKEY_Msk (_U_(0xFF) << NVMCTRL_SULCK_SLKEY_Pos) /**< (NVMCTRL_SULCK) Write Key Mask */
  366. #define NVMCTRL_SULCK_SLKEY(value) (NVMCTRL_SULCK_SLKEY_Msk & ((value) << NVMCTRL_SULCK_SLKEY_Pos))
  367. #define NVMCTRL_SULCK_SLKEY_KEY_Val _U_(0xA5) /**< (NVMCTRL_SULCK) Write Key */
  368. #define NVMCTRL_SULCK_SLKEY_KEY (NVMCTRL_SULCK_SLKEY_KEY_Val << NVMCTRL_SULCK_SLKEY_Pos) /**< (NVMCTRL_SULCK) Write Key Position */
  369. #define NVMCTRL_SULCK_MASK _U_(0xFF07) /**< \deprecated (NVMCTRL_SULCK) Register MASK (Use NVMCTRL_SULCK_Msk instead) */
  370. #define NVMCTRL_SULCK_Msk _U_(0xFF07) /**< (NVMCTRL_SULCK) Register Mask */
  371. /* -------- NVMCTRL_NSULCK : (NVMCTRL Offset: 0x22) (R/W 16) Non-Secure Unlock Register -------- */
  372. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  373. typedef union {
  374. struct {
  375. uint16_t BNS:1; /**< bit: 0 Non-Secure Boot Region */
  376. uint16_t ANS:1; /**< bit: 1 Non-Secure Application Region */
  377. uint16_t DNS:1; /**< bit: 2 Non-Secure Data Region */
  378. uint16_t :5; /**< bit: 3..7 Reserved */
  379. uint16_t NSLKEY:8; /**< bit: 8..15 Write Key */
  380. } bit; /**< Structure used for bit access */
  381. uint16_t reg; /**< Type used for register access */
  382. } NVMCTRL_NSULCK_Type;
  383. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  384. #define NVMCTRL_NSULCK_OFFSET (0x22) /**< (NVMCTRL_NSULCK) Non-Secure Unlock Register Offset */
  385. #define NVMCTRL_NSULCK_BNS_Pos 0 /**< (NVMCTRL_NSULCK) Non-Secure Boot Region Position */
  386. #define NVMCTRL_NSULCK_BNS_Msk (_U_(0x1) << NVMCTRL_NSULCK_BNS_Pos) /**< (NVMCTRL_NSULCK) Non-Secure Boot Region Mask */
  387. #define NVMCTRL_NSULCK_BNS NVMCTRL_NSULCK_BNS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_NSULCK_BNS_Msk instead */
  388. #define NVMCTRL_NSULCK_ANS_Pos 1 /**< (NVMCTRL_NSULCK) Non-Secure Application Region Position */
  389. #define NVMCTRL_NSULCK_ANS_Msk (_U_(0x1) << NVMCTRL_NSULCK_ANS_Pos) /**< (NVMCTRL_NSULCK) Non-Secure Application Region Mask */
  390. #define NVMCTRL_NSULCK_ANS NVMCTRL_NSULCK_ANS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_NSULCK_ANS_Msk instead */
  391. #define NVMCTRL_NSULCK_DNS_Pos 2 /**< (NVMCTRL_NSULCK) Non-Secure Data Region Position */
  392. #define NVMCTRL_NSULCK_DNS_Msk (_U_(0x1) << NVMCTRL_NSULCK_DNS_Pos) /**< (NVMCTRL_NSULCK) Non-Secure Data Region Mask */
  393. #define NVMCTRL_NSULCK_DNS NVMCTRL_NSULCK_DNS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_NSULCK_DNS_Msk instead */
  394. #define NVMCTRL_NSULCK_NSLKEY_Pos 8 /**< (NVMCTRL_NSULCK) Write Key Position */
  395. #define NVMCTRL_NSULCK_NSLKEY_Msk (_U_(0xFF) << NVMCTRL_NSULCK_NSLKEY_Pos) /**< (NVMCTRL_NSULCK) Write Key Mask */
  396. #define NVMCTRL_NSULCK_NSLKEY(value) (NVMCTRL_NSULCK_NSLKEY_Msk & ((value) << NVMCTRL_NSULCK_NSLKEY_Pos))
  397. #define NVMCTRL_NSULCK_NSLKEY_KEY_Val _U_(0xA5) /**< (NVMCTRL_NSULCK) Write Key */
  398. #define NVMCTRL_NSULCK_NSLKEY_KEY (NVMCTRL_NSULCK_NSLKEY_KEY_Val << NVMCTRL_NSULCK_NSLKEY_Pos) /**< (NVMCTRL_NSULCK) Write Key Position */
  399. #define NVMCTRL_NSULCK_MASK _U_(0xFF07) /**< \deprecated (NVMCTRL_NSULCK) Register MASK (Use NVMCTRL_NSULCK_Msk instead) */
  400. #define NVMCTRL_NSULCK_Msk _U_(0xFF07) /**< (NVMCTRL_NSULCK) Register Mask */
  401. /* -------- NVMCTRL_PARAM : (NVMCTRL Offset: 0x24) (R/W 32) NVM Parameter -------- */
  402. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  403. typedef union {
  404. struct {
  405. uint32_t FLASHP:16; /**< bit: 0..15 FLASH Pages */
  406. uint32_t PSZ:3; /**< bit: 16..18 Page Size */
  407. uint32_t :1; /**< bit: 19 Reserved */
  408. uint32_t DFLASHP:12; /**< bit: 20..31 DATAFLASH Pages */
  409. } bit; /**< Structure used for bit access */
  410. uint32_t reg; /**< Type used for register access */
  411. } NVMCTRL_PARAM_Type;
  412. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  413. #define NVMCTRL_PARAM_OFFSET (0x24) /**< (NVMCTRL_PARAM) NVM Parameter Offset */
  414. #define NVMCTRL_PARAM_RESETVALUE _U_(0x00) /**< (NVMCTRL_PARAM) NVM Parameter Reset Value */
  415. #define NVMCTRL_PARAM_FLASHP_Pos 0 /**< (NVMCTRL_PARAM) FLASH Pages Position */
  416. #define NVMCTRL_PARAM_FLASHP_Msk (_U_(0xFFFF) << NVMCTRL_PARAM_FLASHP_Pos) /**< (NVMCTRL_PARAM) FLASH Pages Mask */
  417. #define NVMCTRL_PARAM_FLASHP(value) (NVMCTRL_PARAM_FLASHP_Msk & ((value) << NVMCTRL_PARAM_FLASHP_Pos))
  418. #define NVMCTRL_PARAM_PSZ_Pos 16 /**< (NVMCTRL_PARAM) Page Size Position */
  419. #define NVMCTRL_PARAM_PSZ_Msk (_U_(0x7) << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) Page Size Mask */
  420. #define NVMCTRL_PARAM_PSZ(value) (NVMCTRL_PARAM_PSZ_Msk & ((value) << NVMCTRL_PARAM_PSZ_Pos))
  421. #define NVMCTRL_PARAM_PSZ_8_Val _U_(0x0) /**< (NVMCTRL_PARAM) 8 bytes */
  422. #define NVMCTRL_PARAM_PSZ_16_Val _U_(0x1) /**< (NVMCTRL_PARAM) 16 bytes */
  423. #define NVMCTRL_PARAM_PSZ_32_Val _U_(0x2) /**< (NVMCTRL_PARAM) 32 bytes */
  424. #define NVMCTRL_PARAM_PSZ_64_Val _U_(0x3) /**< (NVMCTRL_PARAM) 64 bytes */
  425. #define NVMCTRL_PARAM_PSZ_128_Val _U_(0x4) /**< (NVMCTRL_PARAM) 128 bytes */
  426. #define NVMCTRL_PARAM_PSZ_256_Val _U_(0x5) /**< (NVMCTRL_PARAM) 256 bytes */
  427. #define NVMCTRL_PARAM_PSZ_512_Val _U_(0x6) /**< (NVMCTRL_PARAM) 512 bytes */
  428. #define NVMCTRL_PARAM_PSZ_1024_Val _U_(0x7) /**< (NVMCTRL_PARAM) 1024 bytes */
  429. #define NVMCTRL_PARAM_PSZ_8 (NVMCTRL_PARAM_PSZ_8_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 8 bytes Position */
  430. #define NVMCTRL_PARAM_PSZ_16 (NVMCTRL_PARAM_PSZ_16_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 16 bytes Position */
  431. #define NVMCTRL_PARAM_PSZ_32 (NVMCTRL_PARAM_PSZ_32_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 32 bytes Position */
  432. #define NVMCTRL_PARAM_PSZ_64 (NVMCTRL_PARAM_PSZ_64_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 64 bytes Position */
  433. #define NVMCTRL_PARAM_PSZ_128 (NVMCTRL_PARAM_PSZ_128_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 128 bytes Position */
  434. #define NVMCTRL_PARAM_PSZ_256 (NVMCTRL_PARAM_PSZ_256_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 256 bytes Position */
  435. #define NVMCTRL_PARAM_PSZ_512 (NVMCTRL_PARAM_PSZ_512_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 512 bytes Position */
  436. #define NVMCTRL_PARAM_PSZ_1024 (NVMCTRL_PARAM_PSZ_1024_Val << NVMCTRL_PARAM_PSZ_Pos) /**< (NVMCTRL_PARAM) 1024 bytes Position */
  437. #define NVMCTRL_PARAM_DFLASHP_Pos 20 /**< (NVMCTRL_PARAM) DATAFLASH Pages Position */
  438. #define NVMCTRL_PARAM_DFLASHP_Msk (_U_(0xFFF) << NVMCTRL_PARAM_DFLASHP_Pos) /**< (NVMCTRL_PARAM) DATAFLASH Pages Mask */
  439. #define NVMCTRL_PARAM_DFLASHP(value) (NVMCTRL_PARAM_DFLASHP_Msk & ((value) << NVMCTRL_PARAM_DFLASHP_Pos))
  440. #define NVMCTRL_PARAM_MASK _U_(0xFFF7FFFF) /**< \deprecated (NVMCTRL_PARAM) Register MASK (Use NVMCTRL_PARAM_Msk instead) */
  441. #define NVMCTRL_PARAM_Msk _U_(0xFFF7FFFF) /**< (NVMCTRL_PARAM) Register Mask */
  442. /* -------- NVMCTRL_DSCC : (NVMCTRL Offset: 0x30) (/W 32) Data Scramble Configuration -------- */
  443. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  444. typedef union {
  445. struct {
  446. uint32_t DSCKEY:30; /**< bit: 0..29 Data Scramble Key */
  447. uint32_t :2; /**< bit: 30..31 Reserved */
  448. } bit; /**< Structure used for bit access */
  449. uint32_t reg; /**< Type used for register access */
  450. } NVMCTRL_DSCC_Type;
  451. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  452. #define NVMCTRL_DSCC_OFFSET (0x30) /**< (NVMCTRL_DSCC) Data Scramble Configuration Offset */
  453. #define NVMCTRL_DSCC_RESETVALUE _U_(0x00) /**< (NVMCTRL_DSCC) Data Scramble Configuration Reset Value */
  454. #define NVMCTRL_DSCC_DSCKEY_Pos 0 /**< (NVMCTRL_DSCC) Data Scramble Key Position */
  455. #define NVMCTRL_DSCC_DSCKEY_Msk (_U_(0x3FFFFFFF) << NVMCTRL_DSCC_DSCKEY_Pos) /**< (NVMCTRL_DSCC) Data Scramble Key Mask */
  456. #define NVMCTRL_DSCC_DSCKEY(value) (NVMCTRL_DSCC_DSCKEY_Msk & ((value) << NVMCTRL_DSCC_DSCKEY_Pos))
  457. #define NVMCTRL_DSCC_MASK _U_(0x3FFFFFFF) /**< \deprecated (NVMCTRL_DSCC) Register MASK (Use NVMCTRL_DSCC_Msk instead) */
  458. #define NVMCTRL_DSCC_Msk _U_(0x3FFFFFFF) /**< (NVMCTRL_DSCC) Register Mask */
  459. /* -------- NVMCTRL_SECCTRL : (NVMCTRL Offset: 0x34) (R/W 32) Security Control -------- */
  460. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  461. typedef union {
  462. struct {
  463. uint32_t TAMPEEN:1; /**< bit: 0 Tamper Erase Enable */
  464. uint32_t :1; /**< bit: 1 Reserved */
  465. uint32_t SILACC:1; /**< bit: 2 Silent Access */
  466. uint32_t DSCEN:1; /**< bit: 3 Data Scramble Enable */
  467. uint32_t :2; /**< bit: 4..5 Reserved */
  468. uint32_t DXN:1; /**< bit: 6 Data Flash is eXecute Never */
  469. uint32_t :1; /**< bit: 7 Reserved */
  470. uint32_t TEROW:3; /**< bit: 8..10 Tamper Rease Row */
  471. uint32_t :13; /**< bit: 11..23 Reserved */
  472. uint32_t KEY:8; /**< bit: 24..31 Write Key */
  473. } bit; /**< Structure used for bit access */
  474. uint32_t reg; /**< Type used for register access */
  475. } NVMCTRL_SECCTRL_Type;
  476. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  477. #define NVMCTRL_SECCTRL_OFFSET (0x34) /**< (NVMCTRL_SECCTRL) Security Control Offset */
  478. #define NVMCTRL_SECCTRL_RESETVALUE _U_(0x30) /**< (NVMCTRL_SECCTRL) Security Control Reset Value */
  479. #define NVMCTRL_SECCTRL_TAMPEEN_Pos 0 /**< (NVMCTRL_SECCTRL) Tamper Erase Enable Position */
  480. #define NVMCTRL_SECCTRL_TAMPEEN_Msk (_U_(0x1) << NVMCTRL_SECCTRL_TAMPEEN_Pos) /**< (NVMCTRL_SECCTRL) Tamper Erase Enable Mask */
  481. #define NVMCTRL_SECCTRL_TAMPEEN NVMCTRL_SECCTRL_TAMPEEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SECCTRL_TAMPEEN_Msk instead */
  482. #define NVMCTRL_SECCTRL_SILACC_Pos 2 /**< (NVMCTRL_SECCTRL) Silent Access Position */
  483. #define NVMCTRL_SECCTRL_SILACC_Msk (_U_(0x1) << NVMCTRL_SECCTRL_SILACC_Pos) /**< (NVMCTRL_SECCTRL) Silent Access Mask */
  484. #define NVMCTRL_SECCTRL_SILACC NVMCTRL_SECCTRL_SILACC_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SECCTRL_SILACC_Msk instead */
  485. #define NVMCTRL_SECCTRL_DSCEN_Pos 3 /**< (NVMCTRL_SECCTRL) Data Scramble Enable Position */
  486. #define NVMCTRL_SECCTRL_DSCEN_Msk (_U_(0x1) << NVMCTRL_SECCTRL_DSCEN_Pos) /**< (NVMCTRL_SECCTRL) Data Scramble Enable Mask */
  487. #define NVMCTRL_SECCTRL_DSCEN NVMCTRL_SECCTRL_DSCEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SECCTRL_DSCEN_Msk instead */
  488. #define NVMCTRL_SECCTRL_DXN_Pos 6 /**< (NVMCTRL_SECCTRL) Data Flash is eXecute Never Position */
  489. #define NVMCTRL_SECCTRL_DXN_Msk (_U_(0x1) << NVMCTRL_SECCTRL_DXN_Pos) /**< (NVMCTRL_SECCTRL) Data Flash is eXecute Never Mask */
  490. #define NVMCTRL_SECCTRL_DXN NVMCTRL_SECCTRL_DXN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SECCTRL_DXN_Msk instead */
  491. #define NVMCTRL_SECCTRL_TEROW_Pos 8 /**< (NVMCTRL_SECCTRL) Tamper Rease Row Position */
  492. #define NVMCTRL_SECCTRL_TEROW_Msk (_U_(0x7) << NVMCTRL_SECCTRL_TEROW_Pos) /**< (NVMCTRL_SECCTRL) Tamper Rease Row Mask */
  493. #define NVMCTRL_SECCTRL_TEROW(value) (NVMCTRL_SECCTRL_TEROW_Msk & ((value) << NVMCTRL_SECCTRL_TEROW_Pos))
  494. #define NVMCTRL_SECCTRL_KEY_Pos 24 /**< (NVMCTRL_SECCTRL) Write Key Position */
  495. #define NVMCTRL_SECCTRL_KEY_Msk (_U_(0xFF) << NVMCTRL_SECCTRL_KEY_Pos) /**< (NVMCTRL_SECCTRL) Write Key Mask */
  496. #define NVMCTRL_SECCTRL_KEY(value) (NVMCTRL_SECCTRL_KEY_Msk & ((value) << NVMCTRL_SECCTRL_KEY_Pos))
  497. #define NVMCTRL_SECCTRL_KEY_KEY_Val _U_(0xA5) /**< (NVMCTRL_SECCTRL) Write Key */
  498. #define NVMCTRL_SECCTRL_KEY_KEY (NVMCTRL_SECCTRL_KEY_KEY_Val << NVMCTRL_SECCTRL_KEY_Pos) /**< (NVMCTRL_SECCTRL) Write Key Position */
  499. #define NVMCTRL_SECCTRL_MASK _U_(0xFF00074D) /**< \deprecated (NVMCTRL_SECCTRL) Register MASK (Use NVMCTRL_SECCTRL_Msk instead) */
  500. #define NVMCTRL_SECCTRL_Msk _U_(0xFF00074D) /**< (NVMCTRL_SECCTRL) Register Mask */
  501. /* -------- NVMCTRL_SCFGB : (NVMCTRL Offset: 0x38) (R/W 32) Secure Boot Configuration -------- */
  502. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  503. typedef union {
  504. struct {
  505. uint32_t BCREN:1; /**< bit: 0 Boot Configuration Row Read Enable */
  506. uint32_t BCWEN:1; /**< bit: 1 Boot Configuration Row Write Enable */
  507. uint32_t :30; /**< bit: 2..31 Reserved */
  508. } bit; /**< Structure used for bit access */
  509. uint32_t reg; /**< Type used for register access */
  510. } NVMCTRL_SCFGB_Type;
  511. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  512. #define NVMCTRL_SCFGB_OFFSET (0x38) /**< (NVMCTRL_SCFGB) Secure Boot Configuration Offset */
  513. #define NVMCTRL_SCFGB_RESETVALUE _U_(0x03) /**< (NVMCTRL_SCFGB) Secure Boot Configuration Reset Value */
  514. #define NVMCTRL_SCFGB_BCREN_Pos 0 /**< (NVMCTRL_SCFGB) Boot Configuration Row Read Enable Position */
  515. #define NVMCTRL_SCFGB_BCREN_Msk (_U_(0x1) << NVMCTRL_SCFGB_BCREN_Pos) /**< (NVMCTRL_SCFGB) Boot Configuration Row Read Enable Mask */
  516. #define NVMCTRL_SCFGB_BCREN NVMCTRL_SCFGB_BCREN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SCFGB_BCREN_Msk instead */
  517. #define NVMCTRL_SCFGB_BCWEN_Pos 1 /**< (NVMCTRL_SCFGB) Boot Configuration Row Write Enable Position */
  518. #define NVMCTRL_SCFGB_BCWEN_Msk (_U_(0x1) << NVMCTRL_SCFGB_BCWEN_Pos) /**< (NVMCTRL_SCFGB) Boot Configuration Row Write Enable Mask */
  519. #define NVMCTRL_SCFGB_BCWEN NVMCTRL_SCFGB_BCWEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SCFGB_BCWEN_Msk instead */
  520. #define NVMCTRL_SCFGB_MASK _U_(0x03) /**< \deprecated (NVMCTRL_SCFGB) Register MASK (Use NVMCTRL_SCFGB_Msk instead) */
  521. #define NVMCTRL_SCFGB_Msk _U_(0x03) /**< (NVMCTRL_SCFGB) Register Mask */
  522. /* -------- NVMCTRL_SCFGAD : (NVMCTRL Offset: 0x3c) (R/W 32) Secure Application and Data Configuration -------- */
  523. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  524. typedef union {
  525. struct {
  526. uint32_t URWEN:1; /**< bit: 0 User Row Write Enable */
  527. uint32_t :31; /**< bit: 1..31 Reserved */
  528. } bit; /**< Structure used for bit access */
  529. uint32_t reg; /**< Type used for register access */
  530. } NVMCTRL_SCFGAD_Type;
  531. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  532. #define NVMCTRL_SCFGAD_OFFSET (0x3C) /**< (NVMCTRL_SCFGAD) Secure Application and Data Configuration Offset */
  533. #define NVMCTRL_SCFGAD_RESETVALUE _U_(0x01) /**< (NVMCTRL_SCFGAD) Secure Application and Data Configuration Reset Value */
  534. #define NVMCTRL_SCFGAD_URWEN_Pos 0 /**< (NVMCTRL_SCFGAD) User Row Write Enable Position */
  535. #define NVMCTRL_SCFGAD_URWEN_Msk (_U_(0x1) << NVMCTRL_SCFGAD_URWEN_Pos) /**< (NVMCTRL_SCFGAD) User Row Write Enable Mask */
  536. #define NVMCTRL_SCFGAD_URWEN NVMCTRL_SCFGAD_URWEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_SCFGAD_URWEN_Msk instead */
  537. #define NVMCTRL_SCFGAD_MASK _U_(0x01) /**< \deprecated (NVMCTRL_SCFGAD) Register MASK (Use NVMCTRL_SCFGAD_Msk instead) */
  538. #define NVMCTRL_SCFGAD_Msk _U_(0x01) /**< (NVMCTRL_SCFGAD) Register Mask */
  539. /* -------- NVMCTRL_NONSEC : (NVMCTRL Offset: 0x40) (R/W 32) Non-secure Write Enable -------- */
  540. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  541. typedef union {
  542. struct {
  543. uint32_t WRITE:1; /**< bit: 0 Non-secure APB alias write enable, non-secure AHB writes to non-secure regions enable */
  544. uint32_t :31; /**< bit: 1..31 Reserved */
  545. } bit; /**< Structure used for bit access */
  546. uint32_t reg; /**< Type used for register access */
  547. } NVMCTRL_NONSEC_Type;
  548. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  549. #define NVMCTRL_NONSEC_OFFSET (0x40) /**< (NVMCTRL_NONSEC) Non-secure Write Enable Offset */
  550. #define NVMCTRL_NONSEC_RESETVALUE _U_(0x01) /**< (NVMCTRL_NONSEC) Non-secure Write Enable Reset Value */
  551. #define NVMCTRL_NONSEC_WRITE_Pos 0 /**< (NVMCTRL_NONSEC) Non-secure APB alias write enable, non-secure AHB writes to non-secure regions enable Position */
  552. #define NVMCTRL_NONSEC_WRITE_Msk (_U_(0x1) << NVMCTRL_NONSEC_WRITE_Pos) /**< (NVMCTRL_NONSEC) Non-secure APB alias write enable, non-secure AHB writes to non-secure regions enable Mask */
  553. #define NVMCTRL_NONSEC_WRITE NVMCTRL_NONSEC_WRITE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_NONSEC_WRITE_Msk instead */
  554. #define NVMCTRL_NONSEC_MASK _U_(0x01) /**< \deprecated (NVMCTRL_NONSEC) Register MASK (Use NVMCTRL_NONSEC_Msk instead) */
  555. #define NVMCTRL_NONSEC_Msk _U_(0x01) /**< (NVMCTRL_NONSEC) Register Mask */
  556. /* -------- NVMCTRL_NSCHK : (NVMCTRL Offset: 0x44) (R/W 32) Non-secure Write Reference Value -------- */
  557. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  558. typedef union {
  559. struct {
  560. uint32_t WRITE:1; /**< bit: 0 Reference value to be checked against NONSEC.WRITE */
  561. uint32_t :31; /**< bit: 1..31 Reserved */
  562. } bit; /**< Structure used for bit access */
  563. uint32_t reg; /**< Type used for register access */
  564. } NVMCTRL_NSCHK_Type;
  565. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  566. #define NVMCTRL_NSCHK_OFFSET (0x44) /**< (NVMCTRL_NSCHK) Non-secure Write Reference Value Offset */
  567. #define NVMCTRL_NSCHK_RESETVALUE _U_(0x01) /**< (NVMCTRL_NSCHK) Non-secure Write Reference Value Reset Value */
  568. #define NVMCTRL_NSCHK_WRITE_Pos 0 /**< (NVMCTRL_NSCHK) Reference value to be checked against NONSEC.WRITE Position */
  569. #define NVMCTRL_NSCHK_WRITE_Msk (_U_(0x1) << NVMCTRL_NSCHK_WRITE_Pos) /**< (NVMCTRL_NSCHK) Reference value to be checked against NONSEC.WRITE Mask */
  570. #define NVMCTRL_NSCHK_WRITE NVMCTRL_NSCHK_WRITE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use NVMCTRL_NSCHK_WRITE_Msk instead */
  571. #define NVMCTRL_NSCHK_MASK _U_(0x01) /**< \deprecated (NVMCTRL_NSCHK) Register MASK (Use NVMCTRL_NSCHK_Msk instead) */
  572. #define NVMCTRL_NSCHK_Msk _U_(0x01) /**< (NVMCTRL_NSCHK) Register Mask */
  573. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  574. /** \brief NVMCTRL hardware registers */
  575. typedef struct { /* Non-Volatile Memory Controller */
  576. __O NVMCTRL_CTRLA_Type CTRLA; /**< Offset: 0x00 ( /W 16) Control A */
  577. __I uint8_t Reserved1[2];
  578. __IO NVMCTRL_CTRLB_Type CTRLB; /**< Offset: 0x04 (R/W 32) Control B */
  579. __IO NVMCTRL_CTRLC_Type CTRLC; /**< Offset: 0x08 (R/W 8) Control C */
  580. __I uint8_t Reserved2[1];
  581. __IO NVMCTRL_EVCTRL_Type EVCTRL; /**< Offset: 0x0A (R/W 8) Event Control */
  582. __I uint8_t Reserved3[1];
  583. __IO NVMCTRL_INTENCLR_Type INTENCLR; /**< Offset: 0x0C (R/W 8) Interrupt Enable Clear */
  584. __I uint8_t Reserved4[3];
  585. __IO NVMCTRL_INTENSET_Type INTENSET; /**< Offset: 0x10 (R/W 8) Interrupt Enable Set */
  586. __I uint8_t Reserved5[3];
  587. __IO NVMCTRL_INTFLAG_Type INTFLAG; /**< Offset: 0x14 (R/W 8) Interrupt Flag Status and Clear */
  588. __I uint8_t Reserved6[3];
  589. __I NVMCTRL_STATUS_Type STATUS; /**< Offset: 0x18 (R/ 16) Status */
  590. __I uint8_t Reserved7[2];
  591. __IO NVMCTRL_ADDR_Type ADDR; /**< Offset: 0x1C (R/W 32) Address */
  592. __IO NVMCTRL_SULCK_Type SULCK; /**< Offset: 0x20 (R/W 16) Secure Unlock Register */
  593. __IO NVMCTRL_NSULCK_Type NSULCK; /**< Offset: 0x22 (R/W 16) Non-Secure Unlock Register */
  594. __IO NVMCTRL_PARAM_Type PARAM; /**< Offset: 0x24 (R/W 32) NVM Parameter */
  595. __I uint8_t Reserved8[8];
  596. __O NVMCTRL_DSCC_Type DSCC; /**< Offset: 0x30 ( /W 32) Data Scramble Configuration */
  597. __IO NVMCTRL_SECCTRL_Type SECCTRL; /**< Offset: 0x34 (R/W 32) Security Control */
  598. __IO NVMCTRL_SCFGB_Type SCFGB; /**< Offset: 0x38 (R/W 32) Secure Boot Configuration */
  599. __IO NVMCTRL_SCFGAD_Type SCFGAD; /**< Offset: 0x3C (R/W 32) Secure Application and Data Configuration */
  600. __IO NVMCTRL_NONSEC_Type NONSEC; /**< Offset: 0x40 (R/W 32) Non-secure Write Enable */
  601. __IO NVMCTRL_NSCHK_Type NSCHK; /**< Offset: 0x44 (R/W 32) Non-secure Write Reference Value */
  602. } Nvmctrl;
  603. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  604. #if defined (__GNUC__) || defined (__CC_ARM)
  605. #define SECTION_AUX __attribute__ ((section(".flash")))
  606. #define SECTION_BOCOR __attribute__ ((section(".flash")))
  607. #define SECTION_DATAFLASH __attribute__ ((section(".flash")))
  608. #define SECTION_SW_CALIB __attribute__ ((section(".flash")))
  609. #define SECTION_TEMP_LOG __attribute__ ((section(".flash")))
  610. #define SECTION_USER_PAGE __attribute__ ((section(".flash")))
  611. #elif defined(__ICCARM__)
  612. #define SECTION_AUX @".flash"
  613. #define SECTION_BOCOR @".flash"
  614. #define SECTION_DATAFLASH @".flash"
  615. #define SECTION_SW_CALIB @".flash"
  616. #define SECTION_TEMP_LOG @".flash"
  617. #define SECTION_USER_PAGE @".flash"
  618. #endif
  619. #define SECTION_NVMCTRL_AUX SECTION_AUX /**< \brief \deprecated Old style definition. Use SECTION_AUX instead */
  620. #define SECTION_NVMCTRL_BOCOR SECTION_BOCOR /**< \brief \deprecated Old style definition. Use SECTION_BOCOR instead */
  621. #define SECTION_NVMCTRL_DATAFLASH SECTION_DATAFLASH /**< \brief \deprecated Old style definition. Use SECTION_DATAFLASH instead */
  622. #define SECTION_NVMCTRL_SW_CALIB SECTION_SW_CALIB /**< \brief \deprecated Old style definition. Use SECTION_SW_CALIB instead */
  623. #define SECTION_NVMCTRL_TEMP_LOG SECTION_TEMP_LOG /**< \brief \deprecated Old style definition. Use SECTION_TEMP_LOG instead */
  624. #define SECTION_NVMCTRL_USER SECTION_USER_PAGE /**< \brief \deprecated Old style definition. Use SECTION_USER_PAGE instead */
  625. /** @} end of Non-Volatile Memory Controller */
  626. /** \addtogroup fuses_api Peripheral Software API
  627. * @{
  628. */
  629. /* ************************************************************************** */
  630. /** SOFTWARE PERIPHERAL API DEFINITION FOR NON-VOLATILE FUSES */
  631. /* ************************************************************************** */
  632. #define ADC_FUSES_BIASCOMP_ADDR SW_CALIB_ADDR
  633. #define ADC_FUSES_BIASCOMP_Pos 3 /**< \brief (SW_CALIB_ADDR) ADC Comparator Scaling */
  634. #define ADC_FUSES_BIASCOMP_Msk (_U_(0x7) << ADC_FUSES_BIASCOMP_Pos)
  635. #define ADC_FUSES_BIASCOMP(value) (ADC_FUSES_BIASCOMP_Msk & ((value) << ADC_FUSES_BIASCOMP_Pos))
  636. #define ADC_FUSES_BIASREFBUF_ADDR SW_CALIB_ADDR
  637. #define ADC_FUSES_BIASREFBUF_Pos 0 /**< \brief (SW_CALIB_ADDR) ADC Bias Reference Buffer Scaling */
  638. #define ADC_FUSES_BIASREFBUF_Msk (_U_(0x7) << ADC_FUSES_BIASREFBUF_Pos)
  639. #define ADC_FUSES_BIASREFBUF(value) (ADC_FUSES_BIASREFBUF_Msk & ((value) << ADC_FUSES_BIASREFBUF_Pos))
  640. #define FUSES_BOD33USERLEVEL_ADDR USER_PAGE_ADDR
  641. #define FUSES_BOD33USERLEVEL_Pos 7 /**< \brief (USER_PAGE_ADDR) BOD33 User Level */
  642. #define FUSES_BOD33USERLEVEL_Msk (_U_(0x3F) << FUSES_BOD33USERLEVEL_Pos)
  643. #define FUSES_BOD33USERLEVEL(value) (FUSES_BOD33USERLEVEL_Msk & ((value) << FUSES_BOD33USERLEVEL_Pos))
  644. #define FUSES_BOD33_ACTION_ADDR USER_PAGE_ADDR
  645. #define FUSES_BOD33_ACTION_Pos 14 /**< \brief (USER_PAGE_ADDR) BOD33 Action */
  646. #define FUSES_BOD33_ACTION_Msk (_U_(0x3) << FUSES_BOD33_ACTION_Pos)
  647. #define FUSES_BOD33_ACTION(value) (FUSES_BOD33_ACTION_Msk & ((value) << FUSES_BOD33_ACTION_Pos))
  648. #define FUSES_BOD33_DIS_ADDR USER_PAGE_ADDR
  649. #define FUSES_BOD33_DIS_Pos 13 /**< \brief (USER_PAGE_ADDR) BOD33 Disable */
  650. #define FUSES_BOD33_DIS_Msk (_U_(0x1) << FUSES_BOD33_DIS_Pos)
  651. #define FUSES_BOD33_HYST_ADDR (USER_PAGE_ADDR + 4)
  652. #define FUSES_BOD33_HYST_Pos 9 /**< \brief (USER_PAGE_ADDR) BOD33 Hysteresis */
  653. #define FUSES_BOD33_HYST_Msk (_U_(0x1) << FUSES_BOD33_HYST_Pos)
  654. #define FUSES_BOOTROM_BOCORCRC_ADDR (BOCOR_ADDR + 8)
  655. #define FUSES_BOOTROM_BOCORCRC_Pos 0 /**< \brief (BOCOR_ADDR) CRC for BOCOR0 DWORD */
  656. #define FUSES_BOOTROM_BOCORCRC_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORCRC_Pos)
  657. #define FUSES_BOOTROM_BOCORCRC(value) (FUSES_BOOTROM_BOCORCRC_Msk & ((value) << FUSES_BOOTROM_BOCORCRC_Pos))
  658. #define FUSES_BOOTROM_BOCORHASH_0_ADDR (BOCOR_ADDR + 224)
  659. #define FUSES_BOOTROM_BOCORHASH_0_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 31:0 */
  660. #define FUSES_BOOTROM_BOCORHASH_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_0_Pos)
  661. #define FUSES_BOOTROM_BOCORHASH_0(value) (FUSES_BOOTROM_BOCORHASH_0_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_0_Pos))
  662. #define FUSES_BOOTROM_BOCORHASH_1_ADDR (BOCOR_ADDR + 228)
  663. #define FUSES_BOOTROM_BOCORHASH_1_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 63:32 */
  664. #define FUSES_BOOTROM_BOCORHASH_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_1_Pos)
  665. #define FUSES_BOOTROM_BOCORHASH_1(value) (FUSES_BOOTROM_BOCORHASH_1_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_1_Pos))
  666. #define FUSES_BOOTROM_BOCORHASH_2_ADDR (BOCOR_ADDR + 232)
  667. #define FUSES_BOOTROM_BOCORHASH_2_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 95:64 */
  668. #define FUSES_BOOTROM_BOCORHASH_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_2_Pos)
  669. #define FUSES_BOOTROM_BOCORHASH_2(value) (FUSES_BOOTROM_BOCORHASH_2_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_2_Pos))
  670. #define FUSES_BOOTROM_BOCORHASH_3_ADDR (BOCOR_ADDR + 236)
  671. #define FUSES_BOOTROM_BOCORHASH_3_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 127:96 */
  672. #define FUSES_BOOTROM_BOCORHASH_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_3_Pos)
  673. #define FUSES_BOOTROM_BOCORHASH_3(value) (FUSES_BOOTROM_BOCORHASH_3_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_3_Pos))
  674. #define FUSES_BOOTROM_BOCORHASH_4_ADDR (BOCOR_ADDR + 240)
  675. #define FUSES_BOOTROM_BOCORHASH_4_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 159:128 */
  676. #define FUSES_BOOTROM_BOCORHASH_4_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_4_Pos)
  677. #define FUSES_BOOTROM_BOCORHASH_4(value) (FUSES_BOOTROM_BOCORHASH_4_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_4_Pos))
  678. #define FUSES_BOOTROM_BOCORHASH_5_ADDR (BOCOR_ADDR + 244)
  679. #define FUSES_BOOTROM_BOCORHASH_5_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 191:160 */
  680. #define FUSES_BOOTROM_BOCORHASH_5_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_5_Pos)
  681. #define FUSES_BOOTROM_BOCORHASH_5(value) (FUSES_BOOTROM_BOCORHASH_5_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_5_Pos))
  682. #define FUSES_BOOTROM_BOCORHASH_6_ADDR (BOCOR_ADDR + 248)
  683. #define FUSES_BOOTROM_BOCORHASH_6_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 223:192 */
  684. #define FUSES_BOOTROM_BOCORHASH_6_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_6_Pos)
  685. #define FUSES_BOOTROM_BOCORHASH_6(value) (FUSES_BOOTROM_BOCORHASH_6_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_6_Pos))
  686. #define FUSES_BOOTROM_BOCORHASH_7_ADDR (BOCOR_ADDR + 252)
  687. #define FUSES_BOOTROM_BOCORHASH_7_Pos 0 /**< \brief (BOCOR_ADDR) Boot Configuration Row Hash bits 255:224 */
  688. #define FUSES_BOOTROM_BOCORHASH_7_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOCORHASH_7_Pos)
  689. #define FUSES_BOOTROM_BOCORHASH_7(value) (FUSES_BOOTROM_BOCORHASH_7_Msk & ((value) << FUSES_BOOTROM_BOCORHASH_7_Pos))
  690. #define FUSES_BOOTROM_BOOTKEY_0_ADDR (BOCOR_ADDR + 80)
  691. #define FUSES_BOOTROM_BOOTKEY_0_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 31:0 */
  692. #define FUSES_BOOTROM_BOOTKEY_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_0_Pos)
  693. #define FUSES_BOOTROM_BOOTKEY_0(value) (FUSES_BOOTROM_BOOTKEY_0_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_0_Pos))
  694. #define FUSES_BOOTROM_BOOTKEY_1_ADDR (BOCOR_ADDR + 84)
  695. #define FUSES_BOOTROM_BOOTKEY_1_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 63:32 */
  696. #define FUSES_BOOTROM_BOOTKEY_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_1_Pos)
  697. #define FUSES_BOOTROM_BOOTKEY_1(value) (FUSES_BOOTROM_BOOTKEY_1_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_1_Pos))
  698. #define FUSES_BOOTROM_BOOTKEY_2_ADDR (BOCOR_ADDR + 88)
  699. #define FUSES_BOOTROM_BOOTKEY_2_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 95:64 */
  700. #define FUSES_BOOTROM_BOOTKEY_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_2_Pos)
  701. #define FUSES_BOOTROM_BOOTKEY_2(value) (FUSES_BOOTROM_BOOTKEY_2_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_2_Pos))
  702. #define FUSES_BOOTROM_BOOTKEY_3_ADDR (BOCOR_ADDR + 92)
  703. #define FUSES_BOOTROM_BOOTKEY_3_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 127:96 */
  704. #define FUSES_BOOTROM_BOOTKEY_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_3_Pos)
  705. #define FUSES_BOOTROM_BOOTKEY_3(value) (FUSES_BOOTROM_BOOTKEY_3_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_3_Pos))
  706. #define FUSES_BOOTROM_BOOTKEY_4_ADDR (BOCOR_ADDR + 96)
  707. #define FUSES_BOOTROM_BOOTKEY_4_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 159:128 */
  708. #define FUSES_BOOTROM_BOOTKEY_4_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_4_Pos)
  709. #define FUSES_BOOTROM_BOOTKEY_4(value) (FUSES_BOOTROM_BOOTKEY_4_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_4_Pos))
  710. #define FUSES_BOOTROM_BOOTKEY_5_ADDR (BOCOR_ADDR + 100)
  711. #define FUSES_BOOTROM_BOOTKEY_5_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 191:160 */
  712. #define FUSES_BOOTROM_BOOTKEY_5_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_5_Pos)
  713. #define FUSES_BOOTROM_BOOTKEY_5(value) (FUSES_BOOTROM_BOOTKEY_5_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_5_Pos))
  714. #define FUSES_BOOTROM_BOOTKEY_6_ADDR (BOCOR_ADDR + 104)
  715. #define FUSES_BOOTROM_BOOTKEY_6_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 223:192 */
  716. #define FUSES_BOOTROM_BOOTKEY_6_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_6_Pos)
  717. #define FUSES_BOOTROM_BOOTKEY_6(value) (FUSES_BOOTROM_BOOTKEY_6_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_6_Pos))
  718. #define FUSES_BOOTROM_BOOTKEY_7_ADDR (BOCOR_ADDR + 108)
  719. #define FUSES_BOOTROM_BOOTKEY_7_Pos 0 /**< \brief (BOCOR_ADDR) Secure Boot Key bits 255:224 */
  720. #define FUSES_BOOTROM_BOOTKEY_7_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_BOOTKEY_7_Pos)
  721. #define FUSES_BOOTROM_BOOTKEY_7(value) (FUSES_BOOTROM_BOOTKEY_7_Msk & ((value) << FUSES_BOOTROM_BOOTKEY_7_Pos))
  722. #define FUSES_BOOTROM_BOOTOPT_ADDR BOCOR_ADDR
  723. #define FUSES_BOOTROM_BOOTOPT_Pos 24 /**< \brief (BOCOR_ADDR) Boot Option */
  724. #define FUSES_BOOTROM_BOOTOPT_Msk (_U_(0xFF) << FUSES_BOOTROM_BOOTOPT_Pos)
  725. #define FUSES_BOOTROM_BOOTOPT(value) (FUSES_BOOTROM_BOOTOPT_Msk & ((value) << FUSES_BOOTROM_BOOTOPT_Pos))
  726. #define FUSES_BOOTROM_CEKEY0_0_ADDR (BOCOR_ADDR + 16)
  727. #define FUSES_BOOTROM_CEKEY0_0_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 0 bits 31:0 */
  728. #define FUSES_BOOTROM_CEKEY0_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY0_0_Pos)
  729. #define FUSES_BOOTROM_CEKEY0_0(value) (FUSES_BOOTROM_CEKEY0_0_Msk & ((value) << FUSES_BOOTROM_CEKEY0_0_Pos))
  730. #define FUSES_BOOTROM_CEKEY0_1_ADDR (BOCOR_ADDR + 20)
  731. #define FUSES_BOOTROM_CEKEY0_1_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 0 bits 63:32 */
  732. #define FUSES_BOOTROM_CEKEY0_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY0_1_Pos)
  733. #define FUSES_BOOTROM_CEKEY0_1(value) (FUSES_BOOTROM_CEKEY0_1_Msk & ((value) << FUSES_BOOTROM_CEKEY0_1_Pos))
  734. #define FUSES_BOOTROM_CEKEY0_2_ADDR (BOCOR_ADDR + 24)
  735. #define FUSES_BOOTROM_CEKEY0_2_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 0 bits 95:64 */
  736. #define FUSES_BOOTROM_CEKEY0_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY0_2_Pos)
  737. #define FUSES_BOOTROM_CEKEY0_2(value) (FUSES_BOOTROM_CEKEY0_2_Msk & ((value) << FUSES_BOOTROM_CEKEY0_2_Pos))
  738. #define FUSES_BOOTROM_CEKEY0_3_ADDR (BOCOR_ADDR + 28)
  739. #define FUSES_BOOTROM_CEKEY0_3_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 0 bits 127:96 */
  740. #define FUSES_BOOTROM_CEKEY0_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY0_3_Pos)
  741. #define FUSES_BOOTROM_CEKEY0_3(value) (FUSES_BOOTROM_CEKEY0_3_Msk & ((value) << FUSES_BOOTROM_CEKEY0_3_Pos))
  742. #define FUSES_BOOTROM_CEKEY1_0_ADDR (BOCOR_ADDR + 32)
  743. #define FUSES_BOOTROM_CEKEY1_0_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 1 bits 31:0 */
  744. #define FUSES_BOOTROM_CEKEY1_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY1_0_Pos)
  745. #define FUSES_BOOTROM_CEKEY1_0(value) (FUSES_BOOTROM_CEKEY1_0_Msk & ((value) << FUSES_BOOTROM_CEKEY1_0_Pos))
  746. #define FUSES_BOOTROM_CEKEY1_1_ADDR (BOCOR_ADDR + 36)
  747. #define FUSES_BOOTROM_CEKEY1_1_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 1 bits 63:32 */
  748. #define FUSES_BOOTROM_CEKEY1_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY1_1_Pos)
  749. #define FUSES_BOOTROM_CEKEY1_1(value) (FUSES_BOOTROM_CEKEY1_1_Msk & ((value) << FUSES_BOOTROM_CEKEY1_1_Pos))
  750. #define FUSES_BOOTROM_CEKEY1_2_ADDR (BOCOR_ADDR + 40)
  751. #define FUSES_BOOTROM_CEKEY1_2_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 1 bits 95:64 */
  752. #define FUSES_BOOTROM_CEKEY1_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY1_2_Pos)
  753. #define FUSES_BOOTROM_CEKEY1_2(value) (FUSES_BOOTROM_CEKEY1_2_Msk & ((value) << FUSES_BOOTROM_CEKEY1_2_Pos))
  754. #define FUSES_BOOTROM_CEKEY1_3_ADDR (BOCOR_ADDR + 44)
  755. #define FUSES_BOOTROM_CEKEY1_3_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 1 bits 127:96 */
  756. #define FUSES_BOOTROM_CEKEY1_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY1_3_Pos)
  757. #define FUSES_BOOTROM_CEKEY1_3(value) (FUSES_BOOTROM_CEKEY1_3_Msk & ((value) << FUSES_BOOTROM_CEKEY1_3_Pos))
  758. #define FUSES_BOOTROM_CEKEY2_0_ADDR (BOCOR_ADDR + 48)
  759. #define FUSES_BOOTROM_CEKEY2_0_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 2 bits 31:0 */
  760. #define FUSES_BOOTROM_CEKEY2_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY2_0_Pos)
  761. #define FUSES_BOOTROM_CEKEY2_0(value) (FUSES_BOOTROM_CEKEY2_0_Msk & ((value) << FUSES_BOOTROM_CEKEY2_0_Pos))
  762. #define FUSES_BOOTROM_CEKEY2_1_ADDR (BOCOR_ADDR + 52)
  763. #define FUSES_BOOTROM_CEKEY2_1_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 2 bits 63:32 */
  764. #define FUSES_BOOTROM_CEKEY2_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY2_1_Pos)
  765. #define FUSES_BOOTROM_CEKEY2_1(value) (FUSES_BOOTROM_CEKEY2_1_Msk & ((value) << FUSES_BOOTROM_CEKEY2_1_Pos))
  766. #define FUSES_BOOTROM_CEKEY2_2_ADDR (BOCOR_ADDR + 56)
  767. #define FUSES_BOOTROM_CEKEY2_2_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 2 bits 95:64 */
  768. #define FUSES_BOOTROM_CEKEY2_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY2_2_Pos)
  769. #define FUSES_BOOTROM_CEKEY2_2(value) (FUSES_BOOTROM_CEKEY2_2_Msk & ((value) << FUSES_BOOTROM_CEKEY2_2_Pos))
  770. #define FUSES_BOOTROM_CEKEY2_3_ADDR (BOCOR_ADDR + 60)
  771. #define FUSES_BOOTROM_CEKEY2_3_Pos 0 /**< \brief (BOCOR_ADDR) Chip Erase Key 2 bits 127:96 */
  772. #define FUSES_BOOTROM_CEKEY2_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CEKEY2_3_Pos)
  773. #define FUSES_BOOTROM_CEKEY2_3(value) (FUSES_BOOTROM_CEKEY2_3_Msk & ((value) << FUSES_BOOTROM_CEKEY2_3_Pos))
  774. #define FUSES_BOOTROM_CRCKEY_0_ADDR (BOCOR_ADDR + 64)
  775. #define FUSES_BOOTROM_CRCKEY_0_Pos 0 /**< \brief (BOCOR_ADDR) CRC Key bits 31:0 */
  776. #define FUSES_BOOTROM_CRCKEY_0_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CRCKEY_0_Pos)
  777. #define FUSES_BOOTROM_CRCKEY_0(value) (FUSES_BOOTROM_CRCKEY_0_Msk & ((value) << FUSES_BOOTROM_CRCKEY_0_Pos))
  778. #define FUSES_BOOTROM_CRCKEY_1_ADDR (BOCOR_ADDR + 68)
  779. #define FUSES_BOOTROM_CRCKEY_1_Pos 0 /**< \brief (BOCOR_ADDR) CRC Key bits 63:32 */
  780. #define FUSES_BOOTROM_CRCKEY_1_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CRCKEY_1_Pos)
  781. #define FUSES_BOOTROM_CRCKEY_1(value) (FUSES_BOOTROM_CRCKEY_1_Msk & ((value) << FUSES_BOOTROM_CRCKEY_1_Pos))
  782. #define FUSES_BOOTROM_CRCKEY_2_ADDR (BOCOR_ADDR + 72)
  783. #define FUSES_BOOTROM_CRCKEY_2_Pos 0 /**< \brief (BOCOR_ADDR) CRC Key bits 95:64 */
  784. #define FUSES_BOOTROM_CRCKEY_2_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CRCKEY_2_Pos)
  785. #define FUSES_BOOTROM_CRCKEY_2(value) (FUSES_BOOTROM_CRCKEY_2_Msk & ((value) << FUSES_BOOTROM_CRCKEY_2_Pos))
  786. #define FUSES_BOOTROM_CRCKEY_3_ADDR (BOCOR_ADDR + 76)
  787. #define FUSES_BOOTROM_CRCKEY_3_Pos 0 /**< \brief (BOCOR_ADDR) CRC Key bits 127:96 */
  788. #define FUSES_BOOTROM_CRCKEY_3_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_CRCKEY_3_Pos)
  789. #define FUSES_BOOTROM_CRCKEY_3(value) (FUSES_BOOTROM_CRCKEY_3_Msk & ((value) << FUSES_BOOTROM_CRCKEY_3_Pos))
  790. #define FUSES_BOOTROM_DXN_ADDR (USER_PAGE_ADDR + 4)
  791. #define FUSES_BOOTROM_DXN_Pos 12 /**< \brief (USER_PAGE_ADDR) DATA FLASH is eXecute Never */
  792. #define FUSES_BOOTROM_DXN_Msk (_U_(0x1) << FUSES_BOOTROM_DXN_Pos)
  793. #define FUSES_BOOTROM_NONSECA_ADDR (USER_PAGE_ADDR + 16)
  794. #define FUSES_BOOTROM_NONSECA_Pos 0 /**< \brief (USER_PAGE_ADDR) NONSEC fuses for the bridgeA peripherals */
  795. #define FUSES_BOOTROM_NONSECA_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_NONSECA_Pos)
  796. #define FUSES_BOOTROM_NONSECA(value) (FUSES_BOOTROM_NONSECA_Msk & ((value) << FUSES_BOOTROM_NONSECA_Pos))
  797. #define FUSES_BOOTROM_NONSECB_ADDR (USER_PAGE_ADDR + 20)
  798. #define FUSES_BOOTROM_NONSECB_Pos 0 /**< \brief (USER_PAGE_ADDR) NONSEC fuses for the bridgeB peripherals */
  799. #define FUSES_BOOTROM_NONSECB_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_NONSECB_Pos)
  800. #define FUSES_BOOTROM_NONSECB(value) (FUSES_BOOTROM_NONSECB_Msk & ((value) << FUSES_BOOTROM_NONSECB_Pos))
  801. #define FUSES_BOOTROM_NONSECC_ADDR (USER_PAGE_ADDR + 24)
  802. #define FUSES_BOOTROM_NONSECC_Pos 0 /**< \brief (USER_PAGE_ADDR) NONSEC fuses for the bridgeC peripherals */
  803. #define FUSES_BOOTROM_NONSECC_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_NONSECC_Pos)
  804. #define FUSES_BOOTROM_NONSECC(value) (FUSES_BOOTROM_NONSECC_Msk & ((value) << FUSES_BOOTROM_NONSECC_Pos))
  805. #define FUSES_BOOTROM_ROMVERSION_ADDR (BOCOR_ADDR + 12)
  806. #define FUSES_BOOTROM_ROMVERSION_Pos 0 /**< \brief (BOCOR_ADDR) BOOTROM Version */
  807. #define FUSES_BOOTROM_ROMVERSION_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_ROMVERSION_Pos)
  808. #define FUSES_BOOTROM_ROMVERSION(value) (FUSES_BOOTROM_ROMVERSION_Msk & ((value) << FUSES_BOOTROM_ROMVERSION_Pos))
  809. #define FUSES_BOOTROM_RXN_ADDR (USER_PAGE_ADDR + 4)
  810. #define FUSES_BOOTROM_RXN_Pos 11 /**< \brief (USER_PAGE_ADDR) RAM is eXecute Never */
  811. #define FUSES_BOOTROM_RXN_Msk (_U_(0x1) << FUSES_BOOTROM_RXN_Pos)
  812. #define FUSES_BOOTROM_USERCRC_ADDR (USER_PAGE_ADDR + 28)
  813. #define FUSES_BOOTROM_USERCRC_Pos 0 /**< \brief (USER_PAGE_ADDR) CRC for USER[1,2,3] DWORDS */
  814. #define FUSES_BOOTROM_USERCRC_Msk (_U_(0xFFFFFFFF) << FUSES_BOOTROM_USERCRC_Pos)
  815. #define FUSES_BOOTROM_USERCRC(value) (FUSES_BOOTROM_USERCRC_Msk & ((value) << FUSES_BOOTROM_USERCRC_Pos))
  816. #define FUSES_DFLLULP_DIV_PL0_ADDR SW_CALIB_ADDR
  817. #define FUSES_DFLLULP_DIV_PL0_Pos 6 /**< \brief (SW_CALIB_ADDR) DFLLULP DIV at PL0 */
  818. #define FUSES_DFLLULP_DIV_PL0_Msk (_U_(0x7) << FUSES_DFLLULP_DIV_PL0_Pos)
  819. #define FUSES_DFLLULP_DIV_PL0(value) (FUSES_DFLLULP_DIV_PL0_Msk & ((value) << FUSES_DFLLULP_DIV_PL0_Pos))
  820. #define FUSES_DFLLULP_DIV_PL2_ADDR SW_CALIB_ADDR
  821. #define FUSES_DFLLULP_DIV_PL2_Pos 9 /**< \brief (SW_CALIB_ADDR) DFLLULP DIV at PL2 */
  822. #define FUSES_DFLLULP_DIV_PL2_Msk (_U_(0x7) << FUSES_DFLLULP_DIV_PL2_Pos)
  823. #define FUSES_DFLLULP_DIV_PL2(value) (FUSES_DFLLULP_DIV_PL2_Msk & ((value) << FUSES_DFLLULP_DIV_PL2_Pos))
  824. #define FUSES_HOT_ADC_VAL_PTAT_ADDR (TEMP_LOG_ADDR + 4)
  825. #define FUSES_HOT_ADC_VAL_PTAT_Pos 20 /**< \brief (TEMP_LOG_ADDR) 12-bit ADC conversion at hot temperature PTAT */
  826. #define FUSES_HOT_ADC_VAL_PTAT_Msk (_U_(0xFFF) << FUSES_HOT_ADC_VAL_PTAT_Pos)
  827. #define FUSES_HOT_ADC_VAL_PTAT(value) (FUSES_HOT_ADC_VAL_PTAT_Msk & ((value) << FUSES_HOT_ADC_VAL_PTAT_Pos))
  828. #define FUSES_HOT_INT1V_VAL_ADDR (TEMP_LOG_ADDR + 4)
  829. #define FUSES_HOT_INT1V_VAL_Pos 0 /**< \brief (TEMP_LOG_ADDR) 2's complement of the internal 1V reference drift at hot temperature (versus a 1.0 centered value) */
  830. #define FUSES_HOT_INT1V_VAL_Msk (_U_(0xFF) << FUSES_HOT_INT1V_VAL_Pos)
  831. #define FUSES_HOT_INT1V_VAL(value) (FUSES_HOT_INT1V_VAL_Msk & ((value) << FUSES_HOT_INT1V_VAL_Pos))
  832. #define FUSES_HOT_TEMP_VAL_DEC_ADDR TEMP_LOG_ADDR
  833. #define FUSES_HOT_TEMP_VAL_DEC_Pos 20 /**< \brief (TEMP_LOG_ADDR) Decimal part of hot temperature */
  834. #define FUSES_HOT_TEMP_VAL_DEC_Msk (_U_(0xF) << FUSES_HOT_TEMP_VAL_DEC_Pos)
  835. #define FUSES_HOT_TEMP_VAL_DEC(value) (FUSES_HOT_TEMP_VAL_DEC_Msk & ((value) << FUSES_HOT_TEMP_VAL_DEC_Pos))
  836. #define FUSES_HOT_TEMP_VAL_INT_ADDR TEMP_LOG_ADDR
  837. #define FUSES_HOT_TEMP_VAL_INT_Pos 12 /**< \brief (TEMP_LOG_ADDR) Integer part of hot temperature in oC */
  838. #define FUSES_HOT_TEMP_VAL_INT_Msk (_U_(0xFF) << FUSES_HOT_TEMP_VAL_INT_Pos)
  839. #define FUSES_HOT_TEMP_VAL_INT(value) (FUSES_HOT_TEMP_VAL_INT_Msk & ((value) << FUSES_HOT_TEMP_VAL_INT_Pos))
  840. #define FUSES_ROOM_ADC_VAL_PTAT_ADDR (TEMP_LOG_ADDR + 4)
  841. #define FUSES_ROOM_ADC_VAL_PTAT_Pos 8 /**< \brief (TEMP_LOG_ADDR) 12-bit ADC conversion at room temperature PTAT */
  842. #define FUSES_ROOM_ADC_VAL_PTAT_Msk (_U_(0xFFF) << FUSES_ROOM_ADC_VAL_PTAT_Pos)
  843. #define FUSES_ROOM_ADC_VAL_PTAT(value) (FUSES_ROOM_ADC_VAL_PTAT_Msk & ((value) << FUSES_ROOM_ADC_VAL_PTAT_Pos))
  844. #define FUSES_ROOM_INT1V_VAL_ADDR TEMP_LOG_ADDR
  845. #define FUSES_ROOM_INT1V_VAL_Pos 24 /**< \brief (TEMP_LOG_ADDR) 2's complement of the internal 1V reference drift at room temperature (versus a 1.0 centered value) */
  846. #define FUSES_ROOM_INT1V_VAL_Msk (_U_(0xFF) << FUSES_ROOM_INT1V_VAL_Pos)
  847. #define FUSES_ROOM_INT1V_VAL(value) (FUSES_ROOM_INT1V_VAL_Msk & ((value) << FUSES_ROOM_INT1V_VAL_Pos))
  848. #define FUSES_ROOM_TEMP_VAL_DEC_ADDR TEMP_LOG_ADDR
  849. #define FUSES_ROOM_TEMP_VAL_DEC_Pos 8 /**< \brief (TEMP_LOG_ADDR) Decimal part of room temperature */
  850. #define FUSES_ROOM_TEMP_VAL_DEC_Msk (_U_(0xF) << FUSES_ROOM_TEMP_VAL_DEC_Pos)
  851. #define FUSES_ROOM_TEMP_VAL_DEC(value) (FUSES_ROOM_TEMP_VAL_DEC_Msk & ((value) << FUSES_ROOM_TEMP_VAL_DEC_Pos))
  852. #define FUSES_ROOM_TEMP_VAL_INT_ADDR TEMP_LOG_ADDR
  853. #define FUSES_ROOM_TEMP_VAL_INT_Pos 0 /**< \brief (TEMP_LOG_ADDR) Integer part of room temperature in oC */
  854. #define FUSES_ROOM_TEMP_VAL_INT_Msk (_U_(0xFF) << FUSES_ROOM_TEMP_VAL_INT_Pos)
  855. #define FUSES_ROOM_TEMP_VAL_INT(value) (FUSES_ROOM_TEMP_VAL_INT_Msk & ((value) << FUSES_ROOM_TEMP_VAL_INT_Pos))
  856. #define NVMCTRL_FUSES_BCREN_ADDR (BOCOR_ADDR + 4)
  857. #define NVMCTRL_FUSES_BCREN_Pos 17 /**< \brief (BOCOR_ADDR) Boot Configuration Read Enable */
  858. #define NVMCTRL_FUSES_BCREN_Msk (_U_(0x1) << NVMCTRL_FUSES_BCREN_Pos)
  859. #define NVMCTRL_FUSES_BCWEN_ADDR (BOCOR_ADDR + 4)
  860. #define NVMCTRL_FUSES_BCWEN_Pos 16 /**< \brief (BOCOR_ADDR) Boot Configuration Write Enable */
  861. #define NVMCTRL_FUSES_BCWEN_Msk (_U_(0x1) << NVMCTRL_FUSES_BCWEN_Pos)
  862. #define NVMCTRL_FUSES_NSULCK_ADDR USER_PAGE_ADDR
  863. #define NVMCTRL_FUSES_NSULCK_Pos 3 /**< \brief (USER_PAGE_ADDR) NVM Non-Secure Region Locks */
  864. #define NVMCTRL_FUSES_NSULCK_Msk (_U_(0x7) << NVMCTRL_FUSES_NSULCK_Pos)
  865. #define NVMCTRL_FUSES_NSULCK(value) (NVMCTRL_FUSES_NSULCK_Msk & ((value) << NVMCTRL_FUSES_NSULCK_Pos))
  866. #define NVMCTRL_FUSES_SULCK_ADDR USER_PAGE_ADDR
  867. #define NVMCTRL_FUSES_SULCK_Pos 0 /**< \brief (USER_PAGE_ADDR) NVM Secure Region Locks */
  868. #define NVMCTRL_FUSES_SULCK_Msk (_U_(0x7) << NVMCTRL_FUSES_SULCK_Pos)
  869. #define NVMCTRL_FUSES_SULCK(value) (NVMCTRL_FUSES_SULCK_Msk & ((value) << NVMCTRL_FUSES_SULCK_Pos))
  870. #define NVMCTRL_FUSES_URWEN_ADDR (USER_PAGE_ADDR + 12)
  871. #define NVMCTRL_FUSES_URWEN_Pos 0 /**< \brief (USER_PAGE_ADDR) User Row Write Enable */
  872. #define NVMCTRL_FUSES_URWEN_Msk (_U_(0x1) << NVMCTRL_FUSES_URWEN_Pos)
  873. #define WDT_FUSES_ALWAYSON_ADDR USER_PAGE_ADDR
  874. #define WDT_FUSES_ALWAYSON_Pos 27 /**< \brief (USER_PAGE_ADDR) WDT Always On */
  875. #define WDT_FUSES_ALWAYSON_Msk (_U_(0x1) << WDT_FUSES_ALWAYSON_Pos)
  876. #define WDT_FUSES_ENABLE_ADDR USER_PAGE_ADDR
  877. #define WDT_FUSES_ENABLE_Pos 26 /**< \brief (USER_PAGE_ADDR) WDT Enable */
  878. #define WDT_FUSES_ENABLE_Msk (_U_(0x1) << WDT_FUSES_ENABLE_Pos)
  879. #define WDT_FUSES_EWOFFSET_ADDR (USER_PAGE_ADDR + 4)
  880. #define WDT_FUSES_EWOFFSET_Pos 4 /**< \brief (USER_PAGE_ADDR) WDT Early Warning Offset */
  881. #define WDT_FUSES_EWOFFSET_Msk (_U_(0xF) << WDT_FUSES_EWOFFSET_Pos)
  882. #define WDT_FUSES_EWOFFSET(value) (WDT_FUSES_EWOFFSET_Msk & ((value) << WDT_FUSES_EWOFFSET_Pos))
  883. #define WDT_FUSES_PER_ADDR USER_PAGE_ADDR
  884. #define WDT_FUSES_PER_Pos 28 /**< \brief (USER_PAGE_ADDR) WDT Period */
  885. #define WDT_FUSES_PER_Msk (_U_(0xF) << WDT_FUSES_PER_Pos)
  886. #define WDT_FUSES_PER(value) (WDT_FUSES_PER_Msk & ((value) << WDT_FUSES_PER_Pos))
  887. #define WDT_FUSES_RUNSTDBY_ADDR USER_PAGE_ADDR
  888. #define WDT_FUSES_RUNSTDBY_Pos 25 /**< \brief (USER_PAGE_ADDR) WDT Run During Standby */
  889. #define WDT_FUSES_RUNSTDBY_Msk (_U_(0x1) << WDT_FUSES_RUNSTDBY_Pos)
  890. #define WDT_FUSES_WEN_ADDR (USER_PAGE_ADDR + 4)
  891. #define WDT_FUSES_WEN_Pos 8 /**< \brief (USER_PAGE_ADDR) WDT Window Mode Enable */
  892. #define WDT_FUSES_WEN_Msk (_U_(0x1) << WDT_FUSES_WEN_Pos)
  893. #define WDT_FUSES_WINDOW_ADDR (USER_PAGE_ADDR + 4)
  894. #define WDT_FUSES_WINDOW_Pos 0 /**< \brief (USER_PAGE_ADDR) WDT Window */
  895. #define WDT_FUSES_WINDOW_Msk (_U_(0xF) << WDT_FUSES_WINDOW_Pos)
  896. #define WDT_FUSES_WINDOW(value) (WDT_FUSES_WINDOW_Msk & ((value) << WDT_FUSES_WINDOW_Pos))
  897. /** @} end of Peripheral Software API */
  898. #endif /* _SAML11_NVMCTRL_COMPONENT_H_ */