[PATCH v6 0/4] usb: xhci: Load Raspberry Pi 4 VL805's firmware
Nicolas Saenz Julienne
nsaenzjulienne at suse.de
Sun Jul 19 12:06:26 CEST 2020
Hi Stefan,
On Sun, 2020-07-19 at 02:37 +0200, Stefan Agner wrote:
> Hi Nicolas,
>
> On 2020-06-29 18:37, Nicolas Saenz Julienne wrote:
> > Newer revisions of the RPi4 need their xHCI chip, VL805, firmware to be
> > loaded explicitly. Earlier versions didn't need that as they where using
> > an EEPROM for that purpose. This series takes care of setting up the
> > relevant infrastructure and run the firmware loading routine at the
> > right moment.
>
> I tried using this patchset to boot from a USB mass storage device on
> RPi 4 with 8GB RAM. I updated the EEPROM firmware as well as deployed
> the latest GPU firmware (start4.elf/fixup4.dat) from the firmware master
> branch. I think with that I have new enough/correct versions.
>
> The RPi 4 successfully boots U-Boot from a mass storage device. However,
> U-Boot itself is then not able to access USB. The output always shows
> -110 (timeout). It seems that the VL805 controller is not detected on
> the PCIe bus. Do you happen to know what I might be missing?
>
> I tried current master (which has your patchset merged) as well as your
> vl805 branch on Github.
You're probably missing these two patches on your device-tree, they haven't
made it upstream yet, but most likely will soon:
https://patchwork.ozlabs.org/project/linux-pci/patch/20200629161845.6021-4-nsaenzjulienne@suse.de/
https://patchwork.ozlabs.org/project/linux-pci/patch/20200629161845.6021-5-nsaenzjulienne@suse.de/
Sorry for the hassle!
Nicolas
>
> U-Boot 2020.07-rc4-00036-gdeb48986ee (Jul 19 2020 - 02:29:44 +0200)
>
> DRAM: 7.9 GiB
> RPI 4 Model B (0xd03114)
> MMC: mmcnr at 7e300000: 1, emmc2 at 7e340000: 0
> Loading Environment from FAT... Card did not respond to voltage select!
> In: serial
> Out: vidconsole
> Err: vidconsole
> Net: eth0: genet at 7d580000
> PCIe BRCM: link up, 5.0 Gbps x1 (!SSC)
> Device 'pci_0:0.0': seq 0 is in use by 'pcie at 7d500000'
> starting USB...
> Bus xhci_pci: probe failed, error -110
> No working controllers found
> Hit any key to stop autoboot: 0
> U-Boot> pci enum
> U-Boot> pci
> Scanning PCI devices on bus 0
> BusDevFun VendorId DeviceId Device Class Sub-Class
> _____________________________________________________________
> 00.00.00 0x14e4 0x2711 Bridge device 0x04
>
>
> --
> Stefan
>
> > Note that this builds on top of Sylwester Nawrocki's "USB host support
> > for Raspberry Pi 4 board" series.
> >
> > This also depends on a DT/bindings patch available on the linux-mailing
> > lists:
> > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2205783.html
> >
> > Here is the relevant bit for reference/discussion:
> >
> > &pcie0 {
> > pci at 1,0 {
> > #address-cells = <3>;
> > #size-cells = <2>;
> > ranges;
> >
> > reg = <0 0 0 0 0>;
> >
> > usb at 1,0 {
> > reg = <0x10000 0 0 0 0>;
> > resets = <&reset
> > RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
> > };
> > };
> > };
> >
> > ---
> >
> > Changes since v5:
> > - Properly handle !CONFIG_IS_ENABLED(DM_RESET) in xchi code
> >
> > Changes since v4:
> > - Correct DT PCI topology, I separated the root bridge and controller
> > DT nodes
> > - Get rid of PCI core patch as not needed with correct DT PCI topology
> > - Move reset support to xchi core
> >
> > Changes since v3:
> > - Use reset controller
> >
> > Changes since v2:
> > - Correct comment on patch #1
> > - Address Matthias' comments
> >
> > Changes since v1:
> > - Rename function
> > - Use callback in xhci-pci.c
> >
> > Nicolas Saenz Julienne (4):
> > arm: rpi: Add function to trigger VL805's firmware load
> > reset: Add Raspberry Pi 4 firmware reset controller
> > configs: Enable support for reset controllers on RPi4
> > usb: xhci: Add reset controller support
> >
> > arch/arm/mach-bcm283x/include/mach/mbox.h | 13 ++++
> > arch/arm/mach-bcm283x/include/mach/msg.h | 7 +++
> > arch/arm/mach-bcm283x/msg.c | 46 ++++++++++++++
> > configs/rpi_4_32b_defconfig | 1 +
> > configs/rpi_4_defconfig | 1 +
> > configs/rpi_arm64_defconfig | 1 +
> > drivers/reset/Kconfig | 10 ++++
> > drivers/reset/Makefile | 1 +
> > drivers/reset/reset-raspberrypi.c | 60 +++++++++++++++++++
> > drivers/usb/host/xhci-mem.c | 2 +
> > drivers/usb/host/xhci.c | 33 ++++++++++
> > .../reset/raspberrypi,firmware-reset.h | 13 ++++
> > include/usb/xhci.h | 2 +
> > 13 files changed, 190 insertions(+)
> > create mode 100644 drivers/reset/reset-raspberrypi.c
> > create mode 100644 include/dt-bindings/reset/raspberrypi,firmware-reset.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200719/05e456df/attachment.sig>
More information about the U-Boot
mailing list