xref: /qemu/docs/system/arm/imx8mp-evk.rst (revision a4eefc69b23713c4e5981d9d91a6e15dfd4496fe)
1*a4eefc69SBernhard BeschowNXP i.MX 8M Plus Evaluation Kit (``imx8mp-evk``)
2*a4eefc69SBernhard Beschow================================================
3*a4eefc69SBernhard Beschow
4*a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine models the i.MX 8M Plus Evaluation Kit, based on an
5*a4eefc69SBernhard Beschowi.MX 8M Plus SoC.
6*a4eefc69SBernhard Beschow
7*a4eefc69SBernhard BeschowSupported devices
8*a4eefc69SBernhard Beschow-----------------
9*a4eefc69SBernhard Beschow
10*a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine implements the following devices:
11*a4eefc69SBernhard Beschow
12*a4eefc69SBernhard Beschow * Up to 4 Cortex-A53 cores
13*a4eefc69SBernhard Beschow * Generic Interrupt Controller (GICv3)
14*a4eefc69SBernhard Beschow * 4 UARTs
15*a4eefc69SBernhard Beschow
16*a4eefc69SBernhard BeschowBoot options
17*a4eefc69SBernhard Beschow------------
18*a4eefc69SBernhard Beschow
19*a4eefc69SBernhard BeschowThe ``imx8mp-evk`` machine can start a Linux kernel directly using the standard
20*a4eefc69SBernhard Beschow``-kernel`` functionality.
21*a4eefc69SBernhard Beschow
22*a4eefc69SBernhard BeschowDirect Linux Kernel Boot
23*a4eefc69SBernhard Beschow''''''''''''''''''''''''
24*a4eefc69SBernhard Beschow
25*a4eefc69SBernhard BeschowProbably the easiest way to get started with a whole Linux system on the machine
26*a4eefc69SBernhard Beschowis to generate an image with Buildroot. Version 2024.11.1 is tested at the time
27*a4eefc69SBernhard Beschowof writing and involves two steps. First run the following commands in the
28*a4eefc69SBernhard Beschowtoplevel directory of the Buildroot source tree:
29*a4eefc69SBernhard Beschow
30*a4eefc69SBernhard Beschow.. code-block:: bash
31*a4eefc69SBernhard Beschow
32*a4eefc69SBernhard Beschow  $ echo "BR2_TARGET_ROOTFS_CPIO=y" >> configs/freescale_imx8mpevk_defconfig
33*a4eefc69SBernhard Beschow  $ make freescale_imx8mpevk_defconfig
34*a4eefc69SBernhard Beschow  $ make
35*a4eefc69SBernhard Beschow
36*a4eefc69SBernhard BeschowOnce finished successfully there is an ``output/image`` subfolder. Navigate into
37*a4eefc69SBernhard Beschowit and patch the device tree with the following commands which will remove the
38*a4eefc69SBernhard Beschow``cpu-idle-states`` properties from CPU nodes:
39*a4eefc69SBernhard Beschow
40*a4eefc69SBernhard Beschow.. code-block:: bash
41*a4eefc69SBernhard Beschow
42*a4eefc69SBernhard Beschow  $ dtc imx8mp-evk.dtb | sed '/cpu-idle-states/d' > imx8mp-evk-patched.dts
43*a4eefc69SBernhard Beschow  $ dtc imx8mp-evk-patched.dts -o imx8mp-evk-patched.dtb
44*a4eefc69SBernhard Beschow
45*a4eefc69SBernhard BeschowNow that everything is prepared the machine can be started as follows:
46*a4eefc69SBernhard Beschow
47*a4eefc69SBernhard Beschow.. code-block:: bash
48*a4eefc69SBernhard Beschow
49*a4eefc69SBernhard Beschow  $ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \
50*a4eefc69SBernhard Beschow      -display none -serial null -serial stdio \
51*a4eefc69SBernhard Beschow      -kernel Image \
52*a4eefc69SBernhard Beschow      -dtb imx8mp-evk-patched.dtb \
53*a4eefc69SBernhard Beschow      -initrd rootfs.cpio \
54*a4eefc69SBernhard Beschow      -append "root=/dev/ram"
55