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