[U-Boot] [PATCH 28/28] SPEAr1310 : spear1310 support added
Vipin KUMAR
vipin.kumar at st.com
Wed Jul 14 07:10:04 CEST 2010
This patch adds the support for spear1310 SoC. Currently spear1310 uses the
following drivers
- UART (PL011)
- designware i2c
- st smi (Serial Memory Interface)
- designware usb device
- designware ethernet
Signed-off-by: Vipin Kumar <vipin.kumar at st.com>
---
MAINTAINERS | 1 +
MAKEALL | 1 +
Makefile | 6 +++
arch/arm/cpu/arm_cortexa8/spear13xx/cpu.c | 4 ++
board/spear/spear1310/Makefile | 51 +++++++++++++++++++++
board/spear/spear1310/config.mk | 28 +++++++++++
board/spear/spear1310/spear1310.c | 70 +++++++++++++++++++++++++++++
doc/README.spear | 11 +++-
include/configs/spear13xx_evb.h | 5 ++
9 files changed, 174 insertions(+), 3 deletions(-)
create mode 100644 board/spear/spear1310/Makefile
create mode 100644 board/spear/spear1310/config.mk
create mode 100644 board/spear/spear1310/spear1310.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 4f9ad7f..e9ac299 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -670,6 +670,7 @@ Prakash Kumar <prakash at embedx.com>
Vipin Kumar <vipin.kumar at st.com>
spear1300 ARM CORTEX-A9 (spear1300 Soc)
+ spear1310 ARM CORTEX-A9 (spear1310 Soc)
spear300 ARM926EJS (spear300 Soc)
spear310 ARM926EJS (spear310 Soc)
spear320 ARM926EJS (spear320 Soc)
diff --git a/MAKEALL b/MAKEALL
index e77608a..d140d38 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -660,6 +660,7 @@ LIST_ARM_CORTEX_A8=" \
s5p_goni \
smdkc100 \
spear1300 \
+ spear1310 \
"
#########################################################################
diff --git a/Makefile b/Makefile
index 870207d..fb0ad0f 100644
--- a/Makefile
+++ b/Makefile
@@ -2117,6 +2117,12 @@ spear1300_usbtty_config \
spear1300_usbtty_nand_config : unconfig
@$(MKCONFIG) -n $@ -t $(@:_config=) spear13xx_evb arm arm_cortexa8 spear1300 spear spear13xx
+spear1310_config \
+spear1310_nand_config \
+spear1310_usbtty_config \
+spear1310_usbtty_nand_config : unconfig
+ @$(MKCONFIG) -n $@ -t $(@:_config=) spear13xx_evb arm arm_cortexa8 spear1310 spear spear13xx
+
suen3_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm926ejs km_arm keymile kirkwood
diff --git a/arch/arm/cpu/arm_cortexa8/spear13xx/cpu.c b/arch/arm/cpu/arm_cortexa8/spear13xx/cpu.c
index 4720b60..bf0da29 100644
--- a/arch/arm/cpu/arm_cortexa8/spear13xx/cpu.c
+++ b/arch/arm/cpu/arm_cortexa8/spear13xx/cpu.c
@@ -123,7 +123,11 @@ int arch_cpu_init(void)
#ifdef CONFIG_DISPLAY_CPUINFO
int print_cpuinfo(void)
{
+#if defined(CONFIG_SPEAR1300)
printf("CPU: SPEAr1300\n");
+#elif defined(CONFIG_SPEAR1310)
+ printf("CPU: SPEAr1310\n");
+#endif
return 0;
}
#endif
diff --git a/board/spear/spear1310/Makefile b/board/spear/spear1310/Makefile
new file mode 100644
index 0000000..661a6a0
--- /dev/null
+++ b/board/spear/spear1310/Makefile
@@ -0,0 +1,51 @@
+#
+# (C) Copyright 2000-2004
+# Wolfgang Denk, DENX Software Engineering, wd at 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 := spear1310.o
+SOBJS :=
+
+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/spear1310/config.mk b/board/spear/spear1310/config.mk
new file mode 100644
index 0000000..4bd519c
--- /dev/null
+++ b/board/spear/spear1310/config.mk
@@ -0,0 +1,28 @@
+#
+# (C) Copyright 2010
+# Vipin Kumar, ST Microelectronics <vipin.kumar at 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/spear1310/spear1310.c b/board/spear/spear1310/spear1310.c
new file mode 100644
index 0000000..852a096
--- /dev/null
+++ b/board/spear/spear1310/spear1310.c
@@ -0,0 +1,70 @@
+/*
+ * (C) Copyright 2010
+ * Vipin Kumar, ST Micoelectronics, vipin.kumar at 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 <linux/mtd/st_smi.h>
+#include <linux/mtd/fsmc_nand.h>
+#include <asm/arch/hardware.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+ gd->bd->bi_arch_number = MACH_TYPE_SPEAR1310;
+ gd->bd->bi_boot_params = CONFIG_BOOT_PARAMS_ADDR;
+
+#if defined(CONFIG_ST_SMI)
+ smi_init();
+#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);
+#else
+ return -1;
+#endif
+}
+
+#if defined(CONFIG_CMD_NET)
+int board_eth_init(bd_t *bis)
+{
+ int ret = 0;
+#if defined(CONFIG_DESIGNWARE_ETH)
+ if (designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY) >= 0)
+ ret++;
+#endif
+ return ret;
+}
+#endif
diff --git a/doc/README.spear b/doc/README.spear
index 94b492f..6839c23 100644
--- a/doc/README.spear
+++ b/doc/README.spear
@@ -6,10 +6,11 @@ SPEAr600 is also known as SPEArPlus and SPEAr300 is also known as SPEArBasic
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!).
-U-Boot supports five spear SoCs: SPEAr600, SPEAr3xx, SPEAr1300
+U-Boot supports six spear SoCs: SPEAr600, SPEAr3xx, SPEAr1300, SPEAr1310
-4 SoCs (SPEAr3xx and SPEAr600) share common peripherals. SPEAr1300 is based on
-ARM CortexA9 core and other peripherals are common
+4 SoCs (SPEAr3xx and SPEAr600) are based on arm926ejs core and share
+common peripherals. SPEAr13xx SoCs are based on ARM CortexA9 core
+and other peripherals are common.
1. ARM926ejs core based (sp600 has two cores, the 2nd handled only in Linux)
2. FastEthernet (sp600 has Gbit version, but same controller - GMAC)
@@ -61,6 +62,10 @@ Build options
make spear1300_nand_config
make spear1300_usbtty_config
make spear1300_usbtty_nand_config
+ make spear1310_config
+ make spear1310_nand_config
+ make spear1310_usbtty_config
+ make spear1310_usbtty_nand_config
Further options
make FLASH=PNOR (supported by SPEAr310 and SPEAr320)
diff --git a/include/configs/spear13xx_evb.h b/include/configs/spear13xx_evb.h
index 195a08e..820170d 100644
--- a/include/configs/spear13xx_evb.h
+++ b/include/configs/spear13xx_evb.h
@@ -29,6 +29,11 @@
#define CONFIG_SPEAR1300 1
#endif
+#if defined(CONFIG_MK_spear1310)
+#define CONFIG_SPEAR13XX 1
+#define CONFIG_SPEAR1310 1
+#endif
+
#if defined(CONFIG_MK_usbtty)
#define CONFIG_SPEAR_USBTTY 1
#endif
--
1.6.0.2
More information about the U-Boot
mailing list