All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
@ 2011-01-28 13:15 sujak.marek
  2011-01-28 18:44 ` Eric Bénard
  0 siblings, 1 reply; 6+ messages in thread
From: sujak.marek @ 2011-01-28 13:15 UTC (permalink / raw)
  To: openembedded-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 55393 bytes --]

* Added default config file
* Added patch file
** custom init for ram chips
** added vmx25 MACH IDs
** custom init scripts

Signed-off-by: sujak.marek <sujak.marek@gmail.com>
---
 .../vmx25/barebox_2010.10-vmx25-20110112.patch     | 1563 ++++++++++++++++++++
 recipes/barebox/barebox-2010.10/vmx25/defconfig    |  254 ++++
 2 files changed, 1817 insertions(+), 0 deletions(-)
 create mode 100755 recipes/barebox/barebox-2010.10/vmx25/barebox_2010.10-vmx25-20110112.patch
 create mode 100644 recipes/barebox/barebox-2010.10/vmx25/defconfig

diff --git a/recipes/barebox/barebox-2010.10/vmx25/barebox_2010.10-vmx25-20110112.patch b/recipes/barebox/barebox-2010.10/vmx25/barebox_2010.10-vmx25-20110112.patch
new file mode 100755
index 0000000..6588942
--- /dev/null
+++ b/recipes/barebox/barebox-2010.10/vmx25/barebox_2010.10-vmx25-20110112.patch
@@ -0,0 +1,1563 @@
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/config.h barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/config.h
+--- barebox-2010.10.0/arch/arm/boards/vmx25/config.h	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/config.h	2010-10-06 15:13:29.136153433 +0200
+@@ -0,0 +1,26 @@
++/*
++ * (c) 2010 Voipac Technologies <support@voipac.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., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++#define CONFIG_MX25_HCLK_FREQ	24000000
++
++#endif
++
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/boot barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/boot
+--- barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/boot	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/boot	2010-10-10 21:29:51.030982830 +0200
+@@ -0,0 +1,65 @@
++#!/bin/sh
++
++. /env/config
++
++image=/dev/nand0.kernel.bb
++
++if [ x$1 = xjffS2 ]; then
++	root=jffs2
++	kernel=nand
++fi
++
++if [ x$1 = xubifs ]; then
++	root=ubifs
++	kernel=nand
++fi
++
++if [ x$1 = xnet ]; then
++	root=net
++	kernel=net
++	image=$zimage
++fi
++
++if [ $# = 2 ]; then
++	image=$2
++fi
++
++if [ x$ip = xdhcp ]; then
++	if [ x$root = xnet ]; then
++		bootargs="$bootargs ip=dhcp"
++	fi
++else
++	if [ x$ip = xoff ]; then
++		bootargs="$bootargs ip=off"
++	else
++		bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::"
++	fi
++fi
++
++if [ x$root = xjffs2 ]; then
++	bootargs="$bootargs root=/dev/mtdblock$rootpartnum_nand rootfstype=jffs2"
++fi
++
++if [ x$root = xubifs ]; then
++	bootargs="$bootargs root=ubi0:$ubiroot ubi.mtd=$rootpartnum_nand rootfstype=ubifs"
++fi
++
++if [ x$root = xnet ]; then
++	bootargs="$bootargs root=/dev/nfs"
++	if [ ! -z "$rootpath" ]; then
++		bootargs="$bootargs nfsroot=$eth0.serverip:$rootpath"
++	fi
++fi
++
++bootargs="$bootargs mtdparts=mxc_nand:$nand_parts"
++
++if [ $kernel = net ]; then
++	if [ x$ip = xdhcp ]; then
++		dhcp
++	fi
++	tftp $image zImage || exit 1
++	bootz zImage
++else
++	bootz $image
++fi
++
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/init barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/init
+--- barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/init	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/init	2010-10-06 17:59:45.185384513 +0200
+@@ -0,0 +1,38 @@
++#!/bin/sh
++
++PATH=/env/bin
++export PATH
++
++. /env/config
++if [ -e /dev/nand0 ]; then
++	addpart /dev/nand0 $nand_parts
++
++	# hush workaround
++	nand0_parts="/dev/nand0.*"
++	nand -a $nand0_parts
++fi
++
++if [ -f /env/logo.bmp ]; then
++	bmp /env/logo.bmp
++elif [ -f /env/logo.bmp.lzo ]; then
++	unlzo /env/logo.bmp.lzo /logo.bmp
++	bmp /logo.bmp
++fi
++
++if [ -z $eth0.ethaddr ]; then
++	while [ -z $eth0.ethaddr ]; do
++		readline "No MAC address set for eth0. Please enter the one found on your module: " eth0.ethaddr
++	done
++	echo -a /env/config "eth0.ethaddr=$eth0.ethaddr"
++	saveenv
++fi
++
++echo
++echo -n "Hit any key to stop autoboot: "
++timeout -a $autoboot_timeout
++if [ $? != 0 ]; then
++	exit
++fi
++
++boot
++
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/update barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/update
+--- barebox-2010.10.0/arch/arm/boards/vmx25/env/bin/update	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/bin/update	2010-10-06 16:51:48.635384355 +0200
+@@ -0,0 +1,54 @@
++#!/bin/sh
++
++. /env/config
++
++if [ x$1 = xbarebox ]; then
++	image=$barebox
++	part=/dev/nand0.barebox.bb
++fi
++
++if [ x$1 = xkernel ]; then
++	image=$zimage
++	part=/dev/nand0.kernel.bb
++fi
++
++if [ x$1 = xrootfs ]; then
++	image=$rootfs
++	part=/dev/nand0.rootfs.bb
++fi
++
++if [ -z "$part" -o -z "$image" ]; then
++	echo "update barebox|kernel|rootfs [<imagename>]"
++	exit 1
++fi
++
++if [ ! -e "$part" ]; then
++	echo "Partition $part does not exist"
++	exit 1
++fi
++
++if [ $# = 2 ]; then
++	image=$2
++fi
++
++if [ x$ip = xdhcp ]; then
++	dhcp
++fi
++
++ping $eth0.serverip
++if [ $? -ne 0 ] ; then
++	echo "update aborted"
++	exit 1
++fi
++
++unprotect $part
++
++echo
++echo "erasing partition $part"
++erase $part
++
++echo
++echo "flashing $image to $part"
++echo
++tftp $image $part
++
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/env/config barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/config
+--- barebox-2010.10.0/arch/arm/boards/vmx25/env/config	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/env/config	2010-10-06 15:13:29.136153433 +0200
+@@ -0,0 +1,28 @@
++#!/bin/sh
++
++# can be either 'net' or 'jffs2' or 'ubifs'
++kernel=nand
++root=ubifs
++
++basedir=vmx25
++barebox=$basedir/barebox.bin
++zimage=$basedir/zImage
++rootfs=$basedir/rootfs.bin
++
++autoboot_timeout=3
++
++bootargs="console=ttymxc0,115200"
++
++nand_parts="256k(barebox)ro,128k(bareboxenv),2688k(kernel),-(rootfs)"
++rootpartnum_nand=3
++ubiroot="rootfs-vmx25"
++
++# ip=off|static|dhcp
++# use 'dhcp' to do dhcp in barebox and in kernel
++ip=dhcp
++
++# or set your networking parameters here
++#eth0.ipaddr=a.b.c.d
++#eth0.netmask=a.b.c.d
++#eth0.gateway=a.b.c.d
++#eth0.serverip=a.b.c.d
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/lowlevel_init.S barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/lowlevel_init.S
+--- barebox-2010.10.0/arch/arm/boards/vmx25/lowlevel_init.S	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/lowlevel_init.S	2010-11-23 02:00:54.874097981 +0100
+@@ -0,0 +1,267 @@
++/*
++ * (C) Copyright 2009 DENX Software Engineering
++ * Author: John Rigby <jrigby@gmail.com>
++ *
++ * Based on U-Boot and RedBoot sources for several different i.mx
++ * platforms.
++ *
++ * 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 <mach/imx-regs.h>
++#include <asm-generic/memory_layout.h>
++
++/* #include <asm/macro.h> */
++.macro  write32, addr, data
++        ldr     r4, =\addr
++        ldr     r5, =\data
++        str     r5, [r4]
++.endm
++
++.section ".text_bare_init","ax"
++
++init_aips:
++	write32	0x43f00000, 0x77777777
++	write32	0x43f00004, 0x77777777
++	write32	0x43f00000, 0x77777777
++	write32	0x53f00004, 0x77777777
++	mov	pc, lr
++
++init_max:
++	write32	0x43f04000, 0x43210
++	write32	0x43f04100, 0x43210
++	write32	0x43f04200, 0x43210
++	write32	0x43f04300, 0x43210
++	write32	0x43f04400, 0x43210
++
++	write32	0x43f04010, 0x10
++	write32	0x43f04110, 0x10
++	write32	0x43f04210, 0x10
++	write32	0x43f04310, 0x10
++	write32	0x43f04410, 0x10
++
++	write32	0x43f04800, 0x0
++	write32	0x43f04900, 0x0
++	write32	0x43f04a00, 0x0
++	write32	0x43f04b00, 0x0
++	write32	0x43f04c00, 0x0
++	mov	pc, lr
++
++init_clocks:
++	/*
++	 * clocks
++	 *
++	 * first enable CLKO debug output
++	 * 0x40000000 enables the debug CLKO signal
++	 * 0x05000000 sets CLKO divider to 6
++	 * 0x00600000 makes CLKO parent clk the USB clk
++	 */
++	write32	0x53f80064, 0x45600000
++	write32	0x53f80008, 0x20034000
++
++	/*
++	 * enable all implemented clocks in all three
++	 * clock control registers
++	 */
++	write32	0x53f8000c, 0x1fffffff
++	write32	0x53f80010, 0xffffffff
++	write32	0x53f80014, 0xfdfff
++	mov	pc, lr
++
++.macro init_ddrtype
++	/*
++	 * ddr_type is 3.3v SDRAM
++	 */
++	write32	0x43fac454, 0x800
++.endm
++
++/*
++ * reset SDRAM controller
++ * then wait for initialization to complete
++ * r3 = 0xb8001000
++ */
++reset_sdram_ctrl:
++	ldr	r1, =(1 << 1)
++	str	r1, [r3, #0x10]
++1:	ldr	r0, [r3, #0x10]
++	tst	r0, #(1 << 31)
++	beq	1b
++	mov	pc, lr
++
++/*
++ * sdram controller init
++ * 13 ROWs, 10 COLs
++ * r2 = bank mem base
++ * r3 = bank regs base
++ */
++init_sdram_bank:
++	ldr	r1, =0x95728
++	str	r1, [r3, #0x04]		/* config */
++
++	ldr	r1, =0x92216480		/* control | precharge */
++	str	r1, [r3]		/* write command to controller */
++	str	r1, [r2, #0x400]	/* command encoded in address */
++
++	ldr	r1, =0xa2216480		/* auto refresh */
++	str	r1, [r3]
++	ldrb	r0, [r2]		/* read dram twice to auto refresh */
++	ldrb	r0, [r2]
++
++	ldr	r1, =0xb2216480		/* control | load mode */
++	str	r1, [r3]		/* write command to controller */
++	strb	r1, [r2, #0x33]		/* command encoded in address */
++
++	ldr	r1, =0x82216480		/* control  | normal (0)*/
++	str	r1, [r3]		/* write command to controller */
++
++	mov	r0, #0			/* detect sdram bank presence pass1: r0=0 */
++	str	r0, [r2]
++	ldr	r1, [r2]
++	cmp     r0, r1			/* compare, set flags */
++	bne	bank_disable
++
++	ldr	r0, =0xdeadbeef		/* detect sdram presence pass2: r0=0xdeadbeef */
++	str     r0, [r2]
++	ldr     r1, [r2]
++	cmp     r0, r1			/* compare, set flags */
++	moveq	pc, lr			/* return if equal */
++
++bank_disable:				/* disable sdram bank */
++	mov	r0, #0
++	str	r0, [r3]
++	str	r0, [r3, #0x04 ]
++	mov	pc, lr
++
++set_columns:
++	mov     r0, r2		/* r0 = 80000000 */
++
++/* 8cols:  0x80000000 = 0x80000200 = 0x80000400 = 0x80000600 */
++/* 9cols:  0x80000000 = 0x80000400 */
++/* 10cols: 0x80000000 */
++
++	str     r0, [r0], #0x400	/* [80000000] = 0 */
++	str     r0, [r0], #0x200	/* [80000400] = 80000400 */
++	str     r0, [r0]		/* [80000600] = 80000600 */
++
++	ldrh	r0, [r2]
++	movs	r0, r0, LSL #0x0B
++	addeq	r0, #0x100000
++	eor	r0, #0x300000
++	and	r0, #0x300000		/* r0 = #cols */
++
++	ldr	r1, [r3]		/* set cols */
++	bic	r1, #0x300000
++	orr	r1, r0
++	str	r1, [r3]
++	mov	pc, lr
++
++set_rows:
++	mov     r0, r2		/* r0 = 80000000 */
++	mov	r1, #0x400000
++
++/* 13rows (32M16): 0x80000000 = 0x84000000 */
++/* 13rows (16M16): 0x80000000 = 0x82000000 = 0x84000000 */
++/* 12rows (8M16):  0x80000000 = 0x80400000 */
++/* 12rows (4M16):  0x80000000 = 0x80100000 = 0x80200000 = 0x80300000 = 0x80400000 */
++
++	str     r0, [r0], r1	/* [80000000] = 0 */
++	str     r0, [r0], r1	/* [80400000] = 80400000 */
++
++	ldr	r0, [r2]
++	mov	r0, r0, LSL #0x2
++	ands	r0, #0x1000000
++	addeq	r0, #0x2000000
++	and	r0, #0x7000000		/* r0 = #rows */
++
++	ldr	r1, [r3]		/* set rows */
++	bic	r1, #0x7000000
++	orr	r1, r0
++	str	r1, [r3]
++	mov	pc, lr
++
++.globl board_init_lowlevel
++board_init_lowlevel:
++	mov	r10, lr
++
++	bl	init_aips
++	bl	init_max
++
++	write32 0xb8003000, 0x1		/* init_m3if */
++
++	bl	init_clocks
++
++	/* init_sdram_bank 0x80000000, 0x0, 0x4	*/
++	ldr	r2, =0x80000000
++	ldr	r3, =0xb8001000
++	
++	bl	reset_sdram_ctrl
++	bl	init_sdram_bank
++
++	bne	bank0_disabled
++
++	bl	set_columns
++	bl	set_rows
++
++bank0_disabled:
++	/* init_sdram_bank 0x90000000, 0x8, 0xc	*/
++	ldr	r2, =0x90000000
++	ldr	r3, =0xb8001008
++	
++	bl	init_sdram_bank
++
++	bne	bank1_disabled
++
++	bl	set_columns
++	bl	set_rows
++
++bank1_disabled:
++
++#ifdef CONFIG_NAND_IMX_BOOT
++        ldr     sp, STACK_BASE_W        /* Setup a temporary stack */
++
++        ldr     r0, =IMX_NFC_BASE               /* start of NFC SRAM                */
++        ldr     r2, =IMX_NFC_BASE + 0x1000      /* end of NFC SRAM                  */
++
++        /* skip NAND boot if not running from NFC space */
++        cmp     pc, r0
++        bls     ret
++        cmp     pc, r2
++        bhi     ret
++
++        /* Move ourselves out of NFC SRAM */
++        ldr     r1, =TEXT_BASE
++
++copy_loop:
++        ldmia   r0!, {r3-r9}            /* copy from source address [r0]    */
++        stmia   r1!, {r3-r9}            /* copy to   target address [r1]    */
++        cmp     r0, r2                  /* until source end addreee [r2]    */
++        ble     copy_loop
++
++        ldr     pc, =1f                 /* Jump to SDRAM                    */
++1:
++        bl      nand_boot               /* Load barebox from NAND Flash      */
++
++        ldr     r1, =IMX_NFC_BASE - TEXT_BASE
++        sub     r10, r10, r1            /* adjust return address from NFC SRAM */
++                                        /* to SDRAM                            */
++
++#endif /* CONFIG_NAND_IMX_BOOT */
++ret:
++	mov	pc, r10
++
++STACK_BASE_W:          .word	(STACK_BASE + STACK_SIZE -12)
++
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/Makefile barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/Makefile
+--- barebox-2010.10.0/arch/arm/boards/vmx25/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/Makefile	2010-10-06 15:13:29.136153433 +0200
+@@ -0,0 +1,24 @@
++#
++# (c) 2010 Voipac Technologies <support@voipac.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
++#
++
++obj-y += lowlevel_init.o
++obj-y += vmx25.o
+diff -urN barebox-2010.10.0/arch/arm/boards/vmx25/vmx25.c barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/vmx25.c
+--- barebox-2010.10.0/arch/arm/boards/vmx25/vmx25.c	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/boards/vmx25/vmx25.c	2010-11-06 00:04:01.167954869 +0100
+@@ -0,0 +1,379 @@
++/*
++ * (C) 2009 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
++ * (c) 2010 Eukrea Electromatique, Eric Bénard <eric@eukrea.com>
++ * (c) 2010 Voipac Technologies <support@voipac.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 <init.h>
++#include <driver.h>
++#include <environment.h>
++#include <mach/imx-regs.h>
++#include <asm/armlinux.h>
++#include <mach/gpio.h>
++#include <asm/io.h>
++#include <asm/mmu.h>
++
++#include <partition.h>
++#include <asm/mach-types.h>
++#include <mach/imx-nand.h>
++#include <mach/imxfb.h>
++#include <fec.h>
++#include <nand.h>
++#include <mach/imx-flash-header.h>
++#include <mach/iomux-mx25.h>
++
++extern unsigned long _stext;
++
++void __naked __flash_header_start go(void)
++{
++	__asm__ __volatile__("b exception_vectors\n");
++}
++
++struct imx_dcd_entry __dcd_entry_0x400 dcd_entry[] = {
++	{ .ptr_type = 4, .addr = 0xb8001004, .val = 0x00095728, },	/* config */
++	{ .ptr_type = 4, .addr = 0xb8001000, .val = 0x92116480, },	/* control | precharge */
++	{ .ptr_type = 1, .addr = 0x80000400, .val = 0x12344321, },	/* command encoded in address */
++	{ .ptr_type = 4, .addr = 0xb8001000, .val = 0xa2116480, },	/* auto refresh */
++	{ .ptr_type = 4, .addr = 0x80000000, .val = 0x12344321, },	/* read dram twice to auto refresh */
++	{ .ptr_type = 4, .addr = 0x80000000, .val = 0x12344321, },
++	{ .ptr_type = 4, .addr = 0xb8001000, .val = 0xb2116480, },	/* control | load mode */
++	{ .ptr_type = 1, .addr = 0x80000033, .val = 0x12344321, },	/* command encoded in address */
++	{ .ptr_type = 4, .addr = 0xb8001000, .val = 0x82116480, },	/* control  | normal (0)*/
++	{ .ptr_type = 4, .addr = 0x53f80008, .val = 0x20034000, },	
++};
++
++struct imx_flash_header __flash_header_0x400 vmx25_header = {
++	.app_code_jump_vector	= TEXT_BASE + 0x2000,
++	.app_code_barker	= APP_CODE_BARKER,
++	.app_code_csf		= 0,
++	.dcd_ptr_ptr		= TEXT_BASE + 0x400 + offsetof(struct imx_flash_header, dcd),
++	.super_root_key		= 0,
++	.dcd			= TEXT_BASE + 0x400 + offsetof(struct imx_flash_header, dcd_barker),
++	.app_dest		= TEXT_BASE,
++	.dcd_barker		= DCD_BARKER,
++	.dcd_block_len		= sizeof(dcd_entry),
++};
++
++extern unsigned long __bss_start;
++
++unsigned long __image_len_0x400 barebox_len = 0x40000;
++
++static struct fec_platform_data fec_info = {
++	.xcv_type	= RMII,
++	.phy_addr	= 1,
++};
++
++static struct device_d fec_dev = {
++	.name     = "fec_imx",
++	.map_base = IMX_FEC_BASE,
++	.platform_data	= &fec_info,
++};
++
++static struct memory_platform_data sdram0_pdata = {
++	.name	= "ram0",
++	.flags	= DEVFS_RDWR,
++};
++
++static struct device_d sdram0_dev = {
++	.name     = "mem",
++	.map_base = IMX_SDRAM_CS0,
++	.size     = 0,
++	.platform_data = &sdram0_pdata,
++};
++
++static struct memory_platform_data sdram1_pdata = {
++	.name	= "ram1",
++	.flags	= DEVFS_RDWR,
++};
++
++static struct device_d sdram1_dev = {
++	.name     = "mem",
++	.map_base = IMX_SDRAM_CS1,
++	.size     = 0,
++	.platform_data = &sdram1_pdata,
++};
++
++static struct memory_platform_data sram_pdata = {
++	.name   = "sram0",
++	.flags  = DEVFS_RDWR,
++};
++
++static struct device_d sram0_dev = {
++	.name     = "mem",
++	.map_base = 0x78000000,
++	.size     = 128 * 1024,
++	.platform_data = &sram_pdata,
++};
++
++struct imx_nand_platform_data nand_info = {
++	.width	= 1,
++	.hw_ecc	= 1,
++};
++
++static struct device_d nand_dev = {
++	.name     = "imx_nand",
++	.map_base = IMX_NFC_BASE,
++	.platform_data	= &nand_info,
++};
++
++#ifdef CONFIG_DRIVER_VIDEO_IMX
++static struct imx_fb_videomode imxfb_mode = {
++	.mode = {
++		.name		= "VGA",
++		.refresh	= 60,
++		.xres		= 640,
++		.yres		= 480,
++		.pixclock	= 30076,
++		.hsync_len	= 64,
++		.left_margin	= 96,
++		.right_margin	= 48,
++		.vsync_len	= 2,
++		.upper_margin	= 33,
++		.lower_margin	= 10,
++	},
++	.pcr		= 0xFAC00080,
++	.bpp		= 16,
++};
++
++static struct imx_fb_platform_data vmx25_fb_data = {
++	.mode		= &imxfb_mode,
++	.pwmr		= 0x0,
++	.lscr1		= 0x0,
++	.dmacr		= 0x80040060,
++};
++
++
++static struct device_d imxfb_dev = {
++	.name		= "imxfb",
++	.map_base	= 0x53fbc000,
++	.size		= 0x1000,
++	.platform_data	= &vmx25_fb_data,
++};
++#endif
++
++#ifdef CONFIG_MMU
++static void vmx25_mmu_init(void)
++{
++	mmu_init();
++
++	arm_create_section(0x80000000, 0x80000000, 128, PMD_SECT_DEF_CACHED);
++	arm_create_section(0x90000000, 0x80000000, 128, PMD_SECT_DEF_UNCACHED);
++
++	setup_dma_coherent(0x10000000);
++
++	mmu_enable();
++}
++#else
++static void vmx25_mmu_init(void)
++{
++}
++#endif
++
++static struct pad_desc vmx25_pads[] = {
++	/* FEC */
++	MX25_PAD_D11__GPIO9,	// FEC_PEN
++//	MX25_PAD_D12__GPIO8,	// FEC_RESET_B
++	MX25_PAD_D13__GPIO7,	// FEC_RESET_B
++	MX25_PAD_FEC_MDC__MDC,
++	MX25_PAD_FEC_MDIO__MDIO,
++	MX25_PAD_FEC_RDATA0__RDATA0,
++	MX25_PAD_FEC_RDATA1__RDATA1,
++	MX25_PAD_FEC_RX_DV__RX_DV,
++	MX25_PAD_FEC_TDATA0__TDATA0,
++	MX25_PAD_FEC_TDATA1__TDATA1,
++	MX25_PAD_FEC_TX_CLK__TX_CLK,
++	MX25_PAD_FEC_TX_EN__TX_EN,
++	/* UART1 */
++	MX25_PAD_UART1_RXD__RXD_MUX,
++	MX25_PAD_UART1_TXD__TXD_MUX,
++	MX25_PAD_UART1_RTS__RTS,
++	MX25_PAD_UART1_CTS__CTS,
++#ifdef CONFIG_DRIVER_VIDEO_IMX
++	/* LCDC */
++	MX25_PAD_LD0__LCDC_LD0,
++	MX25_PAD_LD1__LCDC_LD1,
++	MX25_PAD_LD2__LCDC_LD2,
++	MX25_PAD_LD3__LCDC_LD3,
++	MX25_PAD_LD4__LCDC_LD4,
++	MX25_PAD_LD5__LCDC_LD5,
++	MX25_PAD_LD6__LCDC_LD6,
++	MX25_PAD_LD7__LCDC_LD7,
++	MX25_PAD_LD8__LCDC_LD8,
++	MX25_PAD_LD9__LCDC_LD9,
++	MX25_PAD_LD10__LCDC_LD10,
++	MX25_PAD_LD11__LCDC_LD11,
++	MX25_PAD_LD12__LCDC_LD12,
++	MX25_PAD_LD13__LCDC_LD13,
++	MX25_PAD_LD14__LCDC_LD14,
++	MX25_PAD_LD15__LCDC_LD15,
++	MX25_PAD_GPIO_E__LCDC_LD16,
++	MX25_PAD_GPIO_F__LCDC_LD17,
++	MX25_PAD_LSCLK__LCDC_LSCLK,
++	MX25_PAD_OE_ACD__LCDC_OE_ACD,
++	MX25_PAD_VSYNC__LCDC_VSYN,
++	MX25_PAD_HSYNC__LCDC_HSYN,
++	/* BACKLIGHT CONTROL */
++	MX25_PAD_PWM__GPIO26,
++#endif
++	/* RESET OUT */
++	MX25_PAD_VSTBY_ACK__GPIO18,	/* GPIO3_18 */
++};
++
++static void vmx25_fec_init(void)
++{
++	struct pad_desc fec_gpio_pads[] = {
++		MX25_PAD_D11__GPIO9,	// FEC_PEN
++		MX25_PAD_D13__GPIO7,	// FEC_RESET_B
++		MX25_PAD_FEC_RDATA0__GPIO10,
++		MX25_PAD_FEC_RDATA1__GPIO11,
++		MX25_PAD_FEC_RX_DV__GPIO12,
++	};
++
++	mxc_iomux_v3_setup_multiple_pads(fec_gpio_pads,
++                ARRAY_SIZE(fec_gpio_pads));
++
++	// assert PHY reset, turn on PHY power
++	gpio_direction_output(103, 0);	// GPIO4_7
++	gpio_direction_output(105, 1);	// GPIO4_9
++
++	mdelay(10);
++
++	// set PHY mode pins to 1
++	gpio_direction_output(74, 1);	// GPIO3_10
++	gpio_direction_output(75, 1);	// GPIO3_11
++	gpio_direction_output(76, 1);	// GPIO3_12
++
++	mdelay(22);
++
++	// deassert PHY reset
++	gpio_set_value(103, 1);	// GPIO4_7
++
++	mdelay(5);
++}
++
++static void vmx25_sdram_init(void)
++{
++	uchar	rows, cols;
++	uint32_t size, esdctl;
++
++	esdctl = readl(IMX_ESD_BASE);
++	rows = ((esdctl >> 24) & 7);
++	cols = ((esdctl >> 20) & 3);
++	size = (esdctl)? 1 << (rows + cols + 22) : 0;
++
++	sdram0_dev.size = size;
++
++	printk("SDRAM at 0x%08x: %dMB (%dMb, %d ROWs, %d COLs)\n",
++		 IMX_SDRAM_CS0, size >> 20, size >> 17, rows + 11, cols + 8);
++
++	esdctl = readl(IMX_ESD_BASE + 0x08);
++	rows = ((esdctl >> 24) & 7);
++	cols = ((esdctl >> 20) & 3);
++	size = (esdctl)? 1 << (rows + cols + 22) : 0;
++
++	sdram1_dev.size = size;
++
++	printk("SDRAM at 0x%08x: %dMB (%dMb, %d ROWs, %d COLs)\n",
++		 IMX_SDRAM_CS1, size >> 20, size >> 17, rows + 11, cols + 8);
++}
++
++static int vmx25_devices_init(void)
++{
++	/* assert RESET_OUT_B */
++	gpio_direction_output(82, 0);   // GPIO3_18
++
++	vmx25_sdram_init();
++
++	vmx25_mmu_init();
++
++	vmx25_fec_init();
++
++	mxc_iomux_v3_setup_multiple_pads(vmx25_pads,
++		ARRAY_SIZE(vmx25_pads));
++	register_device(&fec_dev);
++
++	nand_info.width = 1;
++	register_device(&nand_dev);
++
++	devfs_add_partition("nand0", 0x00000, 0x40000,
++		PARTITION_FIXED, "self_raw");
++	dev_add_bb_dev("self_raw", "self0");
++
++	devfs_add_partition("nand0", 0x40000, 0x20000,
++		PARTITION_FIXED, "env_raw");
++	dev_add_bb_dev("env_raw", "env0");
++
++	if( sdram0_dev.size)
++		register_device(&sdram0_dev);
++	
++	if( sdram1_dev.size)
++		register_device(&sdram1_dev);
++
++	register_device(&sram0_dev);
++
++#ifdef CONFIG_DRIVER_VIDEO_IMX
++	/* enable LCD */
++	gpio_direction_output(26, 1);	// GPIO1_26
++
++	register_device(&imxfb_dev);
++#endif
++	armlinux_add_dram(&sdram0_dev);
++	armlinux_add_dram(&sdram1_dev);
++
++	armlinux_set_bootparams((void *)0x80000100);
++	armlinux_set_architecture(MACH_TYPE_VMX25);
++
++	return 0;
++}
++
++device_initcall(vmx25_devices_init);
++
++static struct device_d vmx25_serial_device = {
++	.name     = "imx_serial",
++	.map_base = IMX_UART1_BASE,
++	.size     = 16 * 1024,
++};
++
++static int vmx25_console_init(void)
++{
++	writel(0x03010101, IMX_CCM_BASE + CCM_PCDR3);
++	register_device(&vmx25_serial_device);
++	return 0;
++}
++
++console_initcall(vmx25_console_init);
++
++#ifdef CONFIG_NAND_IMX_BOOT
++void __bare_init nand_boot(void)
++{
++	imx_nand_load_image((void *)TEXT_BASE, 256 * 1024);
++}
++#endif
++
++static int vmx25_core_setup(void)
++{
++	writel(0x01010103, IMX_CCM_BASE + CCM_PCDR2);
++	return 0;
++
++}
++core_initcall(vmx25_core_setup);
+diff -urN barebox-2010.10.0/arch/arm/configs/voipac_vmx25_defconfig barebox-2010.10.0-vmx25/arch/arm/configs/voipac_vmx25_defconfig
+--- barebox-2010.10.0/arch/arm/configs/voipac_vmx25_defconfig	1970-01-01 01:00:00.000000000 +0100
++++ barebox-2010.10.0-vmx25/arch/arm/configs/voipac_vmx25_defconfig	2010-11-05 17:32:30.818410283 +0100
+@@ -0,0 +1,254 @@
++#
++# Automatically generated make config: don't edit
++# Linux barebox version: 2010.10.0
++# Fri Nov  5 17:32:15 2010
++#
++# CONFIG_BOARD_LINKER_SCRIPT is not set
++CONFIG_GENERIC_LINKER_SCRIPT=y
++CONFIG_ARM=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_EP93XX is not set
++CONFIG_ARCH_IMX=y
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_NOMADIK is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_S3C24xx is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++
++#
++# processor features
++#
++CONFIG_ARCH_TEXT_BASE=0x81f00000
++CONFIG_BOARDINFO="Voipac VMX25"
++CONFIG_ARCH_HAS_FEC_IMX=y
++# CONFIG_ARCH_IMX_INTERNAL_BOOT is not set
++
++#
++# Freescale i.MX System-on-Chip
++#
++# CONFIG_ARCH_IMX1 is not set
++# CONFIG_ARCH_IMX21 is not set
++CONFIG_ARCH_IMX25=y
++# CONFIG_ARCH_IMX27 is not set
++# CONFIG_ARCH_IMX31 is not set
++# CONFIG_ARCH_IMX35 is not set
++# CONFIG_MACH_EUKREA_CPUIMX25 is not set
++# CONFIG_MACH_FREESCALE_MX25_3STACK is not set
++CONFIG_MACH_VMX25=y
++
++#
++# Board specific settings       
++#
++
++#
++# i.MX specific settings        
++#
++# CONFIG_IMX_CLKO is not set
++CONFIG_IMX_IIM=y
++CONFIG_IMX_IIM_FUSE_BLOW=y
++CONFIG_AEABI=y
++
++#
++# Arm specific settings         
++#
++CONFIG_CMD_ARM_CPUINFO=y
++# CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set
++CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG"
++CONFIG_HAS_KALLSYMS=y
++CONFIG_HAS_MODULES=y
++CONFIG_CMD_MEMORY=y
++CONFIG_ENV_HANDLING=y
++CONFIG_GENERIC_GPIO=y
++
++#
++# General Settings              
++#
++CONFIG_LOCALVERSION_AUTO=y
++
++#
++# memory layout                 
++#
++CONFIG_HAVE_MMU=y
++# CONFIG_MMU is not set
++CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y
++CONFIG_TEXT_BASE=0x81f00000
++CONFIG_HAVE_CONFIGURABLE_MEMORY_LAYOUT=y
++CONFIG_MEMORY_LAYOUT_DEFAULT=y
++# CONFIG_MEMORY_LAYOUT_FIXED is not set
++CONFIG_STACK_SIZE=0x8000
++CONFIG_MALLOC_SIZE=0x800000
++# CONFIG_BROKEN is not set
++# CONFIG_EXPERIMENTAL is not set
++CONFIG_MACH_HAS_LOWLEVEL_INIT=y
++CONFIG_MACH_DO_LOWLEVEL_INIT=y
++CONFIG_PROMPT="barebox:"
++CONFIG_BAUDRATE=115200
++CONFIG_LONGHELP=y
++CONFIG_CBSIZE=1024
++CONFIG_MAXARGS=16
++CONFIG_SHELL_HUSH=y
++# CONFIG_SHELL_SIMPLE is not set
++CONFIG_GLOB=y
++CONFIG_PROMPT_HUSH_PS2="> "
++# CONFIG_HUSH_FANCY_PROMPT is not set
++CONFIG_CMDLINE_EDITING=y
++CONFIG_AUTO_COMPLETE=y
++# CONFIG_MENU is not set
++CONFIG_DYNAMIC_CRC_TABLE=y
++CONFIG_ERRNO_MESSAGES=y
++# CONFIG_TIMESTAMP is not set
++CONFIG_CONSOLE_FULL=y
++CONFIG_CONSOLE_ACTIVATE_FIRST=y
++# CONFIG_OF_FLAT_TREE is not set
++# CONFIG_PARTITION is not set
++CONFIG_DEFAULT_ENVIRONMENT=y
++CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/vmx25/env"
++
++#
++# Debugging                     
++#
++# CONFIG_DEBUG_INFO is not set
++# CONFIG_ENABLE_FLASH_NOISE is not set
++# CONFIG_ENABLE_PARTITION_NOISE is not set
++# CONFIG_ENABLE_DEVICE_NOISE is not set
++
++#
++# Commands                      
++#
++
++#
++# scripting                     
++#
++CONFIG_CMD_EDIT=y
++CONFIG_CMD_SLEEP=y
++CONFIG_CMD_SAVEENV=y
++CONFIG_CMD_LOADENV=y
++CONFIG_CMD_EXPORT=y
++CONFIG_CMD_PRINTENV=y
++CONFIG_CMD_READLINE=y
++CONFIG_CMD_TRUE=y
++CONFIG_CMD_FALSE=y
++
++#
++# file commands                 
++#
++CONFIG_CMD_LS=y
++CONFIG_CMD_RM=y
++CONFIG_CMD_CAT=y
++CONFIG_CMD_MKDIR=y
++CONFIG_CMD_RMDIR=y
++CONFIG_CMD_CP=y
++CONFIG_CMD_PWD=y
++CONFIG_CMD_CD=y
++# CONFIG_CMD_MOUNT is not set
++# CONFIG_CMD_UMOUNT is not set
++
++#
++# console                       
++#
++CONFIG_CMD_CLEAR=y
++CONFIG_CMD_ECHO=y
++# CONFIG_CMD_ECHO_E is not set
++
++#
++# memory                        
++#
++# CONFIG_CMD_LOADB is not set
++CONFIG_CMD_MEMINFO=y
++# CONFIG_CMD_CRC is not set
++CONFIG_CMD_MTEST=y
++# CONFIG_CMD_MTEST_ALTERNATIVE is not set
++
++#
++# flash                         
++#
++CONFIG_CMD_FLASH=y
++# CONFIG_CMD_UBI is not set
++
++#
++# booting                       
++#
++# CONFIG_CMD_BOOTM is not set
++CONFIG_CMD_BOOTZ=y
++# CONFIG_CMD_BOOTU is not set
++# CONFIG_CMD_LINUX16 is not set
++CONFIG_CMD_RESET=y
++CONFIG_CMD_GO=y
++CONFIG_CMD_TIMEOUT=y
++CONFIG_CMD_PARTITION=y
++CONFIG_CMD_TEST=y
++CONFIG_CMD_VERSION=y
++CONFIG_CMD_HELP=y
++CONFIG_CMD_DEVINFO=y
++CONFIG_CMD_GPIO=y
++# CONFIG_CMD_UNLZO is not set
++CONFIG_NET=y
++CONFIG_NET_DHCP=y
++# CONFIG_NET_NFS is not set
++CONFIG_NET_PING=y
++CONFIG_NET_TFTP=y
++# CONFIG_NET_TFTP_PUSH is not set
++# CONFIG_NET_NETCONSOLE is not set
++# CONFIG_NET_RESOLV is not set
++
++#
++# Drivers                       
++#
++
++#
++# serial drivers                
++#
++# CONFIG_DRIVER_SERIAL_ARM_DCC is not set
++CONFIG_DRIVER_SERIAL_IMX=y
++# CONFIG_DRIVER_SERIAL_NS16550 is not set
++CONFIG_MIIDEV=y
++
++#
++# Network drivers               
++#
++# CONFIG_DRIVER_NET_SMC911X is not set
++# CONFIG_DRIVER_NET_SMC91111 is not set
++CONFIG_DRIVER_NET_FEC_IMX=y
++
++#
++# SPI drivers                   
++#
++# CONFIG_SPI is not set
++# CONFIG_I2C is not set
++
++#
++# flash drivers                 
++#
++# CONFIG_DRIVER_CFI is not set
++CONFIG_MTD=y
++CONFIG_NAND=y
++CONFIG_NAND_IMX=y
++CONFIG_NAND_IMX_BOOT=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_UBI is not set
++# CONFIG_ATA is not set
++# CONFIG_USB is not set
++# CONFIG_USB_GADGET is not set
++# CONFIG_VIDEO is not set
++
++#
++# Filesystem support            
++#
++# CONFIG_FS_CRAMFS is not set
++CONFIG_FS_RAMFS=y
++CONFIG_FS_DEVFS=y
++CONFIG_CRC32=y
++# CONFIG_GENERIC_FIND_NEXT_BIT is not set
++# CONFIG_PROCESS_ESCAPE_SEQUENCE is not set
+diff -urN barebox-2010.10.0/arch/arm/cpu/start.c barebox-2010.10.0-vmx25/arch/arm/cpu/start.c
+--- barebox-2010.10.0/arch/arm/cpu/start.c	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/arch/arm/cpu/start.c	2010-10-06 15:13:29.136153433 +0200
+@@ -59,6 +59,9 @@
+ #ifdef CONFIG_ARCH_HAS_LOWLEVEL_INIT
+ 	arch_init_lowlevel();
+ #endif
++#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT
++	board_init_lowlevel();
++#endif
+ 	__asm__ __volatile__ (
+ 		"bl __mmu_cache_flush;"
+ 		:
+@@ -72,9 +75,6 @@
+ 	r |= CR_A | CR_I;
+ 	set_cr(r);
+ 
+-#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT
+-	board_init_lowlevel();
+-#endif
+ 	board_init_lowlevel_return();
+ }
+ 
+diff -urN barebox-2010.10.0/arch/arm/mach-imx/iim.c barebox-2010.10.0-vmx25/arch/arm/mach-imx/iim.c
+--- barebox-2010.10.0/arch/arm/mach-imx/iim.c	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/arch/arm/mach-imx/iim.c	2010-10-06 17:59:21.206131814 +0200
+@@ -299,13 +299,13 @@
+ 
+ int imx_iim_get_mac(unsigned char *mac)
+ {
+-	int i;
++	int i, sum = 0;
+ 
+ 	if (mac_addr_base == 0)
+ 		return -EINVAL;
+ 
+ 	for (i = 0; i < 6; i++)
+-		 mac[i] = readb(mac_addr_base + i*4);
++		 sum += mac[i] = readb(mac_addr_base + i*4);
+ 
+-	return 0;
++	return (sum > 0)? 0 : -EINVAL;
+ }
+diff -urN barebox-2010.10.0/arch/arm/mach-imx/Kconfig barebox-2010.10.0-vmx25/arch/arm/mach-imx/Kconfig
+--- barebox-2010.10.0/arch/arm/mach-imx/Kconfig	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/arch/arm/mach-imx/Kconfig	2010-10-06 15:13:29.145895633 +0200
+@@ -17,6 +17,7 @@
+ 	default 0x87f00000 if MACH_PCM043
+ 	default 0x08f80000 if MACH_SCB9328
+ 	default 0xa7e00000 if MACH_NESO
++	default 0x81f00000 if MACH_VMX25
+ 
+ config BOARDINFO
+ 	default "Eukrea CPUIMX25" if MACH_EUKREA_CPUIMX25
+@@ -32,6 +33,7 @@
+ 	default "Phytec phyCORE-i.MX35" if MACH_PCM043
+ 	default "Synertronixx scb9328" if MACH_SCB9328
+ 	default "Garz+Fricke Neso" if MACH_NESO
++	default "Voipac VMX25" if MACH_VMX25
+ 
+ config ARCH_HAS_FEC_IMX
+ 	bool
+@@ -148,6 +150,14 @@
+ 	  Say Y here if you are using the Freescale MX25 3stack board equipped
+ 	  with a Freescale i.MX25 Processor
+ 
++config MACH_VMX25
++	bool "Voipac VMX25"
++	select MACH_HAS_LOWLEVEL_INIT
++	select HAVE_MMU
++	help
++	  Say Y here if you are using the Voipac Technologies VMX25 module
++	  equipped with a Freescale i.MX25 Processor
++
+ endchoice
+ 
+ endif
+diff -urN barebox-2010.10.0/arch/arm/Makefile barebox-2010.10.0-vmx25/arch/arm/Makefile
+--- barebox-2010.10.0/arch/arm/Makefile	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/arch/arm/Makefile	2010-10-06 15:13:29.145895633 +0200
+@@ -79,6 +79,7 @@
+ board-$(CONFIG_MACH_PM9263)			:= pm9263
+ board-$(CONFIG_MACH_SCB9328)			:= scb9328
+ board-$(CONFIG_MACH_NESO)			:= guf-neso
++board-$(CONFIG_MACH_VMX25)			:= vmx25
+ 
+ machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
+ 
+diff -urN barebox-2010.10.0/arch/arm/tools/mach-types barebox-2010.10.0-vmx25/arch/arm/tools/mach-types
+--- barebox-2010.10.0/arch/arm/tools/mach-types	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/arch/arm/tools/mach-types	2010-10-06 15:13:29.145895633 +0200
+@@ -12,7 +12,7 @@
+ #
+ #   http://www.arm.linux.org.uk/developer/machines/?action=new
+ #
+-# Last update: Mon May 24 21:27:47 2010
++# Last update: Wed Sep 8 21:15:58 2010
+ #
+ # machine_is_xxx	CONFIG_xxxx		MACH_TYPE_xxx		number
+ #
+@@ -1994,7 +1994,7 @@
+ benzina			MACH_BENZINA		BENZINA			2003
+ blaze			MACH_BLAZE		BLAZE			2004
+ linkstation_ls_hgl	MACH_LINKSTATION_LS_HGL	LINKSTATION_LS_HGL	2005
+-htckovsky		MACH_HTCVENUS		HTCVENUS		2006
++htckovsky		MACH_HTCKOVSKY		HTCKOVSKY		2006
+ sony_prs505		MACH_SONY_PRS505	SONY_PRS505		2007
+ hanlin_v3		MACH_HANLIN_V3		HANLIN_V3		2008
+ sapphira		MACH_SAPPHIRA		SAPPHIRA		2009
+@@ -2561,7 +2561,7 @@
+ emxx			MACH_EMXX		EMXX			2574
+ outlaw			MACH_OUTLAW		OUTLAW			2575
+ riot_bei2		MACH_RIOT_BEI2		RIOT_BEI2		2576
+-riot_vox		MACH_RIOT_VOX		RIOT_VOX		2577
++riot_gx2		MACH_RIOT_VOX		RIOT_VOX		2577
+ riot_x37		MACH_RIOT_X37		RIOT_X37		2578
+ mega25mx		MACH_MEGA25MX		MEGA25MX		2579
+ benzina2		MACH_BENZINA2		BENZINA2		2580
+@@ -2609,7 +2609,7 @@
+ lexikon			MACH_LEXIKON		LEXIKON			2622
+ mini2440v2		MACH_MINI2440V2		MINI2440V2		2623
+ icontrol		MACH_ICONTROL		ICONTROL		2624
+-sheevad			MACH_SHEEVAD		SHEEVAD			2625
++gplugd			MACH_SHEEVAD		SHEEVAD			2625
+ qsd8x50a_st1_1		MACH_QSD8X50A_ST1_1	QSD8X50A_ST1_1		2626
+ qsd8x50a_st1_5		MACH_QSD8X50A_ST1_5	QSD8X50A_ST1_5		2627
+ bee			MACH_BEE		BEE			2628
+@@ -2622,7 +2622,7 @@
+ gw2388			MACH_GW2388		GW2388			2635
+ jadecpu			MACH_JADECPU		JADECPU			2636
+ carlisle		MACH_CARLISLE		CARLISLE		2637
+-lux_sf9			MACH_LUX_SFT9		LUX_SFT9		2638
++lux_sf9			MACH_LUX_SF9		LUX_SF9			2638
+ nemid_tb		MACH_NEMID_TB		NEMID_TB		2639
+ terrier			MACH_TERRIER		TERRIER			2640
+ turbot			MACH_TURBOT		TURBOT			2641
+@@ -2812,7 +2812,7 @@
+ acer_a4			MACH_ACER_A4		ACER_A4			2825
+ davinci_dm368_bip	MACH_DAVINCI_DM368_BIP	DAVINCI_DM368_BIP	2826
+ eshare			MACH_ESHARE		ESHARE			2827
+-hw_omapl138_europa	MACH_HW_OMAPL138_EUROPA	HW_OMAPL138_EUROPA	2828
++omapl138_europa		MACH_HW_OMAPL138_EUROPA	HW_OMAPL138_EUROPA	2828
+ wlbargn			MACH_WLBARGN		WLBARGN			2829
+ bm170			MACH_BM170		BM170			2830
+ netspace_mini_v2	MACH_NETSPACE_MINI_V2	NETSPACE_MINI_V2	2831
+@@ -2859,3 +2859,191 @@
+ coconut			MACH_COCONUT		COCONUT			2872
+ durian			MACH_DURIAN		DURIAN			2873
+ cayenne			MACH_CAYENNE		CAYENNE			2874
++fuji			MACH_FUJI		FUJI			2875
++synology_6282		MACH_SYNOLOGY_6282	SYNOLOGY_6282		2876
++em1sy			MACH_EM1SY		EM1SY			2877
++m502			MACH_M502		M502			2878
++matrix518		MACH_MATRIX518		MATRIX518		2879
++tiny_gurnard		MACH_TINY_GURNARD	TINY_GURNARD		2880
++spear1310		MACH_SPEAR1310		SPEAR1310		2881
++bv07			MACH_BV07		BV07			2882
++mxt_td61		MACH_MXT_TD61		MXT_TD61		2883
++openrd_ultimate		MACH_OPENRD_ULTIMATE	OPENRD_ULTIMATE		2884
++devixp			MACH_DEVIXP		DEVIXP			2885
++miccpt			MACH_MICCPT		MICCPT			2886
++mic256			MACH_MIC256		MIC256			2887
++as1167			MACH_AS1167		AS1167			2888
++omap3_ibiza		MACH_OMAP3_IBIZA	OMAP3_IBIZA		2889
++u5500			MACH_U5500		U5500			2890
++davinci_picto		MACH_DAVINCI_PICTO	DAVINCI_PICTO		2891
++mecha			MACH_MECHA		MECHA			2892
++bubba3			MACH_BUBBA3		BUBBA3			2893
++pupitre			MACH_PUPITRE		PUPITRE			2894
++tegra_harmony		MACH_TEGRA_HARMONY	TEGRA_HARMONY		2895
++tegra_vogue		MACH_TEGRA_VOGUE	TEGRA_VOGUE		2896
++tegra_e1165		MACH_TEGRA_E1165	TEGRA_E1165		2897
++simplenet		MACH_SIMPLENET		SIMPLENET		2898
++ec4350tbm		MACH_EC4350TBM		EC4350TBM		2899
++pec_tc			MACH_PEC_TC		PEC_TC			2900
++pec_hc2			MACH_PEC_HC2		PEC_HC2			2901
++esl_mobilis_a		MACH_ESL_MOBILIS_A	ESL_MOBILIS_A		2902
++esl_mobilis_b		MACH_ESL_MOBILIS_B	ESL_MOBILIS_B		2903
++esl_wave_a		MACH_ESL_WAVE_A		ESL_WAVE_A		2904
++esl_wave_b		MACH_ESL_WAVE_B		ESL_WAVE_B		2905
++unisense_mmm		MACH_UNISENSE_MMM	UNISENSE_MMM		2906
++blueshark		MACH_BLUESHARK		BLUESHARK		2907
++e10			MACH_E10		E10			2908
++app3k_robin		MACH_APP3K_ROBIN	APP3K_ROBIN		2909
++pov15hd			MACH_POV15HD		POV15HD			2910
++stella			MACH_STELLA		STELLA			2911
++htc_iolite		MACH_MACH_HTC_IOLITE	MACH_HTC_IOLITE		2912
++linkstation_lschl	MACH_LINKSTATION_LSCHL	LINKSTATION_LSCHL	2913
++netwalker		MACH_NETWALKER		NETWALKER		2914
++acsx106			MACH_ACSX106		ACSX106			2915
++atlas5_c1		MACH_ATLAS5_C1		ATLAS5_C1		2916
++nsb3ast			MACH_NSB3AST		NSB3AST			2917
++gnet_slc		MACH_GNET_SLC		GNET_SLC		2918
++af4000			MACH_AF4000		AF4000			2919
++ark9431			MACH_ARK9431		ARK9431			2920
++fs_s5pc100		MACH_FS_S5PC100		FS_S5PC100		2921
++omap3505nova8		MACH_OMAP3505NOVA8	OMAP3505NOVA8		2922
++omap3621_edp1		MACH_OMAP3621_EDP1	OMAP3621_EDP1		2923
++oratisaes		MACH_ORATISAES		ORATISAES		2924
++smdkv310		MACH_SMDKV310		SMDKV310		2925
++siemens_l0		MACH_SIEMENS_L0		SIEMENS_L0		2926
++ventana			MACH_VENTANA		VENTANA			2927
++wm8505_7in_netbook	MACH_WM8505_7IN_NETBOOK	WM8505_7IN_NETBOOK	2928
++ec4350sdb		MACH_EC4350SDB		EC4350SDB		2929
++mimas			MACH_MIMAS		MIMAS			2930
++titan			MACH_TITAN		TITAN			2931
++craneboard		MACH_CRANEBOARD		CRANEBOARD		2932
++es2440			MACH_ES2440		ES2440			2933
++najay_a9263		MACH_NAJAY_A9263	NAJAY_A9263		2934
++htctornado		MACH_HTCTORNADO		HTCTORNADO		2935
++dimm_mx257		MACH_DIMM_MX257		DIMM_MX257		2936
++jigen301		MACH_JIGEN		JIGEN			2937
++smdk6450		MACH_SMDK6450		SMDK6450		2938
++meno_qng		MACH_MENO_QNG		MENO_QNG		2939
++ns2416			MACH_NS2416		NS2416			2940
++rpc353			MACH_RPC353		RPC353			2941
++tq6410			MACH_TQ6410		TQ6410			2942
++sky6410			MACH_SKY6410		SKY6410			2943
++dynasty			MACH_DYNASTY		DYNASTY			2944
++vivo			MACH_VIVO		VIVO			2945
++bury_bl7582		MACH_BURY_BL7582	BURY_BL7582		2946
++bury_bps5270		MACH_BURY_BPS5270	BURY_BPS5270		2947
++basi			MACH_BASI		BASI			2948
++tn200			MACH_TN200		TN200			2949
++c2mmi			MACH_C2MMI		C2MMI			2950
++meson_6236m		MACH_MESON_6236M	MESON_6236M		2951
++meson_8626m		MACH_MESON_8626M	MESON_8626M		2952
++tube			MACH_TUBE		TUBE			2953
++messina			MACH_MESSINA		MESSINA			2954
++mx50_arm2		MACH_MX50_ARM2		MX50_ARM2		2955
++cetus9263		MACH_CETUS9263		CETUS9263		2956
++brownstone		MACH_BROWNSTONE		BROWNSTONE		2957
++vmx25			MACH_VMX25		VMX25			2958
++vmx51			MACH_VMX51		VMX51			2959
++abacus			MACH_ABACUS		ABACUS			2960
++cm4745			MACH_CM4745		CM4745			2961
++oratislink		MACH_ORATISLINK		ORATISLINK		2962
++davinci_dm365_dvr	MACH_DAVINCI_DM365_DVR	DAVINCI_DM365_DVR	2963
++netviz			MACH_NETVIZ		NETVIZ			2964
++flexibity		MACH_FLEXIBITY		FLEXIBITY		2965
++wlan_computer		MACH_WLAN_COMPUTER	WLAN_COMPUTER		2966
++lpc24xx			MACH_LPC24XX		LPC24XX			2967
++spica			MACH_SPICA		SPICA			2968
++gpsdisplay		MACH_GPSDISPLAY		GPSDISPLAY		2969
++bipnet			MACH_BIPNET		BIPNET			2970
++overo_ctu_inertial	MACH_OVERO_CTU_INERTIAL	OVERO_CTU_INERTIAL	2971
++davinci_dm355_mmm	MACH_DAVINCI_DM355_MMM	DAVINCI_DM355_MMM	2972
++pc9260_v2		MACH_PC9260_V2		PC9260_V2		2973
++ptx7545			MACH_PTX7545		PTX7545			2974
++tm_efdc			MACH_TM_EFDC		TM_EFDC			2975
++remove_me		MACH_WALDO1		WALDO1			2976
++omap3_waldo1		MACH_OMAP3_WALDO1	OMAP3_WALDO1		2977
++flyer			MACH_FLYER		FLYER			2978
++tornado3240		MACH_TORNADO3240	TORNADO3240		2979
++soli_01			MACH_SOLI_01		SOLI_01			2980
++omapl138_europalc	MACH_OMAPL138_EUROPALC	OMAPL138_EUROPALC	2981
++helios_v1		MACH_HELIOS_V1		HELIOS_V1		2982
++netspace_lite_v2	MACH_NETSPACE_LITE_V2	NETSPACE_LITE_V2	2983
++ssc			MACH_SSC		SSC			2984
++premierwave_en		MACH_PREMIERWAVE_EN	PREMIERWAVE_EN		2985
++wasabi			MACH_WASABI		WASABI			2986
++vivo_w			MACH_VIVOW		VIVOW			2987
++mx50_rdp		MACH_MX50_RDP		MX50_RDP		2988
++universal		MACH_UNIVERSAL		UNIVERSAL		2989
++real6410		MACH_REAL6410		REAL6410		2990
++spx_sakura		MACH_SPX_SAKURA		SPX_SAKURA		2991
++ij3k_2440		MACH_IJ3K_2440		IJ3K_2440		2992
++omap3_bc10		MACH_OMAP3_BC10		OMAP3_BC10		2993
++thebe			MACH_THEBE		THEBE			2994
++rv082			MACH_RV082		RV082			2995
++armlguest		MACH_ARMLGUEST		ARMLGUEST		2996
++tjinc1000		MACH_TJINC1000		TJINC1000		2997
++dockstar		MACH_DOCKSTAR		DOCKSTAR		2998
++ax8008			MACH_AX8008		AX8008			2999
++gnet_sgce		MACH_GNET_SGCE		GNET_SGCE		3000
++pxwnas_500_1000		MACH_PXWNAS_500_1000	PXWNAS_500_1000		3001
++ea20			MACH_EA20		EA20			3002
++awm2			MACH_AWM2		AWM2			3003
++ti8148evm		MACH_TI8148EVM		TI8148EVM		3004
++tegra_seaboard		MACH_TEGRA_SEABOARD	TEGRA_SEABOARD		3005
++linkstation_chlv2	MACH_LINKSTATION_CHLV2	LINKSTATION_CHLV2	3006
++tera_pro2_rack		MACH_TERA_PRO2_RACK	TERA_PRO2_RACK		3007
++rubys			MACH_RUBYS		RUBYS			3008
++aquarius		MACH_AQUARIUS		AQUARIUS		3009
++mx53_ard		MACH_MX53_ARD		MX53_ARD		3010
++mx53_smd		MACH_MX53_SMD		MX53_SMD		3011
++lswxl			MACH_LSWXL		LSWXL			3012
++dove_avng_v3		MACH_DOVE_AVNG_V3	DOVE_AVNG_V3		3013
++sdi_ess_9263		MACH_SDI_ESS_9263	SDI_ESS_9263		3014
++jocpu550		MACH_JOCPU550		JOCPU550		3015
++msm8x60_rumi3		MACH_MSM8X60_RUMI3	MSM8X60_RUMI3		3016
++msm8x60_ffa		MACH_MSM8X60_FFA	MSM8X60_FFA		3017
++yanomami		MACH_YANOMAMI		YANOMAMI		3018
++gta04			MACH_GTA04		GTA04			3019
++cm_a510			MACH_CM_A510		CM_A510			3020
++omap3_rfs200		MACH_OMAP3_RFS200	OMAP3_RFS200		3021
++kx33xx			MACH_KX33XX		KX33XX			3022
++ptx7510			MACH_PTX7510		PTX7510			3023
++top9000			MACH_TOP9000		TOP9000			3024
++teenote			MACH_TEENOTE		TEENOTE			3025
++ts3			MACH_TS3		TS3			3026
++a0			MACH_A0			A0			3027
++fsm9xxx_surf		MACH_FSM9XXX_SURF	FSM9XXX_SURF		3028
++fsm9xxx_ffa		MACH_FSM9XXX_FFA	FSM9XXX_FFA		3029
++frrhwcdma60w		MACH_FRRHWCDMA60W	FRRHWCDMA60W		3030
++remus			MACH_REMUS		REMUS			3031
++at91cap7xdk		MACH_AT91CAP7XDK	AT91CAP7XDK		3032
++at91cap7stk		MACH_AT91CAP7STK	AT91CAP7STK		3033
++kt_sbc_sam9_1		MACH_KT_SBC_SAM9_1	KT_SBC_SAM9_1		3034
++at91sam9263router	MACH_ORATISROUTER	ORATISROUTER		3035
++armada_xp_db		MACH_ARMADA_XP_DB	ARMADA_XP_DB		3036
++spdm			MACH_SPDM		SPDM			3037
++gtib			MACH_GTIB		GTIB			3038
++dgm3240			MACH_DGM3240		DGM3240			3039
++iv_atlas_i_lpe		MACH_ATLAS_I_LPE	ATLAS_I_LPE		3040
++htcmega			MACH_HTCMEGA		HTCMEGA			3041
++tricorder		MACH_TRICORDER		TRICORDER		3042
++tx28			MACH_TX28		TX28			3043
++bstbrd			MACH_BSTBRD		BSTBRD			3044
++pwb3090			MACH_PWB3090		PWB3090			3045
++idea6410		MACH_IDEA6410		IDEA6410		3046
++qbc9263			MACH_QBC9263		QBC9263			3047
++borabora		MACH_BORABORA		BORABORA		3048
++valdez			MACH_VALDEZ		VALDEZ			3049
++ls9g20			MACH_LS9G20		LS9G20			3050
++mios_v1			MACH_MIOS_V1		MIOS_V1			3051
++s5pc110_crespo		MACH_S5PC110_CRESPO	S5PC110_CRESPO		3052
++controltek9g20		MACH_CONTROLTEK9G20	CONTROLTEK9G20		3053
++tin307			MACH_TIN307		TIN307			3054
++tin510			MACH_TIN510		TIN510			3055
++ep3505			MACH_EP3517		EP3517			3056
++bluecheese		MACH_BLUECHEESE		BLUECHEESE		3057
++tem3x30			MACH_TEM3X30		TEM3X30			3058
++harvest_desoto		MACH_HARVEST_DESOTO	HARVEST_DESOTO		3059
++msm8x60_qrdc		MACH_MSM8X60_QRDC	MSM8X60_QRDC		3060
++spear900		MACH_SPEAR900		SPEAR900		3061
++pcontrol_g20		MACH_PCONTROL_G20	PCONTROL_G20		3062
+diff -urN barebox-2010.10.0/commands/gpio.c barebox-2010.10.0-vmx25/commands/gpio.c
+--- barebox-2010.10.0/commands/gpio.c	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/commands/gpio.c	2010-10-06 15:13:29.145895633 +0200
+@@ -37,7 +37,7 @@
+ }
+ 
+ static const __maybe_unused char cmd_gpio_get_value_help[] =
+-"Usage: gpio_set_value <gpio>\n";
++"Usage: gpio_get_value <gpio>\n";
+ 
+ BAREBOX_CMD_START(gpio_get_value)
+ 	.cmd		= do_gpio_get_value,
+diff -urN barebox-2010.10.0/drivers/mtd/nand/nand_base.c barebox-2010.10.0-vmx25/drivers/mtd/nand/nand_base.c
+--- barebox-2010.10.0/drivers/mtd/nand/nand_base.c	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/drivers/mtd/nand/nand_base.c	2010-10-10 22:53:51.609734576 +0200
+@@ -2251,7 +2251,12 @@
+ 	}
+ 
+ 	if (!type)
++	{
++		printk(KERN_INFO "%s: Undefined device (Manufacturer ID:"
++                       " 0x%02x, Chip ID: 0x%02x)\n", __func__, *maf_id, dev_id);
++
+ 		return ERR_PTR(-ENODEV);
++	}
+ 
+ 	if (!mtd->name)
+ 		mtd->name = type->name;
+diff -urN barebox-2010.10.0/drivers/mtd/nand/nand_ids.c barebox-2010.10.0-vmx25/drivers/mtd/nand/nand_ids.c
+--- barebox-2010.10.0/drivers/mtd/nand/nand_ids.c	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/drivers/mtd/nand/nand_ids.c	2010-10-10 22:53:44.329736684 +0200
+@@ -84,6 +84,7 @@
+ 	/* 1 Gigabit */
+ 	{"NAND 128MiB 1,8V 8-bit",	0xA1, 0, 128, 0, LP_OPTIONS},
+ 	{"NAND 128MiB 3,3V 8-bit",	0xF1, 0, 128, 0, LP_OPTIONS},
++	{"NAND 128MiB 3,3V 8-bit",	0xD1, 0, 128, 0, LP_OPTIONS},
+ 	{"NAND 128MiB 1,8V 16-bit",	0xB1, 0, 128, 0, LP_OPTIONS16},
+ 	{"NAND 128MiB 3,3V 16-bit",	0xC1, 0, 128, 0, LP_OPTIONS16},
+ 
+diff -urN barebox-2010.10.0/Makefile barebox-2010.10.0-vmx25/Makefile
+--- barebox-2010.10.0/Makefile	2010-10-02 13:00:45.000000000 +0200
++++ barebox-2010.10.0-vmx25/Makefile	2010-10-06 15:13:29.145895633 +0200
+@@ -163,8 +163,10 @@
+ # Alternatively CROSS_COMPILE can be set in the environment.
+ # Default value for CROSS_COMPILE is not to prefix executables
+ 
+-ARCH            ?= sandbox
+-CROSS_COMPILE   ?=
++#ARCH            ?= sandbox
++ARCH            ?= arm
++#CROSS_COMPILE   ?=
++CROSS_COMPILE   ?= arm-none-linux-gnueabi-
+ 
+ # Architecture as present in compile.h
+ UTS_MACHINE := $(ARCH)
diff --git a/recipes/barebox/barebox-2010.10/vmx25/defconfig b/recipes/barebox/barebox-2010.10/vmx25/defconfig
new file mode 100644
index 0000000..654a357
--- /dev/null
+++ b/recipes/barebox/barebox-2010.10/vmx25/defconfig
@@ -0,0 +1,254 @@
+#
+# Automatically generated make config: don't edit
+# Linux barebox version: 2010.10.0
+# Thu Jan 13 11:59:00 2011
+#
+# CONFIG_BOARD_LINKER_SCRIPT is not set
+CONFIG_GENERIC_LINKER_SCRIPT=y
+CONFIG_ARM=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_EP93XX is not set
+CONFIG_ARCH_IMX=y
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_S3C24xx is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+
+#
+# processor features
+#
+CONFIG_ARCH_TEXT_BASE=0x81f00000
+CONFIG_BOARDINFO="Voipac VMX25"
+CONFIG_ARCH_HAS_FEC_IMX=y
+# CONFIG_ARCH_IMX_INTERNAL_BOOT is not set
+
+#
+# Freescale i.MX System-on-Chip
+#
+# CONFIG_ARCH_IMX1 is not set
+# CONFIG_ARCH_IMX21 is not set
+CONFIG_ARCH_IMX25=y
+# CONFIG_ARCH_IMX27 is not set
+# CONFIG_ARCH_IMX31 is not set
+# CONFIG_ARCH_IMX35 is not set
+# CONFIG_MACH_EUKREA_CPUIMX25 is not set
+# CONFIG_MACH_FREESCALE_MX25_3STACK is not set
+CONFIG_MACH_VMX25=y
+
+#
+# Board specific settings       
+#
+
+#
+# i.MX specific settings        
+#
+# CONFIG_IMX_CLKO is not set
+CONFIG_IMX_IIM=y
+CONFIG_IMX_IIM_FUSE_BLOW=y
+CONFIG_AEABI=y
+
+#
+# Arm specific settings         
+#
+CONFIG_CMD_ARM_CPUINFO=y
+# CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set
+CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG"
+CONFIG_HAS_KALLSYMS=y
+CONFIG_HAS_MODULES=y
+CONFIG_CMD_MEMORY=y
+CONFIG_ENV_HANDLING=y
+CONFIG_GENERIC_GPIO=y
+
+#
+# General Settings              
+#
+CONFIG_LOCALVERSION_AUTO=y
+
+#
+# memory layout                 
+#
+CONFIG_HAVE_MMU=y
+# CONFIG_MMU is not set
+CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y
+CONFIG_TEXT_BASE=0x81f00000
+CONFIG_HAVE_CONFIGURABLE_MEMORY_LAYOUT=y
+CONFIG_MEMORY_LAYOUT_DEFAULT=y
+# CONFIG_MEMORY_LAYOUT_FIXED is not set
+CONFIG_STACK_SIZE=0x8000
+CONFIG_MALLOC_SIZE=0x800000
+# CONFIG_BROKEN is not set
+# CONFIG_EXPERIMENTAL is not set
+CONFIG_MACH_HAS_LOWLEVEL_INIT=y
+CONFIG_MACH_DO_LOWLEVEL_INIT=y
+CONFIG_PROMPT="barebox:"
+CONFIG_BAUDRATE=115200
+CONFIG_LONGHELP=y
+CONFIG_CBSIZE=1024
+CONFIG_MAXARGS=16
+CONFIG_SHELL_HUSH=y
+# CONFIG_SHELL_SIMPLE is not set
+CONFIG_GLOB=y
+CONFIG_PROMPT_HUSH_PS2="> "
+# CONFIG_HUSH_FANCY_PROMPT is not set
+CONFIG_CMDLINE_EDITING=y
+CONFIG_AUTO_COMPLETE=y
+# CONFIG_MENU is not set
+CONFIG_DYNAMIC_CRC_TABLE=y
+CONFIG_ERRNO_MESSAGES=y
+# CONFIG_TIMESTAMP is not set
+CONFIG_CONSOLE_FULL=y
+CONFIG_CONSOLE_ACTIVATE_FIRST=y
+# CONFIG_OF_FLAT_TREE is not set
+# CONFIG_PARTITION is not set
+CONFIG_DEFAULT_ENVIRONMENT=y
+CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/vmx25/env"
+
+#
+# Debugging                     
+#
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_ENABLE_FLASH_NOISE is not set
+# CONFIG_ENABLE_PARTITION_NOISE is not set
+# CONFIG_ENABLE_DEVICE_NOISE is not set
+
+#
+# Commands                      
+#
+
+#
+# scripting                     
+#
+CONFIG_CMD_EDIT=y
+CONFIG_CMD_SLEEP=y
+CONFIG_CMD_SAVEENV=y
+CONFIG_CMD_LOADENV=y
+CONFIG_CMD_EXPORT=y
+CONFIG_CMD_PRINTENV=y
+CONFIG_CMD_READLINE=y
+CONFIG_CMD_TRUE=y
+CONFIG_CMD_FALSE=y
+
+#
+# file commands                 
+#
+CONFIG_CMD_LS=y
+CONFIG_CMD_RM=y
+CONFIG_CMD_CAT=y
+CONFIG_CMD_MKDIR=y
+CONFIG_CMD_RMDIR=y
+CONFIG_CMD_CP=y
+CONFIG_CMD_PWD=y
+CONFIG_CMD_CD=y
+# CONFIG_CMD_MOUNT is not set
+# CONFIG_CMD_UMOUNT is not set
+
+#
+# console                       
+#
+CONFIG_CMD_CLEAR=y
+CONFIG_CMD_ECHO=y
+# CONFIG_CMD_ECHO_E is not set
+
+#
+# memory                        
+#
+# CONFIG_CMD_LOADB is not set
+CONFIG_CMD_MEMINFO=y
+# CONFIG_CMD_CRC is not set
+CONFIG_CMD_MTEST=y
+# CONFIG_CMD_MTEST_ALTERNATIVE is not set
+
+#
+# flash                         
+#
+CONFIG_CMD_FLASH=y
+# CONFIG_CMD_UBI is not set
+
+#
+# booting                       
+#
+# CONFIG_CMD_BOOTM is not set
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_BOOTU is not set
+# CONFIG_CMD_LINUX16 is not set
+CONFIG_CMD_RESET=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_TIMEOUT=y
+CONFIG_CMD_PARTITION=y
+CONFIG_CMD_TEST=y
+CONFIG_CMD_VERSION=y
+CONFIG_CMD_HELP=y
+CONFIG_CMD_DEVINFO=y
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_UNLZO is not set
+CONFIG_NET=y
+CONFIG_NET_DHCP=y
+# CONFIG_NET_NFS is not set
+CONFIG_NET_PING=y
+CONFIG_NET_TFTP=y
+# CONFIG_NET_TFTP_PUSH is not set
+# CONFIG_NET_NETCONSOLE is not set
+# CONFIG_NET_RESOLV is not set
+
+#
+# Drivers                       
+#
+
+#
+# serial drivers                
+#
+# CONFIG_DRIVER_SERIAL_ARM_DCC is not set
+CONFIG_DRIVER_SERIAL_IMX=y
+# CONFIG_DRIVER_SERIAL_NS16550 is not set
+CONFIG_MIIDEV=y
+
+#
+# Network drivers               
+#
+# CONFIG_DRIVER_NET_SMC911X is not set
+# CONFIG_DRIVER_NET_SMC91111 is not set
+CONFIG_DRIVER_NET_FEC_IMX=y
+
+#
+# SPI drivers                   
+#
+# CONFIG_SPI is not set
+# CONFIG_I2C is not set
+
+#
+# flash drivers                 
+#
+# CONFIG_DRIVER_CFI is not set
+CONFIG_MTD=y
+CONFIG_NAND=y
+CONFIG_NAND_IMX=y
+CONFIG_NAND_IMX_BOOT=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_UBI is not set
+# CONFIG_ATA is not set
+# CONFIG_USB is not set
+# CONFIG_USB_GADGET is not set
+# CONFIG_VIDEO is not set
+
+#
+# Filesystem support            
+#
+# CONFIG_FS_CRAMFS is not set
+CONFIG_FS_RAMFS=y
+CONFIG_FS_DEVFS=y
+CONFIG_CRC32=y
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+# CONFIG_PROCESS_ESCAPE_SEQUENCE is not set
-- 
1.7.0.4




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
  2011-01-28 13:15 [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25 sujak.marek
@ 2011-01-28 18:44 ` Eric Bénard
  2011-01-29  7:34   ` Marek Sujak
  2011-01-31  9:03   ` Marek Sujak
  0 siblings, 2 replies; 6+ messages in thread
From: Eric Bénard @ 2011-01-28 18:44 UTC (permalink / raw)
  To: openembedded-devel

Hi Marek,

On 28/01/2011 14:15, sujak.marek wrote:
> * Added default config file
> * Added patch file
> ** custom init for ram chips
> ** added vmx25 MACH IDs
> ** custom init scripts
>
> Signed-off-by: sujak.marek<sujak.marek@gmail.com>

I think you should merge this patch with the one adding the barebox 2010.10 
recipe. Or add a plain barebox 2010.10 recipe and then add

+DEFAULT_PREFERENCE_vmx25 = "1"
and
+SRC_URI_append_vmx25 = "\
+	file://barebox_2010.10-vmx25-20110112.patch; \
+	"

with the corresponding patch.

Eric



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
  2011-01-28 18:44 ` Eric Bénard
@ 2011-01-29  7:34   ` Marek Sujak
  2011-01-29 14:31     ` Petr Štetiar
  2011-01-31  9:03   ` Marek Sujak
  1 sibling, 1 reply; 6+ messages in thread
From: Marek Sujak @ 2011-01-29  7:34 UTC (permalink / raw)
  To: openembedded-devel

Hi Eric

On Fri, Jan 28, 2011 at 7:44 PM, Eric Bénard <eric@eukrea.com> wrote:

> I think you should merge this patch with the one adding the barebox 2010.10
> recipe. Or add a plain barebox 2010.10 recipe and then add ...
>

Yes, this is much more clean solution. I will to that as you recommended
1. first patch - universal barebox 2010.10 recipe
2. second patch - support for vmx25

I have  a question about these commits.
Should i reset git to default state (or clone it again) and then commit new
files?
Or make commit that will firstly remove these files and them upload them in
correct order (firstly raw support, then architecture depended patch)?

Best regards,
 marek


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
  2011-01-29  7:34   ` Marek Sujak
@ 2011-01-29 14:31     ` Petr Štetiar
  2011-01-29 14:57       ` Eric Bénard
  0 siblings, 1 reply; 6+ messages in thread
From: Petr Štetiar @ 2011-01-29 14:31 UTC (permalink / raw)
  To: openembedded-devel

Marek Sujak <sujak.marek@gmail.com> [2011-01-29 08:34:45]:

> I have  a question about these commits.  Should i reset git to default state
> (or clone it again) and then commit new files?  Or make commit that will
> firstly remove these files and them upload them in correct order (firstly
> raw support, then architecture depended patch)?

If I understand your question correctly, than you don't need to clone/reset
anything at all. You should just learn git-rebase or maybe just the
git-cherry-pick for the beginning:

$ git checkout -b oe-upstream origin/master
$ git cherry-pick -n <hash of '[PATCH v2] barebox: added recipe for barebox v 2010.10'>
$ vim barebox-recipe # remove the vmx25 bits from the recipe
$ git add barebox-recipe && git commit -a -m 'barebox: added barebox 2010.10'

$ git cherry-pick -n <hash of 'barebox: patches for barebox 2010.10 to support vmx25'>
$ vim barebox-recipe # add vmx25 bits and vmx25 patch
$ git add barebox-recipe barebox-vmx25-patch
$ git commit -a -m 'barebox: add support for vmx25 machine'

$ #test-build the changes now
$ #git format v3 of your patchset
$ #review the patches
$ #git send the patches

BTW, it's really a lot easier and faster with git-rebase, it's worth learning it.

-- ynezz



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
  2011-01-29 14:31     ` Petr Štetiar
@ 2011-01-29 14:57       ` Eric Bénard
  0 siblings, 0 replies; 6+ messages in thread
From: Eric Bénard @ 2011-01-29 14:57 UTC (permalink / raw)
  To: openembedded-devel

On 29/01/2011 15:31, Petr Štetiar wrote:
> Marek Sujak<sujak.marek@gmail.com>  [2011-01-29 08:34:45]:
>
>> I have  a question about these commits.  Should i reset git to default state
>> (or clone it again) and then commit new files?  Or make commit that will
>> firstly remove these files and them upload them in correct order (firstly
>> raw support, then architecture depended patch)?
>
> If I understand your question correctly, than you don't need to clone/reset
> anything at all. You should just learn git-rebase or maybe just the
> git-cherry-pick for the beginning:
>
> $ git checkout -b oe-upstream origin/master
> $ git cherry-pick -n<hash of '[PATCH v2] barebox: added recipe for barebox v 2010.10'>
> $ vim barebox-recipe # remove the vmx25 bits from the recipe
> $ git add barebox-recipe&&  git commit -a -m 'barebox: added barebox 2010.10'
>
> $ git cherry-pick -n<hash of 'barebox: patches for barebox 2010.10 to support vmx25'>
> $ vim barebox-recipe # add vmx25 bits and vmx25 patch
> $ git add barebox-recipe barebox-vmx25-patch
> $ git commit -a -m 'barebox: add support for vmx25 machine'
>
> $ #test-build the changes now
> $ #git format v3 of your patchset
> $ #review the patches
> $ #git send the patches
>
> BTW, it's really a lot easier and faster with git-rebase, it's worth learning it.
>
yes, for "git rebase --interactive"
look : http://book.git-scm.com/4_interactive_rebasing.html

that will let you edit/amend your commits or squash them together or reorder 
them easily

Eric



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25
  2011-01-28 18:44 ` Eric Bénard
  2011-01-29  7:34   ` Marek Sujak
@ 2011-01-31  9:03   ` Marek Sujak
  1 sibling, 0 replies; 6+ messages in thread
From: Marek Sujak @ 2011-01-31  9:03 UTC (permalink / raw)
  To: openembedded-devel

Hi Eric

>
> I think you should merge this patch with the one adding the barebox 2010.10
> recipe. Or add a plain barebox 2010.10 recipe and then add
>
> +DEFAULT_PREFERENCE_vmx25 = "1"
> and
> +SRC_URI_append_vmx25 = "\
> +       file://barebox_2010.10-vmx25-20110112.patch; \
> +       "
>
> with the corresponding patch.
>
>

I just uploaded it this way. I was unable to fix it in the correct way by
git cherry-pick or git rebase. It worked at the beginning, but then i ruined
it by multiple modification and by pressing random keys on keyboard.
But because of yours and Petrs help i may succeed next time.

Thanks
Marek


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-01-31  9:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-28 13:15 [PATCH v2] barebox: patches for barebox 2010.10 to support vmx25 sujak.marek
2011-01-28 18:44 ` Eric Bénard
2011-01-29  7:34   ` Marek Sujak
2011-01-29 14:31     ` Petr Štetiar
2011-01-29 14:57       ` Eric Bénard
2011-01-31  9:03   ` Marek Sujak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.