On every boot, downstream port 0000:02:02.0 of the Pericom PI7C9X2G304 switch (12d8:b304) behind PCIe0 (1c00000.pci) reports a burst of Uncorrectable (Fatal) Transaction Layer errors. AER resets the link and reports "device recovery successful", then the error happens again, about every 30 ms. The device tree places the TI USB 3 host controller (usb@0, compatible pci104c,8241, ti,pwron-active-high) behind this port, but the controller never shows up in lspci. The other switch port (02:01.0 → QCNFA765 Wi-Fi) works fine.
I also noticed that flash drives in the usb ports are not recognized on my board seems odd.
/sys/bus/pci/devices/0000:02:02.0/aer_dev_fatal: Undefined 1699, FCP 1, TOTAL_ERR_FATAL 1699. There are no correctable or non-fatal errors.
The burst runs from about 73 s to about 124 s after boot, then stops. The count stays at 1699 afterwards.
Repeating log pattern:
pcieport 0000:00:00.0: AER: Uncorrectable (Fatal) error message received from 0000:02:02.0
pcieport 0000:02:02.0: PCIe Bus Error: severity=Uncorrectable (Fatal), type=Transaction Layer, (Receiver ID)
pcieport 0000:02:02.0: device [12d8:b304] error status/mask=00000001/00000000
pcieport 0000:02:02.0: [ 0] Undefined (First)
pcieport 0000:02:02.0: AER: Downstream Port link has been reset (0)
pcieport 0000:02:02.0: AER: device recovery successful
The last occurrence instead reports [13] FCP (Flow Control Protocol error).
Side effect: the flood fills the kernel log buffer, so early-boot PCIe messages (including PCIe1 / M.2) are lost from dmesg.
Expected
The TI USB controller enumerates behind 02:02.0 and its USB ports work.
Board / software
Arduino VENTUNO Q (DT model "Qualcomm Technologies, Inc. Monaco Monza addons", compatible arduino,monza qcom,monaco-monza qcom,qcs8300)
Ubuntu 24.04.5 LTS, kernel 6.8.0-1084-qcom #89-Ubuntu SMP PREEMPT_DYNAMIC Thu Aug 20 09:02:55 UTC 2026 (aarch64)
Notes / questions
The DT node has ti,pwron-active-high, which suggests the controller needs a power-on/reset sequence. Does the 6.8 Ubuntu qcom kernel handle this for this board, or does it need the newer Monza board support (qualcomm-linux/kernel PR #1013, 6.18)?
Is there a recommended OS image or kernel for VENTUNO Q where this works?
Separate (possibly related) question: M.2 NVMe not detected
A 1TB NVMe SSD in the M.2 slot isn't detected. PCIe1 (1c10000.pci, root port 0001:00:00.0) is status=okay, nvme_vreg_en is enabled and consumed by 1c10000.pci, the nvme driver is available, but nothing enumerates behind the root port after cold boots and re-seating. I'm checking the drive's form factor and type (the slot is documented as 2230 NVMe only), and will follow up with the PCIe1 boot log.
There was a similar report of this specific problem from another VENTUNO Q user:
From the information shared in that topic, it seems that the problem is specific to certain drive models rather than being universal to all drives.
A colleague at Arduino is investigating the problem with NVMe SSDs. I recommend watching the Issues with Ventuno Q (m.2, tmp, App Lab) forum topic to receive news on the subject.
I understand that the problem of your NVMe SSD not being detected is only one component of the report you made here.
In order to ensure all relevant information is available to others reading this topic, I'll share a link to what I assume is the pull request you mentioned:
Thanks. For reference, the PR #1013 validation section says it was tested on a VENTUNO Q with "both PCIe root ports enumerating through to the TI TUSB73x0 xHCI". So the same controller works on qcom-6.18.y with the upstream board DT, and the failure looks specific to the Ubuntu 6.8 (6.8.0-1084-qcom) kernel/DT shipped on the board, not hardware.
Is there a planned Ubuntu image update with a newer kernel or updated DT, or is the Yocto image built from meta-arduino-qcom the recommended route for now? Happy to test a candidate image.
Hello again @mmhoffm. In case you might have missed it, I wanted to notify you that an Arduino team member has now suggested a solution for the NVMe SSD problem in the other forum topic: