xref: /qemu/docs/system/arm/imx8mp-evk.rst (revision a4eefc69b23713c4e5981d9d91a6e15dfd4496fe)
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
16Boot options
17------------
18
19The ``imx8mp-evk`` machine can start a Linux kernel directly using the standard
20``-kernel`` functionality.
21
22Direct Linux Kernel Boot
23''''''''''''''''''''''''
24
25Probably the easiest way to get started with a whole Linux system on the machine
26is to generate an image with Buildroot. Version 2024.11.1 is tested at the time
27of writing and involves two steps. First run the following commands in the
28toplevel directory of the Buildroot source tree:
29
30.. code-block:: bash
31
32  $ echo "BR2_TARGET_ROOTFS_CPIO=y" >> configs/freescale_imx8mpevk_defconfig
33  $ make freescale_imx8mpevk_defconfig
34  $ make
35
36Once finished successfully there is an ``output/image`` subfolder. Navigate into
37it and patch the device tree with the following commands which will remove the
38``cpu-idle-states`` properties from CPU nodes:
39
40.. code-block:: bash
41
42  $ dtc imx8mp-evk.dtb | sed '/cpu-idle-states/d' > imx8mp-evk-patched.dts
43  $ dtc imx8mp-evk-patched.dts -o imx8mp-evk-patched.dtb
44
45Now that everything is prepared the machine can be started as follows:
46
47.. code-block:: bash
48
49  $ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \
50      -display none -serial null -serial stdio \
51      -kernel Image \
52      -dtb imx8mp-evk-patched.dtb \
53      -initrd rootfs.cpio \
54      -append "root=/dev/ram"
55