[PATCH 0/3] ARM: dts: bcm2711-rpi-cm4-io: Enable xHCI host

Phil Elwell phil at raspberrypi.com
Mon Nov 27 08:28:48 PST 2023


On Mon, 27 Nov 2023 at 12:39, Stefan Wahren <wahrenst at gmx.net> 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



More information about the linux-arm-kernel mailing list