This series fixes various issues in i.MX device emulation, cleans up i.MX
Kconfig handling, and improves some code. Functional console tests for the
remaining i.MX boards are added where images are publicly available, except for
imx6ul which is taken care of in a different series [1]. Fixes which appear safe
for backporting are cc'd to qemu-stable.

The series is structured as follows: Patches 1-5 fix some issues and are
mostly marked for backporting. Patch 4 is a follow-up on patches 1-3 and
should not be backported since it breaks migration.

Patches 6-11 add and improve functional tests for i.MX devices. While at it,
saner defaults for the amount of RAM and number of CPUs are established.

Patches 12-16 turn the remaining i.MX SoC device models into SySBus devices
which fixes their reset behavior.

Patches 17-30 are Kconfig cleanups where CONFIG_IMX gets split into dedicated
config items.

The last commit just fixes some typos in the code.

Changes in v3:
* Add dedicated patch fixing write one once WCR bits, cc'd to qemu-stable (Bin)
Done as yet another patch to tell the issues apart.
* Add and fix some commit messages (Bin)
* Add functional tests to 'tests_arm_system_thorough' (Bin)
* Fix typo in functional tests for mcimx7d-sabre machine (Bin)
* Use sysbus_realize() rather than sysbus_realize_and_unref() in case of
embedded SoC struct (Bin)
* Pick up R-b tags

Changes in v2:
* Remove patch adding `mc->ignore_memory_transaction_failures = true;` (Peter)
* Rework wdt_imx2 patches (Peter)
* Remove all but "hw/misc/Kconfig: Remove redundant USB_EHCI_SYSBUS from config
IMX" already queued by Phil. The preserved patch is required to remove all
dependencies from CONFIG_IMX such that it can be removed.
* Pick up R-b tags
* Rebase onto latest master

[1]
https://lore.kernel.org/qemu-devel/20261004090500.3082641-1-bin.
[email protected]/

base-commit: d7a65d1793d691d356a56833620f7d1e6f5d653b

Bernhard Beschow (31):
  hw/watchdog/wdt_imx2: Preserve own locked bits in WCR
  hw/watchdog/wdt_imx2: Fix handling of write one once WCR bits
  hw/watchdog/wdt_imx2: Clear WDT lock on reset
  hw/watchdog/wdt_imx2: Remove redundant attributes
  hw/arm/imx8mm-evk: Fix reference count of SoC object
  docs, tests/functional: Drop redundant CLI arguments in imx8m*-evk
    invocations
  hw/arm/sabrelite: Have 4 CPUs and 1 GiB of RAM by default
  tests/functional/arm: Add console test for `sabrelite` machine
  hw/arm/mcimx6ul-evk: Have 512 MiB of RAM by default
  hw/arm/mcimx7d-sabre: Have 2 CPUs and 2 GiB of RAM by default
  tests/functional/arm: Add console test for `mcimx7d-sabre` machine
  hw/arm/fsl-imx25: Derive from TYPE_SYS_BUS_DEVICE
  hw/arm/fsl-imx31: Derive from TYPE_SYS_BUS_DEVICE
  hw/arm/fsl-imx6: Derive from TYPE_SYS_BUS_DEVICE
  hw/arm/fsl-imx6ul: Derive from TYPE_SYS_BUS_DEVICE
  hw/arm/fsl-imx7: Derive from TYPE_SYS_BUS_DEVICE
  hw/misc/Kconfig: Remove redundant USB_EHCI_SYSBUS from config IMX
  Kconfig: Extract config IMX_AVIC from config IMX
  Kconfig: Extract config IMX_GPCV2 from config IMX
  Kconfig: Extract config IMX_RNG from config IMX
  Kconfig: Extract config FSL_IMX7_GPR from config IMX
  Kconfig: Extract config FSL_IMX{6, 7}_SRC from config IMX
  Kconfig: Extract config FSL_IMX7_SNVS from config IMX
  Kconfig: Extract dedicated config FSL_IMXx_CCM from config IMX
  Kconfig: Extract config IMX_GPT from config IMX
  Kconfig: Extract config IMX_EPIT from config IMX
  Kconfig: Extract config GPIO_IMX from config IMX
  Kconfig: Extract config IMX_SPI from config IMX
  Kconfig: Extract config IMX_SERIAL from config IMX
  Kconfig: Remove config IMX
  hw/arm/fsl-imx8m: Fix typo

 MAINTAINERS                                 |  2 +
 docs/system/arm/imx8m.rst                   |  2 +-
 docs/system/arm/sabrelite.rst               |  4 +-
 include/hw/arm/fsl-imx25.h                  |  5 +-
 include/hw/arm/fsl-imx31.h                  |  5 +-
 include/hw/arm/fsl-imx6.h                   |  5 +-
 include/hw/arm/fsl-imx6ul.h                 |  5 +-
 include/hw/arm/fsl-imx7.h                   |  5 +-
 include/hw/arm/fsl-imx8mm.h                 |  4 +-
 include/hw/arm/fsl-imx8mp.h                 |  4 +-
 include/hw/watchdog/wdt_imx2.h              |  2 -
 hw/arm/fsl-imx25.c                          |  7 +--
 hw/arm/fsl-imx31.c                          |  7 +--
 hw/arm/fsl-imx6.c                           |  4 +-
 hw/arm/fsl-imx6ul.c                         |  4 +-
 hw/arm/fsl-imx7.c                           |  5 +-
 hw/arm/fsl-imx8mm.c                         |  2 +-
 hw/arm/fsl-imx8mp.c                         |  2 +-
 hw/arm/imx25_pdk.c                          |  2 +-
 hw/arm/imx8mm-evk.c                         |  4 +-
 hw/arm/kzm.c                                |  2 +-
 hw/arm/mcimx6ul-evk.c                       |  3 +-
 hw/arm/mcimx7d-sabre.c                      |  4 +-
 hw/arm/sabrelite.c                          |  5 +-
 hw/watchdog/wdt_imx2.c                      | 22 ++------
 hw/arm/Kconfig                              | 56 ++++++++++++++++++---
 hw/char/Kconfig                             |  3 ++
 hw/char/meson.build                         |  2 +-
 hw/gpio/Kconfig                             |  3 ++
 hw/gpio/meson.build                         |  2 +-
 hw/intc/Kconfig                             |  6 +++
 hw/intc/meson.build                         |  3 +-
 hw/misc/Kconfig                             | 41 +++++++++++++--
 hw/misc/meson.build                         | 24 ++++-----
 hw/net/Kconfig                              |  2 +-
 hw/ssi/Kconfig                              |  4 ++
 hw/ssi/meson.build                          |  2 +-
 hw/timer/Kconfig                            | 10 ++++
 hw/timer/meson.build                        |  4 +-
 tests/functional/aarch64/test_imx8mm_evk.py |  4 +-
 tests/functional/aarch64/test_imx8mp_evk.py |  4 +-
 tests/functional/arm/meson.build            |  4 ++
 tests/functional/arm/test_mcimx7d_sabre.py  | 46 +++++++++++++++++
 tests/functional/arm/test_sabrelite.py      | 46 +++++++++++++++++
 44 files changed, 273 insertions(+), 109 deletions(-)
 create mode 100755 tests/functional/arm/test_mcimx7d_sabre.py
 create mode 100755 tests/functional/arm/test_sabrelite.py

-- 
2.56.0


Reply via email to