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