NXP i.MX 93 - MarekBykowski/readme GitHub Wiki
i.MX 93 EVK platform & i.MX 93 QSB platform
i.MX 93 EVK platform https://www.nxp.com/doc/IMX93EVKQSG
i.MX 93 QSB platform https://www.nxp.com/docs/en/user-guide/IMX93QSBQSG.pdf
i.MX Yocto Project User Guide
https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf
https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf
Yocto i.MX manifest
https://github.com/nxp-imx/imx-manifest
default branch: imx-linux-scarthgap
latest manifest file on that branch: imx-6.6.52-2.2.0.xml
Note https://github.com/nxp-imx/imx-manifest contains other branches and other manifest files on these branches but the above seem the latest and preferred.
First switch to a working directory
mkdir ~/imx-yocto-bsp
cd ~/imx-yocto-bsp
Then get the git-repo
tool and download the layers required
git clone https://gerrit.googlesource.com/git-repo
./git-repo/repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.52-2.2.0.xml
./git-repo/repo sync
Image build
Yocto supports the following machine configuration for i.XM 93
- i.MX 9
- imx91-11x11-lpddr4-evk
- imx91-9x9-lpddr4-qsb
- imx93-11x11-lpddr4x-evk
- imx93-14x14-lpddr4x-evk
- imx93-9x9-lpddr4-qsb
MACHINE = imx91-11x11-lpddr4-evk
To build run the imx-setup-release.sh
script
#Freescale NXP Semiconductor `imx-setup-release.sh` setup script run first
DISTRO=fsl-imx-xwayland MACHINE=imx91-11x11-lpddr4-evk source imx-setup-release.sh -b build_imx91-11x11-lpddr4-evk
then build for the image
selected
bitbake imx-image-core
If logged out then in do
cd ~/imx-yocto-bsp
#equivalence to `source oe-init-build-env build` in `Poky`
source setup-environment build
bitbake imx-image-core
I succeeded building for i.xm93 imx91-11x11-lpddr4-evk
MACHINE = imx93evk
Similarily to above but change the MACHINE
to MACHINE=imx93evk
and the build dir to something like build_imx93evk
Boot-up flow
bl1 (ROM bootloader), bl2 (SPL U-Boot), bl3-1 (Secure Monitor), bl3-3 (U-Boot), OP-TEE, Linux Kernel, device-tree, and rootfs
https://docs.foundries.io/94/reference-manual/security/boot-software-updates-imx.html#
https://trustedfirmware-a.readthedocs.io/en/latest/plat/imx9.html#nxp-i-mx-9-series
Cortex-M33 image
[mbykowsx@GNR-JF04-5350 build_imx93evk]$ pwd
/yocto/yocto-team/mbykowsx/imx-yocto-bsp/build_imx93evk
[mbykowsx@GNR-JF04-5350 build_imx93evk]$ find ../sources/ -name "*imx-m33-demos*"
../sources/meta-freescale/recipes-fsl/mcore-demos/imx-m33-demos_2.16.000.bb
../sources/meta-imx/meta-imx-bsp/recipes-fsl/mcore-demos/imx-m33-demos_2.16.000.bb
Basically what this recipe does to M33 Firmware/Image is takes the Image binary from SRC_URI="https://www.nxp.com/lgfiles/NMG/MAD/YOCTO//imx93-m33-demo-2.16.000.bin;fsl-eula=true;name=imx93"
This doc https://www.nxp.com/docs/en/release-note/IMX_LINUX_RELEASE_NOTES.pdf on page 6 described what mcore demos are available and how to integrate them.
MCUXpresso Software Development Kit
One proposal for building a Cortex-M33 image is to use MCUCpresso SDK
https://community.nxp.com/t5/Other-NXP-Products/Arm-Cortex-M33-controller-on-the-i-MX93/td-p/1927477?attachment-id=180865
Start off with MCUXpresso SDK Builder
-> https://mcuxpresso.nxp.com/en
-> then go to Software and Tools
-> choose from IDE
, extention for VS Code
https://github.com/nxp-mcuxpresso/mcuxsdk-manifests
Dependency installation https://github.com/nxp-mcuxpresso/vscode-for-mcux/wiki/Dependency-Installation
MCUXpresso SDK + VS Code https://www.nxp.com/design/design-center/training/TIP-GETTING-STARTED-WITH-MCUXPRESSO-FOR-VS-CODE
Once MCUXpresso installed in VS Code import the manifest repository https://github.com/nxp-mcuxpresso/mcuxsdk-manifests
Build for hello world
in mcore M33
NXP repositories
Take-out for Cortex-M33 in i.XM system
Yocto
enables building and integration for all the SW for i.mx
from source but mcore
is taken as a binary, that is the mcore
image is built outside.