Patchwork [U-Boot,2/2] ARM: add support for LaCie 2Big Network v2

login
register
mail settings
Submitter Simon Guinot
Date Nov. 1, 2011, 1:46 p.m.
Message ID <1320155177-7317-3-git-send-email-simon@sequanux.org>
Download mbox | patch
Permalink /patch/123073/
State Changes Requested
Headers show

Comments

Simon Guinot - Nov. 1, 2011, 1:46 p.m.
From: Simon Guinot <simon.guinot@sequanux.org>

This patch adds support for the LaCie 2Big Network v2 board, based on
the Marvell Kirkwood 6281 SoC.

Additional information is available at:
http://lacie-nas.org/doku.php?id=2big_network_v2

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
---
 MAINTAINERS                         |    1 +
 board/LaCie/net2big_v2/Makefile     |   49 +++++++++
 board/LaCie/net2big_v2/kwbimage.cfg |  162 ++++++++++++++++++++++++++++++
 board/LaCie/net2big_v2/net2big_v2.c |  188 +++++++++++++++++++++++++++++++++++
 board/LaCie/net2big_v2/net2big_v2.h |   43 ++++++++
 boards.cfg                          |    1 +
 include/configs/net2big_v2.h        |  161 ++++++++++++++++++++++++++++++
 7 files changed, 605 insertions(+), 0 deletions(-)
 create mode 100644 board/LaCie/net2big_v2/Makefile
 create mode 100644 board/LaCie/net2big_v2/kwbimage.cfg
 create mode 100644 board/LaCie/net2big_v2/net2big_v2.c
 create mode 100644 board/LaCie/net2big_v2/net2big_v2.h
 create mode 100644 include/configs/net2big_v2.h
Prafulla Wadaskar - Nov. 2, 2011, 6:25 a.m.
> -----Original Message-----
> From: Simon Guinot [mailto:simon@sequanux.org]
> Sent: Tuesday, November 01, 2011 7:16 PM
> To: Prafulla Wadaskar
> Cc: u-boot@lists.denx.de; Simon Guinot
> Subject: [PATCH 2/2] ARM: add support for LaCie 2Big Network v2
> 
> From: Simon Guinot <simon.guinot@sequanux.org>
> 
> This patch adds support for the LaCie 2Big Network v2 board,
> based on
> the Marvell Kirkwood 6281 SoC.
> 
> Additional information is available at:
> http://lacie-nas.org/doku.php?id=2big_network_v2
> 
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> ---
>  MAINTAINERS                         |    1 +
>  board/LaCie/net2big_v2/Makefile     |   49 +++++++++
>  board/LaCie/net2big_v2/kwbimage.cfg |  162
> ++++++++++++++++++++++++++++++
>  board/LaCie/net2big_v2/net2big_v2.c |  188
> +++++++++++++++++++++++++++++++++++
>  board/LaCie/net2big_v2/net2big_v2.h |   43 ++++++++
>  boards.cfg                          |    1 +
>  include/configs/net2big_v2.h        |  161
> ++++++++++++++++++++++++++++++
>  7 files changed, 605 insertions(+), 0 deletions(-)
>  create mode 100644 board/LaCie/net2big_v2/Makefile
>  create mode 100644 board/LaCie/net2big_v2/kwbimage.cfg
>  create mode 100644 board/LaCie/net2big_v2/net2big_v2.c
>  create mode 100644 board/LaCie/net2big_v2/net2big_v2.h
>  create mode 100644 include/configs/net2big_v2.h
> 
...snip...
> diff --git a/boards.cfg b/boards.cfg
> index 17effc8..6bb567b 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -138,6 +138,7 @@ km_kirkwood_pci              arm
> arm926ejs   km_arm              keymile
>  mgcoge3un                    arm         arm926ejs   km_arm
> keymile        kirkwood
>  portl2                       arm         arm926ejs   km_arm
> keymile        kirkwood
>  inetspace_v2                 arm         arm926ejs
> netspace_v2         LaCie          kirkwood
> netspace_v2:INETSPACE_V2
> +net2big_v2                   arm         arm926ejs
> net2big_v2          LaCie          kirkwood
>  netspace_v2                  arm         arm926ejs
> netspace_v2         LaCie          kirkwood
> netspace_v2:NETSPACE_V2
>  netspace_max_v2              arm         arm926ejs
> netspace_v2         LaCie          kirkwood
> netspace_v2:NETSPACE_MAX_V2

How much is the delta for this board compared to other LaCie boards? Is kwbimage.cfg is copy paste from other boards that you have?

I mean can you manage to support this board with :NET2BIG_V2 here?

Regards..
Prafulla . . .
Simon Guinot - Nov. 2, 2011, 8:52 a.m.
Hi Prafulla,

On Tue, Nov 01, 2011 at 11:25:21PM -0700, Prafulla Wadaskar wrote:
> 
> 
> > -----Original Message-----
> > From: Simon Guinot [mailto:simon@sequanux.org]
> > Sent: Tuesday, November 01, 2011 7:16 PM
> > To: Prafulla Wadaskar
> > Cc: u-boot@lists.denx.de; Simon Guinot
> > Subject: [PATCH 2/2] ARM: add support for LaCie 2Big Network v2
> > 
> > From: Simon Guinot <simon.guinot@sequanux.org>
> > 
> > This patch adds support for the LaCie 2Big Network v2 board,
> > based on
> > the Marvell Kirkwood 6281 SoC.
> > 
> > Additional information is available at:
> > http://lacie-nas.org/doku.php?id=2big_network_v2
> > 
> > Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> > ---
> >  MAINTAINERS                         |    1 +
> >  board/LaCie/net2big_v2/Makefile     |   49 +++++++++
> >  board/LaCie/net2big_v2/kwbimage.cfg |  162
> > ++++++++++++++++++++++++++++++
> >  board/LaCie/net2big_v2/net2big_v2.c |  188
> > +++++++++++++++++++++++++++++++++++
> >  board/LaCie/net2big_v2/net2big_v2.h |   43 ++++++++
> >  boards.cfg                          |    1 +
> >  include/configs/net2big_v2.h        |  161
> > ++++++++++++++++++++++++++++++
> >  7 files changed, 605 insertions(+), 0 deletions(-)
> >  create mode 100644 board/LaCie/net2big_v2/Makefile
> >  create mode 100644 board/LaCie/net2big_v2/kwbimage.cfg
> >  create mode 100644 board/LaCie/net2big_v2/net2big_v2.c
> >  create mode 100644 board/LaCie/net2big_v2/net2big_v2.h
> >  create mode 100644 include/configs/net2big_v2.h
> > 
> ...snip...
> > diff --git a/boards.cfg b/boards.cfg
> > index 17effc8..6bb567b 100644
> > --- a/boards.cfg
> > +++ b/boards.cfg
> > @@ -138,6 +138,7 @@ km_kirkwood_pci              arm
> > arm926ejs   km_arm              keymile
> >  mgcoge3un                    arm         arm926ejs   km_arm
> > keymile        kirkwood
> >  portl2                       arm         arm926ejs   km_arm
> > keymile        kirkwood
> >  inetspace_v2                 arm         arm926ejs
> > netspace_v2         LaCie          kirkwood
> > netspace_v2:INETSPACE_V2
> > +net2big_v2                   arm         arm926ejs
> > net2big_v2          LaCie          kirkwood
> >  netspace_v2                  arm         arm926ejs
> > netspace_v2         LaCie          kirkwood
> > netspace_v2:NETSPACE_V2
> >  netspace_max_v2              arm         arm926ejs
> > netspace_v2         LaCie          kirkwood
> > netspace_v2:NETSPACE_MAX_V2
> 
> How much is the delta for this board compared to other LaCie boards? Is kwbimage.cfg is copy paste from other boards that you have?

There is some differences. For example, the RAM frequency is 400MHz for
the net2big_v2 and 267MHz for the netspace_v2.

> 
> I mean can you manage to support this board with :NET2BIG_V2 here?

No, but I can factorize a lot of code. I am working on it.

Regards,

Simon

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 21d1fef..8c2b3a6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -649,6 +649,7 @@  Simon Guinot <simon.guinot@sequanux.org>
 	inetspace_v2	ARM926EJS (Kirkwood SoC)
 	netspace_v2	ARM926EJS (Kirkwood SoC)
 	netspace_max_v2	ARM926EJS (Kirkwood SoC)
+	net2big_v2	ARM926EJS (Kirkwood SoC)
 
 Igor Grinberg <grinberg@compulab.co.il>
 
diff --git a/board/LaCie/net2big_v2/Makefile b/board/LaCie/net2big_v2/Makefile
new file mode 100644
index 0000000..4bacef4
--- /dev/null
+++ b/board/LaCie/net2big_v2/Makefile
@@ -0,0 +1,49 @@ 
+#
+# Copyright (C) 2011 Simon Guinot <sguinot@lacie.com>
+#
+# Based on Kirkwood support:
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# Written-by: Prafulla Wadaskar <prafulla@marvell.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.
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS	:= net2big_v2.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))
+
+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/LaCie/net2big_v2/kwbimage.cfg b/board/LaCie/net2big_v2/kwbimage.cfg
new file mode 100644
index 0000000..8d9f153
--- /dev/null
+++ b/board/LaCie/net2big_v2/kwbimage.cfg
@@ -0,0 +1,162 @@ 
+#
+# Copyright (C) 2011 Simon Guinot <sguinot@lacie.com>
+#
+# Based on Kirkwood support:
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# Written-by: Prafulla Wadaskar <prafulla@marvell.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.
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+
+# Boot Media configurations
+BOOT_FROM	spi	# Boot from SPI flash
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0 interface pad voltage to 1.8V
+DATA 0xFFD100e0 0x1B1B1B9B
+
+#Dram initalization for SINGLE x16 CL=5 @ 400MHz
+DATA 0xFFD01400 0x43000C30	# DDR Configuration register
+# bit13-0:  0xa00 (2560 DDR2 clks refresh rate)
+# bit23-14: zero
+# bit24: 1= enable exit self refresh mode on DDR access
+# bit25: 1 required
+# bit29-26: zero
+# bit31-30: 01
+
+DATA 0xFFD01404 0x38743000	# DDR Controller Control Low
+# bit 4:    0=addr/cmd in smame cycle
+# bit 5:    0=clk is driven during self refresh, we don't care for APX
+# bit 6:    0=use recommended falling edge of clk for addr/cmd
+# bit14:    0=input buffer always powered up
+# bit18:    1=cpu lock transaction enabled
+# bit23-20: 5=recommended value for CL=5 and STARTBURST_DEL disabled bit31=0
+# bit27-24: 8= CL+3, STARTBURST sample stages, for freqs 400MHz, unbuffered DIMM
+# bit30-28: 3 required
+# bit31:    0=no additional STARTBURST delay
+
+DATA 0xFFD01408 0x22125451	# DDR Timing (Low) (active cycles value +1)
+# bit7-4:   TRCD
+# bit11- 8: TRP
+# bit15-12: TWR
+# bit19-16: TWTR
+# bit20:    TRAS msb
+# bit23-21: 0x0
+# bit27-24: TRRD
+# bit31-28: TRTP
+
+DATA 0xFFD0140C 0x00000A32	#  DDR Timing (High)
+# bit6-0:   TRFC
+# bit8-7:   TR2R
+# bit10-9:  TR2W
+# bit12-11: TW2W
+# bit31-13: zero required
+
+DATA 0xFFD01410 0x0000CCCC	#  DDR Address Control
+# bit1-0:   01, Cs0width=x16
+# bit3-2:   11, Cs0size=1Gb
+# bit5-4:   00, Cs2width=nonexistent
+# bit7-6:   00, Cs1size =nonexistent
+# bit9-8:   00, Cs2width=nonexistent
+# bit11-10: 00, Cs2size =nonexistent
+# bit13-12: 00, Cs3width=nonexistent
+# bit15-14: 00, Cs3size =nonexistent
+# bit16:    0,  Cs0AddrSel
+# bit17:    0,  Cs1AddrSel
+# bit18:    0,  Cs2AddrSel
+# bit19:    0,  Cs3AddrSel
+# bit31-20: 0 required
+
+DATA 0xFFD01414 0x00000000	#  DDR Open Pages Control
+# bit0:    0,  OpenPage enabled
+# bit31-1: 0 required
+
+DATA 0xFFD01418 0x00000000	#  DDR Operation
+# bit3-0:   0x0, DDR cmd
+# bit31-4:  0 required
+
+DATA 0xFFD0141C 0x00000662	#  DDR Mode
+# bit2-0:   2, BurstLen=2 required
+# bit3:     0, BurstType=0 required
+# bit6-4:   4, CL=5
+# bit7:     0, TestMode=0 normal
+# bit8:     0, DLL reset=0 normal
+# bit11-9:  6, auto-precharge write recovery ????????????
+# bit12:    0, PD must be zero
+# bit31-13: 0 required
+
+DATA 0xFFD01420 0x00000044	#  DDR Extended Mode
+# bit0:    0,  DDR DLL enabled
+# bit1:    1,  DDR drive strenght reduced
+# bit2:    1,  DDR ODT control lsd enabled
+# bit5-3:  000, required
+# bit6:    1,  DDR ODT control msb, enabled
+# bit9-7:  000, required
+# bit10:   0,  differential DQS enabled
+# bit11:   0, required
+# bit12:   0, DDR output buffer enabled
+# bit31-13: 0 required
+
+DATA 0xFFD01424 0x0000F17F	#  DDR Controller Control High
+# bit2-0:  111, required
+# bit3  :  1  , MBUS Burst Chop disabled
+# bit6-4:  111, required
+# bit7  :  1  , D2P Latency enabled
+# bit8  :  1  , add writepath sample stage, must be 1 for DDR freq >= 300MHz
+# bit9  :  0  , no half clock cycle addition to dataout
+# bit10 :  0  , 1/4 clock cycle skew enabled for addr/ctl signals
+# bit11 :  0  , 1/4 clock cycle skew disabled for write mesh
+# bit15-12: 1111 required
+# bit31-16: 0    required
+
+DATA 0xFFD01428 0x00096630	# DDR2 ODT Read Timing (default values)
+DATA 0xFFD0147C 0x00009663	# DDR2 ODT Write Timing (default values)
+
+DATA 0xFFD01500 0x00000000	# CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x0FFFFFF1	# CS[0]n Size
+# bit0:    1,  Window enabled
+# bit1:    0,  Write Protect disabled
+# bit3-2:  00, CS0 hit selected
+# bit23-4: ones, required
+# bit31-24: 0x07, Size (i.e. 128MB)
+
+DATA 0xFFD0150C 0x00000000	# CS[1]n Size, window disabled
+DATA 0xFFD01514 0x00000000	# CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000	# CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x00010000	#  DDR ODT Control (Low)
+# bit3-0:  1, ODT0Rd, MODT[0] asserted during read from DRAM CS0
+# bit19-16:1, ODT0Wr, MODT[0] asserted during write to DRAM CS0
+
+DATA 0xFFD01498 0x00000000	#  DDR ODT Control (High)
+# bit1-0:  00, ODT0 controlled by ODT Control (low) register above
+# bit3-2:  01, ODT1 active NEVER!
+# bit31-4: zero, required
+
+DATA 0xFFD0149C 0x0000E40F	# CPU ODT Control
+# bit3-0:  1, ODT0Rd, Internal ODT asserted during read from DRAM bank0
+# bit7-4:  1, ODT0Wr, Internal ODT asserted during write to DRAM bank0
+# bit11-10:1, DQ_ODTSel. ODT select turned on
+
+DATA 0xFFD01480 0x00000001	# DDR Initialization Control
+#bit0=1, enable DDR init upon this register write
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/board/LaCie/net2big_v2/net2big_v2.c b/board/LaCie/net2big_v2/net2big_v2.c
new file mode 100644
index 0000000..16d1405
--- /dev/null
+++ b/board/LaCie/net2big_v2/net2big_v2.c
@@ -0,0 +1,188 @@ 
+/*
+ * Copyright (C) 2011 Simon Guinot <sguinot@lacie.com>
+ *
+ * Based on Kirkwood support:
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.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.
+ */
+
+#include <common.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <command.h>
+#include <i2c.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/kirkwood.h>
+#include <asm/arch/mpp.h>
+#include <asm/arch/gpio.h>
+#include "net2big_v2.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_early_init_f(void)
+{
+	/* GPIO configuration */
+	kw_config_gpio(NET2BIG_V2_OE_VAL_LOW, NET2BIG_V2_OE_VAL_HIGH,
+			NET2BIG_V2_OE_LOW, NET2BIG_V2_OE_HIGH);
+
+	/* Multi-Purpose Pins Functionality configuration */
+	u32 kwmpp_config[] = {
+		MPP0_SPI_SCn,
+		MPP1_SPI_MOSI,
+		MPP2_SPI_SCK,
+		MPP3_SPI_MISO,
+		MPP6_SYSRST_OUTn,
+		MPP7_GPO,		/* Request power-off */
+		MPP8_TW_SDA,
+		MPP9_TW_SCK,
+		MPP10_UART0_TXD,
+		MPP11_UART0_RXD,
+		MPP13_GPIO,		/* Rear power switch (on|auto) */
+		MPP14_GPIO,		/* USB fuse alarm */
+		MPP15_GPIO,		/* Rear power switch (auto|off) */
+		MPP16_GPIO,		/* SATA HDD1 power */
+		MPP17_GPIO,		/* SATA HDD2 power */
+		MPP20_SATA1_ACTn,
+		MPP21_SATA0_ACTn,
+		MPP24_GPIO,		/* USB mode select */
+		MPP26_GPIO,		/* USB device vbus */
+		MPP28_GPIO,		/* USB enable host vbus */
+		MPP29_GPIO,		/* GPIO extension ALE */
+		MPP34_GPIO,		/* Rear Push button 0=on 1=off */
+		MPP35_GPIO,		/* Inhibit switch power-off */
+		MPP36_GPIO,		/* SATA HDD1 presence */
+		MPP37_GPIO,		/* SATA HDD2 presence */
+		MPP40_GPIO,		/* eSATA presence */
+		MPP44_GPIO,		/* GPIO extension (data 0) */
+		MPP45_GPIO,		/* GPIO extension (data 1) */
+		MPP46_GPIO,		/* GPIO extension (data 2) */
+		MPP47_GPIO,		/* GPIO extension (addr 0) */
+		MPP48_GPIO,		/* GPIO extension (addr 1) */
+		MPP49_GPIO,		/* GPIO extension (addr 2) */
+		0
+	};
+
+	kirkwood_mpp_conf(kwmpp_config);
+
+	return 0;
+}
+
+int board_init(void)
+{
+	/* Machine number */
+	gd->bd->bi_arch_number = MACH_TYPE_NET2BIG_V2;
+
+	/* Boot parameters address */
+	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+	return 0;
+}
+
+int misc_init_r(void)
+{
+#ifdef CONFIG_CMD_I2C
+	if (!getenv("ethaddr")) {
+		ushort version;
+		uchar mac[6];
+		int ret;
+
+		/* I2C-0 for on-board EEPROM */
+		i2c_set_bus_num(0);
+
+		/* Check layout version for EEPROM data */
+		ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0,
+				CONFIG_SYS_I2C_EEPROM_ADDR_LEN,
+				(uchar *) &version, 2);
+		if (ret != 0) {
+			printf("Error: failed to read I2C EEPROM @%02x\n",
+				CONFIG_SYS_I2C_EEPROM_ADDR);
+			return ret;
+		}
+		version = be16_to_cpu(version);
+		if (version < 1 || version > 3) {
+			printf("Error: unknown version %d for EEPROM data\n",
+				version);
+			return -1;
+		}
+
+		/* Read Ethernet MAC address from EEPROM */
+		ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 2,
+				CONFIG_SYS_I2C_EEPROM_ADDR_LEN, mac, 6);
+		if (ret != 0) {
+			printf("Error: failed to read I2C EEPROM @%02x\n",
+				CONFIG_SYS_I2C_EEPROM_ADDR);
+			return ret;
+		}
+		eth_setenv_enetaddr("ethaddr", mac);
+	}
+#endif /* CONFIG_CMD_I2C */
+
+	return 0;
+}
+
+void mv_phy_88e1116_init(char *name)
+{
+	u16 reg;
+	u16 devadr;
+
+	if (miiphy_set_current_dev(name))
+		return;
+
+	/* command to read PHY dev address */
+	if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
+		printf("Err..(%s) could not read PHY dev address\n", __func__);
+		return;
+	}
+
+	/*
+	 * Enable RGMII delay on Tx and Rx for CPU port
+	 * Ref: sec 4.7.2 of chip datasheet
+	 */
+	miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
+	miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, &reg);
+	reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
+	miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
+	miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
+
+	/* reset the phy */
+	if (miiphy_read(name, devadr, MII_BMCR, &reg) != 0) {
+		printf("Err..(%s) PHY status read failed\n", __func__);
+		return;
+	}
+	if (miiphy_write(name, devadr, MII_BMCR, reg | 0x8000) != 0) {
+		printf("Err..(%s) PHY reset failed\n", __func__);
+		return;
+	}
+
+	debug("88E1116 Initialized on %s\n", name);
+}
+
+/* Configure and initialize PHY */
+void reset_phy(void)
+{
+	mv_phy_88e1116_init("egiga0");
+}
+
+/* Return GPIO push button status */
+static int
+do_read_push_button(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	return !kw_gpio_get_value(NET2BIG_V2_GPIO_PUSH_BUTTON);
+}
+
+U_BOOT_CMD(button, 1, 1, do_read_push_button,
+	   "Return GPIO push button status 0=off 1=on", "");
diff --git a/board/LaCie/net2big_v2/net2big_v2.h b/board/LaCie/net2big_v2/net2big_v2.h
new file mode 100644
index 0000000..bbe67af
--- /dev/null
+++ b/board/LaCie/net2big_v2/net2big_v2.h
@@ -0,0 +1,43 @@ 
+/*
+ * Copyright (C) 2011 Simon Guinot <sguinot@lacie.com>
+ *
+ * Based on Kirkwood support:
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.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.
+ */
+
+#ifndef NET2BIG_V2_H
+#define NET2BIG_V2_H
+
+/* GPIO configuration */
+#define NET2BIG_V2_OE_LOW		0x0600E000
+#define NET2BIG_V2_OE_HIGH		0x00000134
+#define NET2BIG_V2_OE_VAL_LOW		0x10030000
+#define NET2BIG_V2_OE_VAL_HIGH		0x00000000
+
+/* Buttons */
+#define NET2BIG_V2_GPIO_PUSH_BUTTON	34
+
+/* PHY related */
+#define MV88E1116_LED_FCTRL_REG		10
+#define MV88E1116_CPRSP_CR3_REG		21
+#define MV88E1116_MAC_CTRL_REG		21
+#define MV88E1116_PGADR_REG		22
+#define MV88E1116_RGMII_TXTM_CTRL	(1 << 4)
+#define MV88E1116_RGMII_RXTM_CTRL	(1 << 5)
+
+#endif /* NET2BIG_V2_H */
diff --git a/boards.cfg b/boards.cfg
index 17effc8..6bb567b 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -138,6 +138,7 @@  km_kirkwood_pci              arm         arm926ejs   km_arm              keymile
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood
 portl2                       arm         arm926ejs   km_arm              keymile        kirkwood
 inetspace_v2                 arm         arm926ejs   netspace_v2         LaCie          kirkwood    netspace_v2:INETSPACE_V2
+net2big_v2                   arm         arm926ejs   net2big_v2          LaCie          kirkwood
 netspace_v2                  arm         arm926ejs   netspace_v2         LaCie          kirkwood    netspace_v2:NETSPACE_V2
 netspace_max_v2              arm         arm926ejs   netspace_v2         LaCie          kirkwood    netspace_v2:NETSPACE_MAX_V2
 dreamplug                    arm         arm926ejs   -                   Marvell        kirkwood
diff --git a/include/configs/net2big_v2.h b/include/configs/net2big_v2.h
new file mode 100644
index 0000000..9cf76d0
--- /dev/null
+++ b/include/configs/net2big_v2.h
@@ -0,0 +1,161 @@ 
+/*
+ * Copyright (C) 2011 Simon Guinot <sguinot@lacie.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.
+ */
+
+#ifndef _CONFIG_NET2BIG_V2_H
+#define _CONFIG_NET2BIG_V2_H
+
+/*
+ * Machine number information
+ */
+#define CONFIG_IDENT_STRING		" 2Big v2"
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_FEROCEON_88FR131		/* CPU Core subversion */
+#define CONFIG_KIRKWOOD			/* SOC Family Name */
+#define CONFIG_KW88F6281		/* SOC Name */
+#define CONFIG_MACH_NET2BIG_V2		/* Machine type */
+#define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_SYS_NO_FLASH		/* Declare no flash (NOR/SPI) */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_I2C
+#define CONFIG_CMD_IDE
+#define CONFIG_CMD_USB
+
+/*
+ * Core clock definition.
+ */
+#define CONFIG_SYS_TCLK			166000000 /* 166MHz */
+
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#define CONFIG_NR_DRAM_BANKS		2
+#include "mv-common.h"
+
+/* Remove or override few declarations from mv-common.h */
+#undef CONFIG_RBTREE
+#undef CONFIG_ENV_SPI_MAX_HZ
+#undef CONFIG_SYS_IDE_MAXBUS
+#undef CONFIG_SYS_IDE_MAXDEVICE
+#undef CONFIG_SYS_PROMPT
+#define CONFIG_ENV_SPI_MAX_HZ           20000000 /* 20Mhz */
+#define CONFIG_SYS_IDE_MAXBUS           1
+#define CONFIG_SYS_IDE_MAXDEVICE        1
+#define CONFIG_SYS_PROMPT		"2big2> "
+
+/*
+ * Ethernet Driver configuration
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_MISC_INIT_R /* Call misc_init_r() to initialize MAC address */
+#define CONFIG_MVGBE_PORTS		{1, 0} /* enable port 0 only */
+#define CONFIG_NETCONSOLE
+#endif
+
+/*
+ * SATA Driver configuration
+ */
+#ifdef CONFIG_MVSATA_IDE
+#define CONFIG_SYS_ATA_IDE0_OFFSET      MV_SATA_PORT0_OFFSET
+#define CONFIG_SYS_ATA_IDE1_OFFSET      MV_SATA_PORT1_OFFSET
+#endif
+
+/*
+ * Enable GPI0 support
+ */
+#define CONFIG_KIRKWOOD_GPIO
+
+/*
+ * Enable I2C support
+ */
+#ifdef CONFIG_CMD_I2C
+/* I2C EEPROM HT24LC04 (512B - 32 pages of 16 Bytes) */
+#define CONFIG_CMD_EEPROM
+#define CONFIG_SYS_I2C_EEPROM_ADDR		0x50
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	4 /* 16-byte page size */
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		1 /* 8-bit device address */
+#endif /* CONFIG_CMD_I2C */
+
+/*
+ * File systems support
+ */
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+
+/*
+ * Use the HUSH parser
+ */
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+
+/*
+ * Console configuration
+ */
+#define CONFIG_CONSOLE_MUX
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+
+/*
+ * Enable device tree support
+ */
+#define CONFIG_OF_LIBFDT
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_IN_SPI_FLASH
+#define CONFIG_ENV_SECT_SIZE		0x10000	/* 64KB */
+#define CONFIG_ENV_SIZE			0x1000	/* 4KB */
+#define CONFIG_ENV_ADDR			0x70000
+#define CONFIG_ENV_OFFSET		0x70000	/* env starts here */
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_BOOTARGS "console=ttyS0,115200"
+
+#define CONFIG_BOOTCOMMAND					\
+	"dhcp && run netconsole; "				\
+	"if run usbload || run diskload; then bootm; fi"
+
+#define CONFIG_EXTRA_ENV_SETTINGS				\
+	"stdin=serial\0"					\
+	"stdout=serial\0"					\
+	"stderr=serial\0"					\
+	"bootfile=uImage\0"					\
+	"loadaddr=0x800000\0"					\
+	"autoload=no\0"						\
+	"netconsole="						\
+		"set stdin $stdin,nc; "				\
+		"set stdout $stdout,nc; "			\
+		"set stderr $stderr,nc;\0"			\
+	"diskload=ide reset && "				\
+		"ext2load ide 0:1 $loadaddr /boot/$bootfile\0"	\
+	"usbload=usb start && "					\
+		"fatload usb 0:1 $loadaddr /boot/$bootfile\0"
+
+#endif /* _CONFIG_NET2BIG_V2_H */