RPi 4B USB 3 support appears to still be broken in 13.0-RELEASE
Mark Millard
marklmi at yahoo.com
Sat Apr 17 08:30:01 UTC 2021
On 2021-Apr-16, at 16:00, Robert Clausecker <fuz at fuz.su> wrote:
> Last time I experimented with ZFS on the RPi 4B, I noticed that
> there is a strange problem when attaching the zpool via USB 3 as
> opposed to USB 2. When doing that, mounting root fails with
> IO errors like these:
>
> (da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 03 c1 b9 65 00 00 07 00
> (da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
> (da0:umass-sim0:0:0:0): Retrying command, 3 more tries remain
> (da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 03 c1 b9 65 00 00 07 00
> (da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
> (da0:umass-sim0:0:0:0): Retrying command, 2 more tries remain
>
> Attaching the boot disk through USB 2 instead works. Likewise,
> using USB 3 with a UFS root file system works (and in fact ran fine
> in a development system for months). I do not understand this.
>
> I had previously reported this issue as PR 249520:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249520
>
> There's some stuff about UEFI booting in there which you can ignore.
> The same problem also appears when booting via U-Boot.
>
> Now what surprises me is that this issue still occurs with
> FreeBSD 13.0-RELEASE. So whatever fixes had been performed
> did not seem to address the underlying problem at all.
>
> Is there any workaround or solution (except for ditching root
> on ZFS which would be rather painful for my use case?)
>
As a test I used bsdinstall and such as
listed below and tried to boot the resultant
USB3 SSD ZFS media. It worked fine.
The problem seems to somehow be rather specific
to some detail(s) of your context, not a general
problem.
Details of what I did:
I booted RPi4 via a micrsd card dd'd from:
FreeBSD-13.0-RELEASE-arm64-aarch64-RPI.img
I then attempted a bsdinstall onto a USB3 SSD,
using the automatic zfs partitioning option.
(I also set a fairly large swap size, not the
default 2g.)
(I did submit to the lists for a bsdinstall
mistake that I ran into that I had to work
around. But that issue is not relevant here.)
Of course, bsdinstall does not have logic for
the sysutils/rpi-firmware or
sysutils/u-boot-rpi-amd64 sorts of materials,
so I copied materials from the microsd card's
msdos file system for such things to the msdos
file system in /dev/gpt/efiboot0 on the USB3
SSD after bsdinstall finished, there-by
matching the official 13.0-RELEASE materials
for such. (I do have my typical config.txt
instead of the official one.)
It booted just fine (no microsd card present):
root at RPi4_8G_ZFS:~ # uname -apKU
FreeBSD RPi4_8G_ZFS 13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr 9 03:54:53 UTC 2021 root at releng1.nyi.freebsd.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64 aarch64 1300139 1300139
root at RPi4_8G_ZFS:~ # df -m
Filesystem 1M-blocks Used Avail Capacity Mounted on
zroot/ROOT/default 196003 1110 194893 1% /
devfs 0 0 0 100% /dev
/dev/gpt/efiboot0 259 18 241 7% /boot/efi
zroot/tmp 194893 0 194893 0% /tmp
zroot/usr/home 194893 0 194893 0% /usr/home
zroot/var/log 194893 0 194893 0% /var/log
zroot/var/mail 194893 0 194893 0% /var/mail
zroot 194893 0 194893 0% /zroot
zroot/var/tmp 194893 0 194893 0% /var/tmp
zroot/usr/src 195594 701 194893 0% /usr/src
zroot/var/audit 194893 0 194893 0% /var/audit
zroot/usr/ports 195593 700 194893 0% /usr/ports
zroot/var/crash 194893 0 194893 0% /var/crash
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-arm
mailing list