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 * 3 USDHC Storage Controllers 16 * Secure Non-Volatile Storage (SNVS) including an RTC 17 * Clock Tree 18 19Boot options 20------------ 21 22The ``imx8mp-evk`` machine can start a Linux kernel directly using the standard 23``-kernel`` functionality. 24 25Direct Linux Kernel Boot 26'''''''''''''''''''''''' 27 28Probably the easiest way to get started with a whole Linux system on the machine 29is to generate an image with Buildroot. Version 2024.11.1 is tested at the time 30of writing and involves three steps. First run the following commands in the 31toplevel directory of the Buildroot source tree: 32 33.. code-block:: bash 34 35 $ make freescale_imx8mpevk_defconfig 36 $ make 37 38Once finished successfully there is an ``output/image`` subfolder. Navigate into 39it and resize the SD card image to a power of two: 40 41.. code-block:: bash 42 43 $ qemu-img resize sdcard.img 256M 44 45Finally, the device tree needs to be patched with the following commands which 46will remove the ``cpu-idle-states`` properties from CPU nodes: 47 48.. code-block:: bash 49 50 $ dtc imx8mp-evk.dtb | sed '/cpu-idle-states/d' > imx8mp-evk-patched.dts 51 $ dtc imx8mp-evk-patched.dts -o imx8mp-evk-patched.dtb 52 53Now that everything is prepared the machine can be started as follows: 54 55.. code-block:: bash 56 57 $ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \ 58 -display none -serial null -serial stdio \ 59 -kernel Image \ 60 -dtb imx8mp-evk-patched.dtb \ 61 -append "root=/dev/mmcblk2p2" \ 62 -drive file=sdcard.img,if=sd,bus=2,format=raw,id=mmcblk2 63