Raspberry Pi opens its ARM graphics code
The Raspberry Pi Foundation has announced that it is now able to open source the ARM code of the Raspberry Pi's graphics stack, giving the mini-computer a completely open source ARM-based software platform. Alex Bradbury, the Foundation's lead Linux developer, told The H that, "With this announcement, everything that runs on the ARM side is now released under a FOSS license."
The Raspberry Pi is built around an ARM SoC (System on a Chip), the Broadcom BCM2835, which incorporates a GPU and ARM core, along with other components. The software to drive the GPU from the ARM side has been closed source since the project began, but now developers will be able to gain free access to that code and take full control of the graphics capability of the chip.
The code being opened up under a BSD licence includes the implementations of EGL, OpenGL ES, OpenVG and OpenMax which use the vcihq kernel module to pass messages to the VideoCore of the chip. Bradbury notes that a practical advantage of opening this code up is "that third party developers can now, for instance, extend the EGL implementation to support the Wayland EGL platform requirements", referring to the compositing display manager that recently reached version 1.0. "It also enables the developers of FreeBSD, NetBSD, Haiku, Plan9, RiscOS and other OSes to get the libraries working on their Raspberry Pi ports and take advantage of the VideoCore's capabilities", added Bradbury.
It isn't all open source though, as there is still firmware that is loaded onto the GPU itself at boot up. The firmware is released under a permissive licence but is still binary-only; this kind of situation has happened before and attempts to fix it have led to some odd solutions. Bradbury knows the presence of a binary blob will leave some members of the community unhappy but hopes that having an ARM SoC with an open source graphics stack on the ARM side will be recognised as a major step forward. "Intel have led the way here on the desktop", he said, "and I hope that in the embedded world other vendors will start to follow Broadcom's lead".
The BSD licence was chosen for the code as a permissive licence that could maximise the community's ability to take advantage of it and it also matches the common practices in licensing Linux graphics code said Bradbury. X.Org, Wayland and Mesa are all released under MIT licences. Copyleft licences would have been a problem he says, as such code "is not very welcome in say FreeBSD or a non-free operating system such as RiscOS."
Another reason was more pragmatic; the 3-Clause BSD licence was one that Broadcom's legal department had worked with before and it met the community's licensing requirements. Despite that licence familiarity, Bradbury says that it has required a lot of work and many discussions to get to this point but the success of the Raspberry Pi "has given more weight to the arguments we make, as the size of our developer community means more people will benefit from the decision to open source and there's more potential for useful contributions."
With the announcement, the Foundation will be opening up a GitHub userland repository with the code and plans to build its /opt/vc/lib libraries from that code base. "We will of course be delighted to review any patches or pull requests" added Bradbury.
- Breaking out the Raspberry Pi, a feature from The H.