6

raspberry pi cpuinfo vs device-tree

 4 months ago
source link: https://gist.github.com/jperkin/c37a574379ef71e339361954be96be12
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Raspberry Pi cpuinfo vs device-tree

My attempt at gathering information on how to detect exactly which Raspberry Pi model we are running on for https://github.com/jperkin/node-rpio. The goal is to come up with an optimal way of detecting the host across a wide range of hardware and OS.

Name (Rev) cpuinfo /proc/device-tree/model device-tree/soc/ranges OS
B (1.0) 0002 Raspberry Pi Model B 7e000000 20000000 01000000 7
B (1.0) 0002 Raspberry Pi Model B Rev 1 7e000000 20000000 02000000 10
B (1.0) 0003 Raspberry Pi Model B 7e000000 20000000 01000000 7
B (1.0) 0003 Raspberry Pi Model B Rev 1 7e000000 20000000 02000000 10
B+ (1.2) 0010 Raspberry Pi Model B Plus Rev 1.2 7e000000 20000000 02000000 10
CM (1.0) 0014 Raspberry Pi Compute Module Rev 1.0 7e000000 20000000 02000000 10
Zero W (1.1) 9000c1 Raspberry Pi Zero W Rev 1.1 7e000000 20000000 02000000 9
2 B (1.1) a01041 Raspberry Pi 2 Model B Rev 1.1 7e000000 3f000000 01000000 9
2 B (1.1) a01041 Raspberry Pi 2 Model B Rev 1.1 7e000000 3f000000 01000000 10
CM 3 (1.0) a020a0 Raspberry Pi Compute Module 3 Rev 1.0 7e000000 3f000000 01000000 10
CM 3+ (1.0) a02100 Raspberry Pi Compute Module 3 Plus Rev 1.0 7e000000 3f000000 01000000 10
2 B (1.2) a22042 Raspberry Pi 2 Model B Rev 1.2 7e000000 3f000000 01000000 8
3 B (1.2) a02082 Raspberry Pi 3 Model B Rev 1.2 7e000000 3f000000 01000000 10
3 B (1.3) a020d3 Raspberry Pi 3 Model B Plus Rev 1.3 7e000000 3f000000 01000000 9
4 B 2GB (1.1) b03111 Raspberry Pi 4 Model B Rev 1.1 7e000000 00000000 fe000000 10
4 B 4GB (1.1) c03111 Raspberry Pi 4 Model B Rev 1.1 7e000000 00000000 fe000000 10
4 B 8GB (1.4) d03114 Raspberry Pi 4 Model B Rev 1.4 7e000000 00000000 fe000000 20

Open Questions

  • Is there any way to detect rev 1.0 vs rev 2.0 with the original Model B when running 7? Only newer releases identify the revision in /proc/device-tree/model. Just assume /proc/cpuinfo?.

How To Generate

The following script can be used to generate the data (assuming Raspbian or similar).

#!/bin/bash

. /etc/os-release

printf "cpuinfo:\t%s\n" "$(awk '/^Revision/ { print $NF }' /proc/cpuinfo)"
printf "dtmodel:\t%s\n" "$(</proc/device-tree/model)"
set -- $(xxd -l 16 -g 4 < /proc/device-tree/soc/ranges)
printf "socranges:\t%s %s %s\n" $2 $3 $4
printf "os:\t\t%s\n" "$VERSION_ID"

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK