On Mon, 27 Nov 2023 at 12:39, Stefan Wahren <wahrenst@xxxxxxx> wrote: > > Hi Phil, > > >>>> Hi Justin, > >>>> > >>>> [add Phil] > >>>> > >>>> Am 27.11.23 um 07:02 schrieb Justin Chen: > >>>>> On 11/25/23 6:56 PM, Stefan Wahren wrote: > >>>>>> In contrast to the Raspberry Pi 4, the Compute Module 4 or the IO board > >>>>>> does not have a VL805 USB 3.0 host controller, which is connected via > >>>>>> PCIe. Instead, the BCM2711 on the Compute Module provides the built-in > >>>>>> xHCI. > >>>>>> > >>>>> Does this work? I maintain this built-in xHCI controller internally. I > >>>>> wasn't aware the Compute Module uses this block. > >>>> i successful tested this with a CM4 (arm 32 bit, > >>>> multi_v7_lpae_defconfig) with eMMC. Before this series the USB devices > >>>> (mouse, keyboard) connected to the host interface didn't work. After > >>>> comparing vendor DTS with mainline i noticed the missing xHCI block [1]. > >>>> Unfortunately i wasn't able to get further information from the public > >>>> datasheets. I don't know if the VideoCore does some magic tricks on the > >>>> xHCI or i missed some downstream xHCI changes. > >>>> > >>>>> This block is held in reset and needs a bit toggled to get things > >>>>> going. Florian, just to confirm, this is our "brcm,xhci-brcm-v2" block > >>>>> correct? > >>>>> > >>>>> Justin > >>>> [1] - > >>>> https://github.com/raspberrypi/linux/blob/rpi-6.1.y/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi#L119 > >>> What's the question here? Does the XHCI block present in the > >>> raspberrypi/linux dtsi file really exist? Yes it does. > >> since i don't have any documentation about the xHCI block, i assumed the > >> compatible generic-xhci is correct. But Justin seems to suggest that the > >> xHCI block needs some special treatment and we need a specific compatible. > >> > >> Did i missed some xHCI driver changes? > >> Does the VC firmware something to the xHCI especially on CM4? > > The firmware switches the on-board USB pins from DWC-OTG to XHCI if > > otg_mode=1 is set in config.txt, or if booting over USB MSD. > is this pinctrl/pinmux available from ARM via 0x7e200000 or a different > IO address? It's in a different, undocumented block. Phil