On 10/19/2026 8:51 AM, Brian Cain wrote:
On 10/19/2026 8:47 AM, Philippe Mathieu-Daudé wrote:
On 19/10/26 07:52, Brian Cain wrote:
Download the firmware and run it on the corresponding DSP machine.
The images are third-party binaries, so the tests run only when
untrusted
code is allowed.
Signed-off-by: Brian Cain <[email protected]>
---
tests/functional/hexagon/meson.build | 2 +
.../hexagon/test_qcom_dsp_firmware.py | 89
+++++++++++++++++++
2 files changed, 91 insertions(+)
create mode 100755 tests/functional/hexagon/test_qcom_dsp_firmware.py
diff --git a/tests/functional/hexagon/test_qcom_dsp_firmware.py
b/tests/functional/hexagon/test_qcom_dsp_firmware.py
new file mode 100755
index 00000000000..86a0628d9f3
--- /dev/null
+++ b/tests/functional/hexagon/test_qcom_dsp_firmware.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+#
+# Boot the production DSP firmware on the Qualcomm DSP machines
+#
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import QemuSystemTest, Asset, skipUntrustedTest
+from qemu_test import wait_for_console_pattern
+
+
+class QcomDspFirmwareTest(QemuSystemTest):
+ """Base class: the firmware is the ELF that -kernel starts
running."""
+
+ REPO =
'https://gitlab.com/kernel-firmware/linux-firmware/-/raw/' \
+ 'd947e4e8e314e9254a1242dc1a5d9cede2cce33d/qcom'
404: Page not found
Huh. Maybe I picked a funny commit and somehow the asset cache fooled
me? Will take a closer look.
Disregard: all is well. A "wget" of one of these assets works for me.
If I paste the URL into chrome, it downloads the asset.
But if I browse
to https://gitlab.com/kernel-firmware/linux-firmware/-/raw/d947e4e8e314e9254a1242dc1a5d9cede2cce33d/qcom
I do get a 404. I think this is the expected behavior, though. That
"raw" mode for the URL expects a path to a file object that git could
serve up.
If you browse
to https://gitlab.com/kernel-firmware/linux-firmware/-/tree/d947e4e8e314e9254a1242dc1a5d9cede2cce33d/qcom
you can see the directory listing that you might have expected. If you
apply these changes to master I would expect `check-functional` will
download and run them (w/the untrusted code bit set).
The sha in the URL is inconvenient and unclear so in v2 I will switch to
a recent tag instead.
-Brian