tmolteno / d1_build

Debian disk image builder for the Sipeed Lichee RV Risc-v Single Board Computer
GNU General Public License v3.0
59 stars 16 forks source link

USB host not working with v0.4.0 (deferred probe) #29

Open steve-m opened 1 year ago

steve-m commented 1 year ago

With the release v0.4.0 the USB host is not working in the Lichee RV Dock. I downgraded to v0.3.3, and USB devices are working there.

U-Boot is detecting USB devices with both versions (in this case a USB Mass Storage device):

starting USB...
Bus usb@4101000: USB EHCI 1.00
Bus usb@4101400: USB OHCI 1.0
Bus usb@4200000: USB EHCI 1.00
Bus usb@4200400: USB OHCI 1.0
scanning bus usb@4101000 for devices... 1 USB Device(s) found
scanning bus usb@4101400 for devices... 1 USB Device(s) found
scanning bus usb@4200000 for devices... 2 USB Device(s) found
scanning bus usb@4200400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

With v0.4.0 I see in the Kernel log that the probe of the USB hardware is deferred:

[   31.186292] platform 4101000.usb: deferred probe pending
[   31.191702] platform 4101400.usb: deferred probe pending
[   31.197098] platform 4200400.usb: deferred probe pending
[   31.202494] platform 4200000.usb: deferred probe pending

However, the dependencies never seem to be resolved and the deferred probe is not happening.

That's the output with v0.3.3, the USB hardware is initialized straight away:

[    1.345633] ehci-platform 4101000.usb: USB 2.0 started, EHCI 1.00
[    1.352025] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.18
[    1.360408] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.367716] usb usb1: Product: EHCI Host Controller
[    1.372742] usb usb1: Manufacturer: Linux 5.18.0-rc4-gf4bce410a6b4-dirty ehci_hcd
[    1.380304] usb usb1: SerialNumber: 4101000.usb
[    1.385842] hub 1-0:1.0: USB hub found
[    1.389841] hub 1-0:1.0: 1 port detected
[    1.395396] ehci-platform 4200000.usb: EHCI Host Controller
[    1.401148] ehci-platform 4200000.usb: new USB bus registered, assigned bus number 2
[    1.409184] ehci-platform 4200000.usb: irq 38, io mem 0x04200000
[    1.427210] mmc1: new high speed SDIO card at address 0001
[    1.432806] ehci-platform 4200000.usb: USB 2.0 started, EHCI 1.00
[    1.439158] mmc0: new high speed SDHC card at address aaaa
[    1.445841] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.18
[    1.454738] mmcblk0: mmc0:aaaa SL32G 28.8 GiB 
[    1.460378] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.467842] usb usb2: Product: EHCI Host Controller
[    1.472940] usb usb2: Manufacturer: Linux 5.18.0-rc4-gf4bce410a6b4-dirty ehci_hcd
[    1.480638] usb usb2: SerialNumber: 4200000.usb
[    1.486642] hub 2-0:1.0: USB hub found
[    1.490537] hub 2-0:1.0: 1 port detected
[    1.498052] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    1.505505] GPT:16383999 != 60367871
[    1.509084] GPT:Alternate GPT header not at the end of the disk.
[    1.515106] GPT:16383999 != 60367871
[    1.518709] GPT: Use GNU Parted to correct GPT errors.
[    1.523914]  mmcblk0: p1 p2 p3
[    1.537255] ohci-platform 4101400.usb: Generic Platform OHCI controller
[    1.543985] ohci-platform 4101400.usb: new USB bus registered, assigned bus number 3
[    1.551935] ohci-platform 4101400.usb: irq 37, io mem 0x04101400
[    1.621377] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.18
[    1.629839] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.637124] usb usb3: Product: Generic Platform OHCI controller
[    1.643073] usb usb3: Manufacturer: Linux 5.18.0-rc4-gf4bce410a6b4-dirty ohci_hcd
[    1.650580] usb usb3: SerialNumber: 4101400.usb
[    1.655958] hub 3-0:1.0: USB hub found
[    1.659849] hub 3-0:1.0: 1 port detected
[    1.665190] ohci-platform 4200400.usb: Generic Platform OHCI controller
[    1.672042] ohci-platform 4200400.usb: new USB bus registered, assigned bus number 4
[    1.679985] ohci-platform 4200400.usb: irq 39, io mem 0x04200400
[    1.749414] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.18
[    1.757753] usb 2-1: new high-speed USB device number 2 using ehci-platform
[    1.764759] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.772075] usb usb4: Product: Generic Platform OHCI controller
[    1.778126] usb usb4: Manufacturer: Linux 5.18.0-rc4-gf4bce410a6b4-dirty ohci_hcd
[    1.785656] usb usb4: SerialNumber: 4200400.usb
[    1.791060] hub 4-0:1.0: USB hub found
[    1.794950] hub 4-0:1.0: 1 port detected
[    1.801224] musb-hdrc musb-hdrc.4.auto: MUSB HDRC host driver
[    1.807212] musb-hdrc musb-hdrc.4.auto: new USB bus registered, assigned bus number 5
[    1.815318] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.18
[    1.823628] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.830877] usb usb5: Product: MUSB HDRC host driver
[    1.835906] usb usb5: Manufacturer: Linux 5.18.0-rc4-gf4bce410a6b4-dirty musb-hcd
[    1.843424] usb usb5: SerialNumber: musb-hdrc.4.auto
[    1.849443] hub 5-0:1.0: USB hub found
[    1.853327] hub 5-0:1.0: 1 port detected
[    1.858290] using random self ethernet address
[    1.862791] using random host ethernet address
[    1.868097] usb0: HOST MAC 9a:e2:9d:0b:8b:90
[    1.872431] usb0: MAC d6:c1:f0:b0:ed:53
[    1.876484] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[    1.883173] g_ether gadget: g_ether ready
[    1.889286] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.899729] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.906758] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.915770] ALSA device list:
[    1.918901]   #0: sun20i-codec
[    1.922045] cfg80211: failed to load regulatory.db
[    1.934962] usb 2-1: New USB device found, idVendor=14cd, idProduct=1212, bcdDevice= 1.00
[    1.943248] usb 2-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[    1.950588] usb 2-1: Product: Mass Storage Device
[    1.955652] usb 2-1: Manufacturer: Generic
[    1.960040] usb 2-1: SerialNumber: 121220160204
[    1.966760] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled.
[    1.976075] usb-storage 2-1:1.0: USB Mass Storage device detected
[    1.982329] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.989969] scsi host0: usb-storage 2-1:1.0
[    2.010424] devtmpfs: mounted
[    2.014906] Freeing unused kernel image (initmem) memory: 2188K
[    2.020916] Run /sbin/init as init process
[    2.978803] systemd[1]: System time before build time, advancing clock.
[    3.018200] scsi 0:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
[    3.028561] sd 0:0:0:0: Attached scsi generic sg0 type 0
tmolteno commented 1 year ago

Thanks for the report. I'm not entirely sure what is going on here. It could be the Kernel version in 0.4.0 which is d1/all, rather than a specific tag which really should be done.

tmolteno commented 1 year ago

This may be related to Issue #17. Hopefully changes in v0.4.1 help with this.