README
1MCUXpresso SDK
2##############
3
4Origin:
5 NXP MCUXpresso SDK
6 https://github.com/nxp-mcuxpresso/mcux-sdk
7 SHA: cc77cb1006ad2226fe45f0431e85add0fcd891d8
8
9 NXP Kinetis Connectivity Software
10 https://www.nxp.com/webapp/Download?colCode=KW40Z-CONNECTIVITY-SOFTWARE&appType=license&Parent_nodeId=1432854896956716810497&Parent_pageType=product
11 https://www.nxp.com/webapp/Download?colCode=MKW2XD-MRC20A-CONNECTIVITY-SW&appType=license&Parent_nodeId=1425322332576706617013&Parent_pageType=productI
12
13 NXP MCUXpresso SDK USB
14 https://github.com/nxp-mcuxpresso/mcux-sdk-middleware-usb
15 SHA: e0f1fc8488508db2f92ae454f4378513d96e83e2
16 SDK 2.16.000 merge
17
18 NXP MCUXpresso SDK Connectivity Framework
19 https://github.com/nxp-mcuxpresso/mcux-sdk-middleware-connectivity-framework
20 TAG: MCUX_2.15.000_RW610_RC1 - MCUX_2.16.000(For connected_mcu platform files used by MCXW71)
21
22 NXP MCUXpresso SDK Multicore middleware
23 https://github.com/nxp-mcuxpresso/mcux-sdk-middleware-multicore
24 TAG: MCUX_2.16.000
25
26 RPMsg Component
27 https://github.com/nxp-mcuxpresso/rpmsg-lite
28 TAG: v5.1.2
29
30 NXP MCUXpresso SDK secure subsystem
31 https://github.com/nxp-mcuxpresso/mcux-secure-subsystem
32 TAG: MCUX_2.16.000
33
34 NXP MCUXpresso SDK ieee_802.15.4 middleware
35 https://github.com/nxp-mcuxpresso/mcuxsdk-middleware-ieee_802.15.4
36 TAG: MCUX_2.16.000
37
38Status:
39 Some older Kinetis W family SoCs are not supported in MCUXpresso SDK, but
40 instead are supported by the Kinetis Connectivity Software. This
41 distribution is based on the same Kinetis SDK (ksdk) that MCUXpresso SDK
42 evolved from. These older SoCs have many of the same peripherals as KW41Z,
43 so we can reuse newer MCUXpresso SDK drivers from KW41Z, and import only the
44 SoC header files from the Kinetis Connectivity Software.
45
46 SoC Version (Release Date)
47 ----------------------------------------------------------------------------
48 MCR20A 1.0.0
49 MKW20Z4 1.0.1 (2015-12-10)
50 MKW30Z4 1.0.1 (2015-12-10)
51 MKW40Z4 1.0.1 (2015-12-10)
52
53Purpose:
54 Provides device header files and bare metal peripheral drivers for Kinetis,
55 LPC, and i.MX SoCs. Zephyr shim drivers are built on top of these imported
56 drivers to adapt the MCUXpresso SDK APIs to Zephyr APIs.
57
58Description:
59 This package is cloned from the Github for mcux-sdk. The cloned package is then copied and committ'ed
60 into NXP's Zephyr HAL. Care should be taken to retain local changes to the SDK files that are documented
61 in Patch List section of the document.
62
63Dependencies:
64 CMSIS header files
65
66URL:
67 https://github.com/NXPmicro/mcux-sdk
68 https://www.nxp.com/webapp/Download?colCode=KW40Z-CONNECTIVITY-SOFTWARE&appType=license&Parent_nodeId=1432854896956716810497&Parent_pageType=product
69 https://www.nxp.com/webapp/Download?colCode=MKW2XD-MRC20A-CONNECTIVITY-SW&appType=license&Parent_nodeId=1425322332576706617013&Parent_pageType=productI
70
71commit:
72 N/A
73
74Maintained-by:
75 External
76
77License:
78 BSD-3-Clause
79
80License Link:
81 https://spdx.org/licenses/BSD-3-Clause.html
82
83Patch List:
84 - mcux-sdk/drivers/caam/fsl_caam.c: Move used job descriptors in the CAAM driver from the stack to noncacheable section. At time of writing, there should
85 be four being used for entropy in zephyr.
86
87 - Patched middleware\mcux-sdk-middleware-usb\middleware_usb_common_header.cmake to remove "#include(component_osa)". PR submitted to upstream
88
89 - exclude the following directories and files from mcux-sdk update to reduce HAL size:
90 - All *.a binary archive files. Files are still present in the SDK github repo but are not allowed in Zephyr Project
91 - mcux-sdk\manifests
92 - mcux-sdk\docs
93 - devices\KW45*
94 - devices\K32W*
95 - devices\MIMX9301 through MIMX9351
96 - devices\MIMX9596
97
98 - Add usb_device_mcux_drv_port.h file for using MCUX SDK USB device controller driver easily in Zephyr.
99 - usb_device_mcux_drv_port.h contains the simplified structs, enums and APIs that MCUX SDK USB device controller drivers need.
100 - Update usb_device_ehci.c and usb_device_lpcip3511.c if in Zephyr environment.
101 - Add include of usb_device_mcux_drv_port.h.
102 - Remove include of usb_device.h and usb_device_dci.h.
103
104 - mcux-sdk-middleware-connectivity-framework: Add new CMake file connectivity_framework.cmake
105 - mcux-sdk-middleware-connectivity-framework: rw61x: Fix assertion OSA Mutex Alloc fail
106 - mcux-sdk-middleware-connectivity-framework: rw61x: Remove static from hci_cal_data buffers to be used inside Zephyr
107 - mcux-sdk-middleware-connectivity-framework: connected_mcu: Modified to remove a large amount of dependencies and adapt code to be supported with Zephyr
108 - Patched mcux-sdk\components\conn_fwloader\mcux-sdk\components\conn_fwloader\driver_conn_fwloader.cmake for TFM support
109 - mcux-sdk/drivers/s3mu/fsl_s3mu.c: rename _BIT macro to avoid collision from util_macro.h in Zephyr
110 - Modifed mcux\mcux-sdk\drivers\mipi_dsi_split\fsl_mipi_dsi.c line 541 to force 8.0 to float (8.0f) to avoid [-Double-promotion] warning
111 - Wrap conditional code setting SCB->VTOR with !defined(__ZEPHYR__) in system c files of the following parts:
112 - MCXN94x family
113 - MCXA14x family
114 - MCXA15x family
115 - MCXN23x family
116 - add kUSB_DeviceNotifySOF to usb_device_mcux_drv_port.h SDK USB stack already supports it in SDK 2.16.0
117 - mcux-sdk/drivers/adc12/fsl_adc12.c: add guards to avoid compilation warnings when building
118 with SDK clock control driver disabled.
119 - Update the driver in mcux-sdk/drivers/cache/cache64/fsl_cache.c to use the non-secure flash address during cache invalidation.
120 - mcux-sdk/drivers/flexcan/fsl_flexcan.c and mcux-sdk/drivers/flexcan/fsl_flexcan.h: add the guards for unsupport features on S32Z27x devices
121 - drivers: edma_rev2: drop grouping of EDMA register indexes
122 - drivers: edma_rev2: support MUX register in MP space
123 - drivers: edma_rev2: support 64-bit TCD registers
124 - devices: MIMX9596: add EDMA rev2 soc layer definition
125 - Add missing CMAKE files device_system.cmake device_CMSIS.cmake and drivers/driver_reset.cmake to MCXW716C.
126 - Add missing CMAKE file to ccm32k driver driver_ccm32k.cmake.
127 - Add missing CMAKE file to flash_k4 driver driver_flash_k4.cmake.
128 - Add missing CMAKE file to spc driver driver_spc.cmake
129 - mcux-sdk/drivers/dspi/fsl_dspi.c, mcux-sdk/drivers/dspi/fsl_dspi.h, mcux-sdk/drivers/dspi/fsl_dspi_edma.c,
130 mcux-sdk/drivers/dspi/fsl_dspi_edma.h: add the guards for unsupport features on S32Z27x devices
131 - drivers: irqsteer: adjust CHn_MASK index computation
132 - mcux-sdk/drivers/cache/cache64/fsl_cache.c: remove invalid assertion when
133 CACHE64_GetInstanceByAddr() is passed an address not managed by the CACHE64
134 controller
135 - drivers: edma_rev2: add macro for CHn_CSR's ACTIVE bit
136 - drivers: rtwdog: Fix the issue that driver doesn't wait the over status after CS register operation
137 - drivers: elemu: undefine BIT macro to avoid collision from util_macro.h in Zephyr
138 - mcux-sdk-middleware-ieee_802.15.4: adapt code to be supported with Zephyr
139 - mcux-sdk-middleware-usb: Disable the control endpoint ZLT (Zero Length Transaction) of MCUX hal USB controller drivers
140 (usb_device_ehci.c and usb_device_lpcip3511.c) in Zephyr environment.
141