|
1 | 1 | /* |
2 | 2 | Copyright (c) 2012 Ben Croston |
3 | 3 |
|
4 | | -Revised by Ernesto Lo Valvo (ernesto.lovalvo@unipa.it) (12/01/2021) |
| 4 | +Revised by Ernesto Lo Valvo (ernesto.lovalvo@unipa.it) (19/03/2022) |
5 | 5 | Added new version of Raspberry Pi4 and Raspberry Pi 400 |
6 | 6 | Revised for version 3B (15/01/2021) |
7 | | - https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md |
| 7 | + https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-revision-codes |
8 | 8 |
|
9 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of |
10 | 10 | this software and associated documentation files (the "Software"), to deal in |
@@ -32,18 +32,21 @@ char *get_cpuinfo_revision(char *revision) |
32 | 32 | { |
33 | 33 | FILE *fp; |
34 | 34 | char buffer[1024]; |
| 35 | + char *r; |
35 | 36 |
|
36 | 37 | if ((fp = fopen("/sys/firmware/devicetree/base/model", "r")) == NULL) |
37 | | - return 0; |
| 38 | + return NULL; |
| 39 | + |
| 40 | + r = fgets(buffer, sizeof(buffer) , fp); |
| 41 | + fclose(fp); |
38 | 42 |
|
39 | | - fgets(buffer, sizeof(buffer) , fp); |
| 43 | + if (!r) return NULL; |
40 | 44 |
|
41 | 45 | if (strncmp(buffer, "Raspberry",9) != 0) |
42 | 46 | return NULL; |
43 | | - fclose(fp); |
44 | 47 |
|
45 | 48 | if ((fp = fopen("/proc/cpuinfo", "r")) == NULL) |
46 | | - return 0; |
| 49 | + return NULL; |
47 | 50 |
|
48 | 51 | while(!feof(fp)) { |
49 | 52 | if (fgets(buffer, sizeof(buffer) , fp)){ |
@@ -97,7 +100,8 @@ int get_rpi_revision(void) |
97 | 100 | (strcmp(revision, "c03114") == 0) || |
98 | 101 | (strcmp(revision, "d03114") == 0)) |
99 | 102 | return 5; |
100 | | - else if (strcmp(revision, "c03130") == 0) /* Raspberry Pi 400 */ |
| 103 | + else if ((strcmp(revision, "c03130") == 0) || /* Raspberry Pi 400 */ |
| 104 | + (strcmp(revision, "c03131") == 0)) |
101 | 105 | return 6; |
102 | 106 | else /* assume rev 7 */ |
103 | 107 | return 7; |
|
0 commit comments