Re: Dealing with slow USB disks, was: Re: Saving environment variables in u-boot

From: bob prohaska <fbsd_at_www.zefox.net>
Date: Mon, 20 Dec 2021 04:39:56 UTC
On Sun, Dec 19, 2021 at 04:48:58PM -0800, Mark Millard wrote:
> On 2021-Dec-19, at 15:54, bob prohaska <fbsd@www.zefox.net> wrote:
> 
> > On Sun, Dec 19, 2021 at 01:13:12PM -0800, Mark Millard wrote:
> >> On 2021-Dec-19, at 11:28, bob prohaska <fbsd at www.zefox.net> wrote:
> >> 
> >>> On Sun, Dec 19, 2021 at 12:55:12AM -0800, Mark Millard wrote:
> > ....
> >>>> (The above are JMicro based.) Can you identify your adapter
> >>>> type?
> >>>> 
> >>> 
> >>> The enclosure is simply marked SABRENT EC_UASP, 
> >>> The usb-sata bridge is marked   JMS576
> >>>                               2026 QH8A3A A
> >>>                               E76H20013
> >> 
> >> THat is one of the ones listed on
> >> 
> >> https://jamesachambers.com/fixing-storage-adapters-for-raspberry-pi-via-firmware-updates/
> >> 
> >> as potentially fixable (with quirks possibly involved). See:
> >> 
> >> https://www.sabrent.com/download/jmicron-sabrent-update-tool/
> >> 
> >> for SABRENT's Firmware-Update Tool. Looks like Windows7+ is
> >> a required context for doing the firmware update.
> >> 
> > Yes, I'm searching for  a Windows machine to give it a try.
> > I wonder how new the update is; running strings on the .exe finds
> > Borland C++ - Copyright 2002 Borland Corporation
> > 
> >> I've not checked if FreeBSD has any quirks in place.
> >> 
> > My troublesome Pi3 and trouble-free Pi4 with JMicron bridge report
> > umass0:  SCSI over Bulk-Only; quirks = 0x8100
> > da0: quirks=0x2<NO_6_BYTE>
> 
> FreeBSD version(s)? (The quirks lists can be distinct.)
> U-Boot versions(s)?
> RPi* firmware version(s)?

For the Pi4 that works I find
FreeBSD 14.0-CURRENT (GENERIC) #18 main-aee99ab4fe: Wed Dec 15 23:45:26 PST 2021
U-Boot 2020.10 (Mar 04 2021 - 04:32:31 +0000)
The start* files are all from March 4 or March 7, 2021
The files haven't been altered manually, but possibly by installworld/kernel.

The Pi3 with problems runs
FreeBSD pelorus.zefox.org 13.0-STABLE FreeBSD 13.0-STABLE #2 stable/13-n248556-0848451a2ee: Wed Dec 15 19:54:57 PST 2021     bob@pelorus.zefox.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC  arm64

The start* files are dated March 3, 2021, 
u-boot.bin on the microSD card seems to be 
U-Boot 2020.10 (Apr 09 2021 - 03:55:54 +0000)
and all are from the original -release image.
> 
> The RPi4 could well have distinct results on USB3 vs.
> USB2 ports: The USB2 ports are likely limited to 500mA
> but the USB3 ports support 900mA (so: near the spin-up
> requirement).

I probably shouldn't compare the Pi4 with the Pi3, they're
very different in the USB department. 

> 
> > A second  Pi3 that uses the same Seagate drive through 
> > an ASMT bridge reports
> > umass0:  SCSI over Bulk-Only; quirks = 0x0100
> > da0: quirks=0x2<NO_6_BYTE>
> > It has no trouble finding the disk in repeated attempts.
> 
> FreeBSD version? (The quirks lists can be distinct.)
FreeBSD www.zefox.org 14.0-CURRENT FreeBSD 14.0-CURRENT #3 main-n249322-ae87a08c410: Mon Sep 13 14:44:29 PDT 2021     bob@www.zefox.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC  arm64

> U-Boot versions?
On the microSD:
U-Boot 2019.10 (Mar 17 2020 - 22:01:14 -0700) 

> RPi* firmware version?
Quite old also. 2018 and 2019, but I'm not sure the dates are right.
There's a file named uboot.env that is dated Dec. 30 1979, that
can't be right.


> 
> And are the RPi3's the same model (B vs. B+)?
>

Probably not, they were bought some time apart. I'd be hard pressed 
to say which is which without disconnecting them.
 
> >> 
> >> The power (current) requirements to get this drive spinning is double
> >> what a USB2 port has for a maximum in the USB2 standard: The drive is
> >> problematical unless power is being drawn from 2 USB2 ports for
> >> the one drive. EC-UASP does not seem to support such
> >> dual-USB2-port use. (The RPi*'s are not designed to provide extra
> >> power on a USB2 port as far as I know.)
> >> 
> > 
> > It's clear that I'm pushing limits quite hard at startup. Still, by
> > the time of disk discovery the initial surge is over.
> 
> Being mismatched for power could have non-time-local
> consequences to either the drive or the adapter or
> the RPi*.
> 
> (Avoiding USB Hub protocol activity is a separate/additional
> distinction.)
> 
> > There's no
> > mouse or keyboard on either Pi3. The Pi3 that finds the disk is 
> > running -current, the Pi3 that can't find the disk is stable/13.
> 
> What specific current and stable/13 commits?
No custom changes.

> What of U-Boot versions?
> What of RPi* firmware versions?
>
The best summary I can come up with is: 
Not able to find the USB disk, all dated 2021.
Able to find the USB disk, dated 2020 and older.


> There are cases with external power allowed that avoid
> adding the USB Hub protocol to the activity.
> 

I've got a powered usb-sata adapter on my shopping list.

Thanks for writing!

bob prohaska