Skip to content

Add ventuno-q support#16

Open
Ricardo Salveti (ricardosalveti) wants to merge 6 commits into
qualcomm-linux:mainfrom
ricardosalveti:qcom-next
Open

Add ventuno-q support#16
Ricardo Salveti (ricardosalveti) wants to merge 6 commits into
qualcomm-linux:mainfrom
ricardosalveti:qcom-next

Conversation

@ricardosalveti

@ricardosalveti Ricardo Salveti (ricardosalveti) commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

Add support for Arduino VENTUNO Q (monza).

@ricardosalveti Ricardo Salveti (ricardosalveti) changed the title Add uno-q qcom-next support Add uno-q qcom-next and monza support Mar 8, 2026
Comment thread conf/machine/monza.conf Outdated
@ricardosalveti Ricardo Salveti (ricardosalveti) changed the title Add uno-q qcom-next and monza support Add ventuno-q support Mar 10, 2026
@ricardosalveti

Copy link
Copy Markdown
Collaborator Author

Depends on #19.

"

MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
packagegroup-ventuno-q-firmware \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also needs to list the kernel modules needed for booting, like the ANX, fan controller and others

@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 30 days of inactivity. To prevent automatic closure in 5 days, remove the stale label or add a comment. You can reopen a closed pull request at any time.

@ricardosalveti

Copy link
Copy Markdown
Collaborator Author

Temporarily including #43 to unblock the CI.

@MaxPayne86

Copy link
Copy Markdown

Ricardo Salveti (@ricardosalveti)

#132 Checks

TL:DR

  • usbc / adb ✔️
  • radio ❌
  • fastrpc: ✔️
Linux ventuno-q 7.1.0-rc4-g56de9cf736fd #1 SMP PREEMPT Fri May 22 07:20:34 UTC 2026 aarch64 GNU/Linux

[   14.925911] mhi mhi0: Direct firmware load for ath11k/QCA2066/hw2.1/amss.bin failed with error -2
[   14.942905] ath11k_pci 0000:03:00.0: failed to power up mhi: -110
[   14.949174] ath11k_pci 0000:03:00.0: failed to start mhi: -110
[   14.955172] ath11k_pci 0000:03:00.0: failed to power up :-110
[   14.985469] ath11k_pci 0000:03:00.0: failed to create soc core: -110
[   14.992017] ath11k_pci 0000:03:00.0: failed to init core: -110
[   15.135531] ath11k_pci 0000:03:00.0: probe with driver ath11k_pci failed with error -110
[   17.218375] Bluetooth: hci0: Reading QCA version information failed (-110)

and

[   18.809282] ------------[ cut here ]------------
[   18.814066] WARNING: /usr/src/kernel/kernel/workqueue.c:4327 at __flush_work+0x330/0x360, CPU#6: umount/741
[   18.824088] Modules linked in: usb_f_fs libcomposite ath11k_pci ath11k hci_uart mac80211 btqca btbcm libarc4 bluetooth ecdh_generic snd_soc_hdmi_codec kpp snd_q6apm(+) cfg
80211 ecc mhi rfkill leds_pca963x emc2305 ucsi_ccg typec_ucsi phy_qcom_edp typec snd_soc_max98090 ina2xx adv7511 apr pdr_interface qcom_pd_mapper rpmsg_ctrl fastrpc qrtr_smd
rpmsg_char qcom_pdr_msg snd_soc_sc8280xp snd_soc_qcom_sdw snd_soc_qcom_common soundwire_bus snd_soc_core qcom_iris qca808x snd_compress snd_pcm_dmaengine v4l2_mem2mem snd_pcm
 videobuf2_dma_contig msm videobuf2_memops snd_timer videobuf2_v4l2 ubwc_config videodev rtc_pm8xxx snd pwrseq_pcie_m2 videobuf2_common i2c_qcom_geni soundcore ocmem qcom_sta
ts mc i2c_qcom_cci drm_gpuvm llcc_qcom qrtr phy_qcom_sgmii_eth camcc_sa8775p videocc_sa8775p dispcc0_sa8775p qcom_refgen_regulator icc_bwmon gpi drm_exec phy_qcom_snps_femto_
v2 coresight_cti gpu_sched qcom_q6v5_pas stm_p_basic coresight_stm coresight_tmc qcom_pil_info dwmac_qcom_ethqos drm_dp_aux_bus qcom_q6v5 qcrypto coresight_replicator
[   18.824361]  stm_core coresight_funnel drm_display_helper stmmac_platform sha256 qcom_sysmon pinctrl_sm8450_lpass_lpi sha1 qcom_common display_connector cec stmmac coresig
ht qcom_glink_smem authenc pinctrl_lpass_lpi gpucc_sa8775p drm_client_lib mdt_loader pcs_xpcs qmi_helpers socinfo libdes qcomtee icc_osm_l3 qcom_wdt drm_kms_helper qcom_rng s
ch_fq_codel drm fuse backlight nfnetlink
[   18.916899] CPU: 6 UID: 0 PID: 741 Comm: umount Tainted: G S                  7.1.0-rc4-g56de9cf736fd #1 PREEMPT
[   18.916912] Tainted: [S]=CPU_OUT_OF_SPEC
[   18.916915] Hardware name: Arduino VENTUNO Q (DT)
[   18.916919] pstate: 00400005 (nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   18.916925] pc : __flush_work+0x330/0x360
[   18.916937] lr : __flush_work+0x48/0x360
[   18.916943] sp : ffff800084d6bca0
[   18.916946] x29: ffff800084d6bd00 x28: ffff000980ad3f00 x27: 0000000000000000
[   18.916956] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000001
[   18.916965] x23: ffffa867ca4d99d0 x22: ffffa867ca4d9000 x21: 0000000000000001
[   18.916974] x20: ffff000995c33f78 x19: ffff000995c33f78 x18: 0000000000000000
[   18.916984] x17: 000000040044ffff x16: ffffa867c7bee780 x15: 0000000000000000
[   18.916993] x14: 00000000000003d5 x13: 0000000000000000 x12: ffff000980401d58
[   18.917002] x11: ffffa867ca041c00 x10: ffff000980401b60 x9 : 0000000000000000
[   18.917011] x8 : ffff800084d6bcf8 x7 : 0000000000000000 x6 : 000000000000003f
[   18.917020] x5 : ffff800084d6bc50 x4 : 0000000000000000 x3 : 0000000000000000
[   18.917029] x2 : 0000000000000008 x1 : 0000000000000000 x0 : 0000000000000000
[   18.917039] Call trace:
[   18.917044]  __flush_work+0x330/0x360 (P)
[   18.917053]  cancel_work_sync+0x6c/0x90
[   18.917062]  ffs_fs_kill_sb+0x74/0x8c [usb_f_fs]
[   18.917093]  deactivate_locked_super+0x44/0xfc
[   18.917102]  deactivate_super+0x78/0x8c
[   18.917109]  cleanup_mnt+0xa4/0xf8
[   18.917118]  __cleanup_mnt+0x14/0x20
[   18.917127]  task_work_run+0x70/0xe0
[   18.917137]  exit_to_user_mode_loop+0x164/0x188
[   18.917147]  el0_svc+0x114/0x120
[   18.917158]  el0t_64_sync_handler+0xa0/0xe4
[   18.917166]  el0t_64_sync+0x198/0x19c
[   18.917177] ---[ end trace 0000000000000000 ]---

then a few symlinks necessary to execute fastrpc_test utility

mkdir -p /usr/lib/dsp/cdsp
ln -s /usr/share/qcom/qcs8300/Qualcomm/QCS8300-RIDE/dsp/cdsp/* /usr/lib/dsp/cdsp/
ln -s /usr/share/fastrpc_test/v75/*_skel.so /usr/lib/dsp/cdsp/
systemctl restart cdsprpcd
fastrpc_test -a v75

root@ventuno-q:/# fastrpc_test -a v75

Allocate 4000 bytes from ION heap
Creating sequence of numbers from 0 to 999
Compute sum on domain 3

Call calculator_sum on the DSP
Sum = 499500

Call calculator_max on the DSP
Max value = 999
[PASS] libcalculator.so


Demonstrating FARF run-time logging

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output

Demonstrating HAP_mem.h APIs

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output

Demonstrating HAP_perf.h APIs

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output
[PASS] libhap_example.so

Test PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output
[PASS] libmultithreading.so


========================================
Test Summary:
  Total tests run:    3
  Passed:             3
  Failed:             0
  Skipped:            0
========================================

RESULT: All applicable tests PASSED

@EmbeddedAndroid 0x1 (EmbeddedAndroid) left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of small issues to fix from some local testing.

Comment thread recipes-bsp/packagegroups/packagegroup-ventuno-q.bb Outdated
Comment thread conf/machine/ventuno-q.conf Outdated

KERNEL_DEVICETREE ?= " \
qcom/monaco-arduino-monza.dtb \
"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need

KERNEL_DTC_FLAGS = "-@"

The monza EDK2 firmware applies its SKU device-tree overlays at boot, which needs symbols in the base DTB and without it the FDT handed to the kernel is malformed and the EFI stub places /chosen/bootargs in the strings block, corrupting the kernel command line so the rootfs never mounts.

I was testing the SOTA config, so this might just be specific to that config.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, weird, there is nothing specific to ventuno here, and we have overlays for other targets as well, wonder if this is because we are just using the topic branch and not the complete qcom-next.

Comment thread conf/machine/ventuno-q.conf Outdated
Comment thread recipes-multimedia/camx/camx-dlkm_%.bbappend Outdated
Comment thread conf/machine/ventuno-q.conf Outdated
@EmbeddedAndroid

Copy link
Copy Markdown

Another bigger issue for wifi I found, we are missing the correctly calibrated board-2.bin for id 255. Without this firmware, the driver probes, but fails to scan.

@koenkooi

Copy link
Copy Markdown

Another bigger issue for wifi I found, we are missing the correctly calibrated board-2.bin for id 255. Without this firmware, the driver probes, but fails to scan.

Can we use e.g. qca-swiss-army-knife to add the ID into the firmware at build time?

@lumag

Copy link
Copy Markdown
Contributor

Another bigger issue for wifi I found, we are missing the correctly calibrated board-2.bin for id 255. Without this firmware, the driver probes, but fails to scan.

Can we use e.g. qca-swiss-army-knife to add the ID into the firmware at build time?

Either that, or as a temporal measure install board file as foo/hw3.4/board.bin. Make sure that the BDF works with the upstream firmware and submit it upstream.


KERNEL_DEVICETREE ?= " \
qcom/monaco-arduino-monza.dtb \
"

@EmbeddedAndroid 0x1 (EmbeddedAndroid) Jun 9, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to append deferred_probe_timeout=30 to the cmdline args to get the GPU and NPU drivers to bind as is done in our Deb images: https://github.com/qualcomm-linux/qcom-deb-images/blob/d009737de97574b38c397e6d65b4b51d99610a64/debos-recipes/qualcomm-linux-debian-image.yaml#L78

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is kind of hack, Loïc Minier (@lool) do we know why that was added in debian?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The very first commit of qcom-deb-images had this already! Back then, I just accepted what people told me was required; this was already present in mkosi-qcom for instance:
https://github.com/qualcomm/mkosi-qcom/blob/main/mkosi.conf#L17

We had various chats on Slack about this, I'll ping you a link to one

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe time to try to drop it or investigate if still needed?

@ricardosalveti Ricardo Salveti (ricardosalveti) force-pushed the qcom-next branch 3 times, most recently from f4d2335 to 26d36a0 Compare July 4, 2026 03:27
@ricardosalveti Ricardo Salveti (ricardosalveti) marked this pull request as ready for review July 4, 2026 04:45
@ricardosalveti

Copy link
Copy Markdown
Collaborator Author

I believe this is good enough for an initial build:

root@ventuno-q:~# uname -a
Linux ventuno-q 7.1.0-g3ba5c1635f81 #1 SMP PREEMPT Fri Jul  3 15:01:17 UTC 2026 aarch64 GNU/Linux
root@ventuno-q:~# dmesg | grep ath11
[   13.239683] ath11k_pci 0000:03:00.0: BAR 0 [mem 0x40400000-0x405fffff 64bit]: assigned
[   13.252941] ath11k_pci 0000:03:00.0: enabling device (0000 -> 0002)
[   13.253508] ath11k_pci 0000:03:00.0: MSI vectors: 32
[   13.264810] ath11k_pci 0000:03:00.0: qca2066 hw2.1
[   14.464192] ath11k_pci 0000:03:00.0: chip_id 0x12 chip_family 0xb board_id 0xff soc_id 0x400c1211
[   14.473323] ath11k_pci 0000:03:00.0: fw_version 0x11087fff fw_build_timestamp 2025-07-16 10:33 fw_build_id WLAN.HSP.1.1-03926.13-QCAHSPSWPL_V2_SILICONZ_CE-2.52297.9
[   14.916827] ath11k_pci 0000:03:00.0 wlp3s0: renamed from wlan0
root@ventuno-q:~# fastrpc_test -a v75

Demonstrating FARF run-time logging

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output

Demonstrating HAP_mem.h APIs

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output

Demonstrating HAP_perf.h APIs

hap_example function PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output
[PASS] libhap_example.so

Test PASSED
Please look at the mini-dm logs or the adb logcat logs for DSP output
[PASS] libmultithreading.so


Allocate 4000 bytes from ION heap
Creating sequence of numbers from 0 to 999
Compute sum on domain 3

Call calculator_sum on the DSP
Sum = 499500

Call calculator_max on the DSP
Max value = 999
[PASS] libcalculator.so


========================================
Test Summary:
  Total tests run:    3
  Passed:             3
  Failed:             0
  Skipped:            0
========================================

RESULT: All applicable tests PASSED
root@ventuno-q:~# cat /proc/cmdline
root=PARTLABEL=rootfs rw rootwait console=ttyMSM0,115200 qcom_scm.download_mode=1 arm64.nopauth

MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
packagegroup-ventuno-q-firmware \
packagegroup-ventuno-q-hexagon-dsp-binaries \
qairt-sdk-hexagon-v75 \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the qairtsdk really essential?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's how we are adding them in our machines.

Based on https://github.com/qualcomm-linux/kernel-topics/tree/early/hwe/arduino.

Temporary until all the required updates are available via qcom-next
from meta-qcom.

Also add a config fragment enabling the Monza board peripherals and
drop the PENDING QPS615 patch from SRC_URI, as it doesn't apply on
top of this tree.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add the CDT (Configuration Data Table) firmware for the Arduino
VENTUNO Q (QCS8275 Monza), as available via CodeLinaro.

The board reuses the generic QCS8300 boot firmware provided by
meta-qcom, so deploy the CDT under the same 8300 subdirectory to
follow the boot firmware path.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add packagegroup for ventuno-q, based on packagegroup-iq-8275-evk to
start with.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
https://www.arduino.cc/product-ventuno-q

The board is based on the QCS8275 (Monza) SoC, reusing the
qcom-qcs8300 machine include, the linux-qcom-next kernel and the
generic QCS8300 boot firmware from meta-qcom, with the board specific
CDT provided by firmware-qcom-cdt-ventuno-q.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add kas machine fragment for Arduino VENTUNO Q.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add ventuno-q to the machine list.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants