Cracking Broadcom's VideoCore With An Open Driver

Written by Michael Larabel in Free Software on 3 September 2012 at 11:53 AM EDT. 10 Comments
FREE SOFTWARE
Nearly two months ago I wrote that a major open-source ARM announcement was coming. "This forthcoming announcement, which isn't being detailed yet but will be yet another Linux graphics exclusive for Phoronix the near future, is something entirely different from the other recent open-source ARM Linux graphics advancements" So what's the announcement?

Many Phoronix readers have written in asking about this announcement, which hasn't been made yet. It's taken longer than anticipated, but since many people continue to write in asking about the announcement and messages on Twitter, here are some more details for now.

For those that didn't figure it out from the original article from the comments made as well as the beer photo and caption, here's one last shot:


It's fruity... It's almost like a pie. But it's an awful beer; I'm generally not a fan of Belgian Lambics.

It's an announcement related to Broadcom's VideoCore that will benefit the low-power low-cost Raspberry Pi development board.

A group of developers have been reverse-engineering the Broadcom VideoCore low-power multimedia processor. VideoCore is a low-power multimedia DSP that can provide decode support for a number of codecs. Broadcom VideoCore has ended up in many different Samsung devices, a few Apple products, many Nokia devices like the N8 and N808, the Raspberry Pi, Roku 2, and Samsung Galaxy Y and Wave Y.

For a description of VideoCore from an open-source developers point of view, "there is this whole OS running on this thing...and userspace is basically just packaging up things (like, for instance, shader source), with a given message id, and then sending this through the kernel over to some common area with the videocore...the videocore then messages back and forth." VideoCore also handles all of the shader compilation for the hardware with shader binaries never being submitted to the ARM core. The design of VideoCore sounds rather nice and with an open-source software stack the possibilities for using this chip could be opened up.

For a description of VideoCore according to Wikipedia, "VideoCore chips can run complete applications - they are not simply video DSP chips that require a separate processor to supply and collect data. In practice they are often used like this, as companies usually prefer to cautiously assimilate new technology rather than take a big risk in porting a large amount of application code from an existing ARM-based design. The Apple video iPod is a good example of this approach. Low-power laptops use low-power processors and graphics chips, and therefore often struggle to play video at full frame rates. It isn't desirable or practical to port Windows onto a VideoCore chip, so only the video decoding need be offloaded onto a video accelerator board (e.g. using the BCM70015 chip)."

The developers working on cracking VideoCore have made much progress, but still months later do not have a web-site setup or any other communication for Phoronix. They managed to make much progress out of studying a version of libpng that was compiled by Broadcom for VideoCore and compared their binary to the mainline libpng source-code. This open-source project for cracking VideoCore isn't affiliated with Broadcom.

Stay tuned for more information on the open-source Broadcom VideoCore initiative.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week