SPEAr1300 SoC support contains basic spear1300 support along with the
usage of following drivers
- serial driver(UART)
- i2c driver
- smi driver
- nand driver(FSMC)
- usbd driver

Signed-off-by: Vipin Kumar <vipin.ku...@st.com>
---
 Makefile                                  |    6 +
 board/spear/common/Makefile               |   10 +-
 board/spear/spear1300/Makefile            |   51 ++++++++
 board/spear/spear1300/config.mk           |   28 ++++
 board/spear/spear1300/spear1300.c         |   89 +++++++++++++
 board/spear/spear1300/spr_lowlevel_init.S |   38 ++++++
 include/asm-arm/arch-spear13xx/hardware.h |    8 +-
 include/configs/spear13xx.h               |  199 +++++++++++++++++++++++++++++
 8 files changed, 423 insertions(+), 6 deletions(-)
 create mode 100644 board/spear/spear1300/Makefile
 create mode 100644 board/spear/spear1300/config.mk
 create mode 100644 board/spear/spear1300/spear1300.c
 create mode 100644 board/spear/spear1300/spr_lowlevel_init.S
 create mode 100644 include/configs/spear13xx.h

diff --git a/Makefile b/Makefile
index 1b431a5..7af505e 100644
--- a/Makefile
+++ b/Makefile
@@ -3045,6 +3045,12 @@ spear320_config :        unconfig
 spear600_config :      unconfig
        @$(MKCONFIG) -n $@ -t $(@:_config=) spear6xx arm arm926ejs 
$(@:_config=) spear spear
 
+spear1300_config \
+spear1300_nand_config \
+spear1300_usbtty_config \
+spear1300_usbtty_nand_config : unconfig
+       @$(MKCONFIG) -n $@ -t $(@:_config=) spear13xx arm arm_cortexa8 
spear1300 spear spear13xx
+
 suen3_config:  unconfig
        @$(MKCONFIG) $(@:_config=) arm arm926ejs km_arm keymile kirkwood
 
diff --git a/board/spear/common/Makefile b/board/spear/common/Makefile
index 4f8959f..1ae4fd4 100644
--- a/board/spear/common/Makefile
+++ b/board/spear/common/Makefile
@@ -29,8 +29,14 @@ endif
 
 LIB    = $(obj)lib$(VENDOR).a
 
-COBJS  := spr_misc.o
-SOBJS  := spr_lowlevel_init.o
+COBJS-$(CONFIG_SPEAR3XX) += spr_misc.o
+COBJS-$(CONFIG_SPEAR600) += spr_misc.o
+
+SOBJS-$(CONFIG_SPEAR3XX) += spr_lowlevel_init.o
+SOBJS-$(CONFIG_SPEAR600) += spr_lowlevel_init.o
+
+COBJS  := $(COBJS-y)
+SOBJS  := $(SOBJS-y)
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS))
diff --git a/board/spear/spear1300/Makefile b/board/spear/spear1300/Makefile
new file mode 100644
index 0000000..fb66895
--- /dev/null
+++ b/board/spear/spear1300/Makefile
@@ -0,0 +1,51 @@
+#
+# (C) Copyright 2000-2004
+# Wolfgang Denk, DENX Software Engineering, w...@denx.de.
+#
+# 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
+#
+
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(BOARD).a
+
+COBJS  := spear1300.o
+SOBJS  := spr_lowlevel_init.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+SOBJS  := $(addprefix $(obj),$(SOBJS))
+
+$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
+       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+       rm -f $(SOBJS) $(OBJS)
+
+distclean:     clean
+       rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/spear/spear1300/config.mk b/board/spear/spear1300/config.mk
new file mode 100644
index 0000000..0bbb40f
--- /dev/null
+++ b/board/spear/spear1300/config.mk
@@ -0,0 +1,28 @@
+#
+# (C) Copyright 2009
+# Vipin Kumar, ST Microelectronics <vipin.ku...@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
+#
+
+#########################################################################
+
+TEXT_BASE = 0x00700000
+
+ALL += $(obj)u-boot.img
diff --git a/board/spear/spear1300/spear1300.c 
b/board/spear/spear1300/spear1300.c
new file mode 100644
index 0000000..ab8e53e
--- /dev/null
+++ b/board/spear/spear1300/spear1300.c
@@ -0,0 +1,89 @@
+/*
+ * (C) Copyright 2009
+ * Vipin Kumar, ST Micoelectronics, vipin.ku...@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
+ */
+
+#include <common.h>
+#include <netdev.h>
+#include <nand.h>
+#include <asm/io.h>
+#include <asm/arch/hardware.h>
+
+#if defined(CONFIG_NAND_FSMC)
+int fsmc_nand_init(struct nand_chip *nand);
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+       gd->bd->bi_arch_number = MACH_TYPE_SPEAR1300;
+       gd->bd->bi_boot_params = CONFIG_BOOT_PARAMS_ADDR;
+
+       return 0;
+}
+
+int dram_init(void)
+{
+       gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+       gd->bd->bi_dram[0].size = get_ram_size(PHYS_SDRAM_1,
+                                              PHYS_SDRAM_1_MAXSIZE);
+
+       return 0;
+}
+
+int misc_init_r(void)
+{
+       setenv("verify", "n");
+
+#if defined(CONFIG_SPEAR_USBTTY)
+       setenv("stdin", "usbtty");
+       setenv("stdout", "usbtty");
+       setenv("stderr", "usbtty");
+#endif
+       return 0;
+}
+
+/*
+ * board_nand_init - Board specific NAND initialization
+ * @nand:      mtd private chip structure
+ *
+ * Called by nand_init_chip to initialize the board specific functions
+ */
+
+int board_nand_init(struct nand_chip *nand)
+{
+#if defined(CONFIG_NAND_FSMC)
+       return fsmc_nand_init(nand);
+#endif
+}
+
+#if defined(CONFIG_CMD_NET)
+int board_eth_init(bd_t *bis)
+{
+       /*
+        * Board specific ethernet initialization comes here. eg. gmac clock
+        * configuration etc
+        */
+
+       return dw_mii_initialize(0, CONFIG_SPEAR_ETHBASE);
+}
+#endif
diff --git a/board/spear/spear1300/spr_lowlevel_init.S 
b/board/spear/spear1300/spr_lowlevel_init.S
new file mode 100644
index 0000000..ba93922
--- /dev/null
+++ b/board/spear/spear1300/spr_lowlevel_init.S
@@ -0,0 +1,38 @@
+/*
+ * (C) Copyright 2006
+ * Vipin Kumar, ST Micoelectronics, vipin.ku...@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
+ */
+
+#include <config.h>
+
+/*
+ * platform specific initializations are already done in Xloader
+ * Initializations already done include
+ * DDR, PLLs, IP's clock enable and reset release etc
+ */
+.globl lowlevel_init
+lowlevel_init:
+       /* By default, U-Boot switches CPU to low-vector */
+       /* Revert this as we work in high vector even in U-Boot */
+       mrc     p15, 0, r0, c1, c0, 0
+       orr     r0, r0, #0x00002000
+       mcr     p15, 0, r0, c1, c0, 0
+       mov     pc, lr
diff --git a/include/asm-arm/arch-spear13xx/hardware.h 
b/include/asm-arm/arch-spear13xx/hardware.h
index 384260a..7a1cedb 100644
--- a/include/asm-arm/arch-spear13xx/hardware.h
+++ b/include/asm-arm/arch-spear13xx/hardware.h
@@ -24,10 +24,10 @@
 #ifndef _ASM_ARCH_HARDWARE_H
 #define _ASM_ARCH_HARDWARE_H
 
-#define CONFIG_SYS_USBD_BASE                   (0xE1100000)
-#define CONFIG_SYS_PLUG_BASE                   (0xE1200000)
-#define CONFIG_SYS_FIFO_BASE                   (0xE1000800)
-#define CONFIG_SYS_SMI_BASE                    (0xFC000000)
+#define CONFIG_SYS_USBD_BASE                   (0xE3800000)
+#define CONFIG_SYS_PLUG_BASE                   (0xE2800000)
+#define CONFIG_SYS_FIFO_BASE                   (0xE3000800)
+#define CONFIG_SYS_SMI_BASE                    (0xEA000000)
 #define CONFIG_SPEAR_TIMERBASE                 (0xE0380000)
 #define CONFIG_SPEAR_MISCBASE                  (0xE0700000)
 #define CONFIG_SYS_I2C_BASE                    (0xE0280000)
diff --git a/include/configs/spear13xx.h b/include/configs/spear13xx.h
new file mode 100644
index 0000000..bcf3381
--- /dev/null
+++ b/include/configs/spear13xx.h
@@ -0,0 +1,199 @@
+/*
+ * (C) Copyright 2009
+ * Vipin Kumar, STMicroelectronics, <vipin.ku...@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
+
+#if defined(CONFIG_MK_spear1300)
+#define CONFIG_SPEAR13XX                       1
+#define CONFIG_SPEAR1300                       1
+#endif
+
+#if defined(CONFIG_MK_usbtty)
+#define CONFIG_SPEAR_USBTTY                    1
+#endif
+
+#if defined(CONFIG_MK_nand)
+#define CONFIG_ENV_IS_IN_NAND                  1
+#else
+#define CONFIG_ENV_IS_IN_FLASH                 1
+#endif
+
+/* Ethernet configuration */
+#define CONFIG_MII
+#define CONFIG_DW_ETH
+#define CONFIG_NET_MULTI
+#define CONFIG_DW_ALTDESC                      1
+#define CONFIG_PHY_RESET_DELAY                 (10000)         /* in usec */
+
+/* USBD driver configuration */
+#define CONFIG_DW_UDC
+#define CONFIG_USB_DEVICE
+#define CONFIG_USB_TTY
+
+#define CONFIG_USBD_PRODUCT_NAME               "SPEAr SoC"
+#define CONFIG_USBD_MANUFACTURER               "ST Microelectronics"
+
+#define CONFIG_EXTRA_ENV_USBTTY                        "usbtty=cdc_acm\0"
+
+/* Timer, HZ specific defines */
+#define CONFIG_SYS_HZ                          (1000)
+
+/* Flash configuration */
+#define CONFIG_ST_SMI                          1
+#define CONFIG_SYS_MAX_FLASH_BANKS             2
+#define CONFIG_SYS_FLASH_BASE                  (0xE6000000)
+#define CONFIG_SYS_CS1_FLASH_BASE              (0xE7000000)
+#define CONFIG_SYS_FLASH_BANK_SIZE             (0x01000000)
+#define CONFIG_SYS_FLASH_ADDR_BASE             {CONFIG_SYS_FLASH_BASE, \
+                                               CONFIG_SYS_CS1_FLASH_BASE}
+#define CONFIG_SYS_MAX_FLASH_SECT              128
+
+#define CONFIG_SYS_FLASH_EMPTY_INFO            1
+#define CONFIG_SYS_FLASH_ERASE_TOUT            (3 * CONFIG_SYS_HZ)
+#define CONFIG_SYS_FLASH_WRITE_TOUT            (3 * CONFIG_SYS_HZ)
+
+/*
+ * Serial Configuration (PL011)
+ */
+#define CONFIG_PL011_SERIAL
+#define CONFIG_SYS_SERIAL0                     0xE0000000
+#define CONFIG_PL011_CLOCK                     (48 * 1000 * 1000)
+#define CONFIG_CONS_INDEX                      0
+#define CONFIG_BAUDRATE                                115200
+#define CONFIG_SYS_BAUDRATE_TABLE              { 9600, 19200, 38400, \
+                                               57600, 115200 }
+
+#define CONFIG_SYS_LOADS_BAUD_CHANGE
+#define CONFIG_PL01x_PORTS                     {(void *)CONFIG_SYS_SERIAL0}
+
+/*
+ * NAND FLASH Configuration
+ */
+#define CONFIG_NAND_FSMC                       1
+#define CONFIG_BOARD_NAND_LP                   1
+#define CONFIG_BOARD_NAND_8BIT                 1
+#define CONFIG_SYS_MAX_NAND_DEVICE             1
+#define CONFIG_MTD_NAND_VERIFY_WRITE           1
+#define CONFIG_SYS_NAND_BASE                   (0xA0000000)
+
+/*
+ * Command support defines
+ */
+#define CONFIG_CMD_NAND
+#define CONFIG_CMD_MEMORY
+#define CONFIG_CMD_RUN
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_DHCP
+
+/* This must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <config_cmd_default.h>
+
+/*
+ * Default Environment Varible definitions
+ */
+#if defined(CONFIG_SPEAR_USBTTY)
+#define CONFIG_BOOTDELAY                       -1
+#else
+#define CONFIG_BOOTDELAY                       1
+#endif
+
+/*
+ * Environment placing
+ */
+#if defined(CONFIG_ENV_IS_IN_FLASH)
+/*
+ * Environment is in serial NOR flash
+ */
+#define CONFIG_SYS_MONITOR_LEN                 0x00040000
+#define CONFIG_ENV_SECT_SIZE                   0x00010000
+#define CONFIG_FSMTDBLK                                "/dev/mtdblock8 "
+
+#define CONFIG_BOOTCOMMAND                     "bootm 0xe6050000"
+
+#define CONFIG_SYS_MONITOR_BASE                        CONFIG_SYS_FLASH_BASE
+#define CONFIG_ENV_ADDR                                
(CONFIG_SYS_MONITOR_BASE + \
+                                               CONFIG_SYS_MONITOR_LEN)
+#elif defined(CONFIG_ENV_IS_IN_NAND)
+/*
+ * Environment is in NAND
+ */
+
+#define CONFIG_ENV_OFFSET                      0x60000
+#define CONFIG_ENV_RANGE                       0x10000
+#define CONFIG_FSMTDBLK                                "/dev/mtdblock12 "
+
+#define CONFIG_BOOTCOMMAND                     "nand read.jffs2 0x1600000 " \
+                                               "0x80000 0x4C0000; " \
+                                               "bootm 0x1600000"
+#endif
+
+#define CONFIG_BOOTARGS_NFS                    "root=/dev/nfs ip=dhcp " \
+                                               "console=ttyAMA0 init=/bin/sh"
+#define CONFIG_BOOTARGS                                "console=ttyAMA0 
mem=128M "  \
+                                               "root="CONFIG_FSMTDBLK \
+                                               "rootfstype=jffs2"
+
+#define CONFIG_ENV_SIZE                                0x02000
+
+/* Miscellaneous configurable options */
+#define CONFIG_ARCH_CPU_INIT                   1
+#define CONFIG_DISPLAY_CPUINFO                 1
+
+#define CONFIG_BOOT_PARAMS_ADDR                        0x00000100
+#define CONFIG_CMDLINE_TAG                     1
+#define CONFIG_SETUP_MEMORY_TAGS               1
+#define CONFIG_MISC_INIT_R                     1
+#define CONFIG_ZERO_BOOTDELAY_CHECK            1
+#define CONFIG_AUTOBOOT_KEYED                  1
+#define CONFIG_AUTOBOOT_STOP_STR               " "
+#define CONFIG_AUTOBOOT_PROMPT                 \
+               "Hit SPACE in %d seconds to stop autoboot.\n", bootdelay
+
+#define CONFIG_SYS_MEMTEST_START               0x00800000
+#define CONFIG_SYS_MEMTEST_END                 0x04000000
+#define CONFIG_SYS_MALLOC_LEN                  (1024*1024)
+#define CONFIG_SYS_GBL_DATA_SIZE               128
+#define CONFIG_IDENT_STRING                    "-SPEAr"
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_PROMPT                      "u-boot> "
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_SYS_CBSIZE                      256
+#define CONFIG_SYS_PBSIZE                      (CONFIG_SYS_CBSIZE + \
+                                               sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS                     16
+#define CONFIG_SYS_BARGSIZE                    CONFIG_SYS_CBSIZE
+#define CONFIG_SYS_LOAD_ADDR                   0x00800000
+#define CONFIG_SYS_CONSOLE_INFO_QUIET          1
+#define CONFIG_SYS_64BIT_VSPRINTF              1
+
+#define CONFIG_EXTRA_ENV_SETTINGS              CONFIG_EXTRA_ENV_USBTTY
+
+/* Physical Memory Map */
+#define CONFIG_NR_DRAM_BANKS                   1
+#define PHYS_SDRAM_1                           0x00000000
+#define PHYS_SDRAM_1_MAXSIZE                   0x40000000
+
+#endif
-- 
1.6.0.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to