Pi 5: VL805 on external PCIe fails to probe with "can't setup: -12" on 6.12.109, works on 6.12.75

未关闭
#7,715 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
c, linux

调研方向

Start by comparing the Raspberry Pi kernel changes between 6.12.75 and 6.12.109, then trace the xhci_hcd probe path that reports “can't setup: -12” and the VL805 initialization. Reproduce on a Pi 5 with the listed HAT and configuration, checking whether the failure is specific to this controller. Done means identifying and fixing the regression so both root hubs register and USB devices enumerate on 6.12.109.

由索引模型根据 Issue 内容生成。

描述

Describe the bug

A VIA VL805 xHCI controller on a PCIe HAT connected to the Pi 5 external
PCIe connector fails to initialise on 6.12.109+rpt-rpi-2712. xhci_hcd
probe fails with -ENOMEM, no root hubs are registered, and no devices behind
the controller enumerate.

On the same system, with the same config.txt and the same boot firmware
(raspi-firmware 1:1.20260915-1~bookworm), 6.12.75+rpt-rpi-2712 works
normally: two root hubs appear, and USB devices (UVC cameras, an STM32 USB
device) enumerate and run.

Steps to reproduce the behaviour
  1. Pi 5 with Waveshare "PCIe to 4-Ch USB3.2 Gen1" HAT (VL805),
    dtparam=pciex1 in config.txt
  2. Boot 6.12.109+rpt-rpi-2712 -> probe fails with -12
  3. Boot 6.12.75+rpt-rpi-2712 (same firmware, same config) -> works
Device (s)

Raspberry Pi 5

System
  • Bad: 6.12.109+rpt-rpi-2712, also 6.12.109+rpt-rpi-v8 (4K pages)
  • Good: 6.12.75+rpt-rpi-2712
  • raspi-firmware 1:1.20260915-1~bookworm, rpi-eeprom 28.33-1
Logs

xhci_hcd 0001:01:00.0: xHCI Host Controller
xhci_hcd 0001:01:00.0: new USB bus registered, assigned bus number 1
xhci_hcd 0001:01:00.0: can't setup: -12
xhci_hcd 0001:01:00.0: USB bus 1 deregistered
xhci_hcd 0001:01:00.0: init 0001:01:00.0 fail, -12
xhci_hcd 0001:01:00.0: probe with driver xhci_hcd failed with error -12

PCIe enumeration is fine: "ASPM: VL805 fixup applied", BAR 0 assigned at
0x1b80000000, link 5 GT/s x1, no AER errors.

Additional context

Ruled out on 6.12.109:

  • CMA: 64 MiB total, ~54 MiB free at time of failure

  • Page size: fails identically on the 4K-page rpi-v8 kernel

  • dtoverlay=pciex1-compat-pi5,no-mip: no change

  • Removing a duplicate auto-detected DSI overlay: no change

  • Controller state: VL805 firmware 0x00013705 running, capability
    registers read via BAR0 on the failing kernel are sane:

    CAPLEN/HCIVER 01000020
    HCSPARAMS1 05000420 (32 slots, 4 intrs, 5 ports)
    HCSPARAMS2 fc000031 (31 scratchpad bufs, ERST max 2^3)
    HCSPARAMS3 00e70004
    HCCPARAMS1 002841eb (AC64, xECP 0xA0)
    DBOFF 00000100
    RTSOFF 00000200
    USBSTS 00000011 (HCH set, CNR clear)
    PAGESIZE 00000001

The kernels between 6.12.75 and 6.12.109 were not installed, so I could not
narrow the range further. Happy to test builds.

主要语言
C
星标
13.3k
派生
5.5k
平均合并
1 天 9 小时
30 天内合并 PR
17

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

raspberrypi/linux 的其他 Issue

查看 raspberrypi/linux 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。