> > 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.

Reply via email to