+++ /dev/null
-#
-# (C) Copyright 2009
-# Vipin Kumar, ST Microelectronics <vipin.kumar@st.com>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-#########################################################################
-
-CONFIG_SYS_TEXT_BASE = 0x00700000
-
-ALL-y += $(obj)u-boot.img
-
-# Environment variables in NAND
-ifeq ($(ENV),NAND)
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_NAND
-else
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_FLASH
-endif
-
-ifeq ($(CONSOLE),USB)
-PLATFORM_RELFLAGS += -DCONFIG_SPEAR_USBTTY
-endif
 
+++ /dev/null
-#
-# (C) Copyright 2009
-# Vipin Kumar, ST Microelectronics <vipin.kumar@st.com>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-#########################################################################
-
-CONFIG_SYS_TEXT_BASE = 0x00700000
-
-ALL-y += $(obj)u-boot.img
-
-# Environment variables in NAND
-ifeq ($(ENV),NAND)
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_NAND
-else
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_FLASH
-endif
-
-# Support parallel flash
-ifeq ($(FLASH),PNOR)
-PLATFORM_RELFLAGS += -DCONFIG_FLASH_PNOR
-endif
-
-ifeq ($(CONSOLE),USB)
-PLATFORM_RELFLAGS += -DCONFIG_SPEAR_USBTTY
-endif
 
+++ /dev/null
-#
-# (C) Copyright 2009
-# Vipin Kumar, ST Microelectronics <vipin.kumar@st.com>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-#########################################################################
-
-CONFIG_SYS_TEXT_BASE = 0x00700000
-
-ALL-y += $(obj)u-boot.img
-
-# Environment variables in NAND
-ifeq ($(ENV),NAND)
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_NAND
-else
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_FLASH
-endif
-
-# Support parallel flash
-ifeq ($(FLASH),PNOR)
-PLATFORM_RELFLAGS += -DCONFIG_FLASH_PNOR
-endif
-
-ifeq ($(CONSOLE),USB)
-PLATFORM_RELFLAGS += -DCONFIG_SPEAR_USBTTY
-endif
 
+++ /dev/null
-#
-# (C) Copyright 2009
-# Vipin Kumar, ST Microelectronics <vipin.kumar@st.com>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-#########################################################################
-
-CONFIG_SYS_TEXT_BASE = 0x00700000
-
-ALL-y += $(obj)u-boot.img
-
-# Environment variables in NAND
-ifeq ($(ENV),NAND)
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_NAND
-else
-PLATFORM_RELFLAGS += -DCONFIG_ENV_IS_IN_FLASH
-endif
-
-ifeq ($(CONSOLE),USB)
-PLATFORM_RELFLAGS += -DCONFIG_SPEAR_USBTTY
-endif
 
 omap730p2_cs3boot           arm         arm926ejs   omap730p2           ti             omap        omap730p2:CS3_BOOT
 edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
 dkb                         arm         arm926ejs   -                   Marvell        pantheon
-spear300                     arm         arm926ejs   spear300            spear          spear       spear3xx:spear300
-spear310                     arm         arm926ejs   spear310            spear          spear       spear3xx:spear310
-spear320                     arm         arm926ejs   spear320            spear          spear       spear3xx:spear320
-spear600                     arm         arm926ejs   spear600            spear          spear       spear6xx:spear600
+spear300                     arm         arm926ejs   spear300            spear          spear       spear3xx_evb:spear300
+spear300_nand                arm         arm926ejs   spear300            spear          spear       spear3xx_evb:spear300,nand
+spear300_usbtty              arm         arm926ejs   spear300            spear          spear       spear3xx_evb:spear300,usbtty
+spear300_usbtty_nand         arm         arm926ejs   spear300            spear          spear       spear3xx_evb:spear300,usbtty,nand
+spear310                     arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310
+spear310_pnor                arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310,FLASH_PNOR
+spear310_nand                arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310,nand
+spear310_usbtty              arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310,usbtty
+spear310_usbtty_pnor         arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310,usbtty,FLASH_PNOR
+spear310_usbtty_nand         arm         arm926ejs   spear310            spear          spear       spear3xx_evb:spear310,usbtty,nand
+spear320                     arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320
+spear320_pnor                arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320,FLASH_PNOR
+spear320_nand                arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320,nand
+spear320_usbtty              arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320,usbtty
+spear320_usbtty_pnor         arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320,usbtty,FLASH_PNOR
+spear320_usbtty_nand         arm         arm926ejs   spear320            spear          spear       spear3xx_evb:spear320,usbtty,nand
+spear600                     arm         arm926ejs   spear600            spear          spear       spear6xx_evb:spear600
+spear600_nand                arm         arm926ejs   spear600            spear          spear       spear6xx_evb:spear600,nand
+spear600_usbtty              arm         arm926ejs   spear600            spear          spear       spear6xx_evb:spear600,usbtty
+spear600_usbtty_nand         arm         arm926ejs   spear600            spear          spear       spear6xx_evb:spear600,usbtty,nand
 versatileab                  arm         arm926ejs   versatile           armltd         versatile   versatile:ARCH_VERSATILE_AB
 versatilepb                  arm         arm926ejs   versatile           armltd         versatile   versatile:ARCH_VERSATILE_PB
 versatileqemu                arm         arm926ejs   versatile           armltd         versatile   versatile:ARCH_VERSATILE_QEMU,ARCH_VERSATILE_PB
 
 The SPEAr SoC family embeds a customizable logic that can be programmed
 one-time by a customer at silicon mask level (i.e. not at runtime!).
 
-We are now adding the support in u-boot for two SoC: SPEAr600 and SPEAr3xx.
+U-Boot supports four SoCs: SPEAr600, SPEAr3xx
 
-All 4 SoCs share common peripherals.
+All 4 SoCs (SPEAr3xx and SPEAr600) share common peripherals. SPEAr300 and
+SPEAr600 do not have EMI.
 
 1. ARM926ejs core based (sp600 has two cores, the 2nd handled only in Linux)
 2. FastEthernet (sp600 has Gbit version, but same controller - GMAC)
 10. others ..
 
 Everything is supported in Linux.
-u-boot is not currently supporting all peripeharls (just a few as listed below).
+u-boot is currently not supporting all peripeharls (just a few as listed below).
 1. USB Device
 2. NAND controller (FSMC)
 3. Serial Memory Interface
 5. UART
 
 Build options
-       make spear600_config
+       make spear320_config
+               spear320 build with environment variables placed at default
+               location i.e. Serial NOR device
+       make spear320_pnor_config
+               This option generates a uboot image that supports emi controller
+               for CFI compliant parallel NOR flash. Environment variables are
+               placed in Parallel NOR device
+       make spear320_nand_config
+               spear320 build with environment variables placed in NAND device
+       make spear320_usbtty_config
+               spear320 build with usbtty terminal as default and environment
+               placed at default location
+       make spear320_usbtty_pnor_config
+               spear320 build with usbtty terminal as default and environment
+               placed in pnor device
+       make spear320_usbtty_nand_config
+               Build with usbtty terminal as default and environment placed in
+               NAND device
        make spear300_config
+       make spear300_nand_config
+       make spear300_usbtty_config
+       make spear300_usbtty_nand_config
        make spear310_config
-       make spear320_config
-
-Further options
-       make ENV=NAND (supported by all 4 SoCs)
-       - This option generates a uboot image that saves environment inn NAND
-
-       make CONSOLE=USB (supported by all 4 SoCs)
-       - This option generates a uboot image for using usbdevice as a tty i/f
-
-       make FLASH=PNOR (supported by SPEAr310 and SPEAr320)
-       - This option generates a uboot image that supports emi controller for
-       CFI compliant parallel NOR flash
+       make spear310_pnor_config
+       make spear310_nand_config
+       make spear310_usbtty_config
+       make spear310_usbtty_pnor_config
+       make spear310_usbtty_nand_config
+       make spear600_config
+       make spear600_nand_config
+       make spear600_usbtty_config
+       make spear600_usbtty_nand_config
 
 Mac id storage and retrieval in spear platforms
 
 
  * Common configurations used for both spear3xx as well as spear6xx
  */
 
+/* U-boot Load Address */
+#define CONFIG_SYS_TEXT_BASE                   0x00700000
+
 /* Ethernet driver configuration */
 #define CONFIG_MII
 #define CONFIG_DESIGNWARE_ETH
 
+++ /dev/null
-/*
- * (C) Copyright 2009
- * Vipin Kumar, STMicroelectronics, <vipin.kumar@st.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/*
- * High Level Configuration Options
- * (easy to change)
- */
-#if defined(CONFIG_spear300)
-#define CONFIG_SPEAR3XX                                1
-#define CONFIG_SPEAR300                                1
-#elif defined(CONFIG_spear310)
-#define CONFIG_SPEAR3XX                                1
-#define CONFIG_SPEAR310                                1
-#elif defined(CONFIG_spear320)
-#define CONFIG_SPEAR3XX                                1
-#define CONFIG_SPEAR320                                1
-#endif
-
-#include <configs/spear-common.h>
-
-/* Ethernet driver configuration */
-#define CONFIG_DW_ALTDESCRIPTOR                        1
-
-#if defined(CONFIG_SPEAR310)
-#define CONFIG_MACB                            1
-#define CONFIG_MACB0_PHY                       0x01
-#define CONFIG_MACB1_PHY                       0x03
-#define CONFIG_MACB2_PHY                       0x05
-#define CONFIG_MACB3_PHY                       0x07
-
-#elif defined(CONFIG_SPEAR320)
-#define CONFIG_MACB                            1
-#define CONFIG_MACB0_PHY                       0x01
-
-#endif
-
-/* Serial Configuration (PL011) */
-#define CONFIG_SYS_SERIAL0                     0xD0000000
-
-#if defined(CONFIG_SPEAR300)
-#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0}
-
-#elif defined(CONFIG_SPEAR310)
-
-#if (CONFIG_CONS_INDEX)
-#undef  CONFIG_PL011_CLOCK
-#define CONFIG_PL011_CLOCK                     (83 * 1000 * 1000)
-#endif
-
-#define CONFIG_SYS_SERIAL1                     0xB2000000
-#define CONFIG_SYS_SERIAL2                     0xB2080000
-#define CONFIG_SYS_SERIAL3                     0xB2100000
-#define CONFIG_SYS_SERIAL4                     0xB2180000
-#define CONFIG_SYS_SERIAL5                     0xB2200000
-#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0, \
-                                               (void *)CONFIG_SYS_SERIAL1, \
-                                               (void *)CONFIG_SYS_SERIAL2, \
-                                               (void *)CONFIG_SYS_SERIAL3, \
-                                               (void *)CONFIG_SYS_SERIAL4, \
-                                               (void *)CONFIG_SYS_SERIAL5 }
-#elif defined(CONFIG_SPEAR320)
-
-#if (CONFIG_CONS_INDEX)
-#undef  CONFIG_PL011_CLOCK
-#define CONFIG_PL011_CLOCK                     (83 * 1000 * 1000)
-#endif
-
-#define CONFIG_SYS_SERIAL1                     0xA3000000
-#define CONFIG_SYS_SERIAL2                     0xA4000000
-#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0, \
-                                               (void *)CONFIG_SYS_SERIAL1, \
-                                               (void *)CONFIG_SYS_SERIAL2 }
-#endif
-
-#if defined(CONFIG_SPEAR_EMI)
-
-#define CONFIG_SYS_FLASH_CFI
-#define CONFIG_FLASH_CFI_DRIVER
-
-#if defined(CONFIG_SPEAR310)
-#define CONFIG_SYS_FLASH_BASE                  0x50000000
-#define CONFIG_SYS_CS1_FLASH_BASE              0x60000000
-#define CONFIG_SYS_CS2_FLASH_BASE              0x70000000
-#define CONFIG_SYS_CS3_FLASH_BASE              0x80000000
-#define CONFIG_SYS_CS4_FLASH_BASE              0x90000000
-#define CONFIG_SYS_CS5_FLASH_BASE              0xA0000000
-#define CONFIG_SYS_FLASH_BANKS_LIST            { CONFIG_SYS_FLASH_BASE,   \
-                                               CONFIG_SYS_CS1_FLASH_BASE, \
-                                               CONFIG_SYS_CS2_FLASH_BASE, \
-                                               CONFIG_SYS_CS3_FLASH_BASE, \
-                                               CONFIG_SYS_CS4_FLASH_BASE, \
-                                               CONFIG_SYS_CS5_FLASH_BASE }
-#define CONFIG_SYS_MAX_FLASH_BANKS             6
-
-#elif defined(CONFIG_SPEAR320)
-#define CONFIG_SYS_FLASH_BASE                  0x44000000
-#define CONFIG_SYS_CS1_FLASH_BASE              0x45000000
-#define CONFIG_SYS_CS2_FLASH_BASE              0x46000000
-#define CONFIG_SYS_CS3_FLASH_BASE              0x47000000
-#define CONFIG_SYS_FLASH_BANKS_LIST            { CONFIG_SYS_FLASH_BASE,   \
-                                               CONFIG_SYS_CS1_FLASH_BASE, \
-                                               CONFIG_SYS_CS2_FLASH_BASE, \
-                                               CONFIG_SYS_CS3_FLASH_BASE }
-#define CONFIG_SYS_MAX_FLASH_BANKS             4
-
-#endif
-
-#define CONFIG_SYS_MAX_FLASH_SECT              (127 + 8)
-#define CONFIG_SYS_FLASH_QUIET_TEST            1
-
-#endif
-
-/* NAND flash configuration */
-#define CONFIG_SYS_FSMC_NAND_SP
-#define CONFIG_SYS_FSMC_NAND_8BIT
-
-#if defined(CONFIG_SPEAR300)
-#define CONFIG_SYS_NAND_BASE                   (0x80000000)
-
-#elif defined(CONFIG_SPEAR310)
-#define CONFIG_SYS_NAND_BASE                   (0x40000000)
-
-#elif defined(CONFIG_SPEAR320)
-#define CONFIG_SYS_NAND_BASE                   (0x50000000)
-
-#endif
-
-#endif  /* __CONFIG_H */
 
--- /dev/null
+/*
+ * (C) Copyright 2009
+ * Vipin Kumar, STMicroelectronics, <vipin.kumar@st.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#if defined(CONFIG_spear300)
+#define CONFIG_SPEAR3XX                                1
+#define CONFIG_SPEAR300                                1
+#elif defined(CONFIG_spear310)
+#define CONFIG_SPEAR3XX                                1
+#define CONFIG_SPEAR310                                1
+#elif defined(CONFIG_spear320)
+#define CONFIG_SPEAR3XX                                1
+#define CONFIG_SPEAR320                                1
+#endif
+
+#if defined(CONFIG_usbtty)
+#define CONFIG_SPEAR_USBTTY
+#endif
+
+#if defined(CONFIG_nand)
+#define CONFIG_ENV_IS_IN_NAND
+#else
+#define CONFIG_ENV_IS_IN_FLASH
+#endif
+
+#include <configs/spear-common.h>
+
+/* Ethernet driver configuration */
+#define CONFIG_DW_ALTDESCRIPTOR                        1
+
+#if defined(CONFIG_SPEAR310)
+#define CONFIG_MACB                            1
+#define CONFIG_MACB0_PHY                       0x01
+#define CONFIG_MACB1_PHY                       0x03
+#define CONFIG_MACB2_PHY                       0x05
+#define CONFIG_MACB3_PHY                       0x07
+
+#elif defined(CONFIG_SPEAR320)
+#define CONFIG_MACB                            1
+#define CONFIG_MACB0_PHY                       0x01
+
+#endif
+
+/* Serial Configuration (PL011) */
+#define CONFIG_SYS_SERIAL0                     0xD0000000
+
+#if defined(CONFIG_SPEAR300)
+#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0}
+
+#elif defined(CONFIG_SPEAR310)
+
+#if (CONFIG_CONS_INDEX)
+#undef  CONFIG_PL011_CLOCK
+#define CONFIG_PL011_CLOCK                     (83 * 1000 * 1000)
+#endif
+
+#define CONFIG_SYS_SERIAL1                     0xB2000000
+#define CONFIG_SYS_SERIAL2                     0xB2080000
+#define CONFIG_SYS_SERIAL3                     0xB2100000
+#define CONFIG_SYS_SERIAL4                     0xB2180000
+#define CONFIG_SYS_SERIAL5                     0xB2200000
+#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0, \
+                                               (void *)CONFIG_SYS_SERIAL1, \
+                                               (void *)CONFIG_SYS_SERIAL2, \
+                                               (void *)CONFIG_SYS_SERIAL3, \
+                                               (void *)CONFIG_SYS_SERIAL4, \
+                                               (void *)CONFIG_SYS_SERIAL5 }
+#elif defined(CONFIG_SPEAR320)
+
+#if (CONFIG_CONS_INDEX)
+#undef  CONFIG_PL011_CLOCK
+#define CONFIG_PL011_CLOCK                     (83 * 1000 * 1000)
+#endif
+
+#define CONFIG_SYS_SERIAL1                     0xA3000000
+#define CONFIG_SYS_SERIAL2                     0xA4000000
+#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0, \
+                                               (void *)CONFIG_SYS_SERIAL1, \
+                                               (void *)CONFIG_SYS_SERIAL2 }
+#endif
+
+#if defined(CONFIG_SPEAR_EMI)
+
+#define CONFIG_SYS_FLASH_CFI
+#define CONFIG_FLASH_CFI_DRIVER
+
+#if defined(CONFIG_SPEAR310)
+#define CONFIG_SYS_FLASH_BASE                  0x50000000
+#define CONFIG_SYS_CS1_FLASH_BASE              0x60000000
+#define CONFIG_SYS_CS2_FLASH_BASE              0x70000000
+#define CONFIG_SYS_CS3_FLASH_BASE              0x80000000
+#define CONFIG_SYS_CS4_FLASH_BASE              0x90000000
+#define CONFIG_SYS_CS5_FLASH_BASE              0xA0000000
+#define CONFIG_SYS_FLASH_BANKS_LIST            { CONFIG_SYS_FLASH_BASE,   \
+                                               CONFIG_SYS_CS1_FLASH_BASE, \
+                                               CONFIG_SYS_CS2_FLASH_BASE, \
+                                               CONFIG_SYS_CS3_FLASH_BASE, \
+                                               CONFIG_SYS_CS4_FLASH_BASE, \
+                                               CONFIG_SYS_CS5_FLASH_BASE }
+#define CONFIG_SYS_MAX_FLASH_BANKS             6
+
+#elif defined(CONFIG_SPEAR320)
+#define CONFIG_SYS_FLASH_BASE                  0x44000000
+#define CONFIG_SYS_CS1_FLASH_BASE              0x45000000
+#define CONFIG_SYS_CS2_FLASH_BASE              0x46000000
+#define CONFIG_SYS_CS3_FLASH_BASE              0x47000000
+#define CONFIG_SYS_FLASH_BANKS_LIST            { CONFIG_SYS_FLASH_BASE,   \
+                                               CONFIG_SYS_CS1_FLASH_BASE, \
+                                               CONFIG_SYS_CS2_FLASH_BASE, \
+                                               CONFIG_SYS_CS3_FLASH_BASE }
+#define CONFIG_SYS_MAX_FLASH_BANKS             4
+
+#endif
+
+#define CONFIG_SYS_MAX_FLASH_SECT              (127 + 8)
+#define CONFIG_SYS_FLASH_QUIET_TEST            1
+
+#endif
+
+/* NAND flash configuration */
+#define CONFIG_SYS_FSMC_NAND_SP
+#define CONFIG_SYS_FSMC_NAND_8BIT
+
+#if defined(CONFIG_SPEAR300)
+#define CONFIG_SYS_NAND_BASE                   (0x80000000)
+
+#elif defined(CONFIG_SPEAR310)
+#define CONFIG_SYS_NAND_BASE                   (0x40000000)
+
+#elif defined(CONFIG_SPEAR320)
+#define CONFIG_SYS_NAND_BASE                   (0x50000000)
+
+#endif
+
+#endif  /* __CONFIG_H */
 
+++ /dev/null
-/*
- * (C) Copyright 2009
- * Vipin Kumar, STMicroelectronics, <vipin.kumar@st.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/*
- * High Level Configuration Options
- * (easy to change)
- */
-#define CONFIG_SPEAR600                                1
-
-#include <configs/spear-common.h>
-
-/* Serial Configuration (PL011) */
-#define CONFIG_SYS_SERIAL0                     0xD0000000
-#define CONFIG_SYS_SERIAL1                     0xD0080000
-#define CONFIG_PL01x_PORTS                     { (void *)CONFIG_SYS_SERIAL0, \
-                                               (void *)CONFIG_SYS_SERIAL1 }
-
-/* NAND flash configuration */
-#define CONFIG_SYS_FSMC_NAND_SP
-#define CONFIG_SYS_FSMC_NAND_8BIT
-#define CONFIG_SYS_NAND_BASE                   (0xD2000000)
-
-#endif  /* __CONFIG_H */
 
--- /dev/null
+/*
+ * (C) Copyright 2009
+ * Vipin Kumar, STMicroelectronics, <vipin.kumar@st.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_SPEAR600                                1
+
+#if defined(CONFIG_usbtty)
+#define CONFIG_SPEAR_USBTTY
+#endif
+
+#if defined(CONFIG_nand)
+#define CONFIG_ENV_IS_IN_NAND
+#else
+#define CONFIG_ENV_IS_IN_FLASH
+#endif
+
+#include <configs/spear-common.h>
+
+/* Serial Configuration (PL011) */
+#define CONFIG_SYS_SERIAL0                     0xD0000000
+#define CONFIG_SYS_SERIAL1                     0xD0080000
+#define CONFIG_PL01x_PORTS                     { (void *)CONFIG_SYS_SERIAL0, \
+                                               (void *)CONFIG_SYS_SERIAL1 }
+
+/* NAND flash configuration */
+#define CONFIG_SYS_FSMC_NAND_SP
+#define CONFIG_SYS_FSMC_NAND_8BIT
+#define CONFIG_SYS_NAND_BASE                   (0xD2000000)
+
+#endif  /* __CONFIG_H */