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 18:43, Mark Millard <[email protected]> wrote:

> 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."

As for what *.dtb files U-Boot can use for RPi* 's . . .

FYI: https://docs.u-boot.org/en/latest/board/broadcom/raspberrypi.html
reports that the "rpi_arm64_defconfig" uses the .dtb file
provided by the RPi folks instead of U-Boot's embedded one:

QUOTE
rpi_arm64_defconfig uses the device-tree provided by the firmware instead of the embedded one. It allows to use the same U-Boot binary to boot different boards.
END QUOTE

It is listed as supporting:

QUOTE
    • rpi_arm64_defconfig - Raspberry Pi 3b - Raspberry Pi 3b+ - Raspberry Pi 4b - Raspberry Pi 400 - Raspberry Pi CM 3 - Raspberry Pi CM 3+ - Raspberry Pi CM 4 - Raspberry Pi zero 2 w
END QUOTE

===
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.