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