Windows IoT Enterprise
Contents
BSP Version
Windows : W21H2 (19044.1288.211006-0501.21h2_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso)
NXP BSP :
W1.0.0 → ROM-5720
W1.1.0 → RSB-3720(sd)、ROM-5721(emmc)、ROM-5722(sd)
Released Image
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the latest version of advrisc/u18.04-imx8lbv1 Docker image for developing nVidia jetson projects.
Docker command:
$ docker pull advrisc/u18.04-imx8lbv1:latest
Run Docker example
Step1 Run docker container (example)
$ docker run -it --name <CONTAINER_NAME> -v <BSP_PATH>:/home/adv/BSP:rw advrisc/u18.04-imx8lbv1:latest /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Getting Linux Source Code
PLEASE DOWNLOAD SOURCE CODE IN THE DOCKER (both download code and build code are the same user.)
NXP_BSP_W1.0.0
$ cd ~/BSP $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.0.0 .
NXP_BSP_W1.1.0
$ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/NXP_BSP_W1.1.0 .
Setting up build environment
Install Dependency Packages
$ sudo apt-get update $ sudo apt-get upgrade -y $ sudo apt install gnupg ca-certificates $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF $ echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list $ sudo apt update $ sudo apt-get install attr build-essential python3.8 python3.8-dev python3.8-venv device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip mono-devel gawk -y
Set up UEFI
$ pushd mu_platform_nxp $ pip3 install -r requirements.txt --upgrade $ pip3 install pycryptodome $ pip3 install pyelftools $ python3 NXP/${uefi_folder}/PlatformBuild.py --setup $ python3 NXP/${uefi_folder}/PlatformBuild.py --update $ popd
Download the Arm64 cross-compiler.
$ pushd ~ $ wget https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu /gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ tar xf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ rm gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz $ popd
The cross compiler prefix is required to be exported later into AARCH64_TOOLCHAIN_PATH variable.
export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
Building
ROM-5720
$ cd ~/<BSP>/ $ source ~/venv/win_fw_build/bin/activate $ export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- $ ./adv-buildme64.sh -b 5720 -t all -c -fw
RSB-3720
$ cd ~/<BSP>/ $ ./adv-buildme64.sh -b 3720 -t all -c -fw
The firmware will be generated in the
~/<BSP>/imx-windows-iot/BSP/firmware/<PRODUCT>/firmware.bin
Flash
RSB-3720 ROM-5722
OS Installer$ sudo dd if=XXX_os_installer_${EVK_BOARD_NAME}.img of=/dev/sdX bs=10M; sync
Firmware
The RSB-3720 support OS boot from SD card ONLY
1).Unzip firmware image
2).Go to image folder and type following command (if SD card is mounted on e drive)
RSB-3720
flash_bootloader.cmd /device ROM3720_iMX8MP_6GB /target_drive e:
ROM-5722
flash_bootloader.cmd /device ROM5722_iMX8MP_6GB /target_drive e:
Miscellaneous
Flash mac address
- Open Registry Editor
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\xxxx
- Check the folders xxxx e.g. 0000, 0001.. and find your wanted ethernet interface (iMX Ethernet)
- Add new string variable called NetworkAddress and set address in format xx-xx-xx-xx-xx-xx
- Restart board