Page 1 of 8

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 12:18 pm
by Michael
Hi,

I'm guessing that the reason for the redactions about the specifics of the Broadcom chip you are using is either to allow you to change to a slightly different model if it is available in time, or more likely that Boradcom themselves haven't officially announced the chip that you are using.

With that in mind, what can you currently tell us about the features of this chip or the features of the Raspberry Pi device in general?


For instance, could you tell us about the GPU core that the R.Pi device will have?
Is there a DSP? If so, is there a public API to the DSP like there is with the TI C64x or is it private like most of the other ARM SoCs?
Does the Broadcom device feature ARM NEON or similar?
What floating-point capabilities does it have?

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 1:56 pm
by liz
I can catch this one - the GPU is a Broadcom proprietary GPU that Eben was on the architecture team for. There is a DSP, but there isn't currently a public API (I think the BC team are keen to make one available at some point). There are 24 GFLOPS of general purpose compute and a bunch of texture filtering and DMA infrastructure (admission - I had to ask about this) in the GPU, and we're looking at how we can make that available to application programmers.

There's no ARM NEON, but it does have ARM VFP. (Had to ask about that too!)

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 3:21 pm
by marked
Is it the processor listed here,
http://www.broadcom.com/produc.....rs/BCM2763 as there is no documentation listed for it, unless it requires logging in. Or hasn't the info been released yet?

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 3:39 pm
by Michael
It was widely reported that the first prototype board (the USB-stick shaped one) featured the Broadcom part to which you linked. It would appear that a different (not yet announced) BCM2xxx series chip will be used for production Raspberry Pi.

Common with most other manufacturers, Broadcom will likely only supply datasheets for its products to companies under a signed NDA.

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 3:47 pm
by eggn1n3
the GPU is a Broadcom proprietary GPU that Eben was on the architecture team for Does this mean that the Raspberry Pi team has written some drivers for this chip so it is supported by Linux?

Re: Broadcom BCM2835 SoC

Posted: Sun Jul 31, 2011 8:24 pm
by liz
Quote from eggn1n3 on July 31, 2011, 16:47
the GPU is a Broadcom proprietary GPU that Eben was on the architecture team for Does this mean that the Raspberry Pi team has written some drivers for this chip so it is supported by Linux?

Yup - bang on. :)

Re: Broadcom BCM2835 SoC

Posted: Mon Aug 01, 2011 12:08 am
by Johannes
Any chance that the GPU can be used for accelerating AES through a standard kernel interface? Or is there a dedicated AES coprocessor?

Re: Broadcom BCM2835 SoC

Posted: Mon Aug 01, 2011 5:51 pm
by Svartalf
Quote from liz on July 31, 2011, 21:24
Yup - bang on. :)

The next questions would be...would those drivers be something that leverages Gallium3D for the ES support, and if so, will we be seeing open source support thereof?

(If so, I can see Broadcom wanting to seriously consider licensing the Cortex A15 for their next part there... :D)

Re: Broadcom BCM2835 SoC

Posted: Mon Aug 01, 2011 5:53 pm
by Svartalf
Quote from Johannes on August 1, 2011, 01:08
Any chance that the GPU can be used for accelerating AES through a standard kernel interface? Or is there a dedicated AES coprocessor?

I wouldn't think you'd get a kernel interface for the GPU stuff there (Limited GPU code allowed in the kernel...)- but you might be able to make Sh (a metaprogramming language framework that was the predecessor to RapidMind...) do- and it's open sourced. You'd just have to educate it on OpenGL ES 2.0 and have a shader compiler on the native system to be able to use it.

Re: Broadcom BCM2835 SoC

Posted: Mon Aug 01, 2011 10:19 pm
by eben
The GPU interface is via a closed-source userland module, which communicates via a proprietary (but GPL'd) stream interface in the kernel to a RISC core on the GPU side. No AES coprocessor I'm afraid; wouldn't want RP to be a munition, would we?

Re: Broadcom BCM2835 SoC

Posted: Thu Aug 04, 2011 1:18 pm
by Emanuele
I don't know how much you can (or have time to) say, but here I go:

- Have you tried Quake in SD? Can it handle 50/60 fps consistently? While the chipset can handle high resolution, I would personally target SD anyway (bandwidth).
- Can you use OpenGL without X11 (e.g. directfb or similar)?
- I guess it's the usual tiled architecture. How much memory is inside the chip?
- I think you mentioned ETC somewhere else. Any other formats?
- Does it support something like GL_AMD_performance_monitor? If so, do you think info about the counters will ever become public?

Re: Broadcom BCM2835 SoC

Posted: Thu Aug 04, 2011 1:36 pm
by liz
Heh - have we tried Quake! We've got a lovely little demo of Quake III running at 1080p coming up in a blog post for you guys later on.

Re: Broadcom BCM2835 SoC

Posted: Thu Aug 04, 2011 1:36 pm
by ShiftPlusOne
DirectFB will be supported, yes.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:49 am
by crispy
Any chance of open sourcing it?

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:19 pm
by KanjiMonster
Will there be a data sheet/programmer's guide available? I mean, having an embedded device intended for teaching programming without a data sheet would be a bit silly, right?

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:27 pm
by eben
Quote from Emanuele on August 4, 2011, 14:18
I don't know how much you can (or have time to) say, but here I go:

- Have you tried Quake in SD? Can it handle 50/60 fps consistently? While the chipset can handle high resolution, I would personally target SD anyway (bandwidth).

I'm sure it can. Even the older (VideoCore III) parts can do this.

- Can you use OpenGL without X11 (e.g. directfb or similar)?

Yes. In fact, you can currently *only* use it without X11.

- I guess it's the usual tiled architecture. How much memory is inside the chip?

You mean how big is the tile? Not a publicly-documented figure.

- I think you mentioned ETC somewhere else. Any other formats?

No other compressed formats. We do the usual OpenGL ES 2.0 formats, plus 16-bit float.

- Does it support something like GL_AMD_performance_monitor? If so, do you think info about the counters will ever become public?

Yes it does. We need to see about releasing some performance counter documentation.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:28 pm
by eben
Quote from KanjiMonster on August 6, 2011, 23:19
Will there be a data sheet/programmer's guide available? I mean, having an embedded device intended for teaching programming without a data sheet would be a bit silly, right?

Yes. There will be plenty of data. Only the multimedia side is likely to remain relatively closed.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:38 pm
by KanjiMonster
Quote from eben on August 6, 2011, 23:28
Quote from KanjiMonster on August 6, 2011, 23:19
Will there be a data sheet/programmer's guide available? I mean, having an embedded device intended for teaching programming without a data sheet would be a bit silly, right?

Yes. There will be plenty of data. Only the multimedia side is likely to remain relatively closed.

Okay, so there will be actual documentation of the hardware, not just some source code?

Also since I couldn't find any definite answer on the forums will the JTAG be available (with at least pads for soldering)?
It would make debugging much easier (especially if you are mucking with the kernel).
Same goes for a serial/uart port for debug output.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:50 pm
by liz
ARM JTAG will be brought out to pads. There will be full documentation of the non-multimedia peripherals (one of our developers has the documentation pretty much finished already).

I have visions of you poised with your soldering iron waiting for the release date!

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 10:58 pm
by KanjiMonster
Quote from liz on August 6, 2011, 23:50
ARM JTAG will be brought out to pads. There will be full documentation of the non-multimedia peripherals (one of our developers has the documentation pretty much finished already).

Sounds good. What about serial?

I have visions of you poised with your soldering iron waiting for the release date!

Not quite yet, the proprietary blob is still quite a turn-off. I'm currently trying to find out how (un-)usable the device is without it.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 11:06 pm
by liz
Serial's documented. Unless you really love ASCII art, serial's not a multimedia peripheral. (Multimedia peripherals are 3d and video, displays, cameras and audio.)

TBH, I'm not aware of anyone who genuinely open sources all of their multimedia. Without the proprietary blob, you're not going to be able to run any multimedia at all, so you may be better off looking elsewhere.

Re: Broadcom BCM2835 SoC

Posted: Sat Aug 06, 2011 11:54 pm
by KanjiMonster
Quote from liz on August 7, 2011, 00:06
Serial's documented. Unless you really love ASCII art, serial's not a multimedia peripheral. (Multimedia peripherals are 3d and video, displays, cameras and audio.)

There are several applications I can think of that don't require multimedia at all since it has an ethernet port.


TBH, I'm not aware of anyone who genuinely open sources all of their multimedia.
At least AMD and Intel do.


Without the proprietary blob, you're not going to be able to run any multimedia at all, so you may be better off looking elsewhere.


A proprietary blob really has some ugly implications - no switching of the libc implementation if it's in user space, no switching of the kernel version if it's a kernel module, and other OS's are totally out :-/

BTW, will be booting from network supported (e.g. loading a kernel/image from a tftp server)?

Re: Broadcom BCM2835 SoC

Posted: Sun Aug 07, 2011 9:43 am
by Michael
Eric Raymond has some excellent points to make on this subject
http://oreilly.com/catalog/cat.....ml#drivers

Also this essay by James Bottomley of The Linux Foundation is worth a read
https://www.linuxfoundation.org/publica ... hics-essay

If Broadcom wants to leapfrog NVIDIA, they need to do what NVIDIA isn't currently willing to: open source its multimedia drivers.

Re: Broadcom BCM2835 SoC

Posted: Sun Aug 07, 2011 12:01 pm
by Emanuele
Maybe Eric Raymond is right, but it could be that the most compelling reason not to open up the drivers has little to do with (perceived) competitive advantage, and a lot to do with limiting exposure to the disgraceful scam that the patent system has become.

Intel and AMD are often cited, but they are big companies and can defend themselves better. I don't see open source drivers for Adreno, PowerVR, etc...

Open source drivers would be nice and would allow a few more use cases, but if Broadcom feels that they have a better chance of survival by keeping their drivers closed, I'm fine with that. However, I admit that I'm biased in the sense that I personally find the kernel level not that interesting and I think that the real innovation is at the application level.

Re: Broadcom BCM2835 SoC

Posted: Sun Aug 07, 2011 5:59 pm
by jamesh
I'm not sure whether people above are talking about the linux drives, or the binary firmware blob that runs on the MM chip itself, but remember, the drivers give you access to the firmware on the MM chip. There is a lot of firmware running on that chip which stays closed, which nobody really needs access to anyway - and that's the same for all MM chips (and network chips, and bluetooth chips and wireless chips and and and etc).

I would hazard a guess that 99.99% of people who would use this sort of board will be fine with the binary firmware blob. A lot of work has gone in to that code to make it perform extremely well, and there is no real need to have access to it - you won't be able to make it better (well, you might, but it would be extremely difficult as you would have to write lots of propriety assembler code - I've tried and it's not pleasant).

I'd have to check about the open source status of them, but I think the linux drivers will give you all the access most would need to the very high performance levels of the MM chip.