Feeds

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.

Page:

Bronze badge

Yipeee!!

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

9
1
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.

2
4
Bronze 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.

4
4
Bronze 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.

7
4
Silver badge

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.

14
14
Silver badge

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.

7
11
FAIL

Re: +1

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

5
3
Silver badge

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' .

17
1
Vic
Silver badge

Re: +1

> Unlike you

You do know who James is, right?

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

Vic.

2
1
Vic
Silver badge

Re: +1 @Gordon 10

> this is a BIG THING

It is. Well done!

Vic.

0
0

Re: +1

@Gordon 10 - feel the burn!

1
0
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?

5
0
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
7
Silver badge
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').

0
0
Silver badge

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.

1
1

err

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

2
1
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?

2
1
Bronze badge

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.

2
1
Bronze 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".

8
7
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
0

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.

1
0

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
0
Silver badge

@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.

7
0
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.

6
0
Bronze badge
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

0
0
Vic
Silver badge

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
0
Silver badge

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.

1
0
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.

0
0

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?

0
0
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

0
0
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.

0
0
Silver badge

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.

0
0
Anonymous Coward

Re: Will this allow making the Roku useful?

For the lulz.

0
0
Silver badge
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.

0
0
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.

3
0
APA

Re: Will this allow making the Roku useful?

And it's arrived. Let the gloating commence.

0
0
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.

0
0

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

0
0

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.

0
0
Silver badge

Huzzah!

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

1
1
Bronze badge

Hopefully we'll get accelerated X then?

0
0

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.

2
6
Silver badge

@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.

0
0
Anonymous Coward

Re: @Daniel Palmer

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

0
0
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.

0
1
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.

0
1
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.

0
0
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.

4
0

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.

0
0
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.

0
1

Page:

This topic is closed for new posts.