Re: openbsd 7.8 is out and (just?) D0 vintage RPi5 support is official [the U-boot installed does not handle usb booting, but D0 RPi5 EDK2 draft's DeviceTree mode worked for that]
Date: Thu, 23 Oct 2025 20:43:11 UTC
On Oct 22, 2025, at 10:49, Mark Millard <marklmi@yahoo.com> wrote: > On Oct 22, 2025, at 10:23, Mark Millard <marklmi@yahoo.com> wrote: > >> On Oct 22, 2025, at 07:43, Mark Millard <marklmi@yahoo.com> wrote: >> >>> On Oct 22, 2025, at 07:16, void <void@f-m.fm> wrote: >>> >>>> On Tue, Oct 21, 2025 at 10:34:48PM -0700, Mark Millard wrote: >>>>> On Oct 21, 2025, at 22:16, Mark Millard <marklmi@yahoo.com> wrote: >>>> >>>>>> The rpone driver supports the Raspberry Pi RP1 peripheral controller that is used in the >>>>>> Raspberry Pi 5. The driver acts as a bridge between the PCIe bus and the peripherals >>>>>> and maps peripheral interrupts onto MSI-X interrupts. The peripherals themselves are >>>>>> supported by separate drivers. >>>> >>>> Do you know if this implies support for the ethernet interface? >>> >>> Quoting from https://www.openbsd.org/78.html : >>> >>> • Added support for Raspberry Pi 5 (with console on serial port). >>> . . . >>> • Make the cad(4) Ethernet interface on the Raspberry Pi 5 work by configuring the delays for RGMII PHYs correctly. >>> >>> Also, quoting https://man.openbsd.org/bcmstbpinctrl.4 : >>> >>> "The bcmstbpinctrl driver uses pin control data from the device tree to select one of multiple possible roles available for pins on Broadcom Set-top Box SoCs. This includes the Broadcom BCM2712 SoC that is used in the Raspberry Pi 5. It does not provide direct device driver entry points but makes its functions available to other drivers." >>> >>> So: Device Tree, not ACPI, for that. >>> >>> There are no special instructions about using UEFI/ACPI . I expect it is >>> U-Boot based by default and works with their miniroot78.img without >>> substitutions for such. >> >> On a D0 (modern) vintage RPi5, I installed OpenBSD 7.8 . >> >> After that . . . booting and using the built-in Ethernet >> and the EDK2 draft for the D0 vintage RPi5's (used in >> DeviceTree mode), using a USB3 media for openbsd and the >> EDK2 draft on a microsd card: >> >> # uname -ap >> OpenBSD RPi64bOpenBSD.my.domain 7.8 GENERIC.MP#38 arm64 aarch64 >> >> # df >> Filesystem 512-blocks Used Avail Capacity Mounted on >> /dev/sd1a 2018844 244740 1673164 13% / >> /dev/sd1l 243602060 4 231421956 1% /home >> /dev/sd1d 8114908 12 7709152 1% /tmp >> /dev/sd1f 46092380 2446128 41341636 6% /usr >> /dev/sd1g 2018844 4 1917900 1% /usr/X11R6 >> /dev/sd1h 40614428 288 38583420 1% /usr/local >> /dev/sd1k 12179004 4 11570052 1% /usr/obj >> /dev/sd1j 10146972 4 9639620 1% /usr/src >> /dev/sd1e 56214104 11336 53392064 1% /var >> >> Note: I did not install games or X11 materials. >> >> # ping 192.168.1.1 >> PING 192.168.1.1 (192.168.1.1): 56 data bytes >> 64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.707 ms >> 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.705 ms >> 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.650 ms >> 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.722 ms >> 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.725 ms >> 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.694 ms >> ^C >> --- 192.168.1.1 ping statistics --- >> 6 packets transmitted, 6 packets received, 0.0% packet loss >> round-trip min/avg/max/std-dev = 0.650/0.701/0.725/0.025 ms >> >> ssh login over Ethernet is working. >> >> # ifconfig | grep "^[^i ]" >> lo0: flags=2008049<UP,LOOPBACK,RUNNING,MULTICAST,LRO> mtu 32768 >> cad0: flags=a48843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6TEMP,AUTOCONF6,AUTOCONF4> mtu 1500 >> enc0: flags=0<> >> bwfm0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 >> pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136 >> >> # dmesg -s >> Automatic boot in progress: starting file system checks. >> /dev/sd1a (455e297ed8d3ccce.a): file system is clean; not checking >> /dev/sd1l (455e297ed8d3ccce.l): file system is clean; not checking >> /dev/sd1d (455e297ed8d3ccce.d): file system is clean; not checking >> /dev/sd1f (455e297ed8d3ccce.f): file system is clean; not checking >> /dev/sd1g (455e297ed8d3ccce.g): file system is clean; not checking >> /dev/sd1h (455e297ed8d3ccce.h): file system is clean; not checking >> /dev/sd1k (455e297ed8d3ccce.k): file system is clean; not checking >> /dev/sd1j (455e297ed8d3ccce.j): file system is clean; not checking >> /dev/sd1e (455e297ed8d3ccce.e): file system is clean; not checking >> pf enabled >> starting network >> reordering: ld.so libc libcrypto sshd sshd-session sshd-auth ssh-agent. >> openssl: generating isakmpd RSA keys... done. >> openssl: generating iked ECDSA keys... done. >> ssh-keygen: generating new host keys: RSA ECDSA ED25519 >> sshd: (ED25519) SHA256:aiv3N0kkdUYkVqXiaB18+445D1BjhqiF45DYVc4ZbGI >> starting early daemons: syslogd pflogd ntpd. >> starting RPC daemons:. >> savecore: no core dump >> checking quotas: done. >> clearing /tmp >> kern.securelevel: 0 -> 1 >> creating runtime link editor directory cache. >> preserving editor files. >> starting network daemons: sshd smtpd sndiod. >> running rc.firsttime >> fw_update: add bwfm; update none >> Checking for available binary patches... >> starting local daemons: cron. >> Wed Oct 22 09:03:58 PDT 2025 >> >> >> Note: Booting did not work for the EDK2's ACPI mode. >> >> >> I expect that the USB3 media's msdosfs content to be >> adjusted to be based on the EDK2 draft. >> >> >> But I prefer to be able to move the USB3 media between >> the D0 RPi5 and the pre-D0 RPI5 without switching >> EDK2 involved on the USB3 media: separate microsd cards >> for separate RPI5's that need distinct EDK2 drafts as >> stands. That is, if that was working as I'd hoped. >> >> When I moved the USB3 media to the old, original vintage >> RPi5, OpenBSD choose its "sd0" instead of its "sd1". >> "sd0" is the microsd card with the EDK2 on it and the >> USB3 media is "sd1". >> >> But I seem to remember that openbsd kernel security >> actually does not support moving boot media between >> systems and then simply using it --and that more than >> that might be involved. (I've not used OpenBSD much >> --and it has been a long time since I last did.) FYI, >> the /etc/fstab that the install set up: >> >> # cat /etc/fstab >> 455e297ed8d3ccce.b none swap sw >> 455e297ed8d3ccce.a / ffs rw 1 1 >> 455e297ed8d3ccce.l /home ffs rw,nodev,nosuid 1 2 >> 455e297ed8d3ccce.d /tmp ffs rw,nodev,nosuid 1 2 >> 455e297ed8d3ccce.f /usr ffs rw,nodev 1 2 >> 455e297ed8d3ccce.g /usr/X11R6 ffs rw,nodev 1 2 >> 455e297ed8d3ccce.h /usr/local ffs rw,wxallowed,nodev 1 2 >> 455e297ed8d3ccce.k /usr/obj ffs rw,nodev,nosuid 1 2 >> 455e297ed8d3ccce.j /usr/src ffs rw,nodev,nosuid 1 2 >> 455e297ed8d3ccce.e /var ffs rw,nodev,nosuid 1 2 >> >> >> Side note: >> Too bad FreeBSD requires ACPI and OpenBSD requires >> DeviceTree for the EDK2 drafts. >> >> >> For reference, from var/log/messages : >> >> . . . >> > > For reference, the "D0" RPi5B config.txt that I use > with the EDK2 drafts is as shown by: > > # cat /mnt/config.txt > armstub=RPI_EFI.fd > # > # For NEW EDK2 (debug): > device_tree_address=0x3e0000 > device_tree_end=0x400000 > # > # For OLDER EDK2 (non-debug): > #device_tree_address=0x1f0000 > #device_tree_end=0x210000 > > # Force 32 bpp framebuffer allocation. > framebuffer_depth=32 > > # Disable compensation for displays with overscan. > disable_overscan=1 > > # Force maximum USB power regardless of the power supply. > usb_max_current_enable=1 > > # Force maximum CPU speed. > force_turbo=1 > > # Local additions: > enable_uart=1 > uart_2ndstage=1 > dtdebug=1 > disable_commandline_tags=1 > # > [pi5] > over_voltage_delta=100000 > arm_freq=2600 > [all] > program_usb_boot_timeout=1 > Bad news for the older, pre-D0 RPi5's relative to OpenBSD 7.8 . . . Context: older, original vintage RPi5 (8 GiBytes), pre-D0 silicon with the older, EDK2 draft what is for such older silicon So far my experiments with the combination of OpenBSD 7.8 and the older EDK2 draft for the older RPi5 does not support USB. The bsd.rd (in memory) kernel used for installs and upgrades and such only shows the microsd card (as sd0) as present. As the microsd card is the EDK2 one, it does not have openbsd on it. Net result: "Available disks are: none." despite the USB media that works for the D0 RPI5 being plugged in to a USB port. The last release (v0.3) for pre-D0 EDK2 draft was back on 2024-Mar-15 and the *.dtb file(s) from the RPi* folks likely was from somewhat earlier. It might just be too old to be compatible with what OpenBSD has done. === Mark Millard marklmi at yahoo.com