Re: RPI5 16GB panic on boot [.dtb files]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 04 Feb 2025 02:43:59 UTC
On Feb 3, 2025, at 17:03, Mark Millard <marklmi@yahoo.com> wrote:

> On Feb 3, 2025, at 13:11, Klaus Cucinauomo <maciphone2@googlemail.com> wrote:
>> 
>>> 
>>> ) Historically FreeBSD makes no use of the linux-mainline *.dts* sources
>>> for RPi* systems.
>>> 
>>> ) I'm not sure of the RPi folks even publish the *.dts* sources required
>>> to reproduce the binary files that they distribute.
>>> 
>> 
>> Mark,
>> 
>> I'm sure you'll be a very important troubleshooter/bughunter again for RPI support, no one does it as well as you :-)
>> ... but let us clarify one important thing:
>> Every FreeBSD DeviceTreeSource(or compiled dtb) is a Linux(or RPILinux)-mainline-only source
> 
> Wrong for where/how FreeBSD gets the dtb files for the RPi*'s.
> See https://cgit.freebsd.org/ports/tree/sysutils/rpi-firmware and its
> Makefile as a start for seeing how /usr/src/release/arm64/RPI.conf
> gets the dtb's that are used: release/arm64/RPI.conf uses the
> installed materials from sysutils/rpi-firmware .
> 
> The installation of sysutils/rpi-firmware put in place:
> 
> # ls -C1 /usr/local/share/rpi-firmware/*.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-b-plus.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-b-rev1.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-b.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-cm.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-zero-w.dtb
> /usr/local/share/rpi-firmware/bcm2708-rpi-zero.dtb
> /usr/local/share/rpi-firmware/bcm2709-rpi-2-b.dtb
> /usr/local/share/rpi-firmware/bcm2709-rpi-cm2.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-2-b.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-3-b-plus.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-3-b.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-cm3.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-zero-2-w.dtb
> /usr/local/share/rpi-firmware/bcm2710-rpi-zero-2.dtb
> /usr/local/share/rpi-firmware/bcm2711-rpi-4-b.dtb
> /usr/local/share/rpi-firmware/bcm2711-rpi-400.dtb
> /usr/local/share/rpi-firmware/bcm2711-rpi-cm4-io.dtb
> /usr/local/share/rpi-firmware/bcm2711-rpi-cm4.dtb
> 
> without compiling any *.dts* files, instead getting
> binaries from a RPi specific place (which is not just
> mainline linux for RPi* 's): see sysutils/rpi-firmware
> for details.
> 
> /usr/src/release/arm64/RPI.conf in turn uses that
> port/package and an internal definition:
> 
> DTB_DIR="/usr/local/share/rpi-firmware"
> 
> for forming paths as were to copy the files from for making the
> official distribution materials:
> 
>        for _DF in ${DTB_FILES}; do
>                chroot ${CHROOTDIR} cp -p ${DTB_DIR}/${_DF} \
>                        ${FATMOUNT}/${_DF}
>        done
> 
>> , and every dts(i) is OpenSourced in RPI-linux and all upcoming patches are OpenSourced in mailing lists of e.g. the bootloader.
> 
> There may be sources present from the RPi folks but FreeBSD
> does not compile them and does not have those sources in
> its https://git.FreeBSD.org/src.git .
> 
> The RPi folks instead have things in:
> 
> https://github.com/raspberrypi/linux/commits/rpi-6.6.y/arch/arm/boot/dts/
> 
> Note that this area is not a just a copy of the linux mainline.
> Nor is it a copy from files from a U-Boot distribution.
> 
> 
>> Or so: they(torvalds&RPI&u-boot) upstream/downstream whatever they think is useful,
>> there are a lot of experst doing that daily  and we should not stay so far behind them forever.
> 

This is just an extra note about looking up the RPi
folks linux source by their own tags, such as the
recent stable_20250127 tag:

https://github.com/raspberrypi/linux/tags

shows the tags and can get to to .zip or .tar.gz files
for the sources. Using that tag as an example one can
use the likes of:

https://github.com/raspberrypi/linux/tree/stable_20250127

to get you to a browser and you can browse into the
likes of:

https://github.com/raspberrypi/linux/tree/stable_20250127/arch/arm/boot/dts

Again: FreeBSD and sysutils/rpi-firmware do not access
or compile such sources.

The *.dtb files can be browsed to via the likes of:

https://github.com/raspberrypi/firmware/ or one of its branches
or tags via looking in the cintained boot folder. The README
reports, in part:

QUOTE
    • boot:
        • start*.elf, fixup*.dat and bootcode.bin are the GPU firmwares and bootloader. Their licence is described in boot/LICENCE.broadcom.
        • The kernel.img files are builds of the Linux kernel, released under the GPL (see boot/COPYING.linux)
        • The dtbs, overlays and associated README are built from Linux kernel sources, released under the GPL (see boot/COPYING.linux)
END QUOTE

There is also https://github.com/raspberrypi/rpi-firmware/
that also has such (without the tags) but is in a smaller
repository for cloning (subset): "These are mirrored in a
separate repo from the official one, because for updating
the firmware, we're only interested in the files in the boot
folder of the official repo. Git doesn't provide a way to
clone only a single subfolder of a repo, and downloading
the entire repo including the sample code and VC libs would
take too long."

===
Mark Millard
marklmi at yahoo.com