|
@@ -278,10 +278,17 @@ static void get_board_rev(void)
|
|
* https://github.com/pimoroni/RPi.version/blob/master/RPi/version.py
|
|
* https://github.com/pimoroni/RPi.version/blob/master/RPi/version.py
|
|
* http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=99293&p=690282
|
|
* http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=99293&p=690282
|
|
* (a few posts down)
|
|
* (a few posts down)
|
|
|
|
+ *
|
|
|
|
+ * For the RPi 1, bit 24 is the "warranty bit", so we mask off just the
|
|
|
|
+ * lower byte to use as the board rev:
|
|
|
|
+ * http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=98367&start=250
|
|
|
|
+ * http://www.raspberrypi.org/forums/viewtopic.php?f=31&t=20594
|
|
*/
|
|
*/
|
|
rpi_board_rev = msg->get_board_rev.body.resp.rev;
|
|
rpi_board_rev = msg->get_board_rev.body.resp.rev;
|
|
if (rpi_board_rev & 0x800000)
|
|
if (rpi_board_rev & 0x800000)
|
|
rpi_board_rev = (rpi_board_rev >> 4) & 0xff;
|
|
rpi_board_rev = (rpi_board_rev >> 4) & 0xff;
|
|
|
|
+ else
|
|
|
|
+ rpi_board_rev &= 0xff;
|
|
if (rpi_board_rev >= ARRAY_SIZE(models)) {
|
|
if (rpi_board_rev >= ARRAY_SIZE(models)) {
|
|
printf("RPI: Board rev %u outside known range\n",
|
|
printf("RPI: Board rev %u outside known range\n",
|
|
rpi_board_rev);
|
|
rpi_board_rev);
|