back to article Raspberry Pi SoC drivers now fully open source

The Raspberry Pi is now host to the “first ARM-based multimedia SoC with fully-functional, vendor-provided fully open-source drivers”, the organisation behind the credit-card sized computer said today. The little PC uses the Broadcom BCM2835 SoC and the RaspberryPi Foundation’s lead Linux developer, Alex Bradbury, praised the …

COMMENTS

This topic is closed for new posts.
  1. The Axe

    Yipeee!!

    Now watch as lots of tweaks make it even better as world wide expertise works on it.

  2. Mage Silver badge
    Thumb Up

    +1

    Absolutely

    Now we can experiment with new designs of OS, rather than playing on top of 20 year old RiscOS and Linux.

    1. Lee Dowling Silver badge

      Re: +1

      Not really.

      The firmware still does all the heavy lifting, this just exposes things like OpenGL interfaces etc. a little more - nothing miraculous and IP-protected.

      And, to be honest, we could have always experimented with new designs of OS - they just wouldn't be as accelerated as possible. That's hardly a barrier to getting them going, though.

      All this really does it provide some more news coverage without actually doing anything they weren't promising from the start (such as getting proper accelerated graphics). And still relies on firmware blobs being loaded.

      Basically, it brings the Pi up to the level that almost all consumer graphics cards are at the moment, yes, but nothing that wasn't going to happen anyway unless Broadcom got REALLY snotty about it.

      1. Lee Dowling Silver badge

        Re: +1

        For reference, there are just over 100 files with C code. There are 200 header files, a lot of them would be literally one-liners if it weren't for the copyright notices, includes, etc. Most of the C code is stubs.

        The largest collection of actual code are the "khronos" ones, the largest file of all being glxx_client.c which seems to do nothing except pass off OpenGL calls to internal RPC calls but is 177kb of code (mostly debugging code to log each call, and then individual functions for every OpenGL function that just maybe does some minor tweaking and then calls an RPC call with almost identical parameters).

        In total, there's not a lot of actual code there - certainly nothing to learn from or to tweak much - and I have to say that documentation and commenting are severely lacking. It's not even clear what half the files even DO or why they are named so, let alone the functions, variables, magic numbers, and various other things that "just work". There are a couple of TINY utilities, that are already available in binary form, to do things to the RPi like change the TV-out modes, etc. but they are literally worthless in terms of code.

        Apart from that, it's all headers (undocumented) and makefiles. I'd call it closer to a code-dump of some userland interfaces that had to be at-least-GPL anyway and tiny utilities, if I'm honest, rather than an actual driver of any kind.

        1. James Hughes 1

          Re: +1

          Well Fuck me.

          Some people are NEVER satisfied.

          I reckon we could provide a free Kylie Minogue with each board and Lee Dowling would still complain there were bits missing.

          1. Gordon 10

            Re: +1

            Unlike you Lee Dowling seems to have taken the time to review the download and make a decent stab at evaluating it for the rest of us.

            Have a down vote sir.

            1. Richard 22
              FAIL

              Re: +1

              Except that I think James Hughes knows _exactly_ what's in the download. Have a downvote yourself.

            2. James Hughes 1

              Re: +1 @Gordon 10

              Previous poster right - I already know what in there.

              In fact, Lee Dowling is correct, the drivers are in fact mostly wrappers to a set of calls made to the GPU, via the VCHIQ driver which handles the actual message passing interface to the GPU. But that wasn't the point. The point is that previously the Arm side code was closed source (libEGL, libOGLES, libVG etc), so no-one knew what the messages were to do the multitude of available operations. Now that information is published, and people can use the code to make their own userland libraries for whatever OS they want to.

              So although Mr Dowling is technically correct, he is being rather miserly in his attitude - this is a BIG THING to have got a BIG COMPANY like Broadcom to spend a lot of time and money making the source available and ready to release. He is belittling the huge amount of effort expended to get to this point. - technical effort AND legal effort - by saying 'its just a wrapper' .

              1. Vic

                Re: +1 @Gordon 10

                > this is a BIG THING

                It is. Well done!

                Vic.

            3. Vic

              Re: +1

              > Unlike you

              You do know who James is, right?

              There's a reason his post said "we" rather than "they"...

              Vic.

            4. The Serpent

              Re: +1

              @Gordon 10 - feel the burn!

  3. Pete 2 Silver badge

    Maximum smoke

    Knowledge is power. Now it should be possible to do some serious damage to the chip. Who'll be first to set their Pi on fire?

  4. Anonymous Coward
    Anonymous Coward

    Fully functional

    Fully functional, as long as you don't want MPEG2 or VC-1 decoding which are subject to an additional license fee...

    1. LaeMing
      FAIL

      Well, um, yes.

      They always are. You just usually don't get a choice to not pay for them if you don't want them (codec equivalent to the much-despised 'Microsoft Tax').

      1. Dr. Mouse

        Re: Well, um, yes.

        Yes, normally devices just include the cost of all the codec licenses as part of the product cost. But at £2.40 for MPEG-2 and £1.20 for VC-1, what are you complaining about? It's obvious that the organisation couldn't just bundle these with the device. Assuming they are not profiting from these licenses, it's 15% of the device cost. But even for both, £3.60 hardly breaks the bank, and puts the cost of the board for multimedia purposes at less than £30.

        I'd rather have the choice. Some projects I am using the Pi for need no graphics ability, so I save £3.60 on them. Some do need it, but I still end up with a suitable board for less than £40 (inc power supply, SD card and other sundries).

        The only thing that the licenses get in the way of are mass-production setups. It requires individual modification of each SD-card image. However, even this can be automated: A simple boot script could load in the appropriate license number from a central server.

  5. James 47

    err

    the 'cool' stuff is still binary only. the rest is just wrappers AFAICT

    1. Will Godfrey Silver badge
      Thumb Up

      Re: err

      If you look at the diagram on the RasPi site you'll see that everything up to the Videocore itself is now open source - that means all the ARM code. I think that's pretty significant myself, or do you think you are able to work on the firmware assembly code itself?

      1. Lee Dowling Silver badge

        Re: err

        Have you looked at that "source"? It's not. It's wrappers. There's a difference. So promoting it as having a "fully open-source driver" is a misnomer. I posted a quick analysis above but the biggest source file does nothing but shunt OpenGL commands to RPC calls with almost identical syntax.

        There's no "source" here, no more than nVidia's own proprietary, binary drivers. Literally. In fact, the nVidia drivers are often larger in terms of actual source code you can see. An "open source" driver would be something like nouveau that drives cards directly, tells you exactly how it does that AND documents it along the way.

        There's really nothing here that's any better than nVidia's binary driver. And nobody claims that that is "open source".

        1. Mage Silver badge

          Re: err -Weeps

          Well, I read the article and hadn't looked at the release.

          So I'll stick with the recommended Linux distro for now. Raspbian “wheezy”

          http://www.raspberrypi.org/downloads

          So the release here http://www.raspberrypi.org/archives/2221

          is misleading?

          "As of right now, all of the VideoCore driver code which runs on the ARM is available under a FOSS license (3-Clause BSD to be precise). The source is available from our new userland repository on GitHub. If you’re not familiar with the status of open source drivers on ARM SoCs this announcement may not seem like such a big deal, but it does actually mean that the BCM2835 used in the Raspberry Pi is the first ARM-based multimedia SoC with fully-functional, vendor-provided (as opposed to partial, reverse engineered) fully open-source drivers, and that Broadcom is the first vendor to open their mobile GPU drivers up in this way. We at the Raspberry Pi Foundation hope to see others follow."

          OTH if it's possible now to load and use the GPU binary and call it from your own hand crafted OS off the SD card it's some good.

          1. T.Omoto

            Re: err -Weeps

            Well, now you can call the things you knew it already did directly, instead of calling OpenGL or the remaining interfaces. It will also be easier to implement video in other OS as it's a rogh guideline to what the fimware can do. But as they say, it's really no better than reverse engineering, right down to the magic numbers.

            If you wanted to implement something that used the hardware resources of the card in some other way, like say, parallel computing using OpenCL, no luck here.

        2. James Hughes 1

          @Lee Dowling

          Of course, you describe pretty much how ALL drivers for embedded firmware devices work. They are in effect simple wrappers in to the functionality provided by the hardware. If you regard the GPU as a electronic device, with an interface, then everything you need to have to drive that interface is now open source. That's what drivers do. And this is the first time this has been done for ANY SoC.

        3. Richard 22
          Thumb Down

          Re: err (Lee Dowling)

          I'm not sure what your argument is here. The foundation has now released _all_ the ARM-side code as open source under one licence or another. They don't claim to have done anything else. They have released the drivers - drivers which drive the GPU firmware. That's what the ARM-side drivers do.

          The GPU firmware isn't going to be open-sourced, so let it go. It's closely tied with the hardware, and would provide more detail on the workings of the hardware (which is all commercially confidential) than Broadcom is prepared to release. That's their decision, and the rantings of a few people on comment forums really isn't going to sway them - you really don't _need_ this information, however much you might like to have it for your own purposes. This has nothing to do with the Raspberry Pi foundation. It's a commercial decision by Broadcom and it really doesn't matter how much you moan about it, it isn't going to change.

          Feel free to modify the provided ARM-side code to support hardware acceleration using OpenGLES, display output, tv control etc, on any OS which you choose to port. That's what releasing this code allows - nothing more, nothing less.

          1. Anonymous C0ward
            Boffin

            Re: err (Lee Dowling)

            Somebody has done some reverse engineering on the GPU binaries.

            http://www.raspberrypi.org/phpBB3/viewtopic.php?f=72&t=13457

            https://github.com/hermanhermitage/videocoreiv

      2. James 47

        Re: err @Will Godfrey

        All the ARM-side code does is tell the GPU to encode/decode a particular frame of video data. What has changed is that now you can tell it to encode/decode what ever you want, but that's all. You'll never get access to the parallelism of the GPU itself.

        1. Vic

          Re: err @Will Godfrey

          > All the ARM-side code does is tell the GPU to encode/decode a particular frame of video data.

          Errr - what did you expect from a GPU?

          Vic.

          1. Dr. Mouse

            Re: err @Will Godfrey

            "All the ARM-side code does is tell the GPU to encode/decode a particular frame of video data."

            In other words, it is a driver. A piece of code which abstracts an interface between the "computer" and some hardware.

    2. Natalie Gritpants

      Re: err

      But now you can use the source code to see how to drive the cool stuff.

      Do you really want to be able to change the GPU firmware? How are you going to test your changes? Do you know how much Cadence simulator licences cost? Have you got a thousand core simulator farm?

      I'm not having a go but the contents of the firmware are in a file to save having to include non-volatile storage in the chip and to allow shipping the chip before all the firmware bugs are fixed.

  6. Anonymous Coward
    Anonymous Coward

    Will this allow making the Roku useful?

    I wonder if any of this will be of use to the people trying to turn the Roku boxes into something useful?

    Background: The Roku boxes use the exact same SoC as the Pi, but the firmware is, shall we say, somewhat limiting: you can stream video from Roku, you can stream games from Roku, you can stream music from Roku, but you MUST have an account with Roku, and you CANNOT stream anything from a local UPnP server (unless you want to buy the Roku UPnP app). IMHO, the Roku boxes are next to useless compared to a Patriot Box Office or any other UPnP/DLNA capable device.

    There are some rumblings of people trying to make replacement firmware for the Roku that might turn it into something that can stand alone, but there are issues with support. I wonder if this code will help those efforts along.

    1. T.Omoto

      Re: Will this allow making the Roku useful?

      Aren't Roku boxes also heavily subsidized, like $60 versus the regular $199 UPnP streamers go for?

      1. Anonymous Coward
        Anonymous Coward

        Subsidised

        If Roku cannot sell their hardware at a profit without tacking on the service charges, then they shouldn't *sell* it at all - offer the service, and as a part of the service you get the box.

        They don't make it very plain at all that the box is TOABH(*) without the service, which is just about 10 Planck lengths on the legal side of false advertising.

        Just at the Netpliance I-opener, and the CueCat, and all the other failed business models, I am under no legal obligation to support a stupid business model.

        (*)Tits On A Boar Hog

    2. Richard 22
      Alert

      Re: Will this allow making the Roku useful?

      I'm not sure why you'd start with a Roku box if you don't want the Roku UI?

      You'd have to hack the firmware (non-trivial as it's probably encrypted) and then write drivers for the various bits of hw on the box (wifi/bluetooth - may be relatively straightforward - standard linux drivers may be available, I'm not sure). And then you'd have something with the functionality of a Raspberry Pi. Why not start with a Raspberry Pi and make life simpler?

      And there are various options for media streaming to a Roku - I use Roksbox which works very well and will stream from anything running any web server. $10 I think - but there are other options - even some free ones if you're streaming from a Windows PC.

      1. Charles 9

        Re: Will this allow making the Roku useful?

        "Why not start with a Raspberry Pi and make life simpler?"

        Sure thing...if you can tell me where I can go to get my hands on a Pi kit out the door today? All the mail-order sites are on indefinite backorder. Roku boxes are in Walmart and Best Buy, among other places. That said, I've avoided them because I know they don't do DLNA. About the only thing close to being viable is the WD TV, and even that interface stinks. Meanwhile, the port of XBMC to Pi is progressing nicely.

        1. APA

          Re: Will this allow making the Roku useful?

          "In stock orders placed before 7pm are dispatched the same day" Oh look, the Pi has green 'in stock' ticks all over it... http://cpc.farnell.com/jsp/bespoke/bespoke2.jsp?bespokepage=cpc/en_CC/special_offers/bargains/part_detail/RPi_lp2.jsp&CMP=HP_RPi

          This comes from someone who placed an order with RS 5 months ago and finally had his dispatched the day before the announcement that all of the model B's memory would be doubled, even for pending back-orders.

          Having watched me play with it for less than week, the wife ordered from the above site yesterday (after 7pm) I'm sure just to wind me up. We're expecting it tomorrow.

          1. APA

            Re: Will this allow making the Roku useful?

            And it's arrived. Let the gloating commence.

      2. Anonymous Coward
        Anonymous Coward

        Re: Will this allow making the Roku useful?

        For the lulz.

      3. JEDIDIAH
        Linux

        Re: Will this allow making the Roku useful?

        > I'm not sure why you'd start with a Roku box if you don't want the Roku UI?

        A Roku comes ready to use. It has a case and a power supply and a remote.

        A PI does not.

  7. Eddie Edwards
    Linux

    This is quite confusing

    The VCHIQ "driver" code is in a folder called "userland" and appears to just do open and ioctl calls. It doesn't *look* like a Linux kernel driver. Where is the kernel driver code for VCHIQ which accepts the ioctls and passes them to the hardware (probably after some virtual-to-physical mapping)? Is this just a bad link from El Reg to /userland? The Rasp Pi site says "ALL USERLAND CODE NOW OPEN SOURCE" and then proceeds to talk about driver code too, and does claim that all ARM code is now open. So where's this driver?

    PS: I get the feeling from comments on the Pi site that the reason you're not seeing anything like "this register does this operation in the hardware" is that the GPU contains the implementation of Open GL, so the hardware interface really does look just like the software interface, and wrappers is all there is. But the kernel VCHIQ driver code will probably illuminate this.

    1. Richard 22

      Re: This is quite confusing

      " Where is the kernel driver code for VCHIQ which accepts the ioctls and passes them to the hardware"

      https://github.com/raspberrypi/linux/tree/rpi-3.2.27/drivers/misc/vc04_services/interface/vchiq_arm

      1. Richard 22

        Re: This is quite confusing

        I should also add that the kernel has been open source since the start, so that's not a new development.

  8. Stevie

    Huzzah!

    Soon shall we be able to move this hobby machine into the real world with a proper OS - Windows Millenium Pi Edition!

  9. Anonymous C0ward

    Hopefully we'll get accelerated X then?

  10. Anonymous Coward
    Anonymous Coward

    Looking at the Raspberry Pi blog makes me feel sad.. it looked like a good idea of giving cheap computers to kids and it's basically turned into cheap computers for "makers" or other people that would have bought an Arduino. Which isn't bad.. but those people do seem to be prepared whatever swallow whatever Liz writes and attack the few people that have a clue that are calling them out on these "drivers". I'm sure the Raspberry Pi's guy on the register will be along to down vote and make snide replies to any not so positive comments here soon enough too.

    1. James Hughes 1

      @Daniel Palmer

      Why does providing a cheap as chips device that can be used for teach AND other stuff make you sad? The teaching side has NOT been forgotten. And this announcement IS a big thing (it's not just the code, but the philosophy), please read up on it. It's not just a matter of 'having a clue', although I've noted that although some of the commenters may have a clue, they certainly don't have any manners.

      1. Anonymous Coward
        Anonymous Coward

        Re: @Daniel Palmer

        Watch out, he'll call you a "concern troll" and report you.

      2. Anonymous Coward
        Flame

        Re: @Daniel Palmer

        >Why does providing a cheap as chips device that can be used for teach AND other stuff make you sad?

        The people that have so far bought a Pi could have bought a BeagleBone.. no one that has a Raspberry Pi at this moment couldn't have got a Linux machine that performs better for the money.

        >I've noted that although some of the commenters may have a clue, they certainly don't have any manners.

        The press release was overcooked and some people called them out the bullshit.. so Liz and Eben got all butthurt instead of addressing the actual issue. If they want people to be all nicey nicey they shouldn't write complete bollocks and expect not to be called out on it.

        1. Richard 22
          Thumb Down

          @Daniel Palmer

          But a Beaglebone is about £60 as far as I can tell. I can get 2 Pis for that. Also, what is the capability of the GPU in the Beaglebone (I can't see any reference to one from a quick google). Can it play 1080p video? I'm missing the bit where this is better performing and lower/same priced.

          FWIW I partially agree about the overcooked announcement - in particular the part where the suggest that other vendors should follow suit, since there is still a large binary blob (though not of ARM code). However, I don't think what has been achieved should be underestimated, even if it doesn't go as far as people might like.

    2. Anonymous Coward
      Anonymous Coward

      The idea turned into a load of hyped up bullshit.

      Nothing that the Raspberry Pi foundation has done so far has been done particularly well, from the farce and hype regarding pre-orders, to overhyping the 'open sourcing' of SoC code.

      The fact is, the SoC is still closed. It still requires a binary blob which runs on the proprietary Opencore GPU even to boot the damn thing. And the fact is, all they have released with this little bit of code they have chucked over the wall is a shim, nothing more because the fun is in the firmware, which is still proprietary.

      Don't get me wrong, I have no objection to proprietary code at all, but don't boast about open sourcing something which really isn't. It's just a publicity game for Broadcom and the Pi foundation which will hopefully backfire on the bastards.

  11. Anonymous Coward
    Anonymous Coward

    "where I can go to get my hands on a Pi kit out the door today?"

    In the UK you'd go to a Maplin store with stock if you wanted one *today*, as part of a complete £70 starter kit rather than as a £25+VAT+shipping item needing various parts adding from your spare parts bin. Not available today to mail order (stock due in 10 days), and the "check store stock" website doesn't work for me. Part code R45PI, obviously ;)

    In the UK you could mail-order from (one of) the two manufacturing partners, RS and Farnell, one of whose order-to-delivery turnround is reliably less than a week, and one of whose isn't always (yet).

    In other countries, you may have to deal with different distributors with different availability.

    I haven't got one yet, though I know people that have, and I know I could get one if I had time on my hands and a decent excuse to get one (it'll come).

    Eben Upton's excellent talk to the IET Young Professionals (find link via http://www.raspberrypi.org/archives/2210) is well worth an hour and a half of your time (treat it as a radio programme, very little Powerpoint). It's even great for those who seem to think the educational focus has got lost. It hasn't got lost, it's just not "moving on Internet time".

    Thank you Eben and team. Keep it up.

    1. Mike Flex

      Re: "where I can go to get my hands on a Pi kit out the door today?"

      > In the UK you'd go to a Maplin store with stock if you wanted one *today*, as part of a complete £70 starter kit

      You can pop in and order a kit but my local Maplin store doesn't carry them as stock items; they'll only be shipped to the store when ordered.

  12. Anonymous Coward
    Thumb Up

    Happy happy joy joy

    So, who will tell Theo that OpenBSD can not be ported to the Pi. If there is a so much as a fullstop out of place, Theo will be the chap to moan about it :o).

    I just feel a little bit sorry for the people who busted alot of hours reverse engineering the parts we couldn't reach. So my thoughts are with them in there hour of uneed.

    Must admit ChromeOS on one of these may be handy as a cheap old folk gift down the line now.

    I'm still going to wait until the new year though, let Maplins get some solid stock levels and flush out those 256mb models that seem to be out there still in stores lucky enough to have anything.

    1. Anonymous Coward
      Anonymous Coward

      Re: Happy happy joy joy

      Why can't OpenBSD be ported?

  13. Alex Connor
    Thumb Up

    Re: Where to buy a Pi

    I ordered one from new it on friday at 1:30pm, i had it in my hands on saturday before 11am, so less than 24 hours. AFAIK they're still in stock, but if not they do seem to get them in fairly regular. It is one of the model b's with 512mb RAM made in the UK too, so yeah, not too shabby at all.

    1. Alex Connor

      Re: Where to buy a Pi

      Yep, just checked and they have them in stock, a little under £30 inc VAT, plus another £7 or so for next day delivery if you wanna pay for it. So not too difficult to get your hands on one if you want.

  14. Stevie

    Bah!

    Takes longer to get an Raspberry Pi in the US than for you chaps. I ordered one in July mere hours after seeing it in The Register (the bloody firewall at work wouldn't let me order one straight away) and it just turned up last week, a lead time of three months and three days. Lucky for me it was the smaller memory version too.

    If only I could afford the 3D printer I originally wanted to drive with the thing. Funny how family can syphon off cash for essentials with frivolous demands for cash for food and mortgage payments if you don't keep a close eye on things.

This topic is closed for new posts.

Other stories you might like