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