-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This guide explains how to install Windows 10 IoT Enterprise LTSC 2021 Arm Edition on an NXP i.MX8 PLUS EVK Board. The process outlined in this guide shows one method which should take about an hour. References to additional options and background information are included in the appendix.
- Host PC – running Windows 10 or ideally Windows 11
- NXP i.MX 8M plus EVK w/power cable & USB type C cable
- MicroSD card (8-32GB). Note: If the only available microSD card is larger than 32 GB, see steps in the appendix
- MicroSD adapter
- USB mouse & keyboard for the NXP board
- USB hub which allows multiple USB devices
- HDMI monitor
- HDMI cable
- Create a folder on the root of your Host PC named
c:\nxp
. Downloaded items in future steps should be saved in this folder unless otherwise specified - Go to nxp.com and set up an account to download the BSP prebuild binaries
- Download the NXP BSP Prebuild Binaries for Windows IoT to the NXP folder
- Download the Microsoft ADK with support for Windows 10, version 2004 to the NXP folder
- Download the Microsoft Windows PE add-on for ADK version 2004 to the NXP folder
- Download the X23-15068 Win 10 IoT Enterprise 2021 LTSC Base 21H2 Arm64 English OPK to the NXP folder
Note: The OPK download requires a Microsoft CLA Customer License Agreement with Microsoft.
- The UUU (Universal Update Utility) download is also necessary but will be shown in a later step
The EVK ships with linux installed on the onboard eMMC but will be erased in further steps. Before proceeding with the Windows setup, you can validate the EVK hardware and your test setup by following these steps:
- Ensure the board is powered off
- Set the DIP switches to eMMC boot mode
- Connect monitor to the HDMI port
- Plug in power adapter to USB C Port 0
- Toggle power switch to ON
- Ensure red power LED illuminates
- Ensure the linux desktop displays on the HDMI monitor
- Unzip the NXP BSP prebuild binaries for Windows IoT
- Install ADK by running
adksetup.exe
. Use default settings - Install the WinPE ADK add-on by running
adkwinpesetup.exe
. Use default settings
- If necessary, unzip the Windows OPK download
- Locate the Windows 10 IoT Ent Arm64 ISO Image file. Path and file names may vary depending on version. Here is an example of where to access the file:
C:\nxp\ARM version\X23-15068 Win 10 IoT Enterprise 2021 LTSC Base 21H2 Arm64 English OPK\SW DVD9 Win 10 IoT Enterprise 2021 LTSC Base 21H2 Arm64 OEM\Layer\19044.1288.211006-0501.21h2_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso
- Rename this file to win10.img
Note: By using the img file extension, the mount option will be available in the next step.
- Right click on
win10.img
and select MOUNT which should mount the ISO as a drive on your system - Navigate to the source folder on the Win 10 IoT Ent LTSC 2021 Arm ISO that is mounted
- Locate the
install.wim
file and copy it into memory by right clicking and selecting copy - Navigate back up to your root
nxp
folder and then into the folder where you previously unzipped the NXP BSP prebuild binaries for Windows IoT. Enter theIoTEntOnNXP
folder and paste theinstall.wim
file into this folder
- Open the command prompt as an administrator and navigate to that same
IoTEntOnNXP
folder - Run the following command to prepare the WinPE image for the microSD Card:
make-winpe-enterprise.cmd / disable_updates / test_signing
Note: This command can take approximately 30 minutes. When finished, an out folder will have been created with the necessary operating system and driver files inside.
- If not already open, open a command prompt as administrator
- Run the
diskpart
command and type list disk to show the disks on the Host PC - Insert the microSD card into the host PC (using an adapter if necessary)
- Run list disk again in order to identify the disk # of your microSD card. Take note of which disk # is shown for the microSD card
- Type EXIT to leave the
diskpart
console - Navigate to the
IoTEntOnNXP
folder - Type the following command:
make-winpe-enterprise.cmd /apply 1
Note: The example command below uses disk 1 for the microSD card disk. It is important to note the correct disk number to avoid losing data on a drive on your host PC with the following command. Change the command below to match your microSD card disk number. Note: This command can take 10 to 15 minutes to complete.
- View the microSD card from your host PC and notice that it contains some files indicating the Windows PE operating system has been loaded. Results may vary but the used disk space should be approximately 5 GB
- Safely eject microSD card from host PC.
At this point the Windows installer is loaded onto the microSD card. It is now time to load the NXP bootloader to the onboard eMMC.
By flashing the bootloader to the eMMC memory, it will be possible for the board to boot and then later install Windows from a microSD. Note: The UUU tool requires UUU boot support to be enabled (as in this design). However, for security reasons, it is recommended to disable UUU download support in U-Boot in final designs.
- To flash the bootable firmware to eMMC, we recommend downloading the UUU (Universal Update Utility) 1.5.21 tool used for BSP testing from: https://github.com/nxp-imx/mfgtools/releases/tag/uuu_1.5.21
- Navigate to the firmware directory. In the source package, it is in
imx-windows-iot\BSP\firmware
- Create a directory, tools and inside this directory, create a directory
uuu
- Download the UUU tool and copy it into the
firmware\tools\uuu\
directory - Power off board
- Switch the target board to USB download mode using DIP switches
- Connect a USB-C cable to the desktop and the board's USB-C port. Then turn on the board
- Execute the command:
.\flash_bootloader.cmd /device MX8M_PLUS_EVK /secure 0
Note: The command syntax is as follows:
.\flash_bootloader.cmd /device <device_name> /secure <insecure=0, secure=1>
- When the process is complete, power off the board. Disconnect the USB-C cable and connect the board to the PC. Failure to disconnect from the PC may cause errors in subsequent steps
Note: If you receive a message, “Failure open usb device” this may be related to the driver not having been loaded. Simply remove the USB cable, power cycle the board, reinsert the USB cable, and try again.
At this point the board is capable of booting from onboard eMMC.
- Ensure the board is powered off
- Remove the microSD card from the host PC and insert it into the board
- Adjust DIP switches on the board to enable microSD card boot mode
- Connect monitor to HDMI port
- Plug in power adapter to USB C Port 0
- Toggle power switch to ON
- Ensure red power LED illuminates
- Ensure that the Windows installation process can be seen on the HDMI monitor
- Connect a USB hub to USB port 1 and connect a mouse and keyboard to the hub
- Carry out the Windows installation process
- Ensure the board is powered off
- Set the DIP switches back to eMMC boot mode. (The microSD may remain installed but is no longer necessary.)
- Toggle power switch to ON
- Ensure Windows displays on the HDMI monitor
- Power cycle the board to confirm that Windows operates properly. Try opening certain applications and running them while noting that there are certain limitations in Windows PE
This quick start guide contains all necessary steps to install Windows IoT Enterprise LTSC 2021 Arm Edition on an NXP i.MX8 PLUS EVK Board. Many of these steps came from the following resources. For further information, please review them directly.
- Windows 10 IoT Enterprise for i.MX Applications Processors Main Website
- NXP i.MX Windows 10 IoT Enterprise Quick Start Guide
- Microsoft Getting Started with Windows 10 IoT Enterprise on the NXP i.MX 8M Plus EVK YouTube Video
- How to Install Windows IoT Enterprise on an ARM NXP I.MX8M Plus Board
MicroSD card densities larger than 32 GB may also be used with some changes. A 64 GB card was tested to work as long as the make-winpe-enterprise.cmd file is modified before running the command. Edit the make-winpe-enterprise.cmd
file at or near line 807 as follows:
Before: echo create partition primary >> diskpart.txt
After: echo create partition primary size=32000 >> diskpart.txt
- Prerequisite Hardware
- Host PC Setup
-
Prerequisite Software
- PART 1 – Verifying Initial EVK Functionality
- PART 2 – Host PC Software Installation
- PART 3 – Preparing the Windows 10 IoT Ent Arm Installer and flashing it to the MicroSD Card
- PART 4 - Flashing NXP Bootloader Firmware to eMMC
- PART 5 – Installing Windows
- PART 6 – Booting the Board into Windows from eMMC -Appendix