1 /*
2  * Copyright 2023 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef SOC_IPS_H
8 #define SOC_IPS_H
9 
10 /**
11 *   @file   Soc_Ips.h
12 *
13 *   @addtogroup BASENXP_COMPONENT
14 *   @{
15 */
16 
17 #ifdef __cplusplus
18 extern "C"{
19 #endif
20 
21 
22 /*==================================================================================================
23 *                                         INCLUDE FILES
24 * 1) system and project includes
25 * 2) needed interfaces from external units
26 * 3) internal and external interfaces from this unit
27 ==================================================================================================*/
28 #include "Platform_Types.h"
29 #include "IpVersionMacros.h"
30 
31 /*==================================================================================================
32 *                               SOURCE FILE VERSION INFORMATION
33 ==================================================================================================*/
34 #define SOC_IPS_VENDOR_ID                    43
35 #define SOC_IPS_MODULE_ID                    0
36 #define SOC_IPS_AR_RELEASE_MAJOR_VERSION     4
37 #define SOC_IPS_AR_RELEASE_MINOR_VERSION     7
38 #define SOC_IPS_AR_RELEASE_REVISION_VERSION  0
39 #define SOC_IPS_SW_MAJOR_VERSION             2
40 #define SOC_IPS_SW_MINOR_VERSION             0
41 #define SOC_IPS_SW_PATCH_VERSION             0
42 
43 /*==================================================================================================
44 *                                      FILE VERSION CHECKS
45 ==================================================================================================*/
46 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
47     /* Check if source file and Platform_Types.h header file are of the same Autosar version */
48     #if ((SOC_IPS_AR_RELEASE_MAJOR_VERSION != PLATFORM_AR_RELEASE_MAJOR_VERSION) || \
49          (SOC_IPS_AR_RELEASE_MINOR_VERSION != PLATFORM_AR_RELEASE_MINOR_VERSION))
50         #error "AutoSar Version Numbers of Soc_Ips.h and Platform_Types.h are different"
51     #endif
52 
53     /* Check if source file and IpVersionMacros.h header file are of the same Autosar version */
54     #if ((SOC_IPS_AR_RELEASE_MAJOR_VERSION != IPVERSIONMACROS_AR_RELEASE_MAJOR_VERSION) || \
55          (SOC_IPS_AR_RELEASE_MINOR_VERSION != IPVERSIONMACROS_AR_RELEASE_MINOR_VERSION))
56         #error "AutoSar Version Numbers of Soc_Ips.h and IpVersionMacros.h are different"
57     #endif
58 #endif
59 
60 /*==================================================================================================
61 *                                           CONSTANTS
62 ==================================================================================================*/
63 /* 40 = 0x28 = CORTEXM_PLATFORM
64  * 02 = 0x02 = S32K1 DERIVATIVE ID
65  * 13 = 0x0C = Rev. 13
66  * 00 = 0x00 = Not a Draft      (A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z)
67 */
68 
69 /**
70 * @brief PMC IP Version: PMC v03.00.01.00
71 * @details S32K14X IP Versions
72 */
73 #define IPV_PMC                  (0x28020C00UL)
74 
75 
76 /**
77 * @brief PIT_RTI IP Version: PIT_RTI v05.00.06.11
78 * @details S32K14X IP Versions
79 */
80 #define IPV_PIT              (0x28020C00UL)
81 
82 
83 /**
84 * @brief RTC IP Version: RTC 00.00.03.06
85 * @details S32K14X IP Versions
86 */
87 #define IPV_RTC                (0x28020C00UL)
88 
89 
90 /**
91 * @brief ADCDIG IP Version: v00.00.18.00
92 * @details S32K14X IP Versions
93 */
94 #define IPV_ADCDIG               (0x28020C00UL)
95 
96 
97 /**
98 * @brief SIUL2 IP Version: v00.00.00.10
99 * @details S32K14X IP Versions
100 */
101 #define IPV_SIULV2               (0x28020C00UL)
102 
103 /**
104 * @brief MC IP Version: D_IP_magic_carpet_SYN_302 [v07.00.02.03]
105 * @details S32K14X IP Versions
106 */
107 #define IPV_MC                (0x28020C00UL)
108 
109 /**
110 * @brief PLLDIG IP Version: DA_IP_PLL_SYS_C40ESF3_008 [v00.00.03.04]
111 * @details S32K14X IP Versions
112 */
113 #define IPV_PLLDIG               (0x28020C00UL)
114 
115 /**
116 * @brief FXOSC IP Version: DA_IP_FXOSC_C [v40.00.00.02.05]
117 * @details S32K14X IP Versions
118 */
119 #define IPV_FXOSC               (0x28020C00UL)
120 
121 /**
122 * @brief FIRC IP Version: D_IP_FIRC_SYN_SPEC [v00.00.00.21]
123 * @details S32K14X IP Versions
124 */
125 #define IPV_FIRC                (0x28020C00UL)
126 
127 /**
128 * @brief GMAC IP Version: D_IP_3P_ENET_MAC_SYN_017 [v02.00.00.08]
129 * @details S32K14X IP Versions
130 */
131 #define IPV_GMAC                (0x28020C00UL)
132 
133 /**
134 * @brief C40ASF IP Version: M_IP_c40asf_spec [v00.00.00.04]
135 * @details S32K14X IP Versions
136 */
137 #define IPV_C40ASF              (0x28020C00UL)
138 
139 /**
140 * @brief PFLASH IP Version: pflash_c40asf_s32k_spec [v00.00.00.11]
141 * @details S32K14X IP Versions
142 */
143 #define IPV_PFLASH              (0x28020C00UL)
144 
145 /**
146 * @brief C40ASF IP Version: M_IP_c40asf_spec [v00.00.00.04]
147 * @details S32K14X IP Versions
148 */
149 #define IPV_FLASH_ARRAY         (0x28020C00UL)
150 
151 /**
152 * @brief PFLASH IP Version: pflash_c40asf_s32k_spec [v00.00.00.11]
153 * @details S32K14X IP Versions
154 */
155 #define IPV_FLASH_CONTROLLER    (0x28020C00UL)
156 
157 /**
158 * @brief QSPI IP Version: QSPI d_ip_quadspi_v2_sync_spec.025
159 * @details S32K14X IP Versions
160 */
161 #define IPV_QSPI                (0x28020C00UL)
162 
163 /**
164 * @brief Clock Monitoring Unit Frequency Check (CMU_FC) IP Version
165 * @details S32K14X IP Versions
166 */
167 #define IPV_CMU_FC              (0x28020C00UL)
168 
169 /**
170 * @brief Flexible I/O (FLEXIO) IP Version
171 * @details S32K14X IP Versions
172 */
173 #define IPV_FLEXIO              (0x28020C00UL)
174 
175 /*==================================================================================================
176 *                              REGISTER PROTECTION (REG_PROT)
177 ==================================================================================================*/
178 /**
179 * @brief Register Protection IP Version
180 * @details S32K14X IP Versions
181 */
182 #define IPV_REG_PROT                  (0x28020C00UL)
183 
184 /*==================================================================================================
185 *                              Software Erratas for Hardware Erratas
186 ==================================================================================================*/
187 
188 /**
189 * @brief Hardware errata for FlexCAN: (e050246)
190 * @details e050246 FlexCAN: Receive Message Buffers may have its Code Field corrupted
191 * if the Receive FIFO function is used (same to E050443)
192 */
193 #define ERR_IPV_FLEXCAN_E050246       (STD_ON)
194 
195 /**
196 * @brief Hardware errata for SCG: (e010777)
197 * @details e010777 SCG: Corrupted status when the system clock is switching.
198 */
199 #define ERR_IPV_SCG_ERR010777         (STD_ON)
200 
201 /*==================================================================================================
202 *                                       DEFINES AND MACROS
203 ==================================================================================================*/
204 /**
205 * @brief Enable CACHE management feature
206 * @details Global define to enable CACHE management at runtime
207 */
208 #define MCAL_CACHE_RUNTIME_MNGMNT (STD_ON)
209 
210 /**
211 * @brief number of EMIOS channels per each interrupt
212 * @details S32K14X Platform specific Defines/Configurations for EMIOS.
213 * Can be 1U, 2U, 4U, etc.. depending on the platform
214 */
215 #define EMIOS_CHANNELS_PER_INTERRUPT (4U)
216 
217 /*  ARM sub-architecture cortex M4 */
218 #define MCAL_PLATFORM_ARM_M4
219 
220 /*==================================================================================================
221 *                                             ENUMS
222 ==================================================================================================*/
223 
224 
225 /*==================================================================================================
226 *                                 STRUCTURES AND OTHER TYPEDEFS
227 ==================================================================================================*/
228 
229 
230 /*==================================================================================================
231 *                                 GLOBAL VARIABLE DECLARATIONS
232 ==================================================================================================*/
233 /**
234 * @brief User Mode feature is enabled
235 * @details User Mode feature - MCAL is configured to run in supervisor mode, by default.
236 */
237 
238 #ifdef MCAL_ENABLE_SUPERVISOR_MODE
239     #undef MCAL_ENABLE_USER_MODE_SUPPORT
240 #endif
241 /*==================================================================================================
242 *                                     FUNCTION PROTOTYPES
243 ==================================================================================================*/
244 
245 #ifdef __cplusplus
246 }
247 #endif
248 
249 
250 /** @} */
251 
252 #endif /* SOC_IPS_H */
253 
254