Vipin KUMAR wrote: > 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 +
Need MAINTAINERS MAKEALL > arch/arm/include/asm/arch-spear13xx/hardware.h | 8 +- > board/spear/common/Makefile | 10 +- > board/spear/spear1300/Makefile | 51 ++++++ > board/spear/spear1300/config.mk | 28 ++++ > board/spear/spear1300/spear1300.c | 86 ++++++++++ > board/spear/spear1300/spr_lowlevel_init.S | 38 +++++ > include/configs/spear13xx.h | 199 > ++++++++++++++++++++++++ > 8 files changed, 420 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 7bfdfd3..0b6a151 100644 > --- a/Makefile > +++ b/Makefile > @@ -3041,6 +3041,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/arch/arm/include/asm/arch-spear13xx/hardware.h > b/arch/arm/include/asm/arch-spear13xx/hardware.h > index 384260a..7a1cedb 100644 > --- a/arch/arm/include/asm/arch-spear13xx/hardware.h > +++ b/arch/arm/include/asm/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/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..89ddc9c > --- /dev/null > +++ b/board/spear/spear1300/spear1300.c > @@ -0,0 +1,86 @@ > +/* > + * (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 <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_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 Broken if CONFIG_NAND_FSMC is not set. > +} > + > +#if defined(CONFIG_CMD_NET) > +int board_eth_init(bd_t *bis) > +{ > + /* > + * Board specific ethernet initialization comes here. eg. gmac clock > + * configuration etc > + */ > + > + return designware_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/configs/spear13xx.h b/include/configs/spear13xx.h > new file mode 100644 > index 0000000..3880e0a > --- /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_DESIGNWARE_ETH > +#define CONFIG_NET_MULTI > +#define CONFIG_DW_ALTDESCRIPTOR 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" Should be conditional on CONFIG_SPEAR_USBTTY Similar changes for spear3xx and spear6xxx > + > +/* 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_SYS_FSMC_NAND_LP 1 > +#define CONFIG_SYS_FSMC_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 Add comment that this disables autoboot Tom > +#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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot