> > I'm working on enabling the VIA805 XCHI controller found on the new > > Raspberry > > Pi 4. The controller sits behind a PCIe bus, which I've already > > implemented[1] > > and will submit once the XCHI issues are resolved, as it's worthless > > otherwise. > > > > The XHCI initialization gets stuck after issuing the fist 'enable slot' > > command. I've been reviewing the whole init process and comparing it to > > Linux's > > for days without finding anything fishy. DMA constraints, which are > > important > > on the RPi are mantained, and on top of that, I can confirm DMA trough PCIe > > works fine as I see two 'port status change' events available in the ring > > before completly stalling. Also note that, unsurprisingly, the CRR bit in > > the > > CRCR register (which marks the running state of the Command Ring state > > machine) > > is never set after ringing the relevant doorbell. > > This is probably caused by the required structure setup by U-Boot is > viewed as buggy by the xHCI controller, hence there is no response to > the first "enable slot" command. > > Could you please compare all the data structures, with the one set up > by the Linux kernel? > > BTW: does Linux kernel xHCI driver work on this RPI 4 board?
Yes, it uses the standard xhci-hcd controller driver, it's a fairly vanilla VIA controller.