1 /* 2 * Copyright 1997-2016 Freescale Semiconductor, Inc. 3 * Copyright 2016-2021 NXP 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 /*! 9 * @file S32K344_MCM_CM7.h 10 * @version 1.9 11 * @date 2021-10-27 12 * @brief Peripheral Access Layer for S32K344_MCM_CM7 13 * 14 * This file contains register definitions and macros for easy access to their 15 * bit fields. 16 * 17 * This file assumes LITTLE endian system. 18 */ 19 20 /** 21 * @page misra_violations MISRA-C:2012 violations 22 * 23 * @section [global] 24 * Violates MISRA 2012 Advisory Rule 2.3, local typedef not referenced 25 * The SoC header defines typedef for all modules. 26 * 27 * @section [global] 28 * Violates MISRA 2012 Advisory Rule 2.5, local macro not referenced 29 * The SoC header defines macros for all modules and registers. 30 * 31 * @section [global] 32 * Violates MISRA 2012 Advisory Directive 4.9, Function-like macro 33 * These are generated macros used for accessing the bit-fields from registers. 34 * 35 * @section [global] 36 * Violates MISRA 2012 Required Rule 5.1, identifier clash 37 * The supported compilers use more than 31 significant characters for identifiers. 38 * 39 * @section [global] 40 * Violates MISRA 2012 Required Rule 5.2, identifier clash 41 * The supported compilers use more than 31 significant characters for identifiers. 42 * 43 * @section [global] 44 * Violates MISRA 2012 Required Rule 5.4, identifier clash 45 * The supported compilers use more than 31 significant characters for identifiers. 46 * 47 * @section [global] 48 * Violates MISRA 2012 Required Rule 5.5, identifier clash 49 * The supported compilers use more than 31 significant characters for identifiers. 50 * 51 * @section [global] 52 * Violates MISRA 2012 Required Rule 21.1, defined macro '__I' is reserved to the compiler 53 * This type qualifier is needed to ensure correct I/O access and addressing. 54 */ 55 56 /* Prevention from multiple including the same memory map */ 57 #if !defined(S32K344_MCM_CM7_H_) /* Check if memory map has not been already included */ 58 #define S32K344_MCM_CM7_H_ 59 60 #include "S32K344_COMMON.h" 61 62 /* ---------------------------------------------------------------------------- 63 -- MCM_CM7 Peripheral Access Layer 64 ---------------------------------------------------------------------------- */ 65 66 /*! 67 * @addtogroup MCM_CM7_Peripheral_Access_Layer MCM_CM7 Peripheral Access Layer 68 * @{ 69 */ 70 71 /** MCM_CM7 - Size of Registers Arrays */ 72 #define MCM_CM7_LMEM_DESC__COUNT 5u 73 74 /** MCM_CM7 - Register Layout Typedef */ 75 typedef struct { 76 __I uint16_t PLREV; /**< SoC-defined Platform Revision, offset: 0x0 */ 77 __I uint16_t PCT; /**< Processor Core Type, offset: 0x2 */ 78 uint8_t RESERVED_0[8]; 79 __IO uint32_t CPCR; /**< Core Platform Control, offset: 0xC */ 80 __IO uint32_t ISCR; /**< Interrupt Status and Control, offset: 0x10 */ 81 uint8_t RESERVED_1[1004]; 82 __I uint32_t LMEM_DESC[MCM_CM7_LMEM_DESC__COUNT]; /**< Local Memory Descriptor 0..Local Memory Descriptor 4, array offset: 0x400, array step: 0x4 */ 83 } MCM_CM7_Type, *MCM_CM7_MemMapPtr; 84 85 /** Number of instances of the MCM_CM7 module. */ 86 #define MCM_CM7_INSTANCE_COUNT (1u) 87 88 /* MCM_CM7 - Peripheral instance base addresses */ 89 /** Peripheral MCM_0_CM7 base address */ 90 #define IP_MCM_0_CM7_BASE (0xE0080000u) 91 /** Peripheral MCM_0_CM7 base pointer */ 92 #define IP_MCM_0_CM7 ((MCM_CM7_Type *)IP_MCM_0_CM7_BASE) 93 /** Array initializer of MCM_CM7 peripheral base addresses */ 94 #define IP_MCM_CM7_BASE_ADDRS { IP_MCM_0_CM7_BASE } 95 /** Array initializer of MCM_CM7 peripheral base pointers */ 96 #define IP_MCM_CM7_BASE_PTRS { IP_MCM_0_CM7 } 97 98 /* ---------------------------------------------------------------------------- 99 -- MCM_CM7 Register Masks 100 ---------------------------------------------------------------------------- */ 101 102 /*! 103 * @addtogroup MCM_CM7_Register_Masks MCM_CM7 Register Masks 104 * @{ 105 */ 106 107 /*! @name PLREV - SoC-defined Platform Revision */ 108 /*! @{ */ 109 110 #define MCM_CM7_PLREV_PLREV_MASK (0xFFFFU) 111 #define MCM_CM7_PLREV_PLREV_SHIFT (0U) 112 #define MCM_CM7_PLREV_PLREV_WIDTH (16U) 113 #define MCM_CM7_PLREV_PLREV(x) (((uint16_t)(((uint16_t)(x)) << MCM_CM7_PLREV_PLREV_SHIFT)) & MCM_CM7_PLREV_PLREV_MASK) 114 /*! @} */ 115 116 /*! @name PCT - Processor Core Type */ 117 /*! @{ */ 118 119 #define MCM_CM7_PCT_PCT_MASK (0xFFFFU) 120 #define MCM_CM7_PCT_PCT_SHIFT (0U) 121 #define MCM_CM7_PCT_PCT_WIDTH (16U) 122 #define MCM_CM7_PCT_PCT(x) (((uint16_t)(((uint16_t)(x)) << MCM_CM7_PCT_PCT_SHIFT)) & MCM_CM7_PCT_PCT_MASK) 123 /*! @} */ 124 125 /*! @name CPCR - Core Platform Control */ 126 /*! @{ */ 127 128 #define MCM_CM7_CPCR_CM7_AHBSPRI_MASK (0x8000000U) 129 #define MCM_CM7_CPCR_CM7_AHBSPRI_SHIFT (27U) 130 #define MCM_CM7_CPCR_CM7_AHBSPRI_WIDTH (1U) 131 #define MCM_CM7_CPCR_CM7_AHBSPRI(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_CPCR_CM7_AHBSPRI_SHIFT)) & MCM_CM7_CPCR_CM7_AHBSPRI_MASK) 132 /*! @} */ 133 134 /*! @name ISCR - Interrupt Status and Control */ 135 /*! @{ */ 136 137 #define MCM_CM7_ISCR_WABS_MASK (0x20U) 138 #define MCM_CM7_ISCR_WABS_SHIFT (5U) 139 #define MCM_CM7_ISCR_WABS_WIDTH (1U) 140 #define MCM_CM7_ISCR_WABS(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_WABS_SHIFT)) & MCM_CM7_ISCR_WABS_MASK) 141 142 #define MCM_CM7_ISCR_WABSO_MASK (0x40U) 143 #define MCM_CM7_ISCR_WABSO_SHIFT (6U) 144 #define MCM_CM7_ISCR_WABSO_WIDTH (1U) 145 #define MCM_CM7_ISCR_WABSO(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_WABSO_SHIFT)) & MCM_CM7_ISCR_WABSO_MASK) 146 147 #define MCM_CM7_ISCR_FIOC_MASK (0x100U) 148 #define MCM_CM7_ISCR_FIOC_SHIFT (8U) 149 #define MCM_CM7_ISCR_FIOC_WIDTH (1U) 150 #define MCM_CM7_ISCR_FIOC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIOC_SHIFT)) & MCM_CM7_ISCR_FIOC_MASK) 151 152 #define MCM_CM7_ISCR_FDZC_MASK (0x200U) 153 #define MCM_CM7_ISCR_FDZC_SHIFT (9U) 154 #define MCM_CM7_ISCR_FDZC_WIDTH (1U) 155 #define MCM_CM7_ISCR_FDZC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FDZC_SHIFT)) & MCM_CM7_ISCR_FDZC_MASK) 156 157 #define MCM_CM7_ISCR_FOFC_MASK (0x400U) 158 #define MCM_CM7_ISCR_FOFC_SHIFT (10U) 159 #define MCM_CM7_ISCR_FOFC_WIDTH (1U) 160 #define MCM_CM7_ISCR_FOFC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FOFC_SHIFT)) & MCM_CM7_ISCR_FOFC_MASK) 161 162 #define MCM_CM7_ISCR_FUFC_MASK (0x800U) 163 #define MCM_CM7_ISCR_FUFC_SHIFT (11U) 164 #define MCM_CM7_ISCR_FUFC_WIDTH (1U) 165 #define MCM_CM7_ISCR_FUFC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FUFC_SHIFT)) & MCM_CM7_ISCR_FUFC_MASK) 166 167 #define MCM_CM7_ISCR_FIXC_MASK (0x1000U) 168 #define MCM_CM7_ISCR_FIXC_SHIFT (12U) 169 #define MCM_CM7_ISCR_FIXC_WIDTH (1U) 170 #define MCM_CM7_ISCR_FIXC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIXC_SHIFT)) & MCM_CM7_ISCR_FIXC_MASK) 171 172 #define MCM_CM7_ISCR_FIDC_MASK (0x8000U) 173 #define MCM_CM7_ISCR_FIDC_SHIFT (15U) 174 #define MCM_CM7_ISCR_FIDC_WIDTH (1U) 175 #define MCM_CM7_ISCR_FIDC(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIDC_SHIFT)) & MCM_CM7_ISCR_FIDC_MASK) 176 177 #define MCM_CM7_ISCR_WABE_MASK (0x200000U) 178 #define MCM_CM7_ISCR_WABE_SHIFT (21U) 179 #define MCM_CM7_ISCR_WABE_WIDTH (1U) 180 #define MCM_CM7_ISCR_WABE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_WABE_SHIFT)) & MCM_CM7_ISCR_WABE_MASK) 181 182 #define MCM_CM7_ISCR_FIOCE_MASK (0x1000000U) 183 #define MCM_CM7_ISCR_FIOCE_SHIFT (24U) 184 #define MCM_CM7_ISCR_FIOCE_WIDTH (1U) 185 #define MCM_CM7_ISCR_FIOCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIOCE_SHIFT)) & MCM_CM7_ISCR_FIOCE_MASK) 186 187 #define MCM_CM7_ISCR_FDZCE_MASK (0x2000000U) 188 #define MCM_CM7_ISCR_FDZCE_SHIFT (25U) 189 #define MCM_CM7_ISCR_FDZCE_WIDTH (1U) 190 #define MCM_CM7_ISCR_FDZCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FDZCE_SHIFT)) & MCM_CM7_ISCR_FDZCE_MASK) 191 192 #define MCM_CM7_ISCR_FOFCE_MASK (0x4000000U) 193 #define MCM_CM7_ISCR_FOFCE_SHIFT (26U) 194 #define MCM_CM7_ISCR_FOFCE_WIDTH (1U) 195 #define MCM_CM7_ISCR_FOFCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FOFCE_SHIFT)) & MCM_CM7_ISCR_FOFCE_MASK) 196 197 #define MCM_CM7_ISCR_FUFCE_MASK (0x8000000U) 198 #define MCM_CM7_ISCR_FUFCE_SHIFT (27U) 199 #define MCM_CM7_ISCR_FUFCE_WIDTH (1U) 200 #define MCM_CM7_ISCR_FUFCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FUFCE_SHIFT)) & MCM_CM7_ISCR_FUFCE_MASK) 201 202 #define MCM_CM7_ISCR_FIXCE_MASK (0x10000000U) 203 #define MCM_CM7_ISCR_FIXCE_SHIFT (28U) 204 #define MCM_CM7_ISCR_FIXCE_WIDTH (1U) 205 #define MCM_CM7_ISCR_FIXCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIXCE_SHIFT)) & MCM_CM7_ISCR_FIXCE_MASK) 206 207 #define MCM_CM7_ISCR_FIDCE_MASK (0x80000000U) 208 #define MCM_CM7_ISCR_FIDCE_SHIFT (31U) 209 #define MCM_CM7_ISCR_FIDCE_WIDTH (1U) 210 #define MCM_CM7_ISCR_FIDCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_ISCR_FIDCE_SHIFT)) & MCM_CM7_ISCR_FIDCE_MASK) 211 /*! @} */ 212 213 /*! @name LMEM_DESC - Local Memory Descriptor 0..Local Memory Descriptor 4 */ 214 /*! @{ */ 215 216 #define MCM_CM7_LMEM_DESC_MT_MASK (0xE000U) 217 #define MCM_CM7_LMEM_DESC_MT_SHIFT (13U) 218 #define MCM_CM7_LMEM_DESC_MT_WIDTH (3U) 219 #define MCM_CM7_LMEM_DESC_MT(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_MT_SHIFT)) & MCM_CM7_LMEM_DESC_MT_MASK) 220 221 #define MCM_CM7_LMEM_DESC_DPW_MASK (0xE0000U) 222 #define MCM_CM7_LMEM_DESC_DPW_SHIFT (17U) 223 #define MCM_CM7_LMEM_DESC_DPW_WIDTH (3U) 224 #define MCM_CM7_LMEM_DESC_DPW(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_DPW_SHIFT)) & MCM_CM7_LMEM_DESC_DPW_MASK) 225 226 #define MCM_CM7_LMEM_DESC_WY_MASK (0xF00000U) 227 #define MCM_CM7_LMEM_DESC_WY_SHIFT (20U) 228 #define MCM_CM7_LMEM_DESC_WY_WIDTH (4U) 229 #define MCM_CM7_LMEM_DESC_WY(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_WY_SHIFT)) & MCM_CM7_LMEM_DESC_WY_MASK) 230 231 #define MCM_CM7_LMEM_DESC_LMSZ_MASK (0xF000000U) 232 #define MCM_CM7_LMEM_DESC_LMSZ_SHIFT (24U) 233 #define MCM_CM7_LMEM_DESC_LMSZ_WIDTH (4U) 234 #define MCM_CM7_LMEM_DESC_LMSZ(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_LMSZ_SHIFT)) & MCM_CM7_LMEM_DESC_LMSZ_MASK) 235 236 #define MCM_CM7_LMEM_DESC_LMSZH_MASK (0x10000000U) 237 #define MCM_CM7_LMEM_DESC_LMSZH_SHIFT (28U) 238 #define MCM_CM7_LMEM_DESC_LMSZH_WIDTH (1U) 239 #define MCM_CM7_LMEM_DESC_LMSZH(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_LMSZH_SHIFT)) & MCM_CM7_LMEM_DESC_LMSZH_MASK) 240 241 #define MCM_CM7_LMEM_DESC_LMV_MASK (0x80000000U) 242 #define MCM_CM7_LMEM_DESC_LMV_SHIFT (31U) 243 #define MCM_CM7_LMEM_DESC_LMV_WIDTH (1U) 244 #define MCM_CM7_LMEM_DESC_LMV(x) (((uint32_t)(((uint32_t)(x)) << MCM_CM7_LMEM_DESC_LMV_SHIFT)) & MCM_CM7_LMEM_DESC_LMV_MASK) 245 /*! @} */ 246 247 /*! 248 * @} 249 */ /* end of group MCM_CM7_Register_Masks */ 250 251 /*! 252 * @} 253 */ /* end of group MCM_CM7_Peripheral_Access_Layer */ 254 255 #endif /* #if !defined(S32K344_MCM_CM7_H_) */ 256