Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Sep 2022 22:23:20 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, freebsd-uboot@freebsd.org
Subject:   Re: u-boot debug, was: Re: U-boot on RPI3, sees disk but won't boot it
Message-ID:  <894FEFBF-12BA-49CD-BE87-662CD110C03F@yahoo.com>
In-Reply-To: <ABFBD0E6-8A9B-4C99-84DF-BF398F23678A@yahoo.com>
References:  <81F58716-72CE-45E8-951A-B7B92AD0FE95@yahoo.com> <20220928172839.GA75564@www.zefox.net> <62A7FD9D-DFAD-46B2-8681-F6EF0E5AC0DE@yahoo.com> <8CB25EDF-704A-4F86-B0D4-40818291C161@yahoo.com> <20220928234341.GA77046@www.zefox.net> <20220929002131.GA77106@www.zefox.net> <197D3C46-063B-4C67-AB1A-A3A072521D7F@yahoo.com> <A8C2BA4E-4520-4B34-9614-DDC4D8BEB097@yahoo.com> <6AA65AE6-41F1-405F-A592-7D641EA4C9CF@yahoo.com> <E3A1C678-8C47-4283-9F9F-4C9011DB8A2B@yahoo.com> <20220929054120.GA77803@www.zefox.net> <D7A62820-4928-49F0-8387-C1E6D998B121@yahoo.com> <ABFBD0E6-8A9B-4C99-84DF-BF398F23678A@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2022-Sep-29, at 00:18, Mark Millard <marklmi@yahoo.com> wrote:

> On 2022-Sep-28, at 23:59, Mark Millard <marklmi@yahoo.com> wrote:
>=20
>> On 2022-Sep-28, at 22:41, bob prohaska <fbsd@www.zefox.net> wrote:
>>=20
>>> I've put the full output from a failed (no storage
>>> device found) attempt at
>>> http://www.zefox.net/~fbsd/rpi3/u-boot/u-boot-debug-log
>>>=20
>>> The obvious error message is:
>>> Cannot enable port 1 after 5 retries, disabling port.
>>> Nothing about device 152d.
>>=20
>> The RPi3B has 5 USB ports for devices, one being internal
>> that is tied to the EtherNet port if I remember correctly.
>> It also has a root hub,6 six overall.
>>=20
>> Your failure log is about failing to get the root
>> hub working --which in turn blocks all the other
>> ports form being accessible.
>>=20
>>> Tomorrow I'll try to capture a complete log of a=20
>>> successful boot for comparison. The boot success
>>> rate is so far is 7 in 9 or 10, depending on how
>>> one counts.=20
>>=20
>> I'd also recommend recording a bunch of failures
>> and seeing what wort of variety exists in the
>> details of them.
>>=20
>> FYI: My log shows a Root Hub Port 1 status
>> sequence: 511, 511, 503. Yours: 311, 311,
>> (5 times:) 301. So it looks like what the
>> status encoding is and what the implications
>> are.
>=20
> Accidental send. Continuing. . .
>=20
> The output uses %x (so: hexadecimal). For reference:
>=20
> ./include/usb_defs.h:#define USB_PORT_STAT_CONNECTION    0x0001
> ./include/usb_defs.h:#define USB_PORT_STAT_ENABLE        0x0002
> ./include/usb_defs.h:#define USB_PORT_STAT_SUSPEND       0x0004
> ./include/usb_defs.h:#define USB_PORT_STAT_OVERCURRENT   0x0008
> ./include/usb_defs.h:#define USB_PORT_STAT_RESET         0x0010
> ./include/usb_defs.h:#define USB_PORT_STAT_POWER         0x0100
> ./include/usb_defs.h:#define USB_PORT_STAT_LOW_SPEED     0x0200
> ./include/usb_defs.h:#define USB_PORT_STAT_HIGH_SPEED    0x0400 /* =
support for EHCI */
> ./include/usb_defs.h:#define USB_PORT_STAT_SUPER_SPEED   0x0600 /* =
faking support to XHCI */
> ./include/usb_defs.h:#define USB_PORT_STAT_SPEED_MASK   \
> ./include/usb_defs.h:   (USB_PORT_STAT_LOW_SPEED | =
USB_PORT_STAT_HIGH_SPEED)
> ./include/usb_defs.h:#define USB_SS_PORT_STAT_MASK              =
(USB_PORT_STAT_CONNECTION | \
> ./include/usb_defs.h:                                    =
USB_PORT_STAT_ENABLE | \
> ./include/usb_defs.h:                                    =
USB_PORT_STAT_OVERCURRENT | \
> ./include/usb_defs.h:                                    =
USB_PORT_STAT_RESET)
> ./include/usb_defs.h:#define USB_PORT_STAT_C_CONNECTION  0x0001
> ./include/usb_defs.h:#define USB_PORT_STAT_C_ENABLE      0x0002
> ./include/usb_defs.h:#define USB_PORT_STAT_C_SUSPEND     0x0004
> ./include/usb_defs.h:#define USB_PORT_STAT_C_OVERCURRENT 0x0008
> ./include/usb_defs.h:#define USB_PORT_STAT_C_RESET       0x0010
>=20
> Note: USB_PORT_STAT_C_* is for port status change information.
>=20
> 0x311 and 0x301 indicate USB_PORT_STAT_LOW_SPEED instead of
> USB_PORT_STAT_HIGH_SPEED. They also indicate lack of
> USB_PORT_STAT_ENABLE.


As for what happens just before each of the 4 log
file's "0 Storage Device(s) found", all the
examples are the same. For:

Manufacturer=20
Product      U-Boot Root Hub
SerialNumber=20
bind node usb1@1

it ends up with the portstatus sequence of values:

311, 311, (5 times, 4 from retries:) 301

instead of what it gets when it later gets "1
Storage Device(s) found":

511, 511, 503

So no other port or device is found when it ends
up with "0 Storage Device(s) found".

311:	 USB_PORT_STAT_LOW_SPEED
	|USB_PORT_STAT_POWER
	|USB_PORT_STAT_RESET
	|USB_PORT_STAT_CONNECTION

301:	 USB_PORT_STAT_LOW_SPEED
	|USB_PORT_STAT_POWER
	|USB_PORT_STAT_CONNECTION

511:	 USB_PORT_STAT_HIGH_SPEED
	|USB_PORT_STAT_POWER
	|USB_PORT_STAT_RESET
	|USB_PORT_STAT_CONNECTION

503:	 USB_PORT_STAT_HIGH_SPEED
	|USB_PORT_STAT_POWER
	|USB_PORT_STAT_ENABLE
	|USB_PORT_STAT_CONNECTION

I've no clue what makes the distinction happen
on/for "U-Boot Root Hub". Nor does it looks
likely that I'd figure such out.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?894FEFBF-12BA-49CD-BE87-662CD110C03F>