17

I just ran

cat /proc/cpuinfo

on my board. I get "Revision : 1000002". I've failed to find any mention of which version of the board this is.

Any help?

John Smith
  • 1,251
  • 3
  • 17
  • 27

3 Answers3

13

According to the info posted as part of the announcement of the upcoming board revision, you have a Model B revision 1.0 board.

MODEL AND REVISION                                      CODE(S)
Model B Revision 1.0                                    2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)  3
Model B Revision 2.0                                    4, 5, 6

The code is the last digit of the number returned by

cat /proc/cpuinfo 

(at least until they have more than 9 revisions).

tlhIngan
  • 3,372
  • 5
  • 19
  • 33
Steve Robillard
  • 34,687
  • 17
  • 103
  • 109
1

There is extensive documentation on the revision field from /proc/cpuinfo on raspberrypi.org nowadays:

https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md

This documents both an older (incremental) revision code (values 0x0001 to 0x0015, used for the original Rpi 1 models), and a newer format (introduced with the Rpi 2) where the bits of the code actually encode parameters like manufacturer, memory size and board type. It also has a list of all revision codes that are currently in use.

What that page does not document is that the (old-style) revision might have a "1000" prefix that indicates the board has overvoltage applied. I suspect that for new-style revisions, a similar (but shorter, since the revision is longer) prefix applies. Info on this prefix, as well as a list of models with some details on notable differences can be found at https://elinux.org/RPi_HardwareHistory

Also documented on that page on raspberrypi.org is that you can find a human-readable descriptor of the current model in /sys:

$ cat /sys/firmware/devicetree/base/model 
Raspberry Pi Model B Plus Rev 1.2

On startup, the bootloader (or maybe the kernel) autodetects what board it is running on and then loads the appropriate "devicetree" file for that board. This devicetree describes how all hardware is connected and is used to load appropriate drivers. Additionally, this devicetree also contains a "model" property. I was going to say that this is the property that you are actually reading with the above command, except that the model strings defined in the devicetree are actually slightly different (using "+" rather than "Plus" and without the revision string). For example, the devicetree file that I think belongs tot the above command output is bcm2708-rpi-b-plus.dts. There are also bcm2835 versions, but these are not present in my /boot and the bcm2708 dts does claim compatibility with the bcm2835. I also tried decompiling the corresponding dtb file from /boot, but that also gives the string with "+" and no revision, so I'm not quite sure where this model string comes from exactly (and more importantly, what all possible values look like). So maybe the bootloader retrieves a devicetree from elsewhere, or has one builtin somewhere.

I just noticed that /proc/cpuinfo also contains a "Model" field, which I suspect might have the same source.

1
MODEL AND REVISION                                       CODE(S)
Model B Revision 1.0                                    2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)  3
Model B Revision 2.0                                    4, 5, 6
John La Rooy
  • 11,947
  • 9
  • 47
  • 75