summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjeev Premi <premi@ti.com>2010-11-04 16:02:32 -0400
committerSandeep Paulraj <s-paulraj@ti.com>2010-11-04 16:02:32 -0400
commit76ee9a2c3ba0b642e61ad282386953fcdfc659c7 (patch)
treef9977f6d4a85db32f1fff4dc9e15178a4934d291
parent63f42400e50c7ebede2974b421db765324ad8c8e (diff)
downloadu-boot-imx-76ee9a2c3ba0b642e61ad282386953fcdfc659c7.zip
u-boot-imx-76ee9a2c3ba0b642e61ad282386953fcdfc659c7.tar.gz
u-boot-imx-76ee9a2c3ba0b642e61ad282386953fcdfc659c7.tar.bz2
omap3evm: Fix mechanism to identify board revision
Function omap3_evm_get_revision() - to identify the board revision was called at end of setup_net_chip(). Board revision can be ascertained only by identifying the Ethernet chipset - but combining setup operations with revision detection isn't a good idea. So, moved the function after call to setup_net_chip(). Function setup_net_chip() should be ideally be called only when CONFIG_CMD_NET is defined. But this leaves the board revision "undetected". This patch allows static definition of revision or default fallback to the latest revision. Signed-off-by: Sanjeev Premi <premi@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
-rw-r--r--board/ti/evm/evm.c22
-rw-r--r--board/ti/evm/evm.h2
-rw-r--r--include/configs/omap3_evm.h5
3 files changed, 26 insertions, 3 deletions
diff --git a/board/ti/evm/evm.c b/board/ti/evm/evm.c
index 73330db..09d14f7 100644
--- a/board/ti/evm/evm.c
+++ b/board/ti/evm/evm.c
@@ -46,6 +46,11 @@ u8 get_omap3_evm_rev(void)
static void omap3_evm_get_revision(void)
{
+#if defined(CONFIG_CMD_NET)
+ /*
+ * Board revision can be ascertained only by identifying
+ * the Ethernet chipset.
+ */
unsigned int smsc_id;
/* Ethernet PHY ID is stored at ID_REV register */
@@ -62,6 +67,19 @@ static void omap3_evm_get_revision(void)
default:
omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
}
+#else
+#if defined(CONFIG_STATIC_BOARD_REV)
+ /*
+ * Look for static defintion of the board revision
+ */
+ omap3_evm_version = CONFIG_STATIC_BOARD_REV;
+#else
+ /*
+ * Fallback to the default above.
+ */
+ omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
+#endif
+#endif /* CONFIG_CMD_NET */
}
#ifdef CONFIG_USB_OMAP3
@@ -110,6 +128,7 @@ int misc_init_r(void)
#if defined(CONFIG_CMD_NET)
setup_net_chip();
#endif
+ omap3_evm_get_revision();
dieid_num_r();
@@ -163,9 +182,6 @@ static void setup_net_chip(void)
writel(GPIO0, &gpio3_base->cleardataout);
udelay(1);
writel(GPIO0, &gpio3_base->setdataout);
-
- /* determine omap3evm revision */
- omap3_evm_get_revision();
}
int board_eth_init(bd_t *bis)
diff --git a/board/ti/evm/evm.h b/board/ti/evm/evm.h
index e2581f6..a76deb8 100644
--- a/board/ti/evm/evm.h
+++ b/board/ti/evm/evm.h
@@ -47,7 +47,9 @@ enum {
u8 get_omap3_evm_rev(void);
+#if defined(CONFIG_CMD_NET)
static void setup_net_chip(void);
+#endif
/*
* IEN - Input Enable
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
index 3ff66b5..aeb45c6 100644
--- a/include/configs/omap3_evm.h
+++ b/include/configs/omap3_evm.h
@@ -350,6 +350,11 @@ extern unsigned int boot_flash_type;
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
#define CONFIG_SYS_INIT_SP_ADDR (LOW_LEVEL_SRAM_STACK - CONFIG_SYS_GBL_DATA_SIZE)
+/*
+ * Define the board revision statically
+ */
+/* #define CONFIG_STATIC_BOARD_REV OMAP3EVM_BOARD_GEN_2 */
+
/*----------------------------------------------------------------------------
* SMSC9115 Ethernet from SMSC9118 family
*----------------------------------------------------------------------------