diff options
author | Sanjeev Premi <premi@ti.com> | 2010-11-04 16:02:32 -0400 |
---|---|---|
committer | Sandeep Paulraj <s-paulraj@ti.com> | 2010-11-04 16:02:32 -0400 |
commit | 76ee9a2c3ba0b642e61ad282386953fcdfc659c7 (patch) | |
tree | f9977f6d4a85db32f1fff4dc9e15178a4934d291 | |
parent | 63f42400e50c7ebede2974b421db765324ad8c8e (diff) | |
download | u-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.c | 22 | ||||
-rw-r--r-- | board/ti/evm/evm.h | 2 | ||||
-rw-r--r-- | include/configs/omap3_evm.h | 5 |
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 *---------------------------------------------------------------------------- |