Two years ago (on 29 february 2012), the Raspberry Pi Model B went on sale. More than 2.5 million Raspberry Pis have been sold to date! An amazing number, considering that the original goal was to equip british school kids with cheap hardware for Computer Science education.
Thanks to these enormous sales numbers, the Raspberry Pi Foundation (a not-for-profit organisation) was able to sponsor several Open Source projects writing code which can be used with the hardware (XBMC, libav and many others).
And now, two years later, there is a new surprise. The Raspberry Pi has been developed as “open” as possible, however there was a part of the hardware which was not open: the VideoCore IV 3d graphics core on the Broadcom application processor for which only a “binary blob” exists and which is addressed by a thin layer of Open Source graphics kerneldriver. This is not unusual – most if not all of today’s ARM-based mobile hardware has a closed-source graphics stack and no public register-level documentation of the hardware.
This is changing now! As announced on their blog, Broadcom has decided to open up their VideoCore IV 3d core to accompany the two-year anniversary of the Raspberry Pi. The code of the graphics stack has been open-sourced under a liberal 3-clause BSD license and it’s accompanied by complete register-level documentation for the graphics engine. This is unique for the ARM hardware platform as far as I know.
If you are an experienced hacker/programmer, you may be up to the challenge posed by the Raspberry Pi Foundation: to port the open-sourced graphics stack (for the BCM21553) to the Raspberry Pi’s processor (BCM2835). And they will pay you a bounty of $10,000 if you are the first person to demonstrate satisfactorily that you can successfully run Quake III at a playable framerate on Raspberry Pi using your ported drivers.
How cool is that? Of course I hope it will be a Slackware hacker who will reap this reward.
Have fun! Eric
Simon Hall won: http://www.raspberrypi.org/archives/6561
Does Slack Live work on a Raspberry Pi?