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?
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?
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).
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.
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