From: Bin Meng <bin.meng@processmission.com>
To: QEMU <qemu-devel@nongnu.org>
Cc: Jean-Christophe Dubois <jcd@tribudubois.net>,
Peter Maydell <peter.maydell@linaro.org>,
qemu-arm@nongnu.org
Subject: [PATCH 10/10] tests/functional/arm: Add MCIMX6UL-EVK boot tests
Date: Wed, 12 Aug 2026 09:36:13 +0800 [thread overview]
Message-ID: <20260812013619.2134092-11-bin.meng@processmission.com> (raw)
In-Reply-To: <20260812013619.2134092-1-bin.meng@processmission.com>
The MCIMX6UL-EVK machine supports loading U-Boot proper with the
generic loader and booting Linux directly, but neither path has
functional coverage.
Add a versioned Buildroot asset containing U-Boot, a Linux kernel,
the board DTB, and a 128 MiB SD card image. Exercise both boot paths
and verify that they reach the Buildroot login prompt.
Cover the new test in the existing MCIMX6UL EVK MAINTAINERS entry.
Signed-off-by: Bin Meng <bin.meng@processmission.com>
---
MAINTAINERS | 1 +
tests/functional/arm/meson.build | 2 +
tests/functional/arm/test_mcimx6ul_evk.py | 70 +++++++++++++++++++++++
3 files changed, 73 insertions(+)
create mode 100644 tests/functional/arm/test_mcimx6ul_evk.py
diff --git a/MAINTAINERS b/MAINTAINERS
index 4628793dde..45288fb5b9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -909,6 +909,7 @@ F: include/hw/arm/fsl-imx6ul.h
F: include/hw/display/imx6ul_lcdif.h
F: include/hw/misc/imx6ul_ccm.h
F: docs/system/arm/mcimx6ul-evk.rst
+F: tests/functional/arm/test_mcimx6ul_evk.py
MCIMX7D SABRE / i.MX7
M: Peter Maydell <peter.maydell@linaro.org>
diff --git a/tests/functional/arm/meson.build b/tests/functional/arm/meson.build
index 61b00932db..d8b1408b13 100644
--- a/tests/functional/arm/meson.build
+++ b/tests/functional/arm/meson.build
@@ -20,6 +20,7 @@ test_arm_timeouts = {
'bpim2u' : 500,
'collie' : 180,
'cubieboard' : 360,
+ 'mcimx6ul_evk' : 240,
'orangepi' : 540,
'quanta_gsj' : 240,
'raspi2' : 120,
@@ -59,6 +60,7 @@ tests_arm_system_thorough = [
'emcraft_sf2',
'integratorcp',
'max78000fthr',
+ 'mcimx6ul_evk',
'microbit',
'orangepi',
'quanta_gsj',
diff --git a/tests/functional/arm/test_mcimx6ul_evk.py b/tests/functional/arm/test_mcimx6ul_evk.py
new file mode 100644
index 0000000000..687a0e9032
--- /dev/null
+++ b/tests/functional/arm/test_mcimx6ul_evk.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python3
+#
+# Functional tests for the NXP MCIMX6UL-EVK machine
+#
+# Copyright (c) 2026 Process Mission
+#
+# Author:
+# Bin Meng <bin.meng@processmission.com>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import Asset, LinuxKernelTest, skipIfMissingCommands
+
+
+class MCIMX6ULEVKMachine(LinuxKernelTest):
+
+ ASSET_BUILDROOT = Asset(
+ ('https://github.com/processmission/qemu-machine-images/releases/download/'
+ 'v1.0.0/arm-mcimx6ul-evk-v1.0.0.tar.zst'),
+ 'bedda89c848224dfc5108629975bc379ae5f4d8896d681521f2d485a0fb517aa')
+
+ def _prepare_images(self):
+ self.set_machine('mcimx6ul-evk')
+
+ archive_path = self.uncompress(
+ self.ASSET_BUILDROOT,
+ target='arm-mcimx6ul-evk-v1.0.0.tar',
+ format='zstd')
+ self.archive_extract(archive_path, format='tar')
+
+ self.vm.set_console()
+ self.vm.add_args(
+ '-m', '512M',
+ '-drive',
+ 'file=' + self.scratch_file('images', 'sdcard.img') +
+ ',if=sd,index=1,format=raw',
+ '-no-reboot')
+
+ @skipIfMissingCommands('zstd')
+ def test_uboot_boot(self):
+ self._prepare_images()
+
+ self.vm.add_args(
+ '-device',
+ 'loader,file=' + self.scratch_file('images', 'u-boot.bin') +
+ ',addr=0x87800000,cpu-num=0')
+ self.vm.launch()
+
+ self.wait_for_console_pattern('U-Boot 2024.07')
+ self.wait_for_console_pattern('Starting kernel ...')
+ self.wait_for_console_pattern('buildroot login:')
+
+ @skipIfMissingCommands('zstd')
+ def test_linux_boot(self):
+ self._prepare_images()
+
+ self.vm.add_args(
+ '-kernel', self.scratch_file('images', 'zImage'),
+ '-dtb', self.scratch_file('images',
+ 'imx6ul-14x14-evk.dtb'),
+ '-append',
+ 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw')
+ self.vm.launch()
+
+ self.wait_for_console_pattern('Linux version')
+ self.wait_for_console_pattern('buildroot login:')
+
+
+if __name__ == '__main__':
+ LinuxKernelTest.main()
--
2.53.0
prev parent reply other threads:[~2026-08-12 1:38 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-12 1:36 [PATCH 00/10] hw/arm: Enable U-Boot boot on MCIMX6UL-EVK Bin Meng
2026-08-12 1:36 ` [PATCH 01/10] hw/arm: fsl-imx6ul: Add SCU compatibility window Bin Meng
2026-08-12 1:36 ` [PATCH 02/10] hw/misc: imx6ul_ccm: Update PMU_MISC0 reset value Bin Meng
2026-08-12 1:36 ` [PATCH 03/10] hw/arm: fsl-imx6ul: Map early firmware register placeholders Bin Meng
2026-08-12 1:36 ` [PATCH 04/10] hw/arm: fsl-imx6ul: Add a minimal MMDC geometry model Bin Meng
2026-08-12 1:36 ` [PATCH 05/10] hw/sd: sdhci: Use a QEMU-local no-busy IRQ quirk bit Bin Meng
2026-08-12 1:36 ` [PATCH 06/10] hw/sd: sdhci: Honor i.MX uSDHC vendor clock gates Bin Meng
2026-08-12 1:36 ` [PATCH 07/10] hw/sd: sdhci: Preserve uSDHC status enables for U-Boot Bin Meng
2026-08-12 1:36 ` [PATCH 08/10] hw/sd: sdhci: Skip SDMA boundary stops for i.MX uSDHC Bin Meng
2026-08-12 1:36 ` [PATCH 09/10] docs/system/arm: Document MCIMX6UL-EVK Buildroot boot Bin Meng
2026-08-12 1:36 ` Bin Meng [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260812013619.2134092-11-bin.meng@processmission.com \
--to=bin.meng@processmission.com \
--cc=jcd@tribudubois.net \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.