Nachdem nun schon Aemulor in einer RPi 4-kompatiblen Version verfügbar ist, wie steht es derzeit denn um RISC OS selbst auf dieser vielversprechenden Plattform?
Zunächst eine kurze Zusammenfassung, warum man überhaupt einen RPi 4 haben will gegenüber einem seiner zahlreichen Vorgängern. Die CPU ist deutlich schneller, sowohl pro Takt als auch im Maximaltakt, und die Caches sind größer. Speicher ist deutlich schneller und bis zu 4 GiB groß (das vermutlich wichtigste Feature für die Linux-Jünger, und das vermutlich unwichtigste Feature für RISC OS-Nutzer). Gigabit Ethernet über einen schnellen internen Bus. USB3 über PCIe. Offizielle Unterstützung für 4K@60Hz-Bildschirmauflösung (früher war das eher Glücksache @30Hz). Dual-Head-Unterstützung.
Schon der derzeitige Zustand von RISC OS zeigt deutliche Fortschritte in den Benchmarks. Man darf sich also nicht nur auf theoretische Performancegewinne freuen, sondern tatsächlich auf spürbare Verbesserungen in der Praxis. Die CPU liegt auf einem Niveau mit den bisher schnellsten RISC OS-tauglichen Boards mit TI OMAP5 (Cortex-A15-Basis – Titanium und IGEPv5). An der Grafikbeschleunigung lässt sich sicher noch arbeiten, aber das ist “nur” eine Softwarefrage.
Und wie weit ist diese Praxis nun noch entfernt? Es fehlt prinzipiell an zwei Dingen: USB3 und Ethernet. D.h. man kann sich heute “from source” ein RPi 4-kompatibles ROM bauen, aber man muss Ethernet über das alte USB2.0 anbinden, ebenso wie zusätzliche Massenspeicher jenseits des microSD-Slots. Das ist aber nicht ganz einfach, weil alle “normalen” USB-Ports des Boards über den kombinierten USB3/USB2-Chip (VIA VL805) gehen, für den es eben noch keinen Treiber gibt. Das alte USB2.0 ist nur über den USB-C OTG verfügbar, über den auch die Stromversorgung normalerweise läuft. Deshalb sind bei der Inbetriebnahme noch ein paar Handstände vonnöten, beispielsweise indem man die GPIOs für die Stromversorgung nimmt und den USB-C stattdessen als USB-Port statt zur Stromversorgung.
Wer eher Code-affin ist, kann hier in Gitlab die Entwicklung nachverfolgen. Wer eher auf verständlichere Prosa setzt, verfolgt die Entwicklung im ROOL-Forum oder schaut sich den Port-Status im ROOL-Wiki an.
Bleibt noch die Frage: warum dauert es denn nun so lange? Da gibt es eine Vielzahl an Gründen. Beispielsweise hatte RISC OS bisher keinen XHCI-USB-Treiber (für USB3). Beispielsweise ist die Memory Map für die 4-GiB-Variante zu berücksichtigen (alle bisherigen 4 GiB-Plattformen hatten die “oberen” 2 GiB außerhalb des 4 GiB-Adressbereichs). Beispielsweise sind die Datenblätter bis heute nicht in der notwendigen Ausführlichkeit zu haben. Beispielsweise scheint es im PCIe-Bereich interessante Bugs in der Pi-Firmware gegeben zu haben. Selbst die Aktivierung des UARTs für serielles Debugging gestaltete sich als schwierig. Letztlich also eine ungewöhnliche Anzahl von nicklichen Detailproblemen, die dem geneigten Entwickler den Tag vermiesen. Aber wenn ich die Commits richtig deute, ist die Zielgerade nicht mehr weit entfernt.
Und dann wird es spannend, inwiefern RISC OS ebenfalls – vor allem in schlecht kühlbaren Gehäusen – in “thermal throttling”-Probleme laufen wird, die so manchem experimentierfreudigen RPi4-Besitzer fast schon klassisches PC-Feeling inklusive Lüfter eingebrockt hat. Gut gekühlt kann der RPi4 wohl durchaus 2 GHz und mehr ab, bei Einsatz aller 4 Cores. Ungekühlt in den üblichen beinahe dichten Plastikgehäusen könnte es eher schwierig werden mit den neuen Performance-Höhen.