summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Warren <swarren@wwwdotorg.org>2014-12-23 20:01:43 -0700
committerTom Rini <trini@ti.com>2014-12-29 16:31:22 -0500
commit47705eff7a822105dfddaa03aadfe95f05849892 (patch)
tree5c668dce5bdcb4a541d79a1ef2106a94d1bf3736
parent3207d8fc9cc8fcc91d0dcc02890c7aaff48a6a27 (diff)
downloadu-boot-imx-47705eff7a822105dfddaa03aadfe95f05849892.zip
u-boot-imx-47705eff7a822105dfddaa03aadfe95f05849892.tar.gz
u-boot-imx-47705eff7a822105dfddaa03aadfe95f05849892.tar.bz2
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>
-rw-r--r--arch/arm/include/asm/arch-bcm2835/mbox.h1
-rw-r--r--board/raspberrypi/rpi/rpi.c14
2 files changed, 13 insertions, 2 deletions
diff --git a/arch/arm/include/asm/arch-bcm2835/mbox.h b/arch/arm/include/asm/arch-bcm2835/mbox.h
index 0289ba6..88d2ec1 100644
--- a/arch/arm/include/asm/arch-bcm2835/mbox.h
+++ b/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;
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index ca8e86d..6227e9b 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/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);
}