Attempting to install on RPi4B w/ UEFI, having some problems

Robert Clausecker fuz at fuz.su
Fri Sep 11 11:42:19 UTC 2020


Hi Mark,

On Thu, Sep 10, 2020 at 04:25:34PM -0700, Mark Millard wrote:
> 
> 
> On 2020-Sep-10, at 13:11, Robert Clausecker <fuz at fuz.su> wrote:
> 
> > Greetings!
> > 
> > I'm trying to install FreeBSD on a Raspberry Pi 4B w/ UEFI.
> > 
> > I've done the following:
> > 
> > * update the RPi4 firmware to support USb boot
> > 
> > * format a USB drive as follows
> > 
> > $ gpart show
> > =>       63  468862065  da0  MBR  (224G)
> >         63      32768    1  efi  (16M)
> >      32831  468829297    2  freebsd  (224G)
> > 
> > =>        0  468829297  da0s2  BSD  (224G)
> >          0   16777216      2  freebsd-swap  (8.0G)
> >   16777216  452052081      1  freebsd-zfs  (216G)
> 
> FYI: I use GPT partitioning. (No claim that you need to.)

Ah, good to know that that works.  I was afraid the UEFI code
required an MBR scheme as the documentation indicated such.

> Note: I'm running head -r363590 with various patches still.
>       This could mean some of my claims are outdated on the
>       FreeBSD side of ACPI based booting.
> 
> > * make a dos file system for the efi partition and copy the uefi files (most
> >  recent version) in there
> > 
> > * make a ZFS pool and file systems as appropriate for a boot environment
> 
> I've not used ZFS in many years so I've no comments related to zfs.
>
> > * build CURRENT from source with D25201 manually applied (the other patches
> >  have apparently already been merged) and install it into the pool, apply
> >  basic configuration.  The fstab says:
> > 
> > /dev/da0s1 /boot/efi msdos rw 0 0
> > /dev/da0s2b none swap sw 0 0
> > 
> >  loader.conf says:
> > 
> > cryptodev_load="YES"
> > zfs_load="YES"
> > 
> > * copy loader.efi to /boot/efi/efi/boot/bootaa64.efi
> > 
> > * boot into uefi config menu, set console to serial, choose boot device,
> >  set up ACPI+DTB mode, disable memory limit
> 
> To my knowledge FreeBSD makes no claim to be trying to
> support ACPI+DTB. I use ACPI for UEFI based booting (no DTB).

The Wiki page (arm/Raspberry Pi) does say explicitly:

> RPI4-UEFI, allows us to triple-boot FreeBSD on the RPi4 from either
> Device Tree or ACPI or ACPI&Device-tree(both). 

But it appears that loading the DTB from the UEFI boot loader is not
supported at all.  In fact, when I configure UEFI to generate a DTB
only (ACPI off), the kernel hangs during boot.

> > * kernel boots fine into login shell but reports no DTB found.
> 
> I'm not surprised.
> 
> > Some things don't seem to work correctly:
> > 
> > * if I plug the USB drive into a USB 3.0 port, everything works fine until
> >  root is mounted.  At that point, every further disk access fails with IO
> >  errors:
> > 
> > (da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 01 80 a0 c1 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
> > 
> >  This can be worked around using
> > 
> > * a genet ethernet device does not seem to exist and consequentially,
> >  no network connection can be established.
> 
> FreeBSD does not yet support the built-in Ethernet via ACPI booting.
> I use a USB3 Ethernet device instead.

Thanks, will use a USB ethernet dongle as a stop gap solution.

> > * pciconf -l yields no PCI devices and dmesg suggests no pci bus was
> >  detected (grepping for pci yields no results)
> 
> The ACPI exposure of the XHCI does not present it as a PCIe device.
> ACPI does not present the PCIe at all. (Or that is my understanding.)
>
> I boot via a USB3 SSD, no microsd card involved.

No SD card involved in my set up either.
 
> FreeBSD does not yet support the microsd card slot via ACPI based
> booting. I use a USB based reader/writer if I want to use a
> microsd card for something.
> 
> > * if I select DTB-only mode in the UEFI configuration, the kernel hangs
> >  during boot.  In any case it complains about not having received a DTB.
> 
> The only mode of using the UEFI/ACPI software is ACPI mode, no DTB at
> all. FreeBSD has a port for u-boot/DTB based but it and UEFI/DTB do no
> match.
> 
> > What can I do to fix these problems?  Is there anything I missed?
> > 
> 
> You are trying in-development software that is incomplete and has known
> problems. The UEFI/ACPI and u-boot alternatives have differing tradeoffs,
> including in what devices are supported.

Sure.  I though that perhaps I had missed some patch or something.  If
it's just not in the code yet, that's fine.  I'll wait for support to
arrive.

> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)

Yours,
Robert Clausecker

-- 
()  ascii ribbon campaign - for an 8-bit clean world 
/\  - against html email  - against proprietary attachments


More information about the freebsd-arm mailing list