Re: FreeBSD-16.0-CURRENT-arm64-aarch64-RPI-20260525-490c53e9353f-286096.img won't boot rpi5

Mark Millard <[email protected]> Mon, 1 Jun 2026 12:35:46 -0700
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On 6/1/26 11:33, void wrote:
> On Mon, Jun 01, 2026 at 11:29:28AM -0700, Mark Millard wrote:
>> As I understand, all 16 GiByte ones are D0. The one I have access to is.
>> The old, early time-frame 8 GiByte one that I have access to is pre-D0.
> 
> Does the 16GB one you have access to boot FreeBSD?

I boot both to FreeBSD. My normal contexts involve:

) official pkgbase main: non-debug boot kernel ( when selected in
  /boot/loader.conf ) and debug boot world

) personal build of alternate non-debug boot kernel and a chroot
  non-debug world, for example.

The msdosfs involved for the D0 that has the RPi5 files from the RPi*
folks and the EDK2 has ( not showing mounting /mnt ):

# find -s /mnt/ -print
/mnt/
/mnt/RPI_EFI.fd
/mnt/bcm2712-d-rpi-5-b.dtb
/mnt/bcm2712-rpi-5-b.dtb
/mnt/bcm2712-rpi-500.dtb
/mnt/bcm2712-rpi-cm5-cm4io.dtb
/mnt/bcm2712-rpi-cm5-cm5io.dtb
/mnt/bcm2712-rpi-cm5l-cm4io.dtb
/mnt/bcm2712-rpi-cm5l-cm5io.dtb
/mnt/bcm2712d0-rpi-5-b.dtb
/mnt/config.txt
/mnt/overlays
/mnt/overlays/bcm2712d0.dtbo
/mnt/timeout

The empty timeout file is because of USB3 boot media that I have needing
the extra time that the RPi* firmware gives when that file exists.
`timeout` is not normally present.

My config.txt is tailored compared to upstream.

RPI_EFI.fd is the EDK2 implementation. The rest is all from the RPi* folks.

Note the files mentioning "d0" or "d" in their names:

/mnt/bcm2712-d-rpi-5-b.dtb
/mnt/bcm2712d0-rpi-5-b.dtb
/mnt/overlays/bcm2712d0.dtbo

in normal use the first 2 of those is not used by the RPi5 firmware but
the last one of the 3 is used with:

/mnt/bcm2712-rpi-5-b.dtb

to make adjustments for the D0 when the system is D0 based.

(Note: RPi*'s use another processor for its firmware execution, not the
aarch64 that FreeBSD can boot.)

the msdosfs on the boot media that has the FreeBSD kernel should (also)
have (I happen to keep separate media):

# find -s /boot/efi/ -print
/boot/efi/
/boot/efi/EFI
/boot/efi/EFI/BOOT
/boot/efi/EFI/BOOT/bootaa64.efi
/boot/efi/EFI/FREEBSD
/boot/efi/EFI/FREEBSD/loader.efi

(I happend to keep the two media separate. /boot/efi is where this
msdosfs was mounted. One msdosfs on FreeBSD boot kernel media can be
sufficient if all the msdosfs paths / files are present in the one place.)

Note: /boot/efi/EFI/FREEBSD lines are likely unnecessary.

I boot both USB3 FreeBSD media and NVMe FreeBSD media, the media being
nearly copies of each other.


Note:
I'm told that freebsd-update messes up the RPi5 booting status somehow.
(I do not use freebsd-update.)

-- 
===
Mark Millard
marklmi at yahoo.com