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

Stefan Wahren wahrenst at gmx.net
Mon Nov 27 04:33:18 PST 2023


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?

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