Patchwork [U-Boot,2/3,v2] devkit3250: add Timll DevKit3250 board initial support

login
register
mail settings
Submitter Vladimir Zapolskiy
Date Nov. 14, 2011, 5:43 p.m.
Message ID <1321292596-4631-3-git-send-email-vz@mleia.com>
Download mbox | patch
Permalink /patch/125577/
State Superseded
Delegated to: Albert ARIBAUD
Headers show

Comments

Vladimir Zapolskiy - Nov. 14, 2011, 5:43 p.m.
This change adds a basic support for Embest/Timll DevKit3250 board,
NOR and UART are the only supported peripherals for a moment. The board
doesn't require low-level init, because the initial SDRAM and GPIO
configuration is performed during kickstart bootloader execution.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
---
Changes from v1 to v2:
* corrected address in GPLv2+ licence header in files
* removed clean and distclean targets from board makefile
* do not set machine id explicitly, if CONFIG_MACH_TYPE is defined
* minor indentation cleanups

 board/timll/devkit3250/Makefile     |   44 +++++++++++++
 board/timll/devkit3250/devkit3250.c |   71 ++++++++++++++++++++
 boards.cfg                          |    3 +-
 include/configs/devkit3250.h        |  121 +++++++++++++++++++++++++++++++++++
 4 files changed, 238 insertions(+), 1 deletions(-)
 create mode 100644 board/timll/devkit3250/Makefile
 create mode 100644 board/timll/devkit3250/devkit3250.c
 create mode 100644 include/configs/devkit3250.h
Igor Grinberg - Nov. 15, 2011, 6:42 a.m.
Hi Vladimir,

On 11/14/11 19:43, Vladimir Zapolskiy wrote:
> This change adds a basic support for Embest/Timll DevKit3250 board,
> NOR and UART are the only supported peripherals for a moment. The board
> doesn't require low-level init, because the initial SDRAM and GPIO
> configuration is performed during kickstart bootloader execution.
> 
> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
> ---
> Changes from v1 to v2:
> * corrected address in GPLv2+ licence header in files

I think you should remove the address part completely,
because next time it changes, will you be around to fix it?
I know that there are many files already with address, but
to make a big change it is better to start it from small -
say all new coming patches.

> * removed clean and distclean targets from board makefile
> * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined
> * minor indentation cleanups
> 
>  board/timll/devkit3250/Makefile     |   44 +++++++++++++
>  board/timll/devkit3250/devkit3250.c |   71 ++++++++++++++++++++
>  boards.cfg                          |    3 +-
>  include/configs/devkit3250.h        |  121 +++++++++++++++++++++++++++++++++++
>  4 files changed, 238 insertions(+), 1 deletions(-)
>  create mode 100644 board/timll/devkit3250/Makefile
>  create mode 100644 board/timll/devkit3250/devkit3250.c
>  create mode 100644 include/configs/devkit3250.h
> 
> diff --git a/board/timll/devkit3250/Makefile b/board/timll/devkit3250/Makefile
> new file mode 100644
> index 0000000..ea7827c
> --- /dev/null
> +++ b/board/timll/devkit3250/Makefile
> @@ -0,0 +1,44 @@
> +#
> +# Copyright (C) 2011 by Vladimir Zapolskiy <vz@mleia.com>
> +# Copyright (C) 2008, Guennadi Liakhovetski <lg@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 $(TOPDIR)/config.mk
> +
> +LIB	= $(obj)lib$(BOARD).o
> +
> +COBJS	:= devkit3250.o
> +
> +SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
> +OBJS	:= $(addprefix $(obj),$(COBJS))
> +SOBJS	:= $(addprefix $(obj),$(SOBJS))
> +
> +$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
> +	$(call cmd_link_o_target, $(OBJS) $(SOBJS))
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/timll/devkit3250/devkit3250.c b/board/timll/devkit3250/devkit3250.c
> new file mode 100644
> index 0000000..461012d
> --- /dev/null
> +++ b/board/timll/devkit3250/devkit3250.c
> @@ -0,0 +1,71 @@
> +/*
> + * Embest/Timll DevKit3250 board support
> + *
> + * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com>
> + *
> + * 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 <asm/arch/sys_proto.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/emc.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static struct emc_t *emc = (struct emc_t *)EMC_BASE;
> +
> +int board_early_init_f(void)
> +{
> +	lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART);
> +
> +	return 0;
> +}
> +
> +int board_init(void)
> +{
> +	/*
> +	 * It might be necessary to flush data cache, if U-boot is loaded
> +	 * from kickstart bootloader, e.g. from S1L loader
> +	 */
> +	flush_cache(0, 0);
> +
> +	/* adress of boot parameters */
> +	gd->bd->bi_boot_params  = CONFIG_ENV_ADDR;
> +
> +#ifdef CONFIG_SYS_FLASH_CFI
> +	/* Use 16-bit memory interface for NOR Flash */
> +	emc->stat[0].config	= EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT;
> +
> +	/* Change the NOR timings to optimum value to get maximum bandwidth */
> +	emc->stat[0].waitwen	= EMC_STAT_WAITWEN(1);
> +	emc->stat[0].waitoen	= EMC_STAT_WAITOEN(1);
> +	emc->stat[0].waitrd	= EMC_STAT_WAITRD(12);
> +	emc->stat[0].waitpage	= EMC_STAT_WAITPAGE(12);
> +	emc->stat[0].waitwr	= EMC_STAT_WAITWR(5);
> +	emc->stat[0].waitturn	= EMC_STAT_WAITTURN(2);
> +#endif
> +
> +	return 0;
> +}
> +
> +int dram_init(void)
> +{
> +	gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE,
> +				    CONFIG_SYS_SDRAM_SIZE);
> +
> +	return 0;
> +}
> diff --git a/boards.cfg b/boards.cfg
> index cf6e67c..8bf6870 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -162,7 +162,8 @@ nhk8815                      arm         arm926ejs   nhk8815             st
>  nhk8815_onenand              arm         arm926ejs   nhk8815             st             nomadik       nhk8815:BOOT_ONENAND
>  omap5912osk                  arm         arm926ejs   -                   ti             omap
>  edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
> -dkb			     arm         arm926ejs   -                   Marvell        pantheon
> +dkb                          arm         arm926ejs   -                   Marvell        pantheon
> +devkit3250                   arm         arm926ejs   devkit3250          timll          lpc32xx
>  integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap:CM946ES
>  integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp:CM946ES
>  ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
> diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h
> new file mode 100644
> index 0000000..360a041
> --- /dev/null
> +++ b/include/configs/devkit3250.h
> @@ -0,0 +1,121 @@
> +/*
> + * Embest/Timll DevKit3250 board configuration file
> + *
> + * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com>
> + *
> + * 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.
> + */
> +
> +#ifndef __CONFIG_DEVKIT3250_H__
> +#define __CONFIG_DEVKIT3250_H__
> +
> +/* SoC and board defines */
> +#include <asm/sizes.h>
> +#include <asm/arch/cpu.h>
> +
> +/*
> + * Define DevKit3250 machine type by hand until it lands in mach-types
> + */
> +#define MACH_TYPE_DEVKIT3250        3697
> +#define CONFIG_MACH_TYPE            MACH_TYPE_DEVKIT3250
> +
> +#define CONFIG_SYS_ICACHE_OFF
> +#define CONFIG_SYS_DCACHE_OFF
> +#define CONFIG_SKIP_LOWLEVEL_INIT
> +#define CONFIG_BOARD_EARLY_INIT_F
> +
> +/*
> + * Memory configurations
> + */
> +#define CONFIG_NR_DRAM_BANKS        1
> +#define CONFIG_STACKSIZE            SZ_32K
> +#define CONFIG_SYS_MALLOC_LEN       SZ_1M
> +#define CONFIG_SYS_GBL_DATA_SIZE    128
> +#define CONFIG_SYS_SDRAM_BASE       EMC_DYCS0_BASE
> +#define CONFIG_SYS_SDRAM_SIZE       SZ_64M
> +#define CONFIG_SYS_MEMTEST_START    CONFIG_SYS_SDRAM_BASE
> +#define CONFIG_SYS_MEMTEST_END      (CONFIG_SYS_TEXT_BASE - SZ_1M)
> +
> +#define CONFIG_SYS_TEXT_BASE        0x82FA0000
> +#define CONFIG_SYS_LOAD_ADDR        (CONFIG_SYS_MEMTEST_START + SZ_32K)
> +
> +#define CONFIG_SYS_INIT_RAM_SIZE    SZ_4K
> +#define CONFIG_SYS_GBL_DATA_OFFSET  (CONFIG_SYS_SDRAM_BASE + \
> +				     CONFIG_SYS_INIT_RAM_SIZE - \
> +				     GENERATED_GBL_DATA_SIZE)
> +#define CONFIG_SYS_INIT_SP_ADDR     CONFIG_SYS_GBL_DATA_OFFSET
> +
> +/*
> + * Serial Driver
> + */
> +#define CONFIG_SYS_LPC32XX_UART     5   /* UART5 */
> +#define CONFIG_BAUDRATE             115200
> +
> +/*
> + * NOR Flash
> + */
> +#define CONFIG_CMD_FLASH
> +#define CONFIG_SYS_MAX_FLASH_BANKS  1
> +#define CONFIG_SYS_MAX_FLASH_SECT   71
> +#define CONFIG_SYS_FLASH_BASE       EMC_CS0_BASE
> +#define CONFIG_SYS_FLASH_SIZE       SZ_4M
> +#define CONFIG_SYS_FLASH_CFI
> +
> +/*
> + * U-Boot General Configurations
> + */
> +#define CONFIG_SYS_LONGHELP
> +#define CONFIG_SYS_PROMPT           "=> "
> +#define CONFIG_SYS_CBSIZE           1024    /* Console I/O buffer size */
> +#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_AUTO_COMPLETE
> +#define CONFIG_CMDLINE_EDITING
> +#define CONFIG_VERSION_VARIABLE
> +#define CONFIG_DISPLAY_CPUINFO
> +#define CONFIG_DOS_PARTITION
> +
> +#define CONFIG_ENV_IS_NOWHERE
> +#define CONFIG_ENV_SIZE             SZ_128K
> +#define CONFIG_ENV_ADDR             0x80000100
> +
> +/*
> + * U-Boot Commands
> + */
> +#include <config_cmd_default.h>
> +#define CONFIG_CMD_CACHE
> +
> +/*
> + * Boot Linux
> + */
> +#define CONFIG_CMDLINE_TAG
> +#define CONFIG_SETUP_MEMORY_TAGS
> +#define CONFIG_ZERO_BOOTDELAY_CHECK
> +#define CONFIG_BOOTDELAY            3
> +
> +#define CONFIG_BOOTFILE             "uImage"
> +#define CONFIG_BOOTARGS             "console=ttyS2,115200n8"
> +#define CONFIG_LOADADDR             0x80008000
> +
> +/*
> + * SoC specific configuration
> + */
> +#include <asm/arch/config.h>
> +
> +#endif  /* __CONFIG_DEVKIT3250_H__*/
Vladimir Zapolskiy - Nov. 15, 2011, 7:25 a.m.
Hi Igor,

On 15.11.2011 08:42, Igor Grinberg wrote:
> Hi Vladimir,
>
> On 11/14/11 19:43, Vladimir Zapolskiy wrote:
>> This change adds a basic support for Embest/Timll DevKit3250 board,
>> NOR and UART are the only supported peripherals for a moment. The board
>> doesn't require low-level init, because the initial SDRAM and GPIO
>> configuration is performed during kickstart bootloader execution.
>>
>> Signed-off-by: Vladimir Zapolskiy<vz@mleia.com>
>> ---
>> Changes from v1 to v2:
>> * corrected address in GPLv2+ licence header in files
>
> I think you should remove the address part completely,
> because next time it changes, will you be around to fix it?
I promise I'll be around, that's why I desire to become a maintainer of 
this board.

> I know that there are many files already with address, but
> to make a big change it is better to start it from small -
> say all new coming patches.
Well, my small contribution is verifying address in license header found 
in new files.

I'd like to invite Wolfgang into discussion to get his opinion about the 
topic. Well, I do not feel myself as a lawer to allege that removing 
address info from the license notice is ok. Has it already been 
discussed in the mailing list?

>> * removed clean and distclean targets from board makefile
>> * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined
>> * minor indentation cleanups
>>
>>   board/timll/devkit3250/Makefile     |   44 +++++++++++++
>>   board/timll/devkit3250/devkit3250.c |   71 ++++++++++++++++++++
>>   boards.cfg                          |    3 +-
>>   include/configs/devkit3250.h        |  121 +++++++++++++++++++++++++++++++++++
>>   4 files changed, 238 insertions(+), 1 deletions(-)
>>   create mode 100644 board/timll/devkit3250/Makefile
>>   create mode 100644 board/timll/devkit3250/devkit3250.c
>>   create mode 100644 include/configs/devkit3250.h
>>

[snip]
Igor Grinberg - Nov. 15, 2011, 7:48 a.m.
On 11/15/11 09:25, Vladimir Zapolskiy wrote:
> Hi Igor,
> 
> On 15.11.2011 08:42, Igor Grinberg wrote:
>> Hi Vladimir,
>>
>> On 11/14/11 19:43, Vladimir Zapolskiy wrote:
>>> This change adds a basic support for Embest/Timll DevKit3250 board,
>>> NOR and UART are the only supported peripherals for a moment. The board
>>> doesn't require low-level init, because the initial SDRAM and GPIO
>>> configuration is performed during kickstart bootloader execution.
>>>
>>> Signed-off-by: Vladimir Zapolskiy<vz@mleia.com>
>>> ---
>>> Changes from v1 to v2:
>>> * corrected address in GPLv2+ licence header in files
>>
>> I think you should remove the address part completely,
>> because next time it changes, will you be around to fix it?
> I promise I'll be around, that's why I desire to become a maintainer of this board.

Nice! Though I don't think you can foresee the future or do you?

> 
>> I know that there are many files already with address, but
>> to make a big change it is better to start it from small -
>> say all new coming patches.
> Well, my small contribution is verifying address in license header found in new files.

Thanks, that is fare enough!
I want to make sure you understand, that having the right
address in the license statement is not a blocker.

> 
> I'd like to invite Wolfgang into discussion to get his opinion about the topic. Well, I do not feel myself as a lawer to allege that removing address info from the license notice is ok. Has it already been discussed in the mailing list?

Actually, you don't have to be a lawyer to verify
if there is a requirement to have the postal address
(that changes from time to time) in the license statement.
AFAIK, there is no such requirement and the fact that huge
amount of files has a wrong postal address just emphasizes
this.

What I'm proposing here is a way to spare the effort of changing
the postal address in the future. And if no one cares for the
right address, then why bother writing it in the source code?
To make the source code larger?

And yes of course, I would like to here what Wolfgang has to say
about this.

> 
>>> * removed clean and distclean targets from board makefile
>>> * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined
>>> * minor indentation cleanups
>>>
>>>   board/timll/devkit3250/Makefile     |   44 +++++++++++++
>>>   board/timll/devkit3250/devkit3250.c |   71 ++++++++++++++++++++
>>>   boards.cfg                          |    3 +-
>>>   include/configs/devkit3250.h        |  121 +++++++++++++++++++++++++++++++++++
>>>   4 files changed, 238 insertions(+), 1 deletions(-)
>>>   create mode 100644 board/timll/devkit3250/Makefile
>>>   create mode 100644 board/timll/devkit3250/devkit3250.c
>>>   create mode 100644 include/configs/devkit3250.h
>>>
> 
> [snip]
>
Vladimir Zapolskiy - Nov. 15, 2011, 6:17 p.m.
On 15.11.2011 09:48, Igor Grinberg wrote:
> On 11/15/11 09:25, Vladimir Zapolskiy wrote:
>> Hi Igor,
>>
>> On 15.11.2011 08:42, Igor Grinberg wrote:
>>> Hi Vladimir,
>>>
>>> On 11/14/11 19:43, Vladimir Zapolskiy wrote:
>>>> This change adds a basic support for Embest/Timll DevKit3250 board,
>>>> NOR and UART are the only supported peripherals for a moment. The board
>>>> doesn't require low-level init, because the initial SDRAM and GPIO
>>>> configuration is performed during kickstart bootloader execution.
>>>>
>>>> Signed-off-by: Vladimir Zapolskiy<vz@mleia.com>
>>>> ---
>>>> Changes from v1 to v2:
>>>> * corrected address in GPLv2+ licence header in files
>>>
>>> I think you should remove the address part completely,
>>> because next time it changes, will you be around to fix it?
>> I promise I'll be around, that's why I desire to become a maintainer of this board.
>
> Nice! Though I don't think you can foresee the future or do you?

That's a rhetorical question, wasn't it? :)

>>
>>> I know that there are many files already with address, but
>>> to make a big change it is better to start it from small -
>>> say all new coming patches.
>> Well, my small contribution is verifying address in license header found in new files.
>
> Thanks, that is fare enough!
> I want to make sure you understand, that having the right
> address in the license statement is not a blocker.
>
I hope that Albert being ARM custodian thinks similarly, because for a 
long time I didn't get any feedback about my change (your comment is the 
single one given from October 25), and by some reason it is still not 
integrated...

>>
>> I'd like to invite Wolfgang into discussion to get his opinion about the topic. Well, I do not feel myself as a lawer to allege that removing address info from the license notice is ok. Has it already been discussed in the mailing list?
>
> Actually, you don't have to be a lawyer to verify
> if there is a requirement to have the postal address
> (that changes from time to time) in the license statement.
> AFAIK, there is no such requirement and the fact that huge
> amount of files has a wrong postal address just emphasizes
> this.
>
> What I'm proposing here is a way to spare the effort of changing
> the postal address in the future. And if no one cares for the
> right address, then why bother writing it in the source code?
> To make the source code larger?
>
> And yes of course, I would like to here what Wolfgang has to say
> about this.

Actually this topic might be discussed in a separate mail thread.

>>
>>>> * removed clean and distclean targets from board makefile
>>>> * do not set machine id explicitly, if CONFIG_MACH_TYPE is defined
>>>> * minor indentation cleanups
>>>>
>>>>    board/timll/devkit3250/Makefile     |   44 +++++++++++++
>>>>    board/timll/devkit3250/devkit3250.c |   71 ++++++++++++++++++++
>>>>    boards.cfg                          |    3 +-
>>>>    include/configs/devkit3250.h        |  121 +++++++++++++++++++++++++++++++++++
>>>>    4 files changed, 238 insertions(+), 1 deletions(-)
>>>>    create mode 100644 board/timll/devkit3250/Makefile
>>>>    create mode 100644 board/timll/devkit3250/devkit3250.c
>>>>    create mode 100644 include/configs/devkit3250.h
>>>>
>>
>> [snip]
>>
>

Patch

diff --git a/board/timll/devkit3250/Makefile b/board/timll/devkit3250/Makefile
new file mode 100644
index 0000000..ea7827c
--- /dev/null
+++ b/board/timll/devkit3250/Makefile
@@ -0,0 +1,44 @@ 
+#
+# Copyright (C) 2011 by Vladimir Zapolskiy <vz@mleia.com>
+# Copyright (C) 2008, Guennadi Liakhovetski <lg@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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS	:= devkit3250.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(call cmd_link_o_target, $(OBJS) $(SOBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/timll/devkit3250/devkit3250.c b/board/timll/devkit3250/devkit3250.c
new file mode 100644
index 0000000..461012d
--- /dev/null
+++ b/board/timll/devkit3250/devkit3250.c
@@ -0,0 +1,71 @@ 
+/*
+ * Embest/Timll DevKit3250 board support
+ *
+ * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com>
+ *
+ * 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 <asm/arch/sys_proto.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/emc.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static struct emc_t *emc = (struct emc_t *)EMC_BASE;
+
+int board_early_init_f(void)
+{
+	lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART);
+
+	return 0;
+}
+
+int board_init(void)
+{
+	/*
+	 * It might be necessary to flush data cache, if U-boot is loaded
+	 * from kickstart bootloader, e.g. from S1L loader
+	 */
+	flush_cache(0, 0);
+
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params  = CONFIG_ENV_ADDR;
+
+#ifdef CONFIG_SYS_FLASH_CFI
+	/* Use 16-bit memory interface for NOR Flash */
+	emc->stat[0].config	= EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT;
+
+	/* Change the NOR timings to optimum value to get maximum bandwidth */
+	emc->stat[0].waitwen	= EMC_STAT_WAITWEN(1);
+	emc->stat[0].waitoen	= EMC_STAT_WAITOEN(1);
+	emc->stat[0].waitrd	= EMC_STAT_WAITRD(12);
+	emc->stat[0].waitpage	= EMC_STAT_WAITPAGE(12);
+	emc->stat[0].waitwr	= EMC_STAT_WAITWR(5);
+	emc->stat[0].waitturn	= EMC_STAT_WAITTURN(2);
+#endif
+
+	return 0;
+}
+
+int dram_init(void)
+{
+	gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE,
+				    CONFIG_SYS_SDRAM_SIZE);
+
+	return 0;
+}
diff --git a/boards.cfg b/boards.cfg
index cf6e67c..8bf6870 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -162,7 +162,8 @@  nhk8815                      arm         arm926ejs   nhk8815             st
 nhk8815_onenand              arm         arm926ejs   nhk8815             st             nomadik       nhk8815:BOOT_ONENAND
 omap5912osk                  arm         arm926ejs   -                   ti             omap
 edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
-dkb			     arm         arm926ejs   -                   Marvell        pantheon
+dkb                          arm         arm926ejs   -                   Marvell        pantheon
+devkit3250                   arm         arm926ejs   devkit3250          timll          lpc32xx
 integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap:CM946ES
 integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp:CM946ES
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h
new file mode 100644
index 0000000..360a041
--- /dev/null
+++ b/include/configs/devkit3250.h
@@ -0,0 +1,121 @@ 
+/*
+ * Embest/Timll DevKit3250 board configuration file
+ *
+ * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com>
+ *
+ * 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.
+ */
+
+#ifndef __CONFIG_DEVKIT3250_H__
+#define __CONFIG_DEVKIT3250_H__
+
+/* SoC and board defines */
+#include <asm/sizes.h>
+#include <asm/arch/cpu.h>
+
+/*
+ * Define DevKit3250 machine type by hand until it lands in mach-types
+ */
+#define MACH_TYPE_DEVKIT3250        3697
+#define CONFIG_MACH_TYPE            MACH_TYPE_DEVKIT3250
+
+#define CONFIG_SYS_ICACHE_OFF
+#define CONFIG_SYS_DCACHE_OFF
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/*
+ * Memory configurations
+ */
+#define CONFIG_NR_DRAM_BANKS        1
+#define CONFIG_STACKSIZE            SZ_32K
+#define CONFIG_SYS_MALLOC_LEN       SZ_1M
+#define CONFIG_SYS_GBL_DATA_SIZE    128
+#define CONFIG_SYS_SDRAM_BASE       EMC_DYCS0_BASE
+#define CONFIG_SYS_SDRAM_SIZE       SZ_64M
+#define CONFIG_SYS_MEMTEST_START    CONFIG_SYS_SDRAM_BASE
+#define CONFIG_SYS_MEMTEST_END      (CONFIG_SYS_TEXT_BASE - SZ_1M)
+
+#define CONFIG_SYS_TEXT_BASE        0x82FA0000
+#define CONFIG_SYS_LOAD_ADDR        (CONFIG_SYS_MEMTEST_START + SZ_32K)
+
+#define CONFIG_SYS_INIT_RAM_SIZE    SZ_4K
+#define CONFIG_SYS_GBL_DATA_OFFSET  (CONFIG_SYS_SDRAM_BASE + \
+				     CONFIG_SYS_INIT_RAM_SIZE - \
+				     GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR     CONFIG_SYS_GBL_DATA_OFFSET
+
+/*
+ * Serial Driver
+ */
+#define CONFIG_SYS_LPC32XX_UART     5   /* UART5 */
+#define CONFIG_BAUDRATE             115200
+
+/*
+ * NOR Flash
+ */
+#define CONFIG_CMD_FLASH
+#define CONFIG_SYS_MAX_FLASH_BANKS  1
+#define CONFIG_SYS_MAX_FLASH_SECT   71
+#define CONFIG_SYS_FLASH_BASE       EMC_CS0_BASE
+#define CONFIG_SYS_FLASH_SIZE       SZ_4M
+#define CONFIG_SYS_FLASH_CFI
+
+/*
+ * U-Boot General Configurations
+ */
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_PROMPT           "=> "
+#define CONFIG_SYS_CBSIZE           1024    /* Console I/O buffer size */
+#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_AUTO_COMPLETE
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_VERSION_VARIABLE
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DOS_PARTITION
+
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_ENV_SIZE             SZ_128K
+#define CONFIG_ENV_ADDR             0x80000100
+
+/*
+ * U-Boot Commands
+ */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_CACHE
+
+/*
+ * Boot Linux
+ */
+#define CONFIG_CMDLINE_TAG
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_ZERO_BOOTDELAY_CHECK
+#define CONFIG_BOOTDELAY            3
+
+#define CONFIG_BOOTFILE             "uImage"
+#define CONFIG_BOOTARGS             "console=ttyS2,115200n8"
+#define CONFIG_LOADADDR             0x80008000
+
+/*
+ * SoC specific configuration
+ */
+#include <asm/arch/config.h>
+
+#endif  /* __CONFIG_DEVKIT3250_H__*/