Rabin Vincent wrote: > Add base board code for the MOP500 board, which uses the U8500 SoC. > > Acked-by: Michael Brandt <michael.bra...@stericsson.com> > Tested-by: Michael Brandt <michael.bra...@stericsson.com> > Signed-off-by: Rabin Vincent <rabin.vinc...@stericsson.com> > --- > MAINTAINERS | 4 ++ > MAKEALL | 1 +
MAINTAINERS and MAKEALL will need to be changed for change to arm_cortexa9 > Makefile | 3 + > board/stericsson/mop500/Makefile | 54 +++++++++++++++++++ > board/stericsson/mop500/config.mk | 23 ++++++++ > board/stericsson/mop500/mop500.c | 72 +++++++++++++++++++++++++ > include/configs/mop500.h | 107 > +++++++++++++++++++++++++++++++++++++ > 7 files changed, 264 insertions(+), 0 deletions(-) > create mode 100644 board/stericsson/mop500/Makefile > create mode 100644 board/stericsson/mop500/config.mk > create mode 100644 board/stericsson/mop500/mop500.c > create mode 100644 include/configs/mop500.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 80057ce..4a9a371 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -759,6 +759,10 @@ Hugo Villeneuve <hugo.villene...@lyrtech.com> > > SFFSDR ARM926EJS > > +Rabin Vincent <rabin.vinc...@stericsson.com> > + > + mop500 ARM CORTEX-A9 (U8500 SoC) > + > Prafulla Wadaskar <prafu...@marvell.com> > > mv88f6281gtw_ge ARM926EJS (Kirkwood SoC) > diff --git a/MAKEALL b/MAKEALL > index beacb5f..dd50cc4 100755 > --- a/MAKEALL > +++ b/MAKEALL > @@ -633,6 +633,7 @@ LIST_ARM11=" \ > ######################################################################### > LIST_ARM_CORTEX_A8=" \ > devkit8000 \ > + mop500 \ > mx51evk \ > omap3_beagle \ > omap3_overo \ > diff --git a/Makefile b/Makefile > index d801e25..9e07de6 100644 > --- a/Makefile > +++ b/Makefile > @@ -3163,6 +3163,9 @@ SMN42_config : unconfig > devkit8000_config : unconfig > @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 devkit8000 timll omap3 > > +mop500_config: unconfig > + @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 mop500 stericsson ux500 > + > omap3_beagle_config : unconfig > @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 beagle ti omap3 > > diff --git a/board/stericsson/mop500/Makefile > b/board/stericsson/mop500/Makefile > new file mode 100644 > index 0000000..218d572 > --- /dev/null > +++ b/board/stericsson/mop500/Makefile > @@ -0,0 +1,54 @@ > +# > +# (C) Copyright 2000-2004 > +# Wolfgang Denk, DENX Software Engineering, w...@denx.de. > +# > +# (C) Copyright 2004 > +# ARM Ltd. > +# Philippe Robin, <philippe.ro...@arm.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 $(TOPDIR)/config.mk > + > +LIB = $(obj)lib$(BOARD).a > + > +COBJS := mop500.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/stericsson/mop500/config.mk > b/board/stericsson/mop500/config.mk > new file mode 100644 > index 0000000..af246bd > --- /dev/null > +++ b/board/stericsson/mop500/config.mk > @@ -0,0 +1,23 @@ > +# > +# (C) Copyright 2010 ST-Ericsson SA > +# > +# 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 = 0x05600000 > diff --git a/board/stericsson/mop500/mop500.c > b/board/stericsson/mop500/mop500.c > new file mode 100644 > index 0000000..d45477f > --- /dev/null > +++ b/board/stericsson/mop500/mop500.c > @@ -0,0 +1,72 @@ > +/* > + * (C) Copyright 2010 ST-Ericsson SA > + * Author: Rabin Vincent <rabin.vinc...@stericsson.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 <asm/io.h> > +#include <asm/arch/clock.h> > +#include <nomadik_gpio.h> > + > +DECLARE_GLOBAL_DATA_PTR; > + > +static void gpio_init(void) > +{ > + /* UART2 */ > + nmk_gpio_af(29, GPIO_ALT_C); > + nmk_gpio_af(30, GPIO_ALT_C); Change these to immediates to logical #define's > +} > + > +static void clock_init(void) > +{ > + struct prcmu *prcmu = (struct prcmu *) U8500_PRCMU_BASE; > + > + /* Enable timers */ > + writel(1 << 17, &prcmu->tcr); Change this immediate to a logical #define > + > + u8500_prcmu_enable(&prcmu->per3clk_mgt); > + u8500_prcmu_enable(&prcmu->per7clk_mgt); > + u8500_prcmu_enable(&prcmu->uartclk_mgt); > + > + u8500_clock_enable(7, 2, -1); /* MTU0 */ > + u8500_clock_enable(3, 6, 6); /* UART2 */ Change these to immediates to logical #define's > +} > + > +int board_init(void) > +{ > + gd->bd->bi_arch_number = MACH_TYPE_U8500; > + gd->bd->bi_boot_params = 0x00000100; > + > + gpio_init(); > + clock_init(); > + > + icache_enable(); > + > + return 0; > +} > + > +int dram_init(void) > +{ > + gd->bd->bi_dram[0].start = PHYS_SDRAM_1; > + gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; > + > + return 0; > +} > diff --git a/include/configs/mop500.h b/include/configs/mop500.h > new file mode 100644 > index 0000000..f94bda0 > --- /dev/null > +++ b/include/configs/mop500.h > @@ -0,0 +1,107 @@ > +/* > + * (C) Copyright 2010 ST-Ericsson SA > + * > + * 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 > + > +#include <asm/arch/hardware.h> > + > +#define CONFIG_ARMCORTEXA9 > +#define CONFIG_UX500 > +#define CONFIG_UX500_U8500 /* cpu variant */ > +#define CONFIG_UX500_MOP500 /* board variant */ > + > +#define CONFIG_L2_OFF > +#define CONFIG_SKIP_LOWLEVEL_INIT > + > +/* commands */ > +#include <config_cmd_default.h> > + > +#undef CONFIG_CMD_NET > +#undef CONFIG_CMD_NFS > +#undef CONFIG_CMD_FLASH > +#undef CONFIG_CMD_IMLS > +#define CONFIG_SYS_NO_FLASH > + > +/* user interface */ > +#define CONFIG_SYS_LONGHELP > +#define CONFIG_SYS_HUSH_PARSER > +#define CONFIG_SYS_PROMPT "U8500> " > +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " > +#define CONFIG_CMDLINE_EDITING > +#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \ > + + sizeof(CONFIG_SYS_PROMPT) + 16) > +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Arg Buffer Size */ > +#define CONFIG_SYS_MAXARGS 16 > +#define CONFIG_SYS_LOAD_ADDR 0x800000 /* default load address */ > +#define CONFIG_SYS_LOADS_BAUD_CHANGE > + > +/* boot config */ > +#define CONFIG_SETUP_MEMORY_TAGS > +#define CONFIG_INITRD_TAG > +#define CONFIG_CMDLINE_TAG > +#define CONFIG_BOOTDELAY 1 > +#define CONFIG_BOOTARGS "root=/dev/ram0 console=ttyAMA2,115200n8 > init=linuxrc" > + > +/* memory-related information */ > +#define CONFIG_NR_DRAM_BANKS 1 > +#define PHYS_SDRAM_1 0x00000000 /* DDR-SDRAM Bank #1 */ > +#define PHYS_SDRAM_1_SIZE 0x10000000 /* 256 MB */ > + > +#define CONFIG_STACKSIZE (128 * 1024) /* regular stack */ > +#ifdef CONFIG_USE_IRQ > +# define CONFIG_STACKSIZE_IRQ (4 * 1024) /* IRQ stack */ > +# define CONFIG_STACKSIZE_FIQ (4 * 1024) /* FIQ stack */ > +#endif > + > +#define CONFIG_ENV_IS_NOWHERE > + > +#define CONFIG_ENV_SIZE 0x20000 /* 128 Kb */ > + > +#define CONFIG_SYS_MEMTEST_START 0x00000000 > +#define CONFIG_SYS_MEMTEST_END 0x0FFFFFFF > +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 256 * 1024) > +#define CONFIG_SYS_GBL_DATA_SIZE 128 /* for initial data */ > + > +/* timing informazion */ > +#define CONFIG_SYS_HZ 1000 /* Mandatory... */ > +#define CONFIG_SYS_TIMERBASE U8500_MTU0_BASE > +#define CONFIG_NOMADIK_MTU > +#define CONFIG_NOMADIK_MTU_CLOCK 6250000 > +#define CONFIG_NOMADIK_MTU_PRESCALE MTU_CRn_PRESCALE_16 > + > +/* GPIO */ > +#define CONFIG_NOMADIK_GPIO > + > +/* serial port (PL011) configuration */ > +#define CONFIG_PL011_SERIAL > +#define CONFIG_CONS_INDEX 2 > +#define CONFIG_BAUDRATE 115200 > +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } > + > +#define CONFIG_PL01x_PORTS { (void *)U8500_UART0_BASE, \ > + (void *)U8500_UART1_BASE, \ > + (void *)U8500_UART2_BASE } > +#define CONFIG_PL011_CLOCK 38400000 > + > +#endif /* __CONFIG_H */ Tom _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot