This is a small write-up about installing OpenBSD 7.1 on a PINE64 RockPro64 SBC.
RockPro64 is a beefy single-board computer made by a company that brought us awesome devices like Pinebook Pro (laptop), Pinecil (soldering iron), PineTime (smartwatch) and of course PinePhone. The board utilizes the same hexa-core processor as Pinebook Pro – Rockchip RK3399, and 4 gigabytes of LPDDR4 RAM.
One of the distinct features of that computer is a PCI-express X4 socket. Unfortunately I wasn’t able to use any video card there even with “stock” GNU/Linux – ARM64 GPU drivers for AMD/NVIDIA is just not there yet I assume. The slot is often being used for a network cards and SATA controllers – there is even an official case for RP64 with 3.5″ hard drives spots inside, quite handy for a homemade NAS or something of sorts.
Exactly what it says on the tin.
According to the comments on the article:
https://lobste.rs/s/vxoulp/openbsd_7_1_on_pine64_rockpro64
The issue with GPUs is not the drivers support, but rather limited PCIe configuration. There are registers called “BAR”
https://en.wikipedia.org/wiki/PCI_configuration_space#Bus_enumeration
Which allows mapping device memory into the bus address space. (I am also learning the details, so correct me if I miss anything).
It just turns out these embedded devices support very limited amount of device RAM to be mapped, which is not enough to host a framebuffer.
Side note: There is now an option called REBAR/SAM that might potentially increase your gaming performance by mapping larger portions of the device memory into the address space:
https://www.rockpapershotgun.com/what-is-resizable-bar-and-should-you-use-it