xref: /qemu/docs/system/arm/imx8mp-evk.rst (revision 7960e8c8ad53a293fedf8d1d3f5765cb832ffb40)
1a4eefc69SBernhard BeschowNXP i.MX 8M Plus Evaluation Kit (``imx8mp-evk``)
2a4eefc69SBernhard Beschow================================================
3a4eefc69SBernhard Beschow
4a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine models the i.MX 8M Plus Evaluation Kit, based on an
5a4eefc69SBernhard Beschowi.MX 8M Plus SoC.
6a4eefc69SBernhard Beschow
7a4eefc69SBernhard BeschowSupported devices
8a4eefc69SBernhard Beschow-----------------
9a4eefc69SBernhard Beschow
10a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine implements the following devices:
11a4eefc69SBernhard Beschow
12a4eefc69SBernhard Beschow * Up to 4 Cortex-A53 cores
13a4eefc69SBernhard Beschow * Generic Interrupt Controller (GICv3)
14a4eefc69SBernhard Beschow * 4 UARTs
15a81193c3SBernhard Beschow * 3 USDHC Storage Controllers
16fd1deb53SBernhard Beschow * 1 Designware PCI Express Controller
170c105b26SBernhard Beschow * 1 Ethernet Controller
184226c39fSBernhard Beschow * 2 Designware USB 3 Controllers
19a17c1d93SBernhard Beschow * 5 GPIO Controllers
20764f18afSBernhard Beschow * 6 I2C Controllers
2106908a84SBernhard Beschow * 3 SPI Controllers
221ac21eb8SBernhard Beschow * 3 Watchdogs
23f8b26121SBernhard Beschow * 6 General Purpose Timers
24487967beSBernhard Beschow * Secure Non-Volatile Storage (SNVS) including an RTC
2586c2dff9SBernhard Beschow * Clock Tree
26a4eefc69SBernhard Beschow
27a4eefc69SBernhard BeschowBoot options
28a4eefc69SBernhard Beschow------------
29a4eefc69SBernhard Beschow
30a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine can start a Linux kernel directly using the standard
31a4eefc69SBernhard Beschow``-kernel`` functionality.
32a4eefc69SBernhard Beschow
33a4eefc69SBernhard BeschowDirect Linux Kernel Boot
34a4eefc69SBernhard Beschow''''''''''''''''''''''''
35a4eefc69SBernhard Beschow
36a4eefc69SBernhard BeschowProbably the easiest way to get started with a whole Linux system on the machine
37a4eefc69SBernhard Beschowis to generate an image with Buildroot. Version 2024.11.1 is tested at the time
38*764ca3ecSGuenter Roeckof writing and involves two steps. First run the following commands in the
39a4eefc69SBernhard Beschowtoplevel directory of the Buildroot source tree:
40a4eefc69SBernhard Beschow
41a4eefc69SBernhard Beschow.. code-block:: bash
42a4eefc69SBernhard Beschow
43a4eefc69SBernhard Beschow  $ make freescale_imx8mpevk_defconfig
44a4eefc69SBernhard Beschow  $ make
45a4eefc69SBernhard Beschow
46a4eefc69SBernhard BeschowOnce finished successfully there is an ``output/image`` subfolder. Navigate into
47a81193c3SBernhard Beschowit and resize the SD card image to a power of two:
48a81193c3SBernhard Beschow
49a81193c3SBernhard Beschow.. code-block:: bash
50a81193c3SBernhard Beschow
51a81193c3SBernhard Beschow  $ qemu-img resize sdcard.img 256M
52a81193c3SBernhard Beschow
53a4eefc69SBernhard BeschowNow that everything is prepared the machine can be started as follows:
54a4eefc69SBernhard Beschow
55a4eefc69SBernhard Beschow.. code-block:: bash
56a4eefc69SBernhard Beschow
57a4eefc69SBernhard Beschow  $ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \
58a4eefc69SBernhard Beschow      -display none -serial null -serial stdio \
59a4eefc69SBernhard Beschow      -kernel Image \
60*764ca3ecSGuenter Roeck      -dtb imx8mp-evk.dtb \
61a81193c3SBernhard Beschow      -append "root=/dev/mmcblk2p2" \
62a81193c3SBernhard Beschow      -drive file=sdcard.img,if=sd,bus=2,format=raw,id=mmcblk2
63