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

Aperta
#7,715 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
c, linux

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
C
Stelle
13.3k
Fork
5.5k
Merge medio
1g 9h
PR unite (30g)
17

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di raspberrypi/linux

Tutte le issue di raspberrypi/linux

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.