* Patch by Stefan Roese, 1 Jul 2005:
[oweals/u-boot.git] / board / omap1610inn / omap1610innovator.c
index 521eee34c39f2213e3c87dc234a974ef747ff546..78425181e894f7d0c21d1492f5bf21068bb70f03 100644 (file)
 #include <./configs/omap1510.h>
 #endif
 
+#ifdef CONFIG_CS_AUTOBOOT
+unsigned long omap_flash_base;
+#endif
+
 void flash__init (void);
 void ether__init (void);
 void set_muxconf_regs (void);
@@ -58,9 +62,12 @@ int board_init (void)
 {
        DECLARE_GLOBAL_DATA_PTR;
 
-       /* arch number of OMAP 1510-Board */
-       /* to be changed for OMAP 1610 Board */
-       gd->bd->bi_arch_number = 234;
+       if (machine_is_omap_h2())
+               gd->bd->bi_arch_number = MACH_TYPE_OMAP_H2;
+       else if (machine_is_omap_innovator())
+               gd->bd->bi_arch_number = MACH_TYPE_OMAP_INNOVATOR;
+       else
+               gd->bd->bi_arch_number = MACH_TYPE_OMAP_GENERIC;
 
        /* adress of boot parameters */
        gd->bd->bi_boot_params = 0x10000100;
@@ -95,6 +102,12 @@ void flash__init (void)
 {
 #define EMIFS_GlB_Config_REG 0xfffecc0c
        unsigned int regval;
+
+#ifdef CONFIG_CS_AUTOBOOT
+        /* Check swapping of CS0 and CS3, set flash base accordingly */
+       omap_flash_base = ((*((u32 *)OMAP_EMIFS_CONFIG_REG) & 0x02) == 0) ?
+                                       PHYS_FLASH_1_BM0 : PHYS_FLASH_1_BM1;
+#endif
        regval = *((volatile unsigned int *) EMIFS_GlB_Config_REG);
        /* Turn off write protection for flash devices. */
        regval = regval | 0x0001;