Pi rounded up to four
Posted by Ben Avison Tue, 02 Jul 2019 14:37:00 GMT
24th June saw the launch of the Raspberry Pi Foundation’s latest pint-sized educational computer – the Pi 4. Sporting
- a faster Cortex-A72 processor
- more RAM (model options with 1, 2, or 4GB)
- built in gigabit Ethernet
- a move to VideoCore VI for 4k graphics at 60fps
- and much more besides
The form factor is largely unchanged, apart from a few connector movements.
Possibilities
We’re sure you can come up with even more uses for this latest model than the last, but what about RISC OS?
ROOL’s very own Ben Avison has been able make a start on a port of RISC OS before the launch. There’s plenty more to be done though, so read on.
Current status
There’s a set of work-in-progress changes to the HAL (the hardware abstraction layer that sits underneath RISC OS), enough to detect the changed CPU and boot to a command prompt using a serial terminal for input. The SD card controller is hooked up, plus the video display for output.
Caveats currently include:
- there’s no driver for the Ethernet controller, so you’ll need to use a USB-to-Ethernet adapter, except…
- there’s no USB driver
- a few bugs in the firmware need working around
Call to Arms
If you fancy tackling some of these jobs, please get in touch. There are some specific tasks that are worth coordinating to avoid duplication
- setting up the XHCI USB controller so the XHCI driver can see it
- writing or porting a suitable Ethernet driver for the BCM gigabit controller
- finishing off the Mini UART driver in the HAL
- enabling the new interrupt controller (GIC), although this is surprisingly less critical than the other tasks
Even if you don’t rush out to buy a Pi 4 – they’re inevitably sold out anyway – perhaps consider investing in one of the relevant bounties instead? How about USB support, WiFi support, or perhaps towards making source control great again?
For the GIC, I’ll make the (hopefully obvious) comment that we already have several HALs containing GIC drivers: OMAP4, OMAP5, Titanium, iMX6, and a few more floating around in non-ROOL repositories.
As things currently stand, the iMX6 implementation is probably the most useful, since it’s the only one which has “everything” implemented (SGIs, PPIs, FIQs, multi-core). OMAP4 & 5 only have SGIs, PPIs, and multi-core implemented. Titanium is currently the least useful since it has none of those features implemented.
Of course, the Pi4 uses GICv3, while the older machines use GICv1 or GICv2 – so depending on exactly what’s changed, it may be more involved than just a simple copy & paste job.
I have already source in C for the miniUART
The most exciting feature that the Pi4 could bring to RISC OS is multi-display hardware at a very cheap price-point.
Let’s hope RISC OS’ ongoing graphics overhaul provides us with more than one screen soon.
A big thanks to everyone working to get the Pi4 working on RISC OS.
Agree with Alan, dual-display works so well on Raspbian, I’d love to see it on RISC OS.