New SDIO driver code has been submitted to the Gitlab repository hosted by RISC OS Open Ltd (ROOL) – i.e. for inclusion in the main source tree for RISC OS 5 – by RISC OS Developments Ltd (ROD).
Representing a sizeable chunk of work, the newly submitted brings updates and improvements across almost all RISC OS 5-based platforms, thanks to enhanced SDIO bus support and better access to multiple SDIO devices, which includes SD cards, eMMC devices – and most notably, Wi-Fi/Bluetooth chips.
In case you are wondering, the reason improved SDIO drivers can expose onboard Wi-Fi/Bluetooth chips is the way those chips are connected to the system. For most ARM System-on-Chip (SoC) devices, there is only limited support for external connectivity for devices that need high speed throughput. As a result, Wi-Fi/Bluetooth controllers tend to be connected via the SDIO bus, and the new drivers mean the bus is more open and accessible to developers, enabling them to ‘see’ the devices connected to it – and it has been noted that some members of the ROOL forum have already started experimenting with the new code.
In other words, to quote ROD’s Andrew Rawnsley in his press release:
This work opens that bus up, and provides driver developers with Linux and OpenBSD compatibility libraries, so that wifi drivers can be ported and can communicate with the chips via SDIO.
Note, however, that a new SDIO driver today, making it possible to see and access a Wi-Fi controller, doesn’t mean Wi-Fi access tomorrow; it might still take a bit longer, but this very much is an important first step in that direction.
Wi-Fi aside, though, the work means there are various improvements for SD support, most notably there should often be improved performance and reliability. A selection of example platforms that more obviously benefit are: Raspberry Pi 0W, 3B/B+ The secondary SDIO controller is now enabled, providing a secondary/separate SD and Wi-Fi bus, and the addition of DMA improves SD performance. Raspberry Pi 4 The Wi-Fi/Bluetooth controller is now visible iMX6 The Wi-Fi/Bluetooth controller is now visible, and there are noticible improvements in performance when reading from both SD slots. OMAP4 (Pandaboard) The Wi-Fi controller is now visible. Allwinner A64 (As used in the Pinebook laptop) The Wi-Fi controller is now visible, the eMMC is now accessible, there is significant performance improvements on SD use, and there are edge-case stability improvements.
On behalf of RISC OS Developments – and, I shouldn’t wonder, most RISC OS users – Andrew conveys thanks to all of those who helped make this project happen. That doesn’t just mean the developers and technical experts directly involved or advising, but also to everyone who provided financial support enabling the company to be in a position to be able to make developments like this. He adds that they are looking forward to more such projects in future, and I’m sure we’re all looking forward to the outcome of such projects! Well done to all involved.