]> git.sur5r.net Git - u-boot/commitdiff
omap3evm: Fix mechanism to identify board revision
authorSanjeev Premi <premi@ti.com>
Thu, 4 Nov 2010 20:02:32 +0000 (16:02 -0400)
committerSandeep Paulraj <s-paulraj@ti.com>
Thu, 4 Nov 2010 20:02:32 +0000 (16:02 -0400)
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>
board/ti/evm/evm.c
board/ti/evm/evm.h
include/configs/omap3_evm.h

index 73330db156a8db886d6a4aee06a4f1a05948af00..09d14f7a56a7f4f7723dcde55d9488827f438a3b 100644 (file)
@@ -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)
index e2581f6bf10de7ec5f9ac892a59db044514cfd77..a76deb838c05796869d1a64f6714d283363d5980 100644 (file)
@@ -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
index 3ff66b57d297480a746f75b39fc1a0fe1b83a271..aeb45c6b675fe3b80ee25b96b006406042d3cad3 100644 (file)
@@ -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
  *----------------------------------------------------------------------------