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

Reply via email to