This series adds a new aarch64 machine to QEMU: i.MX 8M Plus EVK [1]. It allows
for running Linux distributions such as Buildroot
(freescale_imx8mpevk_defconfig) and Arch Linux [2] via direct kernel boot.
U-Boot does not work yet. I plan to use this machine myself and I also want to
make it available to a bigger audience, so I propose to add it to QEMU. My goal
would be to have it added for 10.0.
The series is structured as follows: The first three patches fix some issues in
device models reused by the new machine. Patches 4-17 add the machine step by
step which includes documentation. The last patch adds an I²C RTC which I'd like
to use along with the new machine.
I've based some code on existing one (see "Based on" in file headers) and I'm
unsure how to handle the licensing and attribution correctly -- advice welcome.
v2:
* Rebase onto master, eliminating some patches from the series
* Initialize ROM with memory_region_init_rom() (Zoltan)
* Mark the machine as "Maintained" (Peter)
* Do not select TEST_DEVICES (Peter)
* Have separate sources for the two clock tree modules (Peter)
* Make PCI devices attach to the correct bus (Peter)
* Avoid adding documentation that is removed later (Zoltan) Instead, document
Buildroot process in the first place and change it slightly.
* Drop TCA6416 device model (Phil, Dmitrii)
* Add pca955* Kconfig cleanup patch
[1] https://www.nxp.com/design/design-center/development-boards-and-designs/8MPLUSLPD4-EVK
[2] https://archlinuxarm.org/platforms/armv8/generic
Bernhard Beschow (18):
hw/usb/hcd-dwc3: Align global registers size with Linux
hw/pci-host/designware: Prevent device attachment on internal PCIe
root bus
hw/gpio/pca955*: Move Kconfig switches next to implementations
hw/arm: Add i.MX 8M Plus EVK board
hw/arm/fsl-imx8mp: Implement clock tree
hw/arm/fsl-imx8mp: Add SNVS
hw/arm/fsl-imx8mp: Add USDHC storage controllers
hw/arm/fsl-imx8mp: Add PCIe support
hw/arm/fsl-imx8mp: Add GPIO controllers
hw/arm/fsl-imx8mp: Add I2C controllers
hw/arm/fsl-imx8mp: Add SPI controllers
hw/arm/fsl-imx8mp: Add watchdog support
hw/arm/fsl-imx8mp: Implement gneral purpose timers
hw/arm/fsl-imx8mp: Add Ethernet controller
hw/arm/fsl-imx8mp: Add USB support
hw/arm/fsl-imx8mp: Add boot ROM
hw/arm/fsl-imx8mp: Add on-chip RAM
hw/rtc: Add Ricoh RS5C372 RTC emulation
MAINTAINERS | 15 +
docs/system/arm/imx8mp-evk.rst | 72 +++
docs/system/target-arm.rst | 1 +
include/hw/arm/fsl-imx8mp.h | 285 +++++++++++
include/hw/misc/imx8mp_analog.h | 81 +++
include/hw/misc/imx8mp_ccm.h | 30 ++
include/hw/pci-host/designware.h | 7 +
include/hw/pci-host/fsl_imx8m_phy.h | 27 +
include/hw/timer/imx_gpt.h | 1 +
include/hw/usb/hcd-dwc3.h | 2 +-
hw/arm/fsl-imx8mp.c | 736 ++++++++++++++++++++++++++++
hw/arm/imx8mp-evk.c | 74 +++
hw/misc/imx8mp_analog.c | 160 ++++++
hw/misc/imx8mp_ccm.c | 175 +++++++
hw/pci-host/designware.c | 18 +-
hw/pci-host/fsl_imx8m_phy.c | 88 ++++
hw/rtc/rs5c372.c | 227 +++++++++
hw/timer/imx_gpt.c | 25 +
hw/usb/hcd-dwc3.c | 5 +
hw/arm/Kconfig | 24 +
hw/arm/meson.build | 2 +
hw/gpio/Kconfig | 10 +
hw/misc/Kconfig | 14 +-
hw/misc/meson.build | 2 +
hw/pci-host/Kconfig | 3 +
hw/pci-host/meson.build | 1 +
hw/rtc/Kconfig | 5 +
hw/rtc/meson.build | 1 +
hw/rtc/trace-events | 4 +
pc-bios/imx8mp-boot.rom | Bin 0 -> 258048 bytes
pc-bios/meson.build | 1 +
31 files changed, 2086 insertions(+), 10 deletions(-)
create mode 100644 docs/system/arm/imx8mp-evk.rst
create mode 100644 include/hw/arm/fsl-imx8mp.h
create mode 100644 include/hw/misc/imx8mp_analog.h
create mode 100644 include/hw/misc/imx8mp_ccm.h
create mode 100644 include/hw/pci-host/fsl_imx8m_phy.h
create mode 100644 hw/arm/fsl-imx8mp.c
create mode 100644 hw/arm/imx8mp-evk.c
create mode 100644 hw/misc/imx8mp_analog.c
create mode 100644 hw/misc/imx8mp_ccm.c
create mode 100644 hw/pci-host/fsl_imx8m_phy.c
create mode 100644 hw/rtc/rs5c372.c
create mode 100644 pc-bios/imx8mp-boot.rom
--
2.48.1