Cracking Broadcom's VideoCore With An Open Driver
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:
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.
Latest Linux News
Latest Articles & Reviews
Most Viewed News This Week