master
rst 107 lines 3.29 KB
Raw
1 NXP i.MX 8M Plus and i.MX 8M Mini Evaluation Kits (``imx8mp-evk``, ``imx8mm-evk``)
2 ==================================================================================
3
4 The ``imx8mp-evk`` and ``imx8mm-evk`` machine models the i.MX 8M Plus
5 and i.MX 8M Mini Evaluation Kits, based on i.MX 8M Plus and i.MX8M
6 Mini SoCs.
7
8 Supported devices
9 -----------------
10
11 The ``imx8mp-evk`` and ``imx8mm-evk`` machines implement the
12 following devices:
13
14 * Up to 4 Cortex-A53 cores
15 * Generic Interrupt Controller (GICv3)
16 * 4 UARTs
17 * 3 USDHC Storage Controllers
18 * 1 Designware PCI Express Controller
19 * 1 Ethernet Controller
20 * 2 Designware USB 3 Controllers
21 * 2 FlexCAN 3 CAN Controllers (``imx8mp-evk`` only)
22 * 5 GPIO Controllers
23 * 6 I2C Controllers
24 * 3 SPI Controllers
25 * 3 Watchdogs
26 * 6 General Purpose Timers
27 * Secure Non-Volatile Storage (SNVS) including an RTC
28 * Clock Tree
29
30 Boot options
31 ------------
32
33 The ``imx8mp-evk`` and ``imx8mm-evk`` machines can start a Linux
34 kernel directly using the standard ``-kernel`` functionality.
35
36 Direct Linux Kernel Boot
37 ''''''''''''''''''''''''
38
39 Probably the easiest way to get started with a whole Linux system on the machine
40 is to generate an image with Buildroot. Version 2024.11.1 is tested at the time
41 of writing and involves two steps. First run the following commands in the
42 toplevel directory of the Buildroot source tree:
43
44 For i.MX 8M Plus EVK:
45
46 .. code-block:: bash
47
48 $ make freescale_imx8mpevk_defconfig
49 $ make
50
51 For i.MX 8M Mini EVK:
52
53 .. code-block:: bash
54
55 $ make freescale_imx8mmevk_defconfig
56 $ make
57
58 Once finished successfully there is an ``output/image`` subfolder. Navigate into
59 it and resize the SD card image to a power of two:
60
61 .. code-block:: bash
62
63 $ qemu-img resize sdcard.img 256M
64
65 Now that everything is prepared the machine can be started as follows:
66
67 For i.MX 8M Plus EVK:
68
69 .. code-block:: bash
70
71 $ qemu-system-aarch64 -M imx8mp-evk \
72 -display none -serial null -serial stdio \
73 -kernel Image \
74 -dtb imx8mp-evk.dtb \
75 -append "root=/dev/mmcblk2p2" \
76 -drive file=sdcard.img,if=sd,bus=2,format=raw,id=mmcblk2
77
78 For i.MX 8M Mini EVK:
79
80 .. code-block:: bash
81
82 $ qemu-system-aarch64 -M imx8mm-evk -smp 4 -m 2G \
83 -display none -serial null -serial stdio \
84 -kernel Image \
85 -dtb imx8mm-evk.dtb \
86 -append "root=/dev/mmcblk2p2" \
87 -drive file=sdcard.img,if=sd,bus=2,format=raw,id=mmcblk2
88
89 KVM Acceleration
90 ----------------
91
92 To enable hardware-assisted acceleration via KVM, append
93 ``-accel kvm`` to the command line. While this speeds up performance
94 significantly, be aware of the following limitations:
95
96 * The ``imx8mp-evk`` and ``imx8mm-evk`` machines are not included
97 under the "virtualization use case" of :doc:`QEMU's security
98 policy </system/security>`. This means that you should not trust that
99 it can contain malicious guests, whether it is run using TCG or KVM.
100 If you don't trust your guests and you're relying on QEMU to be the
101 security boundary, you want to choose another machine such as
102 ``virt``.
103 * Rather than Cortex-A53 CPUs, the same CPU type as the host's will be used.
104 This is a limitation of KVM and may not work with guests with a tight
105 dependency on Cortex-A53.
106 * No EL2 and EL3 exception levels are available which is also a KVM limitation.
107 Direct kernel boot should work but running U-Boot, TF-A, etc. won't succeed.