Raspberry Pi OpenSource VideoCore Access

The Pi Foundation today announced they availability of the VideoCore client side libraries as OpenSource!

And the crowd just keeps moving along…

What’s the big deal?  Well, the way the Raspberry Pi is arranged, there are essentially two ‘cores’ cooperating on a chip to form the hardware of the Raspberry Pi.  One of those cores, “VideoCore”, is highly proprietary, and handles all the lowest level video and audio for the Raspberry Pi.  If you were running a typical PC, this would be similar to the arrangement of a CPU (intel) and a GPU (nVidia) running in the same machine.  The CPU generally takes care of the “operating system”, and anything having to do with video gets communicated to the GPU, and magic happens.

Most users don’t care about this level of detail.  Typically, the libraries that communicate with the GPU are highly proprietary to the vendor who produced them.  nVidia does not open Source the drivers for their chips.  They just provide a binary blob to the OS, and leave it at that.

This same situation was occuring here with Broadcom.  It’s not a big deal to most users, but, when you’re trying to sell the Raspberry Pi as an “educational tool”, and half the system is basically off limits, it kind of hurts the credibility of the whole mission.  So, now they’ve gone and made that code available to the masses.

Now, of course if you just want to put something together in Pygame, then your world has not shifted one bit.  You’ll never program down at this level.  But, let’s say you’re trying to put together an OS distribution.  Well then things start to get interesting.  You can better integrate X, or XBMC with the lowest level high performance part of the hardware, without having to poke your way along in the dark with an undocumented API.  You can get right down there in the chips and create the bestest interop between the ‘CPU’ and the ‘GPU’.

What will it mean?  Probably nothing in the very short term.  In the long run, it will mean that people who really care about such things will have the tools they need to eek the most performance out of this System on Chip as possible.

I think the whole Raspberry Pi thing is a master stroke for Broadcom.  They are typically a behind the scenes provider of low level chips.  The Pi is giving them a bully pulpit upon which they can advertise their wares.  Making this stuff open source doesn’t diminish their intellectual property in the least, and doesn’t give anything to their competitors.  It does get a bunch of maniacal programmers focused on programming their VideoCore, which without such a move would remain an obscure opaque part of their offerings.

It’s a fun time to be a progammer!


3 Comments on “Raspberry Pi OpenSource VideoCore Access”

  1. Craig says:

    I was pretty excited to hear about this at first too, but it’s seems others aren’t so much.

    Dave Airlie isn’t impressed with their latest “Open Source” release[1] and Greg Kroah Hartman isn’t too impressed with their USB implementation[2]. If it was anyone else, it would just be Yet Another Opinion on The Internet, but these 2 guys carry quite a bit of weight in the Linux ecosystem.

    [1]: http://airlied.livejournal.com/76383.html
    [2]: http://lists.infradead.org/pipermail/linux-rpi-kernel/2012-September/000214.html

    Cheap though it is and as honourable as their education mission is, the only thing the Raspberry Pi seems to have going for it is the price and good PR.

    • I have a more relaxed view of the situation. I look at the ‘success’ of the Arduino environment, and that’s proof enough for me that ‘good’ isn’t even required. ‘popular’ is the operative word, and the Raspberry Pi is very popular, and will likely continue to be so for a while. The Odroid-X is far better hardware, but it’s not $35.

      Time will tell. Perhaps a USB driver will be developed, and so will all the other little pieces. Otherwise, something else will come along.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s