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 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
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時間
マージ済み PR(30日)
17

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

raspberrypi/linux のほかの issue

raspberrypi/linux の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。