summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Warren <swarren@wwwdotorg.org>2014-12-05 20:56:46 -0700
committerTom Rini <trini@ti.com>2014-12-29 16:31:22 -0500
commit3207d8fc9cc8fcc91d0dcc02890c7aaff48a6a27 (patch)
treed9187ac56f3b4c1913a5e68f23ae4131fcfa9835
parent03ca6a394a00652305a10c95202f28b476c9f8d8 (diff)
downloadu-boot-imx-3207d8fc9cc8fcc91d0dcc02890c7aaff48a6a27.zip
u-boot-imx-3207d8fc9cc8fcc91d0dcc02890c7aaff48a6a27.tar.gz
u-boot-imx-3207d8fc9cc8fcc91d0dcc02890c7aaff48a6a27.tar.bz2
ARM: rpi: only set usbethaddr on relevant systems
Model A and CM RPis don't have an on-board USB Ethernet device. Hence, there's no point setting $usbethaddr based on the device fuses. Use the model detection code to gate this. Note that the fuses are actually programmed even on those devices though. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
-rw-r--r--board/raspberrypi/rpi/rpi.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index 7dbd40e..ca8e86d 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -82,58 +82,72 @@ struct msg_get_clock_rate {
static const struct {
const char *name;
const char *fdtfile;
+ bool has_onboard_eth;
} models[] = {
[BCM2835_BOARD_REV_B_I2C0_2] = {
"Model B (no P5)",
"bcm2835-rpi-b-i2c0.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_I2C0_3] = {
"Model B (no P5)",
"bcm2835-rpi-b-i2c0.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_I2C1_4] = {
"Model B",
"bcm2835-rpi-b.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_I2C1_5] = {
"Model B",
"bcm2835-rpi-b.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_I2C1_6] = {
"Model B",
"bcm2835-rpi-b.dtb",
+ true,
},
[BCM2835_BOARD_REV_A_7] = {
"Model A",
"bcm2835-rpi-a.dtb",
+ false,
},
[BCM2835_BOARD_REV_A_8] = {
"Model A",
"bcm2835-rpi-a.dtb",
+ false,
},
[BCM2835_BOARD_REV_A_9] = {
"Model A",
"bcm2835-rpi-a.dtb",
+ false,
},
[BCM2835_BOARD_REV_B_REV2_d] = {
"Model B rev2",
"bcm2835-rpi-b-rev2.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_REV2_e] = {
"Model B rev2",
"bcm2835-rpi-b-rev2.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_REV2_f] = {
"Model B rev2",
"bcm2835-rpi-b-rev2.dtb",
+ true,
},
[BCM2835_BOARD_REV_B_PLUS] = {
"Model B+",
"bcm2835-rpi-b-plus.dtb",
+ true,
},
[BCM2835_BOARD_REV_CM] = {
"Compute Module",
"bcm2835-rpi-cm.dtb",
+ false,
},
};
@@ -177,6 +191,9 @@ static void set_usbethaddr(void)
ALLOC_ALIGN_BUFFER(struct msg_get_mac_address, msg, 1, 16);
int ret;
+ if (!models[rpi_board_rev].has_onboard_eth)
+ return;
+
if (getenv("usbethaddr"))
return;