[U-Boot] [PATCH V2] Initial support for Nomadik 8815 development board

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sun Nov 9 23:11:57 CET 2008


On 12:29 Tue 04 Nov     , Alessandro Rubini wrote:
> Subject: Initial support for Nomadik 8815 development board
> From: Alessandro Rubini <rubini at unipv.it>
> 
> The NMDK8815 board is distributed by ST Microelectornics.
> This is the initial port, with basic infrastructure and
> a working serial port.

As you and I known the patch is a port from ST version 1.1.4 or their last
1.3.1 IIRC. So your patch have steel some old code inside.

First could you ST in the loop please?
Secondly please create a vendor dir
> 
> Signed-off-by: Alessandro Rubini <rubini at unipv.it>
> ---
> 
> After the first post of Oct 30th I found checkpatch complains. This
> fixes those complains but two, (one acceptable extern and a false
> positive from checkpatch).
> 
>  MAINTAINERS                    |    5 +
>  MAKEALL                        |    1 +
>  Makefile                       |   11 ++
>  board/nmdk8815/Makefile        |   53 ++++++
>  board/nmdk8815/config.mk       |   26 +++
>  board/nmdk8815/nmdk8815.c      |   76 +++++++++
>  board/nmdk8815/platform.S      |  351 ++++++++++++++++++++++++++++++++++++++++
>  board/nmdk8815/u-boot.lds      |   51 ++++++
>  cpu/arm926ejs/nomadik/Makefile |   46 ++++++
>  cpu/arm926ejs/nomadik/reset.S  |   27 +++
>  cpu/arm926ejs/nomadik/timer.c  |  180 ++++++++++++++++++++
>  include/configs/nmdk8815.h     |  187 +++++++++++++++++++++
>  12 files changed, 1014 insertions(+), 0 deletions(-)
>  create mode 100644 board/nmdk8815/Makefile
>  create mode 100644 board/nmdk8815/config.mk
>  create mode 100644 board/nmdk8815/nmdk8815.c
>  create mode 100644 board/nmdk8815/platform.S
>  create mode 100644 board/nmdk8815/u-boot.lds
>  create mode 100644 cpu/arm926ejs/nomadik/Makefile
>  create mode 100644 cpu/arm926ejs/nomadik/reset.S
>  create mode 100644 cpu/arm926ejs/nomadik/timer.c
>  create mode 100644 include/configs/nmdk8815.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a7f9b87..8cf5910 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -581,6 +581,11 @@ Stefan Roese <sr at denx.de>
>  	pdnb3		xscale
>  	scpu		xscale
>  
> +Alessandro Rubini <rubini at unipv.it>
> +Nomadik Linux Team <STN_WMM_nomadik_linux at list.st.com>
> +
> +	nmdk8815	ARM926EJS (Nomadik 8815 Soc)
> +
>  Robert Schwebel <r.schwebel at pengutronix.de>
>  
>  	csb226		xscale
> diff --git a/MAKEALL b/MAKEALL
> index 1f56ac5..347fe73 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -487,6 +487,7 @@ LIST_ARM9="			\
>  	mx1ads			\
>  	mx1fs2			\
>  	netstar			\
> +	nmdk8815		\
>  	omap1510inn		\
>  	omap1610h2		\
>  	omap1610inn		\
> diff --git a/Makefile b/Makefile
> index 983a3cd..fe3b67a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2612,6 +2612,17 @@ mx1fs2_config	:	unconfig
>  netstar_config:		unconfig
>  	@$(MKCONFIG) $(@:_config=) arm arm925t netstar
>  
> +nmdk8815_config \
> +nmdk8815_onenand_config:     unconfig
			   ^^^^^
please replace by tab
> +	@ > $(obj)include/config.h     
				  ^^^^^
please remove
> +	@if [ "$(findstring _onenand, $@)" ] ; then \
> +		echo "#define CONFIG_BOOT_ONENAND" >> $(obj)include/config.h; \
> +		$(XECHO) "... configured for OneNand Flash"; \
> +	else \
> +		$(XECHO) "... configured for Nand Flash"; \
> +	fi
> +	@./mkconfig -a nmdk8815 arm arm926ejs nmdk8815 NULL nomadik
	please use $(MKCONFIG)
> +
>  omap1510inn_config :	unconfig
>  	@$(MKCONFIG) $(@:_config=) arm arm925t omap1510inn
>  
> diff --git a/board/nmdk8815/Makefile b/board/nmdk8815/Makefile
> new file mode 100644
> index 0000000..50ff6dd
> --- /dev/null
> +++ b/board/nmdk8815/Makefile
> @@ -0,0 +1,53 @@
> +#
> +# (C) Copyright 2000-2004
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +#
> +# (C) Copyright 2004
> +# ARM Ltd.
> +# Philippe Robin, <philippe.robin at 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
> +
> +CFLAGS += -D__I2C_ENHANCED -D__RELEASE -D__NOMADIK_I2C -D__STN_8815=10
> +CFLAGS += -DSTN8815 -D__MMCI_HCL_ENHANCED -D__MMCI_HCL_ELEMENTARY
please could explain the following CFLAGS?? 
> +LIB	= lib$(BOARD).a
> +
> +OBJS	:= nmdk8815.o
> +SOBJS	:= platform.o
> +
> +$(LIB):	$(OBJS) $(SOBJS)
> +	$(AR) crv $@ $^
please replace with

SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS	:= $(addprefix $(obj),$(COBJS))
SOBJS	:= $(addprefix $(obj),$(SOBJS))

$(LIB): $(obj).depend $(OBJS)
	$(AR) $(ARFLAGS) $@ $(OBJS)
> +
> +clean:
> +	rm -f $(SOBJS) $(OBJS)
> +
> +distclean:	clean
> +	rm -f $(LIB) core *.bak .depend
$(obj).depend
> +
> +#########################################################################
> +
> +.depend:	Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
> +		$(CC) -M -g3 $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
> +
> +-include .depend
pelase replace by
# defines $(obj).depend target
include $(SRCTREE)/rules.mk

sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/nmdk8815/config.mk b/board/nmdk8815/config.mk
> new file mode 100644
> index 0000000..590393b
> --- /dev/null
> +++ b/board/nmdk8815/config.mk
> @@ -0,0 +1,26 @@
> +# (C) Copyright 2007
> +# STMicroelectronics, <www.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
> +#
> +#
> +# image should be loaded at 0x01000000
> +#
> +
> +TEXT_BASE = 0x03F80000
> diff --git a/board/nmdk8815/nmdk8815.c b/board/nmdk8815/nmdk8815.c
> new file mode 100644
> index 0000000..6effafe
> --- /dev/null
> +++ b/board/nmdk8815/nmdk8815.c
> @@ -0,0 +1,76 @@
> +/*
> + * (C) Copyright 2005
> + * STMicrolelctronics, <www.st.com>
> + *
> + * (C) Copyright 2004
> + * ARM Ltd.
> + * Philippe Robin, <philippe.robin at 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 <common.h>
> +#include <asm/io.h>
> +
> +#ifdef CONFIG_SHOW_BOOT_PROGRESS
> +void show_boot_progress(int progress)
> +{
> +	printf("%i\n", progress);
> +}
> +#endif
> +
> +/*
> + * Miscellaneous platform dependent initialisations
> + */
> +__u16 cpld_uart0 = 0x0100, uart0_value = 0;
> +__u16 cpld_eth_reset = 0x6888, eth_reset_value = 0;
could you use macro instead a hardcode value?
> +
> +int board_init(void)
> +{
> +	DECLARE_GLOBAL_DATA_PTR;
> +	gd->bd->bi_arch_number = MACH_TYPE_NOMADIK;
> +	gd->bd->bi_boot_params = 0x00000100;
> +	writel(0xC37800F0, NOMADIK_GPIO1_BASE + 0x20);
> +	writel(0x00000000, NOMADIK_GPIO1_BASE + 0x24);
> +	writel(0x00000000, NOMADIK_GPIO1_BASE + 0x28);
> +	writel(readl(NOMADIK_SRC_BASE) | 0x8000, NOMADIK_SRC_BASE);
> +
> +	icache_enable();
> +
> +	return 0;
> +}
> +
> +int misc_init_r(void)
> +{
> +	setenv("verify", "n");
> +	return (0);
> +}
> +
> +int dram_init(void)
> +{
> +	DECLARE_GLOBAL_DATA_PTR;
> +
> +	/* set dram bank start addr and size */
> +	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
> +	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
> +
> +	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
> +	gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
> +	return 0;
> +}
> diff --git a/board/nmdk8815/platform.S b/board/nmdk8815/platform.S
> new file mode 100644
> index 0000000..63c188d
> --- /dev/null
> +++ b/board/nmdk8815/platform.S
> @@ -0,0 +1,351 @@
> +/*
> + * Board specific setup info
copyright??
> + *
> + * (C) Copyright 2004, ARM Ltd.
> + * Philippe Robin, <philippe.robin at 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 <config.h>
> +#include <version.h>
> +
> +.globl lowlevel_init
> +lowlevel_init:
> +	/* Jump to the flash address */
> +	ldr r0, =CFG_ONENAND_BASE
> +
> +	/* orr-ing makes it independent whether we boot from 0x0
> +	  or 0x30000000 */
please use this style of comment
/*
 *
*/
> +	/* This code is non-portable, relies on the knowledge that ip
> +	   has to be updated */
> +	orr ip, ip, r0  /* adjust return address of cpu_init_crit */
		      ^^
whitespace please fix
> +	orr lr, lr, r0  /* adjust return address */
		      ^^
whitespace please fix
> +	orr pc, pc, r0  /* jump to the normal address */
		      ^^
whitespace please fix
and so on please fix
> +	nop
> +
> +	/* Initialize PLL, Remap clear, FSMC, MPMC here! */
> +	/* What about GPIO, CLCD and UART */
> +
> +	/* PLL Initialization */
> +	/* Prog the PLL1 @ 266 MHz ==> SDRAM Clock = 100.8 MHz */
> +	ldr r0, =NOMADIK_SRC_BASE
> +
> +	ldr r1, =0x2B013502
> +
> +	str r1, [r0, #0x14]
> +
> +
> +	add r0, r0, #0x20
> +	mcr p15, 0, r0, c7, c13, 1
> +
> +	/* Put the SDRAM under MPMC control */
> +/*	ldr r0, =NOMADIK_SRC_BASE
> +
> +	ldr r1, =0x00000008
> +	str r1, [r0,#0x9000]
> +
> +*/
please no dead code
> +
> +	/* Now Clear Remap */
> +	ldr r0, =NOMADIK_SRC_BASE
> +
> +	ldr r1, =0x2004
> +	str r1, [r0]
> +
> +	ldr r1, =0x10000000
> +	str r1, [r0,#0x10]
> +
> +	ldr r0,=0x101E9000
> +	ldr r1, =0x2004
> +	str r1, [r0]
> +
> +	ldr r0, =NOMADIK_SRC_BASE
> +	ldr r1, =0x2104
> +	str r1, [r0]
> +
> +	/* FSMC setup -- */
> +	mov r0, #(NOMADIK_FSMC_BASE & 0x10000000)
> +	orr r0, r0, #(NOMADIK_FSMC_BASE & 0x0FFFFFFF)
> +
> +	ldr r1, =0x10DB		/* For 16-bit NOR flash */
> +	str r1, [r0, #0x8]
> +
> +	ldr r1, =0x03333333 	/* For 16-bit NOR flash */
> +	str r1, [r0, #0xc]
> +
 +
> diff --git a/board/nmdk8815/u-boot.lds b/board/nmdk8815/u-boot.lds
> new file mode 100644
> index 0000000..eee4813
> --- /dev/null
> +++ b/board/nmdk8815/u-boot.lds
> @@ -0,0 +1,51 @@
> +/*
copyrigth?
> + * (C) Copyright 2002
> + * Gary Jennejohn, DENX Software Engineering, <gj 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
> + */
> +
> +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
> +OUTPUT_ARCH(arm)
> +ENTRY(_start)
> +SECTIONS
> +{
> +	. = 0x00000000;
> +	. = ALIGN(4);
> +	.text	:
> +	{
> +	  cpu/arm926ejs/start.o	(.text)
> +	  *(.text)
        ^^
please use tab
> +	}
> +	. = ALIGN(4);
> +	.rodata : { *(.rodata) }
> +	. = ALIGN(4);
> +	.data : { *(.data) }
> +	. = ALIGN(4);
> +	.got : { *(.got) }
> +
> +	__u_boot_cmd_start = .;
> +	.u_boot_cmd : { *(.u_boot_cmd) }
> +	__u_boot_cmd_end = .;
> +
> +	. = ALIGN(4);
> +	__bss_start = .;
> +	.bss : { *(.bss) }
> +	_end = .;
> +}
> diff --git a/include/configs/nmdk8815.h b/include/configs/nmdk8815.h
> new file mode 100644
> index 0000000..336d4e5
> --- /dev/null
> +++ b/include/configs/nmdk8815.h
> @@ -0,0 +1,187 @@
> +/*
> + * (C) Copyright 2005
> + * STMicroelectronics.
> + * Configuration settings for the STn8815 nomadik board.
> + *
> + * 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
> +
> +#define CONFIG_ARM926EJS
> +#define CONFIG_NOMADIK
> +#define CONFIG_NOMADIK_8815
> +#define CONFIG_NOMADIK_NDK15
> +#define CONFIG_NOMADIK_NHK15
> +
> +#define CONFIG_SKIP_LOWLEVEL_INIT /* we have already been loaded to RAM */
> +
> +/* commands */
> +#include <config_cmd_default.h>
> +#define CONFIG_CMD_PING
> +#define CONFIG_CMD_DHCP
> +/* At this point there is no flash driver, so remove some commands */
> +#undef CONFIG_CMD_ENV
> +#undef CONFIG_CMD_FLASH
> +#undef CONFIG_CMD_IMLS
> +
> +/* user interface */
> +#define CONFIG_SYS_LONGHELP
> +#define CONFIG_SYS__HUSH_PARSER
please replace by
#define CONFIG_SYS_HUSH_PARSER
> +#define CONFIG_SYS_PROMPT		"Nomadik> "
> +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> +#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size  */
> +#define CONFIG_SYS_PBSIZE   (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)
please add space before and after '+'

add please fix all whitespace

Best Regards,
J.


More information about the U-Boot mailing list