Cracking Broadcom's VideoCore With An Open Driver

Posted by Michael Larabel on September 03, 2012

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.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  2. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  3. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
  4. AMD Radeon Gallium3D More Competitive With Catalyst On Linux
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. DNF Still Advancing As Experimental Yum For Fedora
  2. Logitech Begins Supporting Linux Users
  3. Modern Intel Gallium3D Driver Still Being Toyed With
  4. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  5. GCC 4.8.1 Compiler Due To Be Out Next Week
  6. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  7. Linux's "Ondemand" Governor Is No Longer Fit
  8. Firefox 22 Beta Enables WebRTC Support
  9. OpenSUSE 13.1 Milestone 1 Released
  10. DRM Graphics Driver Comes For Dove/Cubox
  11. JADE: An LLVM-Based Video Decoder For MPEG RVC
Latest Forum Talk
  1. Modern Intel Gallium3D Driver Still Being Toyed...
  2. DNF Still Advancing As Experimental Yum For Fedora
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. DRM Moves Ahead With HTML5 Specification
  5. Linux's "Ondemand" Governor Is No...
  6. New Linux Kernel Vulnerability Exploited
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite