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

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Feb 3, 2025, at 17:03, Mark Millard <[email protected]> wrote:

> On Feb 3, 2025, at 13:11, Klaus Cucinauomo <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.