
A birthday present from Broadcom - 1ris
http://www.raspberrypi.org/archives/6299
======
jxf
If you want to go straight to the horse's mouth and just start hacking (this
is _Hacker_ News, after all!), the Broadcom downloads are here:

* BCM21553 VideoCore IV graphics driver source: [http://www.broadcom.com/docs/support/videocore/Brcm_Android_...](http://www.broadcom.com/docs/support/videocore/Brcm_Android_ICS_Graphics_Stack.tar.gz)

* BCM21553 VideoCore IV documentation: [http://www.broadcom.com/docs/support/videocore/VideoCoreIV-A...](http://www.broadcom.com/docs/support/videocore/VideoCoreIV-AG100-R.pdf)

~~~
ansimionescu
Good ol' gzip download, because fuck source control.

edit: FWIW, a friend who works there told me flat-out to just avoid them (I'm
job-hunting)

~~~
akiselev
This is almost a universal problem with firmware and chip engineers, who are
generally older and more experienced, and thus apparently can't be taught new
tricks. There are also issues with bureaucracies in each and every
semiconductor company (which are on average decades old) so firmware is
usually hot potatoed around by management and ends up lighting the customers'
projects on fire almost every damn time. I don't have enough fingers to count
how many times I've encountered problems in a project and wasted weeks
treading water, eventually to find out that the code examples weren't tested,
a parameter that closely effects very sensitive silicon isn't documented, or
even that I can't so much as get the documentation for a licensed USB
peripheral that is non EHCI compliant (who knew such a thing even existed
anymore).

Everyone from Broadcom to Qualcomm (and many more) are guilty of this and it
is a very rare treat to find a chip that is well documented with firmware and
code examples that work and give you a full picture of what you can do and
where the pitfalls are.

~~~
embedded
Wow, armchair engineer, you sound like you really know what you're talking
about.

When this old engineer worked on embedded MIPS cores and 802.11[abgn] at
Broadcom, everything was under source code control. This was pre-git, so I
think we were using cvs. How the hell do you conclude that releasing a zip
file means the engineers don't use source code control?

~~~
ozim
Those kids on HN think that everything cool was invented last summer by some
new college grad, funny thing is most of stuff was already invented in 70's
but who would care about prehistory of computing.

~~~
pyre
Yea. I totally remember Web Browsers, Big Data, and Terabyte hard drives back
in the 70's. It's too bad that these things were lost to the ages, only to be
re-invented in the present.

~~~
nitrogen
New names for old ideas.

~~~
pyre
Based on that, SpaceX isn't a big deal, because of the Apollo program, right?

~~~
eliasmacpherson
Especially because of the Apollo program. SpaceX for all its efficiency, just
goes to show how far the present and past few generations have dropped the
ball.

------
tejbirwason
Proud to have worked on this during my 8-month internship at Broadcom. It
remains one of the toughest and rewarding projects to tackle within the
company. I am pleasantly surprised to see Broadcom open up like this and
release the full documentation. A step in the right direction for a grossly
under-rated company.

~~~
samolang
I've never heard of an 8-month internship. What sort of program is that? Like
a semester+summer?

~~~
Elv13
My university (Montreal ETS) also do it. They have 3 (real/full) semesters per
years. Students usually take 1 of them per year to work as interns. You can
technically work as intern for like 5 years and still be considered enrolled
into the engineering program. Students will either prefer 8 months internship
for well paid jobs or jobs that cannot be done in a 4 months development
cycle(like a video game). In the end, it does increase the total time spent to
graduate, but students tend to have much lower debts (if not profit) at the
end.

These kind of deals seem to be quite widespread in Canada (just like the above
commenter show). I know these private sector <-> teaching organization deals
are not well considered in some part of the world, but, in the end, someone
who just graduated, but accumulate years of full time working experience have
an easier time landing a job at the end, at least for STEM jobs.

~~~
pm90
Its a sweet deal for companies if you think about it. Maybe benefits are
different in Canada, since I heard that the Govt. provides healthcare, but in
the US, the employer has to provide that. Plus, more salary, 401(k) etcetc.

Actually, from another viewpoint, for small companies its very beneficial to
hire interns; they can be used to work on projects which might be interesting
but have low financial returns.

Which leads me to conclude that > 3 month internships should perhaps be
allowed only if you're working at a startup, or small-scale shops that can't
really (I mean really really) afford to pay you. For a company like Broadcomm,
that doesn't make sense.

Of course, this is just my subjective viewpoint. I'm inclined to believe that
my sense of justice might be very skewed.

~~~
Elv13
Interns are being paid in every fields but medicine and education. Some
technical schools (including mine) will refuse internships paid anywhere near
minimum salary (they care way to much about the statistics and marketing,
which is, in turn, a good deal for students too). I am not claiming it is
Klondike for every interns (it's not), but having a ~20$/h-30$/h mostly tax
free salary is really helpful to avoid loans with interest. Education is not
very expensive in Quebec, fees will be around 6k$ / year (9 15 weeks courses +
1x internship fees, books/material not included) but after adding the cost, of
life, the rent, food and everything, it get to around 20k$/y. Given the state
provided healthcare and services the first quarter* of the citizen have to pay
for, it is even financial beneficial to some people.

*(The other three would be elders, children and the ones below poverty threshold)

------
patrickyeon
That's really a surprise. Broadcom is cemented in my mind as one of the
hardest companies to get even basic datasheets out of.

I know the saying is "don't look a gift horse in the mouth", but could it be
that their graphics cores are not competitive in pure technical capabilities,
so they've decided to compete on open-ness? I'm not really involved in that
area of hardware/software.

~~~
ebenupton
Nope (though note, I'm biased for several reasons). In terms of performance
per unit area and performance per Watt, VideoCore IV is about as good as
you're going to get. There are chips with higher performance GPUs out there,
but they get there by brute force: throwing area (and therefore cost) and/or
power at the problem.

~~~
stingraycharles
This is confirmed by the recent move of AMD towards extremely hot GPUs. You
already see that in the most recent 290x, but they're talking about making
hardware that is comfortable running at >100C.

I'm not sure how relevant that is with regards to performance per watt, but I
do know that heat is one of the most expensive (by-)products of electricity.

~~~
csense
Isn't there some theorem of thermodynamics that says your device gets more
efficient as the temperature difference between the hot and cold parts of the
device increases?

AFAIK the only reasons devices aren't run at arbitrarily high temperatures is
that material properties change unfavorably, or you risk fires.

~~~
wtallis
The efficiency thing is more about heat engines. When we're just dissipating
heat, the relevant relationship is that the rate of heat transfer is
proportional to the temperature difference. This is why a hot object that
isn't producing heat will cool exponentially. In the case of a steady-state
source of heat, the temperature difference will be inversely proportional to
the thermal conductivity of the connection between hot and cold reservoirs.
Heatsinks and fans are used to increase that thermal conductivity so that the
temperature difference stays small enough that the absolute temperature is
safe. If you can double the tolerable temperature difference, then you can cut
your fan speeds by more than half, or even get by with passive convection.

Or, approaching things differently, if you're only going to keep your graphics
card for two or three years, there's no reason to let the fans spin up to an
audible level until the chip reaches at least 80 degrees C.

Addressing a common misconception: fan speed/noise is not directly related to
how much the graphics card is heating up the room by. Whether you run the fans
at full tilt or you let the chip almost melt, the heat output will depend only
on the workload.

------
rwg
_But we’re incredibly proud that VideoCore IV is the first publicly documented
mobile graphics core_

Wasn't Intel first by virtue of using their in-house "HD Graphics" hardware in
Silvermont (Bay Trail-M and -T)? Regardless, this is a _huge_ thing in the ARM
world, and I hope other vendors will begin to open up documentation.

~~~
kllrnohj
Bay Trail-M means "mobile" as in "laptop", not "mobile" as in "smartphone".
Intel's smartphone stuff all still using PowerVR, including the upcoming
Merrifield which will be using the PowerVR G64x0.

------
fnordfnordfnord
> _" Earlier today, Broadcom announced the release of full documentation for
> the VideoCore IV graphics core, and a complete source release of the
> graphics stack under a 3-clause BSD license. The source release targets the
> BCM21553 cellphone chip, but it should be reasonably straightforward to port
> this to the BCM2835, allowing access to the graphics core without using the
> blob. As an incentive to do this work, we will pay a bounty of $10,000 to
> the first person to demonstrate to us satisfactorily that they can
> successfully run Quake III at a playable framerate on Raspberry Pi using
> these drivers. "_

At last!

~~~
marincounty
Just $10,000? Nice gesture, but they can afford to dig a little deeper. Their
card running Quake III at reasonable frame rate on a Pi is a big deal, and
these cheap skates know it. (I hope the person who figures it out, doesn't
give them the code; just show them and collect $10,000 (A years rent in a bad
part of Oakland).

~~~
dredge
(a) They are a charity.

(b) They demonstrated the Pi running Quake 3 at a reasonable frame rate in
2011. There's a picture of it in the blog post.

(c) The competition rules say "To submit an Entry, and Entrant shall email a
link to a public GitHub repository containing the full source code for the
Entry..." so just showing the result wouldn't be eligible to win. That and
they already know what it looks like, because of (b).

~~~
sneak
They aren't really a charity; they sell a product from a manufacturer (the
Broadcom SoC) and were started by Broadcom employees. So, in a way, this
"charity" is really just a marketing subsidiary of Broadcom.

~~~
ansible
Whatever RasPi is, the fact remains that they're selling a relatively open
platform at price near production costs. And that platform just got
significantly more open.

And they are now offering a bounty for the creation (refinement, really) of
more free software. Which will benefit the entire community surrounding the
RasPi. So that is good. Even if they were offering $10 USD, there might be
someone who'll take up the challenge just to get the bragging rights.

~~~
sneak
"Relatively open" in the way that your mother was "relatively pregnant" when
you were born?

~~~
zxexz
Are you suggesting he's a premie?

~~~
sneak
No, I'm suggesting that "relatively open" is semantically null.

~~~
ansible
_No, I 'm suggesting that "relatively open" is semantically null._

I don't know if you are familiar with the embedded world, but a large
percentage of the offerings (specifically system on chip or SoC) have NDA
requirements for the documentation.

And many of these platforms don't have a decent Linux port, even though they
could support it.

Even with SoC vendors such as TI, the graphics core for the OMAP4 (for
example) is a binary blob. There is no documentation for that, and no hope
that situation to change (in part because TI has exited the mobile phone
market).

Please tell us of your mobile platform experience, and what vendors you
consider open or closed.

------
georgemcbay
On the one hand as someone who owns half a dozen Raspberry Pis this is really
cool news and I hate to look a gift horse in the mouth.

On the other hand, ARM vendors really have to start opening everything up much
more than they have or Intel is going to start eating their lunch in the small
embedded Linux arena, and I suspect Intel's mobile resurgence with Bay Trail
is at least partly behind this "gift" to us all.

~~~
penguindev
I don't know anything about mobile, but I've been looking at replacing my htpc
ION system (edit: not that it really needs it, frankly it works great) and
fanless baytrail boards/cases look _very_ interesting. More cost than a pi +
pi codec licensing obviously - but not that much, and all open as you pointed
out...

------
paulofisch
The main touchy-feely moment for me here is that a notoriously closed,
$17-billion company was brought around by a friendly, gentle approach to
convincing it to be more open. Group hug for Broadcom.

~~~
zanny
Same could be said of their (albeit paltry) wifi open driver support since
2011. They at least have one now, for very few chipsets. Doesn't work with any
of the half dozen Broadcom NICs I have in my "junk parts" bin, though.

------
davexunit
This is a step in the right direction. Does this mean that the RaspberryPi can
run blob-free now or with one less blob? I don't know what else is needed for
the SoC to operate.

~~~
ebenupton
Not quite yet. We're hoping to be able to provide a minimum-functionality
blobless world fairly soon.

~~~
MrZongle2
I think this is another example of how Raspberry Pi Foundation's decision not
to move forward with a gazillion different boards, but rather to stick with A
and B and let the software evolve, was a good one.

I'm very excited to see what the next year brings.

~~~
simcop2387
Yea with this happening I think what I would love is a bit more cpu power on
the pi. Not even the new 64bit arm cores or anything but an A-15 or A-9 at
double the MHz of the existing PI would put it in a huge sweetspot for
embedded performance and make it far more usable for a desktop (with ideally
more ram too but that's always good).

~~~
polshaw
To be fair, the Pi opened the floodgates in terms of ARM boards; there are now
loads of them.. not $25 but nothing like the insane pre-pi prices. The
beaglebone black from TI is a good step up: 1Ghz A8 (~2x rPi performance), 1GB
ram, $45. They don't really need to segment themselves (yet), as others can
fill in the gaps.

------
rcarmo
Well, let's see if someone can get Android to use the GPU now.

And yes, I'm not expecting miracles -- even though Broadcom never released
their 4.x port, what they demoed on the-teaser-video-that-was-never-followed-
up-on seemed "fast enough" for a number of purposes.

~~~
mik3y
IIRC one of the bigger obstacles to RPi Android support was that the driver
libs were linked against glibc. There will be other bumps, but just getting
these linked against bionic will be a big help.

I'd love to see Android support, if only for Android's recovery system and
read-only system images.

------
josh-wrale
I wonder if anything GPGPU will become of this... I'm thinking it's probably
not possible. OpenCL?

~~~
ZeroGravitas
One of the bullet points on the broadcom blog post is: "Write general-purpose
code leveraging the GPU compute capability on VideoCore devices"

~~~
josh-wrale
Keen eye (and mind).. Thanks.

------
monk_the_dog
I'm building an environment for computer vision, and I recently made a client
that can run on the rpi (two minute video if you're interested:
[http://www.youtube.com/watch?v=qSigkvbpb_Q](http://www.youtube.com/watch?v=qSigkvbpb_Q)).
I'm not exactly sure what possibilities this opens up, but I'm definitely
going to dig into it and find out.

------
aswanson
Wow. In due time these guys might start actually releasing datasheets to
developers who, you know, need to know the register set and API to like, make
their chips work. I don't know why the hell these idiots treat their firmware
APIs with Manhattan-project style secrecy, but I would highly advise against
designing a new product with a broadcom chipset. They are totally asinine.

~~~
userbinator
Wow. Much open, such surprise.

What next, a full BCM2835 datasheet?

To put in the words of Torvalds: "Hey, this time I'm raising a _thumb_ for
Broadcom. Good times."

------
LukeB_UK
This is great news. Hopefully this means that ports of android and chromiumOS
will be able to utilize this.

------
zurn
> In common with every other ARM-based SoC, using the VideoCore IV 3d graphics
> core on the Pi requires a block of closed-source binary driver

The Lima driver for ARM Mali is open source and runs Quake 3!

~~~
wolfgke
> The Lima driver for ARM Mali is open source and runs Quake 3!

But the Lima driver was created by reverse engineering instead of using
publicly available documentation.

~~~
makomk
Any open source replacement for the Raspberry Pi GPU driver is going to rely
pretty heavily on reverse engineering too. The code they've released runs on
the VPU, a custom-designed scalar processor within the VideoCore IV that
Broadcom still haven't released architecture documentation or a toolchain for.
Without a whole bunch of low-level reverse engineering (much of which was
already in progress) it won't even be possible to compile the stuff Broadcom
have released. Without working VPU code you can't even boot the Pi, let alone
make use of graphics.

~~~
ebenupton
That's not correct. The code that's been released is for BCM21553, which
doesn't have a VPU. There are bits and pieces of VPU assembler in there, but
they're unused on the ARM target. The intention is that people port this (ARM-
based) drop to run on the ARM on BCM2835. No reverse engineering required.

~~~
makomk
Ah, that makes more sense, thanks! There's an awful lot of vestigial VPU-
related stuff lying around the source tree, including what I'm guessing are
the unused remnants of a dead build system...

------
13throwaway
They donate to WebKit? I thought that was fully funded by apple.

~~~
skykooler
Google funds WebKit as well.

~~~
1ris
No, they did fund large parts of it, but forked quite a while ago.

~~~
MBCook
They were actually the biggest contributor, above Apple, for a while before
the fork.

------
leigh_t
This is awesome news. I hope other vendors follow suit.

------
caycep
Quick noob question...is the Pi still the best/most flexible option for
general hardware hacking? What about ARM dev boards from Samsung, Qualcomm
etc?

~~~
blacksmith_tb
'Best' can measured in a few ways, the RPi has a huge community, and it's
certainly a bargain (though you will end up buying a bunch of odds and ends to
get going). The Beaglebone Black is probably the other major contender, way
more GPIO pins, can boot from the onboard memory, is ARMv7, for $10 more.

~~~
krasin
BeagleBone Black has just one USB port, which is often very inconvenient. For
example, if you want to run Octoprint accessible via WiFi and control a 3d
printer, two USB ports will be needed. Certainly, a USB hub is an option, but
it makes the setup more brittle (some USB WiFi dongles won't work over some
hubs) and more expensive.

------
pja
This is genuinely great news & a vast improvement over the previous graphics
driver!

Hopefully this means we'll see proper DRM / Gallium support for the IV & I'm
looking forward to seeing what people can come up with now that they have full
access to the GPU.

Congrats to Eben & the team - you've done good.

------
Danieru
This is incredible. Thank you Broadcom!

------
rdb
I remember how satisfying it was to get that demo to work back in 2011 (thanks
to the help of Dave Emett). Feels like an incredibly long time ago now! I
wonder what framerate people will be able to achieve...

------
justin66
It's great news. It's also not quite enough to get rid of the entire binary
blob, as the article notes near the bottom. (I have the feeling some didn't
read that far.)

------
blah32497
Oh woah - I'm very happy about the BSD license. This means people can more
easily potentially spin up business around this platform. I wonder why they
chose it...

Does anyone have any insight?

~~~
ebenupton
BSD-like licenses seem to be the standard for userland graphics libraries.
There's a lot of useful stuff in there (for example the shader compiler) that
may be of general use elsewhere, and we wanted to make sure people could use
it.

The 3-clause BSD is a compromise - we're happy for the stuff to be used but
it's nice to get some credit :)

~~~
blah32497
Thank you for the clarification. It seems overly generous =)

Often code is GPL'd with pricey licenses for commercial applications - which
always makes me think twice about investing my time into familiarizing with
it.

I'm very impressed they aren't trying to make a quick buck here. It sounds
like they have a very innovative long term strategy that will pay off many
times over.

I think your competition is also fantastic, as it will encourage people to
open source their improvements.

Thank you for all your hard work Dr.Upton

~~~
ebenupton
You're most welcome. Good times.

------
glennos
My favourite part of this announcement is:

* Okay, so sue us __: we launched on February 29. __Please don’t sue us.

------
noonespecial
This has been my biggest disappointment about the raspi since day one. If
true, this is huge news indeed.

------
BenSS
Would be awesome if we soon see OpenCl on the RPi. Now I've got to go find
mine!

------
tomphoolery
lol i lost it...

> Okay, so sue us: we launched on February 29.

> Please don’t sue us.

------
Argorak
Celebrate the open source release of the drivers by giving out a price for
making a non-free software run on it? Also one that the intended audience of
the hardware is not allowed to play? Seems a bit odd.

(The Quake 3 engine is open source and free nowadays, but the assets and maps
are not, so you cannot run "Quake 3" without using the demo. So "Quake 3" is
non-free.)

~~~
angersock
Erm, I'm pretty sure you can use a shareware version (!) of the Q3 assets. Or
any of a number of other things.

The idTech2 and idTech3 engines are standbys of the open sores community--it
makes sense to use them for testing graphics drivers. You are far more likely
to encounter a bug in your driver than in those engines.

~~~
Argorak
Even if free as beer, the demo version is non-free, in an open source sense.

Sure, but you could use any of the many projects built on the open Q3 engine
that are actually free as in speech. (And maybe child-friendly)

Also, to be clear: I find it odd, but still a fun endeavor.

