This repository is no longer supported and is now read-only. The BSP and documentation for the iMX6, iMX7 and iMX8 processors for Windows 10 IoT is now published by NXP here. Support for the BSP is available in NXP's community forums.
The following repositories have been archived and made read-only on GitHub. If you have a fork of any of these repositories they will remain active, but no new updates will be supplied by Microsoft. Development has stopped in these repositories and all future work will be released by NXP in their BSP.
The repositories to be archived are: https://github.com/ms-iot/imx-iotcore https://github.com/ms-iot/u-boot https://github.com/ms-iot/edk2 https://github.com/ms-iot/imx-edk2-platforms https://github.com/ms-iot/mu_platform_nxp https://github.com/ms-iot/mu_silicon_nxp
The NXP BSP only has board support for NXP EVK and Sabre devices. For other previously supported devices, contact the manufacturer for further support.
All compiled firmware binaries in this repository have been removed. The sources in this repository can still be built, but to generate a bootable image, the boot loaders and firmware must be manually built first according to the instructions in the Building Firmware from Source section later in this document.
Important! Please read this section first.
This code is provided as a public preview, it is still under development which means not all platform features are enabled or fully optimized. Notwithstanding the license attached to this code, should not be used in any commercial application at this time. For any questions and feedback on how the BSP can better support your targeted solution, please contact your Microsoft or NXP representative or post to the NXP community.
This code is available under the MIT license except where stated otherwise such as the imxnetmini driver and OpteeClientLib.
SoC Type | Board Vendor | Board Name | Board Package Name |
---|---|---|---|
i.MX 6Quad | SolidRun | HummingBoard Edge | HummingBoardEdge_iMX6Q_2GB |
i.MX 6Quad | NXP | i.MX 6Quad SABRE | Sabre_iMX6Q_1GB |
i.MX 6Quad | Boundry Devices | i.MX 6Quad SABRELITE | SabreLite_iMX6Q_1GB |
i.MX 6Quad | VIA | VAB-820 | VAB820_iMX6Q_1GB |
i.MX 6QuadPlus | NXP | i.MX 6QuadPlus SABRE | Sabre_iMX6QP_1GB |
i.MX 6DualLite | SolidRun | HummingBoard Edge | HummingBoardEdge_iMX6DL_1GB |
i.MX 6Solo | SolidRun | HummingBoard Edge | HummingBoardEdge_iMX6S_512MB |
i.MX 6SoloX | UDOO | Neo Full | UdooNeo_iMX6SX_1GB |
i.MX 6SoloX | NXP | i.MX SX Sabre | Sabre_iMX6SX_1GB |
i.MX 6ULL | NXP | i.MX 6ULL EVK | EVK_iMX6ULL_512MB |
i.MX 7Dual | CompuLab | IoT Gateway, CL-SOM-iMX7+SBC-iMX7 | ClSomImx7_iMX7D_1GB |
i.MX 7Dual | NXP | i.MX 7Dual SABRE | Sabre_iMX7D_1GB |
i.MX 8M | NXP | i.MX 8M EVK | NXPEVK_IMX8M_4GB |
i.MX 8M Mini | NXP | i.MX 8M Mini EVK | NXPEVK_IMX8M_Mini_2GB |
A table of the currently enabled features for each board can be found here. For hardware issues, please contact the hardware vendor.
This repository uses submodules and should be cloned with git clone --recurse-submodules
The following tools are required to build the driver packages and IoT Core FFU: Visual Studio 2017, Windows Kits (ADK/SDK/WDK), and the IoT Core OS Packages.
Windows_10_IoT_Core_ARM_Packages.msi
Windows_10_IoT_Core_ARM64_Packages.msi
for ARM64 builds.Test certificates must be installed to generate driver packages on a development machine.
imx-iotcore\build\tools
.StartBuildEnv.bat
.SetupCertificate.bat
to install the test certificates.--recurse-submodules
then this step won't output anything.
git submodule init
git submodule update
imx-iotcore\build\solution\iMXPlatform\Build\FFU\HummingBoardEdge_iMX6Q_2GB\
for ARM builds and imx-iotcore\build\solution\iMXPlatform\Build\FFU\NXPEVK_iMX8M_4GB
for ARM64 builds.In order to build an FFU for another board you'll need to modify GenerateFFU.bat in the Build Scripts folder of the Solution Explorer. Comment out the default HummingBoardEdge_iMX6Q_2GB or NXPEVK_iMX8M_4GB builds with REM and uncomment any other boards you want to build.
REM cd /d %BATCH_HOME%
REM echo "Building HummingBoardEdge_iMX6Q_2GB FFU"
REM call BuildImage HummingBoardEdge_iMX6Q_2GB HummingBoardEdge_iMX6Q_2GB_TestOEMInput.xml
cd /d %BATCH_HOME%
echo "Building Sabre_iMX6Q_1GB FFU"
call BuildImage Sabre_iMX6Q_1GB Sabre_iMX6Q_1GB_TestOEMInput.xml
Import-IoTBSP HummingBoardEdge_iMX6Q_2GB <Path to imx-iotcore\BSP>
Add-IoTProduct ProductA HummingBoardEdge_iMX6Q_2GB
Building custom firmware into an FFU requires additional steps:
The firmware code can be found in the following repos:
BSP - Generated at build time. Contains Board Support Packages for the IoT ADK AddonKit.
build - Contains Board Packages, build scripts, and the VS2017 solution file.
driver - Contains driver sources.
documentation - Contains usage documentation.
hal - Contains hal extension sources.
For more information about Windows 10 IoT Core, see our online documentation here
We are working hard to improve Windows 10 IoT Core and deeply value any feedback we get.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.