armv6/armv7/aarch64 vs. FreeBSD images (retitled from an arch reply, moving to freebsd-arm list)
- Reply: Mark Millard : "Re: armv6/armv7/aarch64 vs. FreeBSD images (retitled from an arch reply, moving to freebsd-arm list)"
- Reply: Mark Millard : "Re: armv6/armv7/aarch64 vs. FreeBSD images (retitled from an arch reply, moving to freebsd-arm list)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 14 Dec 2022 06:45:14 UTC
Julian H. Stacey <jhs_at_berklix.com> wrote on Date: Wed, 14 Dec 2022 02:22:10 UTC : > Hi, Reference: >> From: Mark Millard <marklmi@yahoo.com> >> Date: Tue, 13 Dec 2022 15:52:16 -0800 > > . . . > > Extending wordings associated with each Pi dd image, would be very > welcome, to specificaly list all hardware version of a Pi each image > of v6, v7, aarch64, the image should boot. For FreeBSD support, a U-Boot build that is compatible is needed. U-Boot is via ports, with only a few preassembled combinations of U-Boot variant and FreeBSD produced officially. (Statements not limited to RPi*'s.) U-Boot materials are not part of FreeBSD but are used (even: needed) by FreeBSD. The RPi* firmware has a similar status: it is a port: rpi-firmware . It is not part of FreeBSD itself. A combination of RPi* firmware, U-Boot varient, and FreeBSD are needed overall. (The RPi* firmware can adjust some of the Device Tree before handing things over to U-Boot. U-Boot can adjust/add more before handing that off to the FreeBSD loader. FreeBSD does not handle all valid Device Trees from what I can tell --and this limits what range of RPi* firmware that FreeBSD avoids crashing with.) What armv6/armv7/aarch64 RPi's there are/have-been, no matter if a RPi*-firmware/U-Boot/FreeBSD combination has been shown to work or not: (I freely use my own abbreviations of official naming.) armv6 (BCM2835/BCM2708): RPiA, RPiB, RPiA+, RPiB+, CM, RPiZero v1.2, RPiZero v1.3, RPiZeroW (Note: https://www.raspberrypi.com/products/ does not list any of these as EOL yet. CM3 and CM1 are listed as "in production but not recommended for new designs".) FreeBSD image name pattern: *-arm-armv6-RPI-B* (and no others) No one may have evidence of the support status for each armv6 above. I've no evidence for any of them from anything like modern times. The port rpi-firmware has the files below (and more) in a vintage that matches with FreeBSD's implementation of the FDT (Device Tree) handling: bcm2708-rpi-b-plus.dtb bcm2708-rpi-b-rev1.dtb bcm2708-rpi-b.dtb bcm2708-rpi-cm.dtb bcm2708-rpi-zero-w.dtb bcm2708-rpi-zero.dtb Note: I do not know how to classify the RP2040 Dual-core Cortex-M0+ processor parts: they are armv6-M (M is for: microcontroller). So I did not list: RPiPico, RPiPicoW, or RP2040. No *.dtb name suggests which would support any of them. armv7 (BCM2836/BCM2709): RPi2B <= v1.1, CM2 (Note: https://www.raspberrypi.com/products/ list it as "in production but not recommended for new designs".) FreeBSD image name pattern: *-arm-armv6-RPI-B* 12.* FreeBSD image name pattern: *-arm-armv7-RPI2* 13.*+ FreeBSD image name pattern: *-arm-armv7-GENERICSD* (All should work for RPi2B <= v1.1 .) (No others) Note: *-arm-armv7-GENERICSD* is basically a rename of *-arm-armv7-RPI2* (relative to RPi* issues). I've no clue if anyone has CM2 evidence. The port rpi-firmware has the file below (and more) in a vintage that matches with FreeBSD's implementation of the FDT (Device Tree) handling: bcm2709-rpi-2-b.dtb The port rpi-firmware does not supply the file: bcm2709-rpi-cm2.dtb So the CM2 is missing something likely essential. (But the *.dtb need not be sufficient by itself.) (The file goes back to 2018-Mar-22 for its first commit on github.) aarch64 (BCM2837/BCM2710 family): RPi2B v1.2, RPi3A+, RPi3B, RPi3B+, CM3, CM3Lite, CM3+, CM3+Lite, RPiZero2, (BCM2710A1): RPiZero2W, (BCM2711 family): RPi4B, CM4, CM4Lite, CM4S, RPi400 (Note: https://www.raspberrypi.com/products/ does not list any of these as EOL yet. Nor any as not recommended for new designs.) Note: aarch64 RPi*'s can boot via RapsiOS 32-bit or RaspiOS64. (I've no clue if FreeBSD can do similarly for the BCM2711 family but it has handled BCM2837/BCM2710 contexts used as armv7 historically.) ("RaspiOS" is my abbreviation.) In part this is a U-Boot issue. RaspiOS and RaspiOS64 do not use U-Boot. U-Boot could potentially block FreeBSD from operating for a 32-bit addressing OS variant. FreeBSD image name pattern: *-arm-armv6-RPI-B* 12.* FreeBSD image name pattern: *-arm-armv7-RPI2* 13.*+ FreeBSD image name pattern: *-arm-armv7-GENERICSD* 12.* FreeBSD image name pattern: *-arm64-aarch64-RPI3* 13.*+ FreeBSD image name pattern: *-arm64-aarch64-RPI* Note: *-arm-armv7-GENERICSD* is basically a rename of *-arm-armv7-RPI2* (relative to RPi* issues). Note: *-arm64-aarch64-RPI* is basically a rename of *-arm64-aarch64-RPI3* (relative tp RPi* issues). No one may have evidence of the support status for each aarch64 above. I have some evidence only for RPi2B v1.2, RPi3B, some RPi4B. (All work for *-arm64-aarch64-RPI* last I checked.) The port rpi-firmware has the files below (and more) in a vintage that matches with FreeBSD's implementation of the FDT (Device Tree) handling: bcm2710-rpi-2-b.dtb bcm2710-rpi-3-b-plus.dtb bcm2710-rpi-3-b.dtb bcm2710-rpi-cm3.dtb bcm2711-rpi-4-b.dtb bcm2711-rpi-400.dtb bcm2711-rpi-cm4.dtb The port rpi-firmware does not supply the files: bcm2710-rpi-zero-2-w.dtb bcm2710-rpi-zero-2.dtb bcm2711-rpi-cm4s.dtb So the RPiZero2, RPiZero2W, and CM4S are missing something likely essential. (But the *.dtb need not be sufficient by itself.) > As a newbie to Raspberry Pi (but not FreeBSD) I have long been confused > which image is for which version of Pi hardware. The RPi3B+ should be able to use any of: FreeBSD image name pattern: *-arm-armv6-RPI-B* 12.* FreeBSD image name pattern: *-arm-armv7-RPI2* 13.* FreeBSD image name pattern: *-arm-armv7-GENERICSD* 12.* FreeBSD image name pattern: *-arm64-aarch64-RPI3* 13.* FreeBSD image name pattern: *-arm64-aarch64-RPI* But I've no evidence of my own of the actual results. (No access to such a part.) The *-arm64-aarch64-* ones are a more complete match to the hardware: for example supporting 64-bit addressing instead of 32-bit. > I previously had some kind of a 3B, & now have a "Pi 3 Model B+", > but have not got beyond booting images, starting to customise /etc/ > & then it crashes yet again, needing yet another dd, & repeat, > Being certain one is using the right image would be nice. This does not sound normal at all. I expect something more specific to your context is involved. > My notes: http://www.berklix.org/~jhs/pi/#images I'll look at the notes separately, possibly not tonight. === Mark Millard marklmi at yahoo.com