README
1NXP S32 HAL
2###########
3
4Origin:
5 NXP Real-Time Drivers (RTD)
6 https://www.nxp.com/design/automotive-software-and-tools/real-time-drivers-rtd:AUTOMOTIVE-RTD
7
8Purpose:
9 Provides device header files and bare metal peripheral drivers for NXP S32 SoCs.
10 Zephyr shim drivers are built on top of these imported drivers to adapt the S32
11 drivers APIs to Zephyr APIs.
12
13Description:
14 The "drivers" directory contains a sub-set of NXP S32 Real-Time Drivers used to enable
15 Zephyr support on NXP S32 SoCs. The "soc" directory contains SoC-specific default
16 configuration for these drivers, used at driver initialization time. The configuration
17 was generated with NXP S32 Design Studio for S32 Platform.
18 Care should be taken to retain local changes to the driver files that are documented
19 in Patch List section of this document.
20
21Dependencies:
22 CMSIS header files
23
24URL:
25 https://www.nxp.com/design/automotive-software-and-tools/real-time-drivers-rtd:AUTOMOTIVE-RTD
26 https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-s32-platform:S32DS-S32PLATFORM
27
28Commit:
29 N/A
30
31Maintained-by:
32 External
33
34License:
35 BSD-3-Clause
36
37License Link:
38 https://spdx.org/licenses/BSD-3-Clause.html
39
40Patch List for S32K1:
41 - Define __MPU_PRESENT as 0 to be able to use NXP SYSMPU driver.
42 - Relocate uninitialized non-cacheable variables into .nocache section defined by Zephyr.
43 - Rename fields and macros of FTM device headers to allow compatibility with MCUX FTM driver.
44 - Rename fields and macros of FlexCAN device headers to allow compatibility with MCUX FlexCAN driver.
45
46Patch List for S32K3:
47 - Relocate uninitialized non-cacheable variables into .nocache section defined by Zephyr.
48 - Clear the EOC flag before Adc_Sar_CheckAndCallEocNotification() is called to avoid the
49 race condition that prevents the next end of conversion callback to be executed, when
50 a conversion is started inside the previous end of conversion completed callback.
51 - Relocate Emios_Ip_paxBase array in Emios_Mcl_Ip.c to read only region as suppose to be.
52 - Remove 'u' suffix from macros so that they can be used with LISTIFY in shim drivers.
53
54Patch List for S32Z/E:
55 - Relocate uninitialized non-cacheable variables into .nocache section defined by Zephyr.
56 - Remove 'u' suffix from macros so that they can be used with LISTIFY in shim drivers.
57 - Set the number of UART LINFlexD instances configured that bases on the number of
58 devicetree UART nodes enabled.
59 - Set the number of SPI instances configured that bases on the number of devicetree SPI
60 nodes enabled. Enable SPI slave support bases on CONFIG_SPI_SLAVE.
61 - Wrap the defined macros of each MRU instance base on devicetree MRU node so that they
62 is built when node enabled.
63 - Rename the PIT struct from TIMER to CHANNEL so that the MCUX PIT driver can be reused
64 for S32Z/E.
65 - Remove 'static inline' keywords from 'Netc_Eth_Ip_MSIX_Rx' function so that it can be
66 used as an extern function outside of the file declaration.
67