mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
hw/arm: Add i.MX 8M Plus EVK board
As a first step, implement the bare minimum: CPUs, RAM, interrupt controller, serial. All other devices of the A53 memory map are represented as TYPE_UNIMPLEMENTED_DEVICE, i.e. the whole memory map is provided. This allows for running Linux without it crashing due to invalid memory accesses. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Message-id: 20250223114708.1780-5-shentey@gmail.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> [PMM: drop 'static const' from serial_table[] definition to avoid compile failure on GCC 7.5] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
0f520f0a9d
commit
a4eefc69b2
8 changed files with 689 additions and 0 deletions
54
docs/system/arm/imx8mp-evk.rst
Normal file
54
docs/system/arm/imx8mp-evk.rst
Normal file
|
@ -0,0 +1,54 @@
|
|||
NXP i.MX 8M Plus Evaluation Kit (``imx8mp-evk``)
|
||||
================================================
|
||||
|
||||
The ``imx8mp-evk`` machine models the i.MX 8M Plus Evaluation Kit, based on an
|
||||
i.MX 8M Plus SoC.
|
||||
|
||||
Supported devices
|
||||
-----------------
|
||||
|
||||
The ``imx8mp-evk`` machine implements the following devices:
|
||||
|
||||
* Up to 4 Cortex-A53 cores
|
||||
* Generic Interrupt Controller (GICv3)
|
||||
* 4 UARTs
|
||||
|
||||
Boot options
|
||||
------------
|
||||
|
||||
The ``imx8mp-evk`` machine can start a Linux kernel directly using the standard
|
||||
``-kernel`` functionality.
|
||||
|
||||
Direct Linux Kernel Boot
|
||||
''''''''''''''''''''''''
|
||||
|
||||
Probably the easiest way to get started with a whole Linux system on the machine
|
||||
is to generate an image with Buildroot. Version 2024.11.1 is tested at the time
|
||||
of writing and involves two steps. First run the following commands in the
|
||||
toplevel directory of the Buildroot source tree:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ echo "BR2_TARGET_ROOTFS_CPIO=y" >> configs/freescale_imx8mpevk_defconfig
|
||||
$ make freescale_imx8mpevk_defconfig
|
||||
$ make
|
||||
|
||||
Once finished successfully there is an ``output/image`` subfolder. Navigate into
|
||||
it and patch the device tree with the following commands which will remove the
|
||||
``cpu-idle-states`` properties from CPU nodes:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ dtc imx8mp-evk.dtb | sed '/cpu-idle-states/d' > imx8mp-evk-patched.dts
|
||||
$ dtc imx8mp-evk-patched.dts -o imx8mp-evk-patched.dtb
|
||||
|
||||
Now that everything is prepared the machine can be started as follows:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ qemu-system-aarch64 -M imx8mp-evk -smp 4 -m 3G \
|
||||
-display none -serial null -serial stdio \
|
||||
-kernel Image \
|
||||
-dtb imx8mp-evk-patched.dtb \
|
||||
-initrd rootfs.cpio \
|
||||
-append "root=/dev/ram"
|
|
@ -95,6 +95,7 @@ Board-specific documentation
|
|||
arm/imx25-pdk
|
||||
arm/mcimx6ul-evk
|
||||
arm/mcimx7d-sabre
|
||||
arm/imx8mp-evk
|
||||
arm/orangepi
|
||||
arm/raspi
|
||||
arm/collie
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue