瀏覽代碼

ARM: rpi: support model A+

Add a board rev entry for the new model A+, and augment the board
rev error handling code to be a bit more verbose.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Stephen Warren 10 年之前
父節點
當前提交
47705eff7a
共有 2 個文件被更改,包括 13 次插入2 次删除
  1. 1 0
      arch/arm/include/asm/arch-bcm2835/mbox.h
  2. 12 2
      board/raspberrypi/rpi/rpi.c

+ 1 - 0
arch/arm/include/asm/arch-bcm2835/mbox.h

@@ -140,6 +140,7 @@ struct bcm2835_mbox_tag_hdr {
 #define BCM2835_BOARD_REV_B_REV2_f	0xf
 #define BCM2835_BOARD_REV_B_PLUS	0x10
 #define BCM2835_BOARD_REV_CM		0x11
+#define BCM2835_BOARD_REV_A_PLUS	0x12
 
 struct bcm2835_mbox_tag_get_board_rev {
 	struct bcm2835_mbox_tag_hdr tag_hdr;

+ 12 - 2
board/raspberrypi/rpi/rpi.c

@@ -149,6 +149,11 @@ static const struct {
 		"bcm2835-rpi-cm.dtb",
 		false,
 	},
+	[BCM2835_BOARD_REV_A_PLUS] = {
+		"Model A+",
+		"bcm2835-rpi-a-plus.dtb",
+		false,
+	},
 };
 
 u32 rpi_board_rev = 0;
@@ -260,12 +265,17 @@ static void get_board_rev(void)
 	}
 
 	rpi_board_rev = msg->get_board_rev.body.resp.rev;
-	if (rpi_board_rev >= ARRAY_SIZE(models))
+	if (rpi_board_rev >= ARRAY_SIZE(models)) {
+		printf("RPI: Board rev %u outside known range\n",
+		       rpi_board_rev);
 		rpi_board_rev = 0;
+	}
 
 	name = models[rpi_board_rev].name;
-	if (!name)
+	if (!name) {
+		printf("RPI: Board rev %u unknown\n", rpi_board_rev);
 		name = "Unknown model";
+	}
 	printf("RPI model: %s\n", name);
 }