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-nsaenzjulie...@suse.de/ https://patchwork.ozlabs.org/project/linux-pci/patch/20200629161845.6021-5-nsaenzjulie...@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@7e300000: 1, emmc2@7e340000: 0 > Loading Environment from FAT... Card did not respond to voltage select! > In: serial > Out: vidconsole > Err: vidconsole > Net: eth0: genet@7d580000 > PCIe BRCM: link up, 5.0 Gbps x1 (!SSC) > Device 'pci_0:0.0': seq 0 is in use by 'pcie@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@1,0 { > > #address-cells = <3>; > > #size-cells = <2>; > > ranges; > > > > reg = <0 0 0 0 0>; > > > > usb@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
signature.asc
Description: This is a digitally signed message part