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