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