1NXP i.MX 8M Plus Evaluation Kit (``imx8mp-evk``) 2================================================ 3 4The ``imx8mp-evk`` machine models the i.MX 8M Plus Evaluation Kit, based on an 5i.MX 8M Plus SoC. 6 7Supported devices 8----------------- 9 10The ``imx8mp-evk`` machine implements the following devices: 11 12 * Up to 4 Cortex-A53 cores 13 * Generic Interrupt Controller (GICv3) 14 * 4 UARTs 15 * Secure Non-Volatile Storage (SNVS) including an RTC 16 * Clock Tree 17 18Boot options 19------------ 20 21The ``imx8mp-evk`` machine can start a Linux kernel directly using the standard 22``-kernel`` functionality. 23 24Direct Linux Kernel Boot 25'''''''''''''''''''''''' 26 27Probably the easiest way to get started with a whole Linux system on the machine 28is to generate an image with Buildroot. Version 2024.11.1 is tested at the time 29of writing and involves two steps. First run the following commands in the 30toplevel directory of the Buildroot source tree: 31 32.. code-block:: bash 33 34 $ echo "BR2_TARGET_ROOTFS_CPIO=y" >> configs/freescale_imx8mpevk_defconfig 35 $ make freescale_imx8mpevk_defconfig 36 $ make 37 38Once finished successfully there is an ``output/image`` subfolder. Navigate into 39it and patch the device tree with the following commands which will remove the 40``cpu-idle-states`` properties from CPU nodes: 41 42.. code-block:: bash 43 44 $ dtc imx8mp-evk.dtb | sed '/cpu-idle-states/d' > imx8mp-evk-patched.dts 45 $ dtc imx8mp-evk-patched.dts -o imx8mp-evk-patched.dtb 46 47Now that everything is prepared the machine can be started as follows: 48 49.. code-block:: bash 50 51 $ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \ 52 -display none -serial null -serial stdio \ 53 -kernel Image \ 54 -dtb imx8mp-evk-patched.dtb \ 55 -initrd rootfs.cpio \ 56 -append "root=/dev/ram" 57