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