Hi @pengyong_zhang
1. How did you "modified boot flow" you mentioned?
Step 1:
We used the source code from WIN10_1.5.0_SOURCE built it with the following command:
./buildme64.sh -b MX8M_PLUS_EVK -t uefi -bc DEBUG
The resulting binary we used is located at imx-windows-iot/BSP/firmware/MX8M_PLUS_EVK/firmware_uuu.bin.
Note: Additionally, we added a driver to this source. The purpose of this driver is to load the device tree and Kernel into memory.
Step 2:
1. Host machine setup:
i) Essential Yocto Project host packages are:
$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1
ii) Setting up the Repo utility:
$ mkdir ~/bin (this step may not be needed if the bin folder already exists)
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH
2. Yocto Project Setup:
i) Git set up:
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list
ii) Repo sync:
$ mkdir imx-yocto-bsp $ cd imx-yocto-bsp
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
$ repo sync
3. Changes:
Replaced the imx-boot with firmware_uuu.bin.
4. Build:
$ DISTRO=fsl-imx-wayland MACHINE=imx8mp-lpddr4-evk source imx-setup-release.sh -b <build dir>
$ bitbake core-image-minimal
Built image will be avilable in imx-yocto-bsp/Build/tmp/deploy/images/imx8mp-lpddr4-evk/core-image-minimal-imx8mp-lpddr4-evk.rootfs-20241106063508.wic.zst
# The disk layout of "wic" image
# - ---------- -------------- --------------
# | | firmware_uuu.bin | boot | rootfs |
# - ---------- -------------- --------------
# ^ ^ ^ ^ ^
# | | | | |
# 0 | 8MiB 72MiB 72MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB)
# ${IMX_BOOT_SEEK} 32 or 33kiB, see reference manual
Flash:
$ zstdcat /home/bpcg/imx-yocto-bsp/Build/tmp/deploy/images/imx8mp-lpddr4-evk/core-image-minimal-imx8mp-lpddr4-evk.rootfs-20241106063508.wic.zst | sudo dd of=/dev/sda bs=1M conv=fsync
Kernel arguments used: console=ttymxc1,921600 root=/dev/mmcblk1p2 rootwait rw
2. why are you need to change the boot flow?
We modified the boot flow because our objective is to boot Linux using EDK2 (UEFI).
Thanks,
JP