[PATCH 0/4] Lab fixes
From: Simon Glass <simon.glass@canonical.com> This series includes a few SJG lab fixes to try to make it more reliable. Simon Glass (4): arm: dts: rk3399-firefly: Reduce SD card speed for lab test/py: Use longer timeout for lab-mode restart CI: Remove zybo, samus and samus_tpl from lab test/py: Simplify test_distro_arm_app_efi .gitlab-ci.yml | 16 --------- arch/arm/dts/rk3399-firefly-u-boot.dtsi | 6 ++++ test/py/console_base.py | 2 ++ test/py/tests/test_distro.py | 48 +++---------------------- 4 files changed, 12 insertions(+), 60 deletions(-) -- 2.43.0 base-commit: cdd549ccc4178d5efc59aa651850c0a6fee4175c branch: firefly
From: Simon Glass <simon.glass@canonical.com> The Firefly-RK3399 board does not boot reliably in the SJG lab due to signal-integrity issues with SD-wire adapters at higher speeds. Reduce the SDMMC max-frequency to 25MHz and disable high-speed modes to improve compatibility. Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- arch/arm/dts/rk3399-firefly-u-boot.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/dts/rk3399-firefly-u-boot.dtsi b/arch/arm/dts/rk3399-firefly-u-boot.dtsi index 1f5fda1d0f1..ca7a6694bcb 100644 --- a/arch/arm/dts/rk3399-firefly-u-boot.dtsi +++ b/arch/arm/dts/rk3399-firefly-u-boot.dtsi @@ -6,6 +6,12 @@ #include "rk3399-u-boot.dtsi" #include "rk3399-sdram-ddr3-1600.dtsi" +&sdmmc { + max-frequency = <25000000>; /* 25MHz for SD-wire compatibility */ + /delete-property/ cap-sd-highspeed; + /delete-property/ cap-mmc-highspeed; +}; + &vdd_log { regulator-init-microvolt = <950000>; }; -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> When restarting U-Boot in lab mode, ensure_spawned() sets the timeout to TIMEOUT_MS (30 seconds) before calling _wait_for_boot_prompt(). In lab mode, _wait_for_banner() is skipped, so TIMEOUT_PREPARE_MS is never restored. This causes tests that boot into Linux and then restart U-Boot (like test_distro_script) to fail with a timeout if the board takes more than 30 seconds to reset and boot. Fix this by setting the timeout to TIMEOUT_PREPARE_MS (3 minutes) at the start of _wait_for_boot_prompt() when in lab mode. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- test/py/console_base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/py/console_base.py b/test/py/console_base.py index 7443c567937..2bfd42746e4 100644 --- a/test/py/console_base.py +++ b/test/py/console_base.py @@ -309,6 +309,8 @@ class ConsoleBase(): try: self.log.info('Waiting for U-Boot to be ready') + if self.lab_mode: + self.timeout = TIMEOUT_PREPARE_MS if not self.lab_mode: self._wait_for_banner(loop_num) self.u_boot_version_string = self.after -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> These boards are no longer available in the lab, so drop them from the CI configuration. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- .gitlab-ci.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4d97291b484..e2378320d7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -782,17 +782,6 @@ pcduino3_nano: ROLE: pcduino3_nano <<: *lab_dfn -samus: - variables: - ROLE: samus - <<: *lab_dfn - -# chromebook_samus_tpl -samus_tpl: - variables: - ROLE: samus_tpl - <<: *lab_dfn - link: variables: ROLE: link @@ -927,11 +916,6 @@ rpi5: ROLE: rpi5 <<: *lab_dfn -zybo: - variables: - ROLE: zybo - <<: *lab_dfn - qemu-x86_64: variables: ROLE: qemu-x86_64 -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> The GRUB menu editing approach is fragile because: 1. GRUB can auto-boot before the test interacts with the menu 2. The command line content varies (e.g. '$vt_handoff' vs 'quiet splash') 3. Character-by-character navigation depends on exact screen layout Simplify to just verify that EFI boot through GRUB reaches Linux userspace, without trying to edit the kernel command line. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- test/py/tests/test_distro.py | 48 +++--------------------------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/test/py/tests/test_distro.py b/test/py/tests/test_distro.py index 4a44e2a30a4..257af800cdd 100644 --- a/test/py/tests/test_distro.py +++ b/test/py/tests/test_distro.py @@ -105,49 +105,9 @@ def test_distro_arm_app_efi(ubman): ubman.expect( ["Booting bootflow 'efi_media_1.bootdev.part_1' with efi"]) - # Press Escape to force GRUB to appear, even if the silent menu was - # enabled by a previous boot. If the menu is already set to appear, this - # will exit to the grub> prompt - ubman.send('\x1b') - - # Press Escape again, to force it to the grub> prompt - ubman.send('\x1b') - - # Wait until we see the editor appear - with ubman.log.section('grub'): - ubman.expect(['grub>']) - - ubman.run_command('normal', wait_for_prompt=False) - - ubman.expect(['ESC to return previous']) - - # Press 'e' to edit the command line - ubman.log.info("Pressing 'e'") - ubman.send('e') - for _ in range(10): - ubman.ctrl('N') - expected = '\tlinux\t/boot/vmlinuz-6.14.0-27-generic ' - expected += 'root=UUID=e5665fb4-e1de-4335-86da-357ad5422319 ro ' - for _ in expected: - ubman.ctrl('F') - - to_erase = 'quiet splash' - for _ in to_erase: - ubman.ctrl('D') - ubman.ctrl('X') - ubman.expect(['Booting a command list']) - - with ubman.log.section('exit boot-services'): - ubman.expect(['EFI stub: Exiting boot services...']) - - ubman.log.info("boot") - ubman.expect(['Booting Linux on physical CPU']) - - with ubman.log.section('initrd'): - ubman.expect(['Freeing initrd memory:']) - ubman.expect(['Run /init as init process']) - - with ubman.temporary_timeout(200 * 1000): - ubman.expect(['Ubuntu 25.04 qarm ttyAMA0']) + # Wait for Linux to boot to userspace (kernel may be quiet) + with ubman.log.section('Linux'): + with ubman.temporary_timeout(200 * 1000): + ubman.expect(['Ubuntu 25.04 qarm ttyAMA0']) ubman.restart_uboot() -- 2.43.0
participants (1)
-
Simon Glass