The OpenBSD team announced the project’s latest release, OpenBSD 7.0 which comes with RISC64 architecture support and drivers for Apple M1 systems. The latest version also adds various driver improvements. The team stated that the new version brings improved support for Apple Silicon Macs but is not ready for general use yet. OpenBSD 7.0, the project’s 51st release, also adds support for installing on a disk with a GPT.
What’s new
New/extended platforms:
- Added new riscv64 platform for 64-bit RISC-V systems.
- The arm64 platform support was improved with the following changes:
- Support for Apple Silicon Macs has improved but is not ready for general use yet:
-
- Added support for installing on a disk with a GPT.
- Added apldart support for a DART with two sets of registers, needed to support the Synopsis DesignWare USB 3 controller.
- Added apldwusb, a glue driver for the Synopsys DesignWare USB 3 controllers found on the Apple M1 SoC.
- Added aplns to provide support for Apple NVME storage as found in Apple M1 devices.
- Added aplpinctrl, a driver for the Apple GPIO controller found on the M1 SoCs.
- Added aplpmu, a driver for the Apple “sera” SPMI power management unit that contains the RTC on Apple M1 systems.
- Added aplspmi, a driver for the Apple SPMI controller.
- Enabled LEDs for the mue LAN7800 chip as found on the Raspberry Pi 3 Model B+.
- Added rktcphy, a driver for the Type-C PHY controller found on the Rockchip RK3399.
- Implemented multicast support in mvpp.
-
- Changes on other architectures:
- Switched macppc to use ld.lld.
- Fixed an issue preventing applications from selecting the non-ALTIVEC code path on macppc.
- Made amd64 hw.setperf percentages proportional to the enhanced speed step frequencies on Intel processors. The default hw.setperf=99 corresponds to the maximum ordinary speed, and setting it to 100 enables turbo mode.
- Enabled cy on amd64.
- Disabled base-gcc on amd64.
- Prevented crashes on amd64 when TLB entries which should have been invalidated were used.
- Prevented a kernel panic in sparc64 due to page boundary misalignment.
- Forced luna88k to use the serial console when no graphics board is found.
- Made additional free inodes on luna88k bsd.rd by specifying density=4096.
- Fixed strchr() and strrchr() on mips64.
- Prevented watchdog resets on some i.MX 64-bit machines with a recent U-Boot and watchdog enabled on boot in imxdog.
- Created audio devices on armv7.
- Retired OpenBSD/sgi platform.
- Enabled MSI-X support for powerpc64.
- Fixed __ppc_lock for page faults that recursively grab the lock on powerpc.
- Increased the maximum data size on powerpc64 to 32GB.
- Disabled global page table mappings when using PCID to prevent crashes when not flushed from TLB on amd64.
- Added cduart driver for Cadence Universal Asynchronous Receiver/Transmitter on armv7.
- Added zqclock driver for Xilinx Zynq-7000 clock controller on armv7.
- Added zqreset driver for Xilinx Zynq-7000 reset controller on armv7.
Various kernel improvements:
- Unlocked the top part of the VM fault handler on i386.
- Enabled dt for GENERIC kernels on amd64, arm64, i386, sparc64, and powerpc64.
- Added kprobes provider for dt.
- Implemented < and > operators in btrace filters.
- Added btrace display of time spent in userland when analyzing the kernel stack in the flame graph tool and fixed a parsing bug.
- Introduced /etc/bsd.re-config, which can be used to configure the kernel using config, allowing use of KARL while making changes to the GENERIC kernel.
- Identify TPM 2.0 devices and perform the 2.0-specific suspend command, allowing the ThinkPad X1 Carbon Gen 9 and ThinkPad X1 Nano with the latest BIOS (which added S3) to resume.
- Changed the printing of the hibernate image size from bytes to megabytes.
- Increased hibernate writeout speed.
- Added “machine sysregs” command to ddb on amd64.
- Prevented interleaved stack traces in ddb from multiple CPUs.
- Delayed installation of sensors until a device with battery support is connected, allowing sensord to pick up hotplugged uhidpp devices.
- Prevented a kernel panic after VFS shutdown.
- Increased the setitimer timer limit to UINT_MAX seconds.
- Serialized the internals of kqueue with a mutex.
- Enabled pool cache on knote pool.
- Fixed futex errno handling to match what Mesa expects and prevent failure to properly report timeouts.
- Fixed a kernel crash in tty.
- Increased the default buffer space on PF_UNIX sockets to 8k and made the values tuneable via sysctl.
- Made kqueue timer re-addition reset an existing timer to use the new timeout period.
- In the build system, pass make flags to kernel and lib builds, making hacking on ramdisks/the installer much faster.