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