BCM2835 datasheet


190 posts   Page 7 of 8   1 ... 4, 5, 6, 7, 8
by richcole » Tue Jan 03, 2012 4:24 am
The impression I get from this thread is that something like this:

http://www.ti.com/lit/ug/spruh.....ruh73c.pdf

is not going to be released by the creators of the Raspberry Pi and so if one is interested in the details of the hardware and experimenting with writing their own operating systems then the Beagle Bone is a good place to start.

I noticed that TI have a section explaining how the 3D accelerator works, so if one is interesting in 3D graphics programming at a driver level it would appear to be a great resource.

If the Pi isn't open like the Beagle Bone then I wonder what the point is. I presume it's for some mythical student who has an internet connection and an hd tv at home, as well a keyboard and a mouse, but no computer, not even an old one. Perhaps such people exist. A connection to the internet and time to read is by far the most important aspect, it provides access to things like the Khan Academy and the wealth of information including free books that are out there. So if the Pi succeeds in providing access to the internet to some kid who would otherwise not have access more power to it.

Maybe the Pi can also inspire a generation of playground hackers. When I was at school the currency of choice was floppy disks (later on it was source code printed out on continuous paper rolls pulled out at the pub for discussion). Perhaps this generation will swap their Pi programs over ethernet (there's no wireless right to keep the costs down?). Showing minecraft and its various mods working might be a good way to get kids excited about building their own virtual worlds.

I presume the full source of any linux ports to the Pi will be released. This will provide a mechanism for hackers to guess at what's on the board. At least to the extent that the features are used by linux.

regards,

Richard.
Posts: 21
Joined: Sat Dec 10, 2011 11:54 pm
by Chromatix » Tue Jan 03, 2012 4:33 am
I would expect to see the full ingredients for building a simple Linux distro, certainly.  These would be the binary blobs required to run the GPU (firmware and API libraries), plus the patches to the kernel required to interface to these and any other devices, an appropriate kernel configuration, and how to set up the bootloader and any userspace boot inits that might be required.

With those ingredients, one could set up an SD card image which boots straight to a programming laguage prompt but still has access to all the fancy hardware-accelerated goodness.
The key to knowledge is not to rely on people to teach you it.
User avatar
Posts: 430
Joined: Mon Jan 02, 2012 7:00 pm
Location: Helsinki
by Jessie » Tue Jan 03, 2012 4:33 am
Cephas Borg said:


So my question is, will there be enough information in the RasPi documentation to enable someone to make a DSI-LVDS adapter for those users interested in using the iPad's display?


Why make one when you can order one off the internet. http://www.toshiba-components......65XBGA.pdf That is a one specific IC that does it.  I found it by doing a search of this very forum.
User avatar
Forum Moderator
Forum Moderator
Posts: 1375
Joined: Fri Nov 04, 2011 7:40 pm
by Jessie » Tue Jan 03, 2012 4:56 am
Rich said:


If the Pi isn't open like the Beagle Bone then I wonder what the point is. I presume it's for some mythical student who has an internet connection and an hd tv at home, as well a keyboard and a mouse, but no computer, not even an old one. Perhaps such people exist. A connection to the internet and time to read is by far the most important aspect, it provides access to things like the Khan Academy and the wealth of information including free books that are out there. So if the Pi succeeds in providing access to the internet to some kid who would otherwise not have access more power to it.


The point of the project isn't to be open, it is to provide a low cost PC for $25 (which the beaglebone is nowhere close to) to people with very little money.  Some third world contries don't even have old PCs to hand out, you are thinking of poor individuals of first world nations that have acess to low end PCs and hand-me downs.  The beaglebone also has no video out without purchasing an additional shield which will be a dealbreaker for a PC.  The two are just not even close to the same thing.

For the most part this project is very open.  The foundation will be providing PCB schematics and you (assuming you can make a 4 or 6 layer PCB) could theroetically make one of your own.  The specifics of the ARM core within the BCM2835 are avalible from ARM holdings.  What is missing are the specifics for the Videocore V and the DSP.  The foundation is going to support an open source OS as its default install.  The GPIO info is going to be provided at a later date.  The main issue here is that the GPU is acessed through a binary blob and that will hinder people that wish to use an OS other than Linux.

Last time I checked most if-not all souces are avalible for Linux and all the supporting files that go with the kernel so there is no reason to assume that Fedora, and Debian will withhold that info.

Finally this is the very last time I will issue the warning about these discussions remaining productive.  Most of what people have said has been said before over and over again and complaining isn't going to make Broadcom let loose of the specs.  Yes Broadcom, not the Raspbery Pi foundation.  These conversations need to stay respectful, non-cyclical, and productive or this thread will be locked as will anything resembling a datasheet post.
User avatar
Forum Moderator
Forum Moderator
Posts: 1375
Joined: Fri Nov 04, 2011 7:40 pm
by Borg 1.0 » Tue Jan 03, 2012 2:26 pm
Jessie said:


Why make one when you can order one off the internet. http://www.toshiba-components......65XBGA.pdf That is a one specific IC that does it.  I found it by doing a search of this very forum.


Thanks, Jessie, for the clarification, that"s most helpful.

I"d already downloaded the TI data sheets, but I wasn"t sure which flavour of DSI the BC chip provided. Hopefully similar basic information like that may become available at some time downstream, to keep us nuts"n"bolts geeks fed well enough to help folks with more of these lower-level interfacing queries. Being able to use an iPad display may become really useful.

I appreciate the assistance (and your frustration!)
Posts: 35
Joined: Sun Jan 01, 2012 1:02 pm
by webmasterpdx » Wed Jan 11, 2012 5:31 pm
datasheets on all the chips in the product will be necessary and I'm sure the hackers amongst us will figure these out over time. The obvious reasons are that in order to truely push this board to it's abilities this will be needed. People have been doing this since the first PCs through Amiga through Commodore 64, etc, etc.... and it will continue here. Broadcom will eventually give in or others will figure it out and create clone processors cheaper and the raspberry pi clone will evolve.....leaving Broadcom behind. This is history and has been repeated again and again....

Now, as to the reasons one would want the internals. I'm an embedded developer and see huge potential for the raspberry pi in that area. I also have supercomputer backgrounds and I know that GPUs can be used to accellerate certain processing functions (e.g. NVIDIA is selling their GPUS as supercomputers now, capable of 2TFlops). I know also that the vector FPU in the chip is also another very nice feature for high performance computing.

The lack of documentation (about the known parts of the product) is kind of surprising. I was able to find a GPIO map but it's not available as a document. Maybe if you supply a directory for documentation, some volunteers can grab the pertinent information from the wikis and forums and create the documentation for you.

I was also hoping that the product GPIO would have one A/D input at least for hooking up to analog sensors....but the lack of information about the GPIO pins isn't telling me much....so I must assume the GPIO pins are digital only. Can they be tristated?...I'm assuming so by making them an input....but again, it's not documented.

I'm optimistic that this documentation will start to appear gradually and eventually I'm sure that someone will write a book on the subject.
Posts: 4
Joined: Wed Jan 11, 2012 5:16 pm
by Jessie » Wed Jan 11, 2012 8:48 pm
GPIO information and datasheets will be released they just are not avalible yet.  There are foundation members working on it.  At this very moment they are focused on getting the product released.  You can expect the GPIO info after the fact... How long?  I don't know but it is coming.
User avatar
Forum Moderator
Forum Moderator
Posts: 1375
Joined: Fri Nov 04, 2011 7:40 pm
by pr_barker » Sat Jan 14, 2012 2:44 pm
This may be answered elsewhere but I can't seem to find it...

By "GPIO info" do you also mean things like data rate specs for the SPI / I2C interfaces, etc? These boards would be great for teaching signal processing and I'm trying to find out if it will be possible to connect a good quality ADC/DAC to the board via SPI.
Posts: 1
Joined: Sat Jan 14, 2012 2:30 pm
by jamesh » Sat Jan 14, 2012 4:37 pm
Yes, that sort of thing. I cannot promise what will be in or out of the docs. Depends on what Broadcom allow to be published.

I doubt the information you need will be available for a while (months). I could be wrong.
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11576
Joined: Sat Jul 30, 2011 7:41 pm
by Russell » Tue Mar 06, 2012 1:47 pm
There's a 206 page BCM2835 Peripherals datasheet available from R.Pi's site here:

http://www.raspberrypi.org/wp-.....herals.pdf

Timers, Interrupt controller, GPIO, USB, PCM / I2S, DMA controller, I2C master, I2C / SPI slave, SPI0, SPI1, SPI2, PWM, UART0, UART1

Is that any help?
Posts: 1
Joined: Tue Mar 06, 2012 1:36 pm
by dmould » Thu Mar 08, 2012 8:26 pm
Russell, that datasheet is indeed a big help.  I write "from scratch" code in assembler for embedded systems, including ARM based systems, and my code *is* the OS rather than running *on* an OS.  From an educational POV, assembler programming teaches the basics of how a CPU works far better than writing in a high-level language and calling APIs to access all the hardware.  Full understanding of computers requires understanding the hardware as well as the software.  In addition, programming a processor to perform a dedicated task results in an unbelievably fast execution time when compared with programming the same task to run under Linux or some other OS, and also allows you to do tricks that are only possible when you have complete control of every instruction the CPU executes.
Posts: 1
Joined: Mon Nov 28, 2011 3:35 pm
by freebird » Thu Jun 21, 2012 6:42 pm
To address privacy and security concerns, does the ARM1176JZF-S CPU in the Broadcom BCM2835 have a PSN (processor serial number)? If so, can it be disabled in the BIOS? Computer manufacturers used to have the default setting in the BIOS to hide Intel's PSN. Subsequently, all manufacturers ceased offering this privacy option and their BIOS visibly displays the PSN. Or is the PSN visible to cyberstalkers, hackers, governments, "IT administrators" and others who want to "monitor" (hack) the BIOS and infect the BIOS and motherboard with firmware rootkits?

If Broadcom has a PSN, I recommend requesting Broadcom to withdraw their PSN or switch to a manufacturer who values and respects privacy and safety.
Posts: 2
Joined: Thu Jun 21, 2012 5:27 pm
by AndrewS » Thu Jun 21, 2012 6:55 pm
Not quite sure what you're asking, the Raspi doesn't even have a BIOS.
Yes, there's a serial number hardcoded into the BCM2835 SoC (dunno if this is the same as the PSN you're complaining about), and this serial number is used to derive a unique MAC address for the ethernet controller on each RaspberryPi board.
User avatar
Posts: 3069
Joined: Sun Apr 22, 2012 4:50 pm
Location: Cambridge, UK
by hippy » Thu Jun 21, 2012 9:19 pm
freebird wrote:Or is the PSN visible to cyberstalkers, hackers, governments, "IT administrators" and others who want to "monitor" (hack) the BIOS and infect the BIOS and motherboard with firmware rootkits?

There is a serial number for each SoC and at least some software running on the R-Pi can read that so it could be disclosed or passed to others, even used for tracking. Whether it is disclosed comes down to the software being used.

I think it's going to be much like the closed nature of the GPU 'binary blob'; if you don't like the way it is then the R-Pi is not for you, and the choice is yours to make.
Posts: 763
Joined: Fri Sep 09, 2011 10:34 pm
by jamesh » Thu Jun 21, 2012 9:42 pm
freebird wrote:To address privacy and security concerns, does the ARM1176JZF-S CPU in the Broadcom BCM2835 have a PSN (processor serial number)? If so, can it be disabled in the BIOS? Computer manufacturers used to have the default setting in the BIOS to hide Intel's PSN. Subsequently, all manufacturers ceased offering this privacy option and their BIOS visibly displays the PSN. Or is the PSN visible to cyberstalkers, hackers, governments, "IT administrators" and others who want to "monitor" (hack) the BIOS and infect the BIOS and motherboard with firmware rootkits?

If Broadcom has a PSN, I recommend requesting Broadcom to withdraw their PSN or switch to a manufacturer who values and respects privacy and safety.


Just out of interest, how does having a PSN (which I've never even heard of) and making it visible help people install firmware rootkits?
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11576
Joined: Sat Jul 30, 2011 7:41 pm
by IanLinsdell » Fri Jun 29, 2012 9:38 pm
Have you looked at this?
http://www.open.com.au/mikem/bcm2835/

It contains source code, seemingly for access to GPIO and SPI for BroadCom chip.

Unfortunately I cannot verify as I have not yet been invited to purchase a Raspberry Pi,
until such time I only have Atmel SBC to develop on.
Posts: 21
Joined: Fri Jun 29, 2012 9:34 pm
by AndrewS » Tue Jul 03, 2012 2:57 pm
IanLinsdell wrote:Have you looked at this?
http://www.open.com.au/mikem/bcm2835/

It contains source code, seemingly for access to GPIO and SPI for BroadCom chip.

Haven't tried it myself, but I assume it works as it's linked to on http://elinux.org/RPi_Low-level_periphe ... e_examples
User avatar
Posts: 3069
Joined: Sun Apr 22, 2012 4:50 pm
Location: Cambridge, UK
by CyySky » Thu Nov 15, 2012 4:38 am
jamesh wrote:The Arm hardware isn't out of bounds, the GPU is. So there will be some stuff to ping register wise if you want to do it from the Arm. But the Linux drivers will be there to do it for you and will be much easier to use and already debugged (a bit!)

Of course you can write to any memory address you like - it's your board, there are no limits. Just don't expect to know what all of them do! In fact, you cannot talk to the GPU that way anyway. Its on the other end of a message passing interface, so just pinging registers with the aim of making the GPU do something isn't going to work. GPU's are just too complicated nowadays for a bunch of registers to be able to provide enough functionality.

After all, at its Core, it's just an Arm processor with an attached GPU. Do what you like with the Arm, I think you'll have a register map for the various interfaces if you really want to write your own drivers rather than use the provided ones.

That said, I think the number of people really interested in the low level stuff rather than learning to use the higher level stuff (the purpose of the Raspi) is very very very very very low.


Any way i can get the register map of GPU and the CSI detail? Or if you have can you find or point where it is to me?
Posts: 8
Joined: Wed Nov 14, 2012 4:29 pm
by CyySky » Thu Nov 15, 2012 6:05 am
jamesh wrote:How about looking at this from the other direction.....rather than what you WON'T get.

What you DO get :

A 700Mhz Arm
Highest powered GPU per watt available
> Wii levels of 3D
HW accelerated 2D
1080p30 encode/decode to h264 (licence included)
Camera interface
17 GPIO's, plus some interesting interfaces.
1080p HDMI
Composite out
Credit card form factor
Custom Linux and standard drivers for all the above
Documentation for the GPIO's
USB and ethernet
Audio out.
Teaching materials tailored for the device
People building (in their own time) custom HW interface boards
Lots of very smart Broadcom (and others) people doing all the heavy lifting getting the above working.

What you don't get:
Full documentation of the hardware/GPU.
Access to the GPU's MIPS except through drivers.

As tradeoffs go, I think that's worth $35. I'd stop complaining IIWY.


May i know where the GPU MIPS drivers is? in the linux? how to call the driver?
Posts: 8
Joined: Wed Nov 14, 2012 4:29 pm
by CyySky » Thu Nov 15, 2012 8:00 am
jamesh wrote:In general, almost everything on the Arm is OSS. There are a couple of closed source libraries - OpenVG and OpenGLES. These libraries need to communicate with the GPU to get stuff done, and they do this via a message passing interface. The low level driver for the message passing is in kernel space and therefore must be OSS. Any GPIO libs supplied is somewhat different, that all stays on the Arm side and just pings registers - I don't know if they are going to be OSS. I hope so.

The actual format of the messages is not documented (and completely GPU specific), but that really doesn't matter as the libraries do all that stuff for you- you just call the *standard* OVG, OGLES api's and it magically (With the help of Elves) works.

All the code running on the GPU itself is private, but without the custom compilers etc, you can't do anything with it anyway, and it's complexity means most people coming to it would throw up their hands in complete bewilderment.


so meaning that i can use OpenVG and OpenGLES to access CSI port eith my csi camera module?
Posts: 8
Joined: Wed Nov 14, 2012 4:29 pm
by tufty » Thu Nov 15, 2012 8:56 am
CyySky wrote:Any way i can get the register map of GPU and the CSI detail?

Get a job at Broadcom
CyySky wrote:May i know where the GPU MIPS drivers is? in the linux? how to call the driver?

I suspect you're confounding MIPS (Millions of Instructions per Second) with something else. Your interface to the features provided by the GPU is, always has been, and almost certainly always will be, through the Broadcom-supplied libraries (currently including, but not necessarily limited to, OpenGL ES, OpenVG, OpenMAX IL and friends)
CyySky wrote:so meaning that i can use OpenVG and OpenGLES to access CSI port eith my csi camera module?

No.
Posts: 1364
Joined: Sun Sep 11, 2011 2:32 pm
by jamesh » Thu Nov 15, 2012 9:35 am
CyySky wrote:
jamesh wrote:In general, almost everything on the Arm is OSS. There are a couple of closed source libraries - OpenVG and OpenGLES. These libraries need to communicate with the GPU to get stuff done, and they do this via a message passing interface. The low level driver for the message passing is in kernel space and therefore must be OSS. Any GPIO libs supplied is somewhat different, that all stays on the Arm side and just pings registers - I don't know if they are going to be OSS. I hope so.

The actual format of the messages is not documented (and completely GPU specific), but that really doesn't matter as the libraries do all that stuff for you- you just call the *standard* OVG, OGLES api's and it magically (With the help of Elves) works.

All the code running on the GPU itself is private, but without the custom compilers etc, you can't do anything with it anyway, and it's complexity means most people coming to it would throw up their hands in complete bewilderment.


so meaning that i can use OpenVG and OpenGLES to access CSI port eith my csi camera module?


You will be able to use the supplied OpenMAX interface to the Foundation camera module. This will provide a pretty standard interface allowing control of all the camera features. The camera itself is a 5MP Omnivision.

Note that the comment you quoted is now wrong, in that now, all the Arm side libraries are OSS.
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11576
Joined: Sat Jul 30, 2011 7:41 pm
by CyySky » Thu Nov 15, 2012 4:55 pm
tufty wrote:
CyySky wrote:Any way i can get the register map of GPU and the CSI detail?

Get a job at Broadcom
CyySky wrote:May i know where the GPU MIPS drivers is? in the linux? how to call the driver?

I suspect you're confounding MIPS (Millions of Instructions per Second) with something else. Your interface to the features provided by the GPU is, always has been, and almost certainly always will be, through the Broadcom-supplied libraries (currently including, but not necessarily limited to, OpenGL ES, OpenVG, OpenMAX IL and friends)
CyySky wrote:so meaning that i can use OpenVG and OpenGLES to access CSI port eith my csi camera module?

No.


Mistakenly type the mipi became mips. I had been searching around the google quiet a time, not yet found something useful on how to use CSI. "Broadcom-supplied libraries", may i know where can find info let me getting started with. Much appreciate that someone can direct me to the right direction.
Posts: 8
Joined: Wed Nov 14, 2012 4:29 pm
by CyySky » Thu Nov 15, 2012 5:10 pm
jamesh wrote:
CyySky wrote:
so meaning that i can use OpenVG and OpenGLES to access CSI port eith my csi camera module?


You will be able to use the supplied OpenMAX interface to the Foundation camera module. This will provide a pretty standard interface allowing control of all the camera features. The camera itself is a 5MP Omnivision.

Note that the comment you quoted is now wrong, in that now, all the Arm side libraries are OSS.


Can openmax be use to read the input from CSI camera right? more is my camera module using SN65LVDS315 camera parallel to mipi csi interface, i just need to get the rpi's csi to work. the fps and quality is not the main goal as long as can display it, i can use arm to process it if something cannot be done in gpu.

Where can find some "Hello world" on openmax with csi camera in rpi's linux?

Actually i even brought the book "Raspberry Pi User Guide, written by Eben Upton and Gareth Halfacree" in my kindle reading right now. But not yet found something on CSI. Will I wasted my time and money, because of CSI connector available on rpi attracted me to brought it? quiet lost right now. Appreciate someone can help.
Last edited by CyySky on Thu Nov 15, 2012 5:37 pm, edited 1 time in total.
Posts: 8
Joined: Wed Nov 14, 2012 4:29 pm
by tufty » Thu Nov 15, 2012 5:28 pm
Google is your friend. Inability to find what you're looking for makes me skeptical that you'll be able to do much with this, but I'd like to be proven wrong.

My guess would be that you look here : https://github.com/raspberrypi/userland ... rface/mmal

That said, it's previously been said that generic camera compatibility was impossible, so it might not work at all. Please document what you're doing as you go along for others - the documentation for this stuff is *ahem* 'minimal'
Posts: 1364
Joined: Sun Sep 11, 2011 2:32 pm