Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Feb 2025 19:39:13 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Klaus Cucinauomo <maciphone2@googlemail.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: RPI5 16GB panic on boot [.dtb files]
Message-ID:  <6689572C-8E75-4A4B-877B-6A8502C1D462@yahoo.com>
In-Reply-To: <953D2D6D-1402-4074-81FC-65FAC87E3091@yahoo.com>
References:  <10E6E2C2-5A1B-417E-96A7-FA7CCB4FF50D@yahoo.com> <CA8B4C97-99F6-4729-8394-7549B4F763C2@googlemail.com> <4CD66BF7-05C1-47E3-BD74-DD06066D6FF0@yahoo.com> <953D2D6D-1402-4074-81FC-65FAC87E3091@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 3, 2025, at 18:43, Mark Millard <marklmi@yahoo.com> wrote:

> On Feb 3, 2025, at 17:03, Mark Millard <marklmi@yahoo.com> wrote:
>=20
>> On Feb 3, 2025, at 13:11, Klaus Cucinauomo =
<maciphone2@googlemail.com> wrote:
>>>=20
>>>>=20
>>>> ) Historically FreeBSD makes no use of the linux-mainline *.dts* =
sources
>>>> for RPi* systems.
>>>>=20
>>>> ) I'm not sure of the RPi folks even publish the *.dts* sources =
required
>>>> to reproduce the binary files that they distribute.
>>>>=20
>>>=20
>>> Mark,
>>>=20
>>> 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
>>=20
>> 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 .
>>=20
>> The installation of sysutils/rpi-firmware put in place:
>>=20
>> # 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
>>=20
>> 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.
>>=20
>> /usr/src/release/arm64/RPI.conf in turn uses that
>> port/package and an internal definition:
>>=20
>> DTB_DIR=3D"/usr/local/share/rpi-firmware"
>>=20
>> for forming paths as were to copy the files from for making the
>> official distribution materials:
>>=20
>>       for _DF in ${DTB_FILES}; do
>>               chroot ${CHROOTDIR} cp -p ${DTB_DIR}/${_DF} \
>>                       ${FATMOUNT}/${_DF}
>>       done
>>=20
>>> , and every dts(i) is OpenSourced in RPI-linux and all upcoming =
patches are OpenSourced in mailing lists of e.g. the bootloader.
>>=20
>> 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 .
>>=20
>> The RPi folks instead have things in:
>>=20
>> =
https://github.com/raspberrypi/linux/commits/rpi-6.6.y/arch/arm/boot/dts/
>>=20
>> 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.
>>=20
>>=20
>>> 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.
>>=20
>=20
> 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:
>=20
> https://github.com/raspberrypi/linux/tags
>=20
> 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:
>=20
> https://github.com/raspberrypi/linux/tree/stable_20250127
>=20
> to get you to a browser and you can browse into the
> likes of:
>=20
> =
https://github.com/raspberrypi/linux/tree/stable_20250127/arch/arm/boot/dt=
s
>=20
> Again: FreeBSD and sysutils/rpi-firmware do not access
> or compile such sources.
>=20
> The *.dtb files can be browsed to via the likes of:
>=20
> https://github.com/raspberrypi/firmware/ or one of its branches
> or tags via looking in the cintained boot folder. The README
> reports, in part:
>=20
> QUOTE
>    =E2=80=A2 boot:
>        =E2=80=A2 start*.elf, fixup*.dat and bootcode.bin are the GPU =
firmwares and bootloader. Their licence is described in =
boot/LICENCE.broadcom.
>        =E2=80=A2 The kernel.img files are builds of the Linux kernel, =
released under the GPL (see boot/COPYING.linux)
>        =E2=80=A2 The dtbs, overlays and associated README are built =
from Linux kernel sources, released under the GPL (see =
boot/COPYING.linux)
> END QUOTE
>=20
> 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
    =E2=80=A2 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

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6689572C-8E75-4A4B-877B-6A8502C1D462>