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

Phil Elwell phil at raspberrypi.com
Mon Nov 27 03:58:07 PST 2023


On Mon, 27 Nov 2023 at 11:44, Stefan Wahren <wahrenst at gmx.net> wrote:
>
> Hi Phil,
>
> Am 27.11.23 um 12:22 schrieb Phil Elwell:
> > On Mon, 27 Nov 2023 at 11:08, Stefan Wahren <wahrenst at gmx.net> wrote:
> >> 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. This also
triggers the enabling of the node with the label or alias "xhci".

CM4 is not handled any differently to the other 2711-based devices in
this regard.

Phil



More information about the linux-arm-kernel mailing list