nvmctrl.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /**
  2. * \file
  3. *
  4. * \brief Instance 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_INSTANCE_H_
  31. #define _SAML11_NVMCTRL_INSTANCE_H_
  32. /* ========== Register definition for NVMCTRL peripheral ========== */
  33. #if (defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  34. #define REG_NVMCTRL_CTRLA (0x41004000) /**< (NVMCTRL) Control A */
  35. #define REG_NVMCTRL_CTRLB (0x41004004) /**< (NVMCTRL) Control B */
  36. #define REG_NVMCTRL_CTRLC (0x41004008) /**< (NVMCTRL) Control C */
  37. #define REG_NVMCTRL_EVCTRL (0x4100400A) /**< (NVMCTRL) Event Control */
  38. #define REG_NVMCTRL_INTENCLR (0x4100400C) /**< (NVMCTRL) Interrupt Enable Clear */
  39. #define REG_NVMCTRL_INTENSET (0x41004010) /**< (NVMCTRL) Interrupt Enable Set */
  40. #define REG_NVMCTRL_INTFLAG (0x41004014) /**< (NVMCTRL) Interrupt Flag Status and Clear */
  41. #define REG_NVMCTRL_STATUS (0x41004018) /**< (NVMCTRL) Status */
  42. #define REG_NVMCTRL_ADDR (0x4100401C) /**< (NVMCTRL) Address */
  43. #define REG_NVMCTRL_SULCK (0x41004020) /**< (NVMCTRL) Secure Unlock Register */
  44. #define REG_NVMCTRL_NSULCK (0x41004022) /**< (NVMCTRL) Non-Secure Unlock Register */
  45. #define REG_NVMCTRL_PARAM (0x41004024) /**< (NVMCTRL) NVM Parameter */
  46. #define REG_NVMCTRL_DSCC (0x41004030) /**< (NVMCTRL) Data Scramble Configuration */
  47. #define REG_NVMCTRL_SECCTRL (0x41004034) /**< (NVMCTRL) Security Control */
  48. #define REG_NVMCTRL_SCFGB (0x41004038) /**< (NVMCTRL) Secure Boot Configuration */
  49. #define REG_NVMCTRL_SCFGAD (0x4100403C) /**< (NVMCTRL) Secure Application and Data Configuration */
  50. #define REG_NVMCTRL_NONSEC (0x41004040) /**< (NVMCTRL) Non-secure Write Enable */
  51. #define REG_NVMCTRL_NSCHK (0x41004044) /**< (NVMCTRL) Non-secure Write Reference Value */
  52. #else
  53. #define REG_NVMCTRL_CTRLA (*(__O uint16_t*)0x41004000U) /**< (NVMCTRL) Control A */
  54. #define REG_NVMCTRL_CTRLB (*(__IO uint32_t*)0x41004004U) /**< (NVMCTRL) Control B */
  55. #define REG_NVMCTRL_CTRLC (*(__IO uint8_t*)0x41004008U) /**< (NVMCTRL) Control C */
  56. #define REG_NVMCTRL_EVCTRL (*(__IO uint8_t*)0x4100400AU) /**< (NVMCTRL) Event Control */
  57. #define REG_NVMCTRL_INTENCLR (*(__IO uint8_t*)0x4100400CU) /**< (NVMCTRL) Interrupt Enable Clear */
  58. #define REG_NVMCTRL_INTENSET (*(__IO uint8_t*)0x41004010U) /**< (NVMCTRL) Interrupt Enable Set */
  59. #define REG_NVMCTRL_INTFLAG (*(__IO uint8_t*)0x41004014U) /**< (NVMCTRL) Interrupt Flag Status and Clear */
  60. #define REG_NVMCTRL_STATUS (*(__I uint16_t*)0x41004018U) /**< (NVMCTRL) Status */
  61. #define REG_NVMCTRL_ADDR (*(__IO uint32_t*)0x4100401CU) /**< (NVMCTRL) Address */
  62. #define REG_NVMCTRL_SULCK (*(__IO uint16_t*)0x41004020U) /**< (NVMCTRL) Secure Unlock Register */
  63. #define REG_NVMCTRL_NSULCK (*(__IO uint16_t*)0x41004022U) /**< (NVMCTRL) Non-Secure Unlock Register */
  64. #define REG_NVMCTRL_PARAM (*(__IO uint32_t*)0x41004024U) /**< (NVMCTRL) NVM Parameter */
  65. #define REG_NVMCTRL_DSCC (*(__O uint32_t*)0x41004030U) /**< (NVMCTRL) Data Scramble Configuration */
  66. #define REG_NVMCTRL_SECCTRL (*(__IO uint32_t*)0x41004034U) /**< (NVMCTRL) Security Control */
  67. #define REG_NVMCTRL_SCFGB (*(__IO uint32_t*)0x41004038U) /**< (NVMCTRL) Secure Boot Configuration */
  68. #define REG_NVMCTRL_SCFGAD (*(__IO uint32_t*)0x4100403CU) /**< (NVMCTRL) Secure Application and Data Configuration */
  69. #define REG_NVMCTRL_NONSEC (*(__IO uint32_t*)0x41004040U) /**< (NVMCTRL) Non-secure Write Enable */
  70. #define REG_NVMCTRL_NSCHK (*(__IO uint32_t*)0x41004044U) /**< (NVMCTRL) Non-secure Write Reference Value */
  71. #endif /* (defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  72. /* ========== Instance Parameter definitions for NVMCTRL peripheral ========== */
  73. #define NVMCTRL_DATAFLASH_PAGES 32
  74. #define NVMCTRL_PMSB 3
  75. #define NVMCTRL_PSZ_BITS 6
  76. #define NVMCTRL_ROW_PAGES 4
  77. #define NVMCTRL_SECURE_IMPLEMENTED 1 /* Security Configuration implemented? */
  78. #define NVMCTRL_FLASH_SIZE 65536
  79. #define NVMCTRL_PAGE_SIZE 64
  80. #define NVMCTRL_PAGES 1024
  81. #define NVMCTRL_PAGES_PR_REGION 64
  82. #define NVMCTRL_PSM_0_FRMFW_FWS_1_MAX_FREQ 12000000
  83. #define NVMCTRL_PSM_0_FRMLP_FWS_0_MAX_FREQ 18000000
  84. #define NVMCTRL_PSM_0_FRMLP_FWS_1_MAX_FREQ 36000000
  85. #define NVMCTRL_PSM_0_FRMHS_FWS_0_MAX_FREQ 25000000
  86. #define NVMCTRL_PSM_0_FRMHS_FWS_1_MAX_FREQ 50000000
  87. #define NVMCTRL_PSM_1_FRMFW_FWS_1_MAX_FREQ 12000000
  88. #define NVMCTRL_PSM_1_FRMLP_FWS_0_MAX_FREQ 8000000
  89. #define NVMCTRL_PSM_1_FRMLP_FWS_1_MAX_FREQ 12000000
  90. #define NVMCTRL_INSTANCE_ID 34
  91. #endif /* _SAML11_NVMCTRL_INSTANCE_ */