The community of open source mobile developers around the world are a vocal bunch – and here at Broadcom we’ve heard their call.
To date, there’s been a dearth of documentation and vendor-developed open source drivers for the graphics subsystems of mobile systems-on-a-chip (SoC). Binary drivers prevent users from fixing bugs or otherwise improving the graphics stack, and complicate the task of porting new operating systems to a device without vendor assistance.
But that’s changing, and Broadcom is taking up the cause.
Today, Broadcom is releasing the full source of the OpenGL ES 1.1 and 2.0 driver stack for the Broadcom VideoCore® IV 3D graphics subsystem used in the BCM21553 3G integrated baseband SoC. VideoCore IV is used in many Broadcom products, including the BCM2835 application processor, which runs the popular Raspberry Pi microcomputer.
The trend over the last decade has leaned towards greater openness in desktop graphics, and the same is happening in the mobile space. Broadcom — a long-time leader in graphics processors — is a frontrunner in this movement and aims to contribute to its momentum.
The VideoCore driver stack, which includes a complete standards-compliant compiler for the OpenGL® ES Shading Language, is provided under a 3-clause BSD license; the source release is accompanied by complete register-level documentation for the graphics engine.
Developers can download the register-level documentation and source release here.
This release provides the mobile developer community with the chance to do their own tinkering and upgrade their existing 3G mobile devices with newer generations of the Android operating system.
Broadcom is among the first silicon vendors to release a full driver stack and complete register-level documentation, with enough information for programmers to understand how the SoC core works, build on top of the existing driver, or write their own.
Experienced programmers can:
- Rebuild the BCM21553 Android 4.0 graphics stack from source
- Develop fully open drivers for other VideoCore devices, including the Raspberry Pi’s BCM2835 and the BCM21654 (a low-cost 3G integrated baseband for emerging markets).
- Gain insight into the internal operation of VideoCore for performance tuning purposes
- Write general-purpose code leveraging the GPU compute capability on VideoCore devices
The source code release dovetails nicely with the mission of the Raspberry Pi Foundation, which sells the bare-bones computer of the same name.
The Foundation, which aims to engage young people in computer programming with the $25 Pi, is all about transparency, tinkering and learning.
To mark the Raspberry Pi’s second anniversary, the Foundation has put challenge up to the community: It’s offering $10,000 to the first person that can port Broadcom’s VideoCore drivers to run on the Pi. Find out more about the contest here.
Related reading on the Raspberry Pi blog: A Birthday Present from Broadcom
VideoCore is Broadcom’s flexible, low-power multimedia architecture for graphics and image processing. It provides accelerated 2-D and 3-D graphics and display composition, multi-standard video encoding and decoding to 1080p resolution, and a comprehensive tuneable image sensor pipeline. More than 200 million VideoCore products have shipped since 2006.
VideoCore IV is currently shipping in all of Broadcom’s cellular SoCs and many of its cable and satellite set-top-box SoCs.