[U-Boot] [PATCH 4/4] arm/kirkwood: Add Keymile SUEN3 support

Stefan Roese sr at denx.de
Thu Jul 9 09:15:29 CEST 2009


Hi Prafulla,

On Wednesday 08 July 2009 19:48:19 Prafulla Wadaskar wrote:
> >  MAINTAINERS                       |    1 +
> >  MAKEALL                           |    1 +
> >  Makefile                          |    3 +
> >  board/keymile/suen3/Makefile      |   51 +++++++++
> >  board/keymile/suen3/config.mk     |   25 ++++
> >  board/keymile/suen3/sdramregs.txt |   28 +++++
>
> This file will be of no use until we have proposed bin_dep.sh and doimage
> utility in place.

Even without doimage and/or bin_dep.sh in place, I think it makes perfect 
sense to include this SDRAM init file in the board directory. Mainly because 
of two reasons:

a) Keep bootloader related files in one place (SDRAM init is crucial for
   correct operation)

b) Keep those files under revision control

And I don't think that anything really speaks against having this file in this 
place for now.

But anyway, we should try to get at least your bin_dep.sh infrastructure 
accepter. Or at least restart the discussion about it (and probably about 
doimage as well).

> >  board/keymile/suen3/suen3.c       |  127 +++++++++++++++++++++
> >  include/configs/suen3.h           |  221
> > +++++++++++++++++++++++++++++++++++++
> >  8 files changed, 457 insertions(+), 0 deletions(-)  create mode
> > 100644 board/keymile/suen3/Makefile  create mode 100644
> > board/keymile/suen3/config.mk  create mode 100644
> > board/keymile/suen3/sdramregs.txt  create mode 100644
> > board/keymile/suen3/suen3.c  create mode 100644
> > include/configs/suen3.h
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS index 705bac5..ce117e1 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -637,6 +637,7 @@ Stefan Roese <sr at denx.de>
> >  	ixdpg425	xscale
> >  	pdnb3		xscale
> >  	scpu		xscale
> > +	suen3		ARM926EJS (Kirkwood SoC)
> >
> >  Alessandro Rubini <rubini at unipv.it>
> >  Nomadik Linux Team <STN_WMM_nomadik_linux at list.st.com>
> > diff --git a/MAKEALL b/MAKEALL
> > index 41f1445..6c80694 100755
> > --- a/MAKEALL
> > +++ b/MAKEALL
> > @@ -524,6 +524,7 @@ LIST_ARM9="			\
> >  	scb9328			\
> >  	smdk2400		\
> >  	smdk2410		\
> > +	suen3			\
> >  	trab			\
> >  	VCMA9			\
> >  	versatile		\
> > diff --git a/Makefile b/Makefile
> > index 2a06440..3afc4ba 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -2925,6 +2925,9 @@ smdk2400_config	:	unconfig
> >  smdk2410_config	:	unconfig
> >  	@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0
> >
> > +suen3_config: unconfig
> > +	@$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) keymile
> > +kirkwood
> > +
> >  SX1_stdout_serial_config \
> >  SX1_config:		unconfig
> >  	@mkdir -p $(obj)include
> > diff --git a/board/keymile/suen3/Makefile
> > b/board/keymile/suen3/Makefile new file mode 100644 index
> > 0000000..de05cc8
> > --- /dev/null
> > +++ b/board/keymile/suen3/Makefile
> > @@ -0,0 +1,51 @@
> > +#
> > +# (C) Copyright 2009
> > +# Marvell Semiconductor <www.marvell.com> # Prafulla Wadaskar
> > +<prafulla at marvell.com> # # See file CREDITS for list of people who
> > +contributed to this # project.
>
> I think you forgot to change these lines :-)

I didn't change much in this file, so I didn't change the copyright header.

> > +#
> > +# 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., 51 Franklin Street, Fifth Floor, Boston, # MA
> > +02110-1301 USA #
> > +
> > +include $(TOPDIR)/config.mk
> > +
> > +LIB	= $(obj)lib$(BOARD).a
> > +
> > +COBJS	:= suen3.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 .depend
> > +
> > +#############################################################
> > ##########
> > +##
> > +
> > +# defines $(obj).depend target
> > +include $(SRCTREE)/rules.mk
> > +
> > +sinclude $(obj).depend
> > +
> > +#############################################################
> > ##########
> > +##
> > diff --git a/board/keymile/suen3/config.mk
> > b/board/keymile/suen3/config.mk new file mode 100644 index
> > 0000000..fb29a1b
> > --- /dev/null
> > +++ b/board/keymile/suen3/config.mk
> > @@ -0,0 +1,25 @@
> > +#
> > +# (C) Copyright 2009
> > +# Marvell Semiconductor <www.marvell.com> # Prafulla Wadaskar
> > +<prafulla at marvell.com> # # See file CREDITS for list of people who
> > +contributed to this # project.
>
> Here too

Again, nothing changed.

> > +#
> > +# 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., 51 Franklin Street, Fifth Floor, Boston, # MA
> > +02110-1301 USA #
> > +
> > +TEXT_BASE = 0x00600000
> > diff --git a/board/keymile/suen3/sdramregs.txt
> > b/board/keymile/suen3/sdramregs.txt
> > new file mode 100644
> > index 0000000..74abb20
> > --- /dev/null
> > +++ b/board/keymile/suen3/sdramregs.txt
>
> Under which license?

GPL of course. ;)

And one question about this: Does "doimage" allow comments? And if yes, what's 
the comment control character? Is C-style supported ("/*")?

> > @@ -0,0 +1,28 @@
> > +0xFFD10000 0x01111111
> > +0xFFD10008 0x00001100
> > +0xFFD100E0 0x1B1B1B1B
> > +0xFFD20134 0xBBBBBBBB
> > +0xFFD20138 0x00BBBBBB
> > +0xFFD20154 0x00000200
> > +0xFFD2014C 0x00001C00
> > +0xFFD20148 0x00000001
> > +0xFFD01400 0x43000400
> > +0xFFD01404 0x36343000
> > +0xFFD01408 0x2302544B
> > +0xFFD0140C 0x00000032
> > +0xFFD01410 0x0000000D
> > +0xFFD01414 0x00000000
> > +0xFFD01418 0x00000000
> > +0xFFD0141C 0x00000642
> > +0xFFD01420 0x00000040
> > +0xFFD01424 0x0000F07F
> > +0xFFD01504 0x07FFFFF1
> > +0xFFD01508 0x00000000
> > +0xFFD0150C 0x00000000
> > +0xFFD01514 0x00000000
> > +0xFFD0151C 0x00000000
> > +0xFFD01494 0x00000000
> > +0xFFD01498 0x00000000
> > +0xFFD0149C 0x0000E90F
> > +0xFFD01480 0x00000001
> > +0x0 0x0
> > diff --git a/board/keymile/suen3/suen3.c b/board/keymile/suen3/suen3.c
> > new file mode 100644 index 0000000..231745f
> > --- /dev/null
> > +++ b/board/keymile/suen3/suen3.c
> > @@ -0,0 +1,127 @@
> > +/*
> > + * (C) Copyright 2009
> > + * Marvell Semiconductor <www.marvell.com>
> > + * Prafulla Wadaskar <prafulla at marvell.com>
>
> Here too

The basic part if from you. So I left your copyright in it.

> > + *
> > + * (C) Copyright 2009
> > + * Stefan Roese, DENX Software Engineering, sr 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., 51 Franklin Street, Fifth Floor, Boston,
> > + * MA 02110-1301 USA
> > + */
> > +
> > +#include <common.h>
> > +#include <netdev.h>
> > +#include <miiphy.h>
> > +#include <asm/arch/kirkwood.h>
> > +#include <asm/arch/mpp.h>
> > +
> > +DECLARE_GLOBAL_DATA_PTR;
> > +
> > +int board_init(void)
> > +{
> > +	/* Multi-Purpose Pins Functionality configuration */
> > +	u32 kwmpp_config[] = {
> > +		MPP0_NF_IO2,
> > +		MPP1_NF_IO3,
> > +		MPP2_NF_IO4,
> > +		MPP3_NF_IO5,
> > +		MPP4_NF_IO6,
> > +		MPP5_NF_IO7,
> > +		MPP6_SYSRST_OUTn,
> > +		MPP7_PEX_RST_OUTn,
> > +		MPP8_TW_SDA,
> > +		MPP9_TW_SCK,
> > +		MPP10_UART0_TXD,
> > +		MPP11_UART0_RXD,
> > +		MPP12_GPO,		/* Reserved */
> > +		MPP13_UART1_TXD,
> > +		MPP14_UART1_RXD,
> > +		MPP15_GPIO,		/* Not used */
> > +		MPP16_GPIO,		/* Not used */
> > +		MPP17_GPIO,		/* Reserved */
> > +		MPP18_NF_IO0,
> > +		MPP19_NF_IO1,
> > +		MPP20_GPIO,
> > +		MPP21_GPIO,
> > +		MPP22_GPIO,
> > +		MPP23_GPIO,
> > +		MPP24_GPIO,
> > +		MPP25_GPIO,
> > +		MPP26_GPIO,
> > +		MPP27_GPIO,
> > +		MPP28_GPIO,
> > +		MPP29_GPIO,
> > +		MPP30_GPIO,
> > +		MPP31_GPIO,
> > +		MPP32_GPIO,
> > +		MPP33_GPIO,
> > +		MPP34_GPIO,		/* CDL1 (input) */
> > +		MPP35_GPIO,		/* CDL2 (input) */
> > +		MPP36_GPIO,		/* MAIN_IRQ (input) */
> > +		MPP37_GPIO,		/* BOARD_LED */
> > +		MPP38_GPIO,		/* Piggy3 LED[1] */
> > +		MPP39_GPIO,		/* Piggy3 LED[2] */
> > +		MPP40_GPIO,		/* Piggy3 LED[3] */
> > +		MPP41_GPIO,		/* Piggy3 LED[4] */
> > +		MPP42_GPIO,		/* Piggy3 LED[5] */
> > +		MPP43_GPIO,		/* Piggy3 LED[6] */
> > +		MPP44_GPIO,		/* Piggy3 LED[7] */
> > +		MPP45_GPIO,		/* Piggy3 LED[8] */
> > +		MPP46_GPIO,		/* Reserved */
> > +		MPP47_GPIO,		/* Reserved */
> > +		MPP48_GPIO,		/* Reserved */
> > +		MPP49_GPIO,		/* SW_INTOUTn */
> > +		0
> > +	};
> > +
> > +	kirkwood_mpp_conf(kwmpp_config);
> > +
> > +	/*
> > +	 * arch number of board
> > +	 */
> > +	gd->bd->bi_arch_number = MACH_TYPE_SUEN3;
> > +
> > +	/* address of boot parameters */
> > +	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
> > +
> > +	return 0;
> > +}
> > +
> > +int dram_init(void)
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
> > +		gd->bd->bi_dram[i].start = kw_sdram_bar(i);
> > +		gd->bd->bi_dram[i].size = kw_sdram_bs(i);
> > +	}
> > +	return 0;
> > +}
> > +
> > +/* Configure and enable MV88E1118 PHY */ void reset_phy(void) {
>
> If this PHY connected using RGMII then pls check you done need RGMII Tx/Rx
> delays

Ethernet works without any further changes on this board (tested with 
100MBit). How should this RGMII Tx/Rx delay problem show? Instable traffic? Or 
what would be not working?

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list