[PATCH 2/2] usb: xhci: Load Raspberry Pi 4 VL805's firmware

Marek Vasut marex at denx.de
Tue Apr 28 19:59:57 CEST 2020


On 4/28/20 7:44 PM, Nicolas Saenz Julienne wrote:
> When needed, RPi4's co-processor (called VideoCore) has to be instructed
> to load VL805's firmware (the chip providing xHCI support). VideCore's
> firmware expects the board's PCIe bus to be already configured in order
> for it to load the xHCI chip firmware. So we have to make sure this
> happens in between the PCIe configuration and xHCI startup.
> 
> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne at suse.de>
> ---
>  drivers/usb/host/xhci-pci.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index c1f60da541..5c17ea6932 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -11,6 +11,8 @@
>  #include <usb.h>
>  #include <usb/xhci.h>
>  
> +#include <asm/arch/msg.h>
> +
>  static void xhci_pci_init(struct udevice *dev, struct xhci_hccr **ret_hccr,
>  			  struct xhci_hcor **ret_hcor)
>  {
> @@ -18,6 +20,10 @@ static void xhci_pci_init(struct udevice *dev, struct xhci_hccr **ret_hccr,
>  	struct xhci_hcor *hcor;
>  	u32 cmd;
>  
> +#ifdef CONFIG_BCM2711
> +	bcm2711_load_vl805_firmware();
> +#endif
> +
>  	hccr = (struct xhci_hccr *)dm_pci_map_bar(dev,
>  			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
>  	hcor = (struct xhci_hcor *)((uintptr_t) hccr +

I think socfpga arria10 has some firmware loader implementation that is
generic, so can't we use that ?


More information about the U-Boot mailing list