From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] arm: suen3, suen3_v1, mgcoge2_arm_p1a support
Date: Thu, 07 Jan 2010 08:56:05 +0100 [thread overview]
Message-ID: <4B459395.2050301@denx.de> (raw)
This patch adds support for the Keymile SUEN3 board variants which
are based on the Marvell Kirkwood (88F6281) SoC. All variants
uses common code stored in board/keymile/km_arm/km_arm.c
mgcoge2_arm_p1a board:
This adds support for the ARM part of the mgcoge2. The suen3
target was moved to the correct suen3 p1b version. There is a
difference between the GPIO configuration between suen3 and mgcoge2.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Heiko Schocher <hs@denx.de>
---
MAINTAINERS | 2 +
MAKEALL | 4 +
Makefile | 8 +
board/keymile/common/common.c | 23 ++-
board/keymile/km_arm/Makefile | 51 +++++
board/keymile/km_arm/config.mk | 25 +++
board/keymile/km_arm/km_arm.c | 345 +++++++++++++++++++++++++++++++++
board/keymile/km_arm/sdramregs.txt | 31 +++
board/keymile/km_arm/sdramregs_v1.txt | 28 +++
include/configs/km-arm.h | 192 ++++++++++++++++++
include/configs/mgcoge2_arm_p1a.h | 93 +++++++++
include/configs/suen3.h | 100 ++++++++++
include/configs/suen3_p1a.h | 79 ++++++++
include/configs/suen3_p1b_p1c.h | 107 ++++++++++
14 files changed, 1084 insertions(+), 4 deletions(-)
create mode 100644 board/keymile/km_arm/Makefile
create mode 100644 board/keymile/km_arm/config.mk
create mode 100644 board/keymile/km_arm/km_arm.c
create mode 100644 board/keymile/km_arm/sdramregs.txt
create mode 100644 board/keymile/km_arm/sdramregs_v1.txt
create mode 100644 include/configs/km-arm.h
create mode 100644 include/configs/mgcoge2_arm_p1a.h
create mode 100644 include/configs/suen3.h
create mode 100644 include/configs/suen3_p1a.h
create mode 100644 include/configs/suen3_p1b_p1c.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 9734b1d..6ca5a21 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -385,6 +385,8 @@ Stefan Roese <sr@denx.de>
P3M750 PPC750FX/GX/GL
+ suen3 ARM926EJS (Kirkwood SoC)
+
Yusdi Santoso <yusdi_santoso@adaptec.com>
HIDDEN_DRAGON MPC8241/MPC8245
diff --git a/MAKEALL b/MAKEALL
index ab1bb6f..17f277b 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -554,6 +554,7 @@ LIST_ARM9=" \
da830evm \
imx27lite \
lpd7a400 \
+ mgcoge2_arm_p1a \
mv88f6281gtw_ge \
mx1ads \
mx1fs2 \
@@ -572,6 +573,9 @@ LIST_ARM9=" \
sheevaplug \
smdk2400 \
smdk2410 \
+ suen3_p1a \
+ suen3_p1b_p1c \
+ suen3 \
trab \
VCMA9 \
versatile \
diff --git a/Makefile b/Makefile
index ed6156f..968d8a9 100644
--- a/Makefile
+++ b/Makefile
@@ -2934,6 +2934,9 @@ lpd7a400_config \
lpd7a404_config: unconfig
@$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x
+mgcoge2_arm_p1a_config: unconfig
+ @$(MKCONFIG) $(@:_config=) arm arm926ejs km_arm keymile kirkwood
+
mv88f6281gtw_ge_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood
@@ -3023,6 +3026,11 @@ smdk2400_config : unconfig
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0
+suen3_config \
+suen3_p1a_config \
+suen3_p1b_p1c_config: unconfig
+ @$(MKCONFIG) $(@:_config=) arm arm926ejs km_arm keymile kirkwood
+
SX1_stdout_serial_config \
SX1_config: unconfig
@mkdir -p $(obj)include
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index ec27bda..33857c7 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -35,6 +35,7 @@
#include <libfdt.h>
#endif
+#include "../common/common.h"
#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C)
#include <i2c.h>
@@ -395,7 +396,12 @@ static void setports (int gpio)
#endif
#endif
-#if defined(CONFIG_KM8XX)
+#if (defined(CONFIG_MACH_SUEN3) && defined(CONFIG_HARD_I2C))
+#error I2C bus resetsequence not implemented yet.
+#endif
+
+#if defined(CONFIG_KM8XX) || \
+ (defined(CONFIG_MACH_SUEN3) && defined(CONFIG_SOFT_I2C))
static void set_sda (int state)
{
I2C_SDA(state);
@@ -411,6 +417,12 @@ static int get_sda (void)
return I2C_READ;
}
+#if defined(CONFIG_MACH_SUEN3)
+static int get_scl (void)
+{
+ return (kw_gpio_get_value(SUEN3_SCL_PIN) ? 1 : 0);
+}
+#else
static int get_scl (void)
{
int val;
@@ -421,10 +433,11 @@ static int get_scl (void)
return ((val & SCL_BIT) == SCL_BIT);
}
+#endif
#endif
-#if !defined(CONFIG_KMETER1)
+#if !defined(CONFIG_KMETER1) && !defined(CONFIG_SUVD3)
static void writeStartSeq (void)
{
set_sda (1);
@@ -483,7 +496,7 @@ static int i2c_make_abort (void)
*/
void i2c_init_board(void)
{
-#if defined(CONFIG_KMETER1)
+#if defined(CONFIG_KMETER1) || defined(CONFIG_SUVD3)
struct fsl_i2c *dev;
dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR + CONFIG_SYS_I2C_OFFSET);
uchar dummy;
@@ -500,7 +513,7 @@ void i2c_init_board(void)
out_8 (&dev->cr, (I2C_CR_MEN));
#else
-#if defined(CONFIG_HARD_I2C)
+#if defined(CONFIG_HARD_I2C) && !defined(CONFIG_MACH_SUEN3)
volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR ;
volatile i2c8260_t *i2c = (i2c8260_t *)&immap->im_i2c;
@@ -578,10 +591,12 @@ int fdt_get_node_and_value (void *blob,
}
#endif
+#if !defined(CONFIG_MACH_SUEN3)
int ethernet_present (void)
{
return (in_8((u8 *)CONFIG_SYS_PIGGY_BASE + CONFIG_SYS_SLOT_ID_OFF) & 0x80);
}
+#endif
int board_eth_init (bd_t *bis)
{
diff --git a/board/keymile/km_arm/Makefile b/board/keymile/km_arm/Makefile
new file mode 100644
index 0000000..fffc6a3
--- /dev/null
+++ b/board/keymile/km_arm/Makefile
@@ -0,0 +1,51 @@
+#
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(BOARD).a
+
+COBJS := $(BOARD).o ../common/common.o
+
+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+SOBJS := $(addprefix $(obj),$(SOBJS))
+
+$(LIB): $(obj).depend $(OBJS) $(SOBJS)
+ $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+ rm -f $(SOBJS) $(OBJS)
+
+distclean: clean
+ rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/keymile/km_arm/config.mk b/board/keymile/km_arm/config.mk
new file mode 100644
index 0000000..fe7b0ef
--- /dev/null
+++ b/board/keymile/km_arm/config.mk
@@ -0,0 +1,25 @@
+#
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+
+TEXT_BASE = 0x004000000
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
new file mode 100644
index 0000000..f3ebbed
--- /dev/null
+++ b/board/keymile/km_arm/km_arm.c
@@ -0,0 +1,345 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <nand.h>
+#include <netdev.h>
+#include <miiphy.h>
+#include <asm/arch/kirkwood.h>
+#include <asm/arch/mpp.h>
+
+#include "../common/common.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int io_dev;
+extern I2C_MUX_DEVICE *i2c_mux_ident_muxstring (uchar *buf);
+
+/* Multi-Purpose Pins Functionality configuration */
+u32 kwmpp_config[] = {
+ MPP0_NF_IO2,
+ MPP1_NF_IO3,
+ MPP2_NF_IO4,
+ MPP3_NF_IO5,
+ MPP4_NF_IO6,
+ MPP5_NF_IO7,
+ MPP6_SYSRST_OUTn,
+ MPP7_PEX_RST_OUTn,
+#if defined(CONFIG_KIRKWOOD_GPIO)
+ MPP8_GPIO, /* SDA */
+ MPP9_GPIO, /* SCL */
+#else
+ MPP8_TW_SDA,
+ MPP9_TW_SCK,
+#endif
+ MPP10_UART0_TXD,
+ MPP11_UART0_RXD,
+ MPP12_GPO, /* Reserved */
+ MPP13_UART1_TXD,
+ MPP14_UART1_RXD,
+ MPP15_GPIO, /* Not used */
+ MPP16_GPIO, /* Not used */
+ MPP17_GPIO, /* Reserved */
+ MPP18_NF_IO0,
+ MPP19_NF_IO1,
+ MPP20_GPIO,
+ MPP21_GPIO,
+ MPP22_GPIO,
+ MPP23_GPIO,
+ MPP24_GPIO,
+ MPP25_GPIO,
+ MPP26_GPIO,
+ MPP27_GPIO,
+ MPP28_GPIO,
+ MPP29_GPIO,
+ MPP30_GPIO,
+ MPP31_GPIO,
+ MPP32_GPIO,
+ MPP33_GPIO,
+ MPP34_GPIO, /* CDL1 (input) */
+ MPP35_GPIO, /* CDL2 (input) */
+ MPP36_GPIO, /* MAIN_IRQ (input) */
+ MPP37_GPIO, /* BOARD_LED */
+ MPP38_GPIO, /* Piggy3 LED[1] */
+ MPP39_GPIO, /* Piggy3 LED[2] */
+ MPP40_GPIO, /* Piggy3 LED[3] */
+ MPP41_GPIO, /* Piggy3 LED[4] */
+ MPP42_GPIO, /* Piggy3 LED[5] */
+ MPP43_GPIO, /* Piggy3 LED[6] */
+ MPP44_GPIO, /* Piggy3 LED[7] */
+ MPP45_GPIO, /* Piggy3 LED[8] */
+ MPP46_GPIO, /* Reserved */
+ MPP47_GPIO, /* Reserved */
+ MPP48_GPIO, /* Reserved */
+ MPP49_GPIO, /* SW_INTOUTn */
+ 0
+};
+
+int ethernet_present(void)
+{
+ uchar buf;
+ int ret = 0;
+
+#if defined(CONFIG_SUEN_P1A)
+ int oldbusnum = i2c_get_bus_num();
+
+ i2c_set_bus_num(io_dev);
+ if (i2c_read(0x74, 0, 1, &buf, 1) != 0) {
+ printf ("%s: Error reading EEprom\n", __FUNCTION__);
+ i2c_set_bus_num(oldbusnum);
+ return -1;
+ }
+ if ((buf & 0x80) == 0x80) {
+ ret = 1;
+ }
+ i2c_set_bus_num(oldbusnum);
+#else
+ if (i2c_read(0x10, 2, 1, &buf, 1) != 0) {
+ printf ("%s: Error reading Boco\n", __FUNCTION__);
+ return -1;
+ }
+ if ((buf & 0x40) == 0x40) {
+ ret = 1;
+ }
+#endif
+ return ret;
+}
+
+int misc_init_r(void)
+{
+ I2C_MUX_DEVICE *i2cdev;
+ char *str;
+ int mach_type;
+
+ /* add I2C Bus for I/O Expander */
+ i2cdev = i2c_mux_ident_muxstring((uchar *)"pca9554a:70:a");
+ io_dev = i2cdev->busid;
+ puts("Piggy:");
+ if (ethernet_present() == 0)
+ puts (" not");
+ puts(" present\n");
+
+ str = getenv("mach_type");
+ if (str != NULL) {
+ mach_type = simple_strtoul(str, NULL, 10);
+ printf("Overwriting MACH_TYPE with %d!!!\n", mach_type);
+ gd->bd->bi_arch_number = mach_type;
+ }
+ return 0;
+}
+
+int board_init(void)
+{
+ u32 tmp;
+
+ kirkwood_mpp_conf(kwmpp_config);
+
+ tmp = readl(KW_GPIO0_BASE);
+ writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
+ tmp = readl(KW_GPIO0_BASE+4);
+ writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE+4);
+ printf("KM: setting NAND mode\n");
+
+ /*
+ * arch number of board
+ */
+ gd->bd->bi_arch_number = MACH_TYPE_SUEN3;
+
+ /* address of boot parameters */
+ gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+#if defined(CONFIG_KIRKWOOD_GPIO)
+ /* init the GPIO for I2C Bitbang driver */
+ kw_gpio_set_valid(SUEN3_SDA_PIN, 1);
+ kw_gpio_set_valid(SUEN3_SCL_PIN, 1);
+ kw_gpio_direction_output(SUEN3_SDA_PIN, 0);
+ kw_gpio_direction_output(SUEN3_SCL_PIN, 0);
+#endif
+ return 0;
+}
+
+#if defined(CONFIG_CMD_SF)
+int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ u32 tmp;
+ if (argc < 2) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ if ((strcmp(argv[1], "on") != 0) &&
+ (strcmp(argv[1], "off") != 0)) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ if ((strcmp(argv[1], "off") == 0)) {
+ printf("SPI FLASH disabled, NAND enabled\n");
+ /* Multi-Purpose Pins Functionality configuration */
+ kwmpp_config[0] = MPP0_NF_IO2;
+ kwmpp_config[1] = MPP1_NF_IO3;
+ kwmpp_config[2] = MPP2_NF_IO4;
+ kwmpp_config[3] = MPP3_NF_IO5;
+
+ kirkwood_mpp_conf(kwmpp_config);
+ tmp = readl(KW_GPIO0_BASE);
+ writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
+
+ nand_init();
+ } else {
+ printf("SPI FLASH enabled, NAND disabled\n");
+ /* Multi-Purpose Pins Functionality configuration */
+ kwmpp_config[0] = MPP0_SPI_SCn;
+ kwmpp_config[1] = MPP1_SPI_MOSI;
+ kwmpp_config[2] = MPP2_SPI_SCK;
+ kwmpp_config[3] = MPP3_SPI_MISO;
+
+ kirkwood_mpp_conf(kwmpp_config);
+ tmp = readl(KW_GPIO0_BASE);
+ writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE);
+
+ nand_init();
+ }
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ spitoggle, 2, 0, do_spi_toggle,
+ "En-/disable SPI FLASH access",
+ "<on|off> - Enable (on) or disable (off) SPI FLASH access\n"
+ );
+#endif
+
+int dram_init(void)
+{
+ int i;
+
+ for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
+ gd->bd->bi_dram[i].start = kw_sdram_bar(i);
+ gd->bd->bi_dram[i].size = get_ram_size((long *)kw_sdram_bar(i),
+ kw_sdram_bs(i));
+ }
+ return 0;
+}
+
+/* Configure and enable MV88E1118 PHY */
+void reset_phy(void)
+{
+ char *name = "egiga0";
+
+ if (miiphy_set_current_dev(name))
+ return;
+
+ /* reset the phy */
+ miiphy_reset(name, CONFIG_PHY_BASE_ADR);
+}
+
+#if defined(CONFIG_HUSH_INIT_VAR)
+int hush_init_var (void)
+{
+ ivm_read_eeprom ();
+ return 0;
+}
+#endif
+
+#if defined(CONFIG_BOOTCOUNT_LIMIT)
+void bootcount_store (ulong a)
+{
+ volatile ulong *save_addr;
+ volatile ulong size = 0;
+ int i;
+ for (i=0; i<CONFIG_NR_DRAM_BANKS; i++) {
+ size += gd->bd->bi_dram[i].size;
+ }
+ save_addr = (ulong*)(size - BOOTCOUNT_ADDR);
+ save_addr[0] = a;
+ save_addr[1] = BOOTCOUNT_MAGIC;
+}
+
+ulong bootcount_load (void)
+{
+ volatile ulong *save_addr;
+ volatile ulong size = 0;
+ int i;
+ for (i=0; i<CONFIG_NR_DRAM_BANKS; i++) {
+ size += gd->bd->bi_dram[i].size;
+ }
+ save_addr = (ulong*)(size - BOOTCOUNT_ADDR);
+ if (save_addr[1] != BOOTCOUNT_MAGIC)
+ return 0;
+ else
+ return save_addr[0];
+}
+#endif
+
+#if defined(CONFIG_SYS_EEPROM_WREN)
+#define BOCOADDR 0x10
+#define DIRECT 0x04
+#define DIRECTMASK 0x04
+#define GPRT 0x08
+#define GPRTMASK 0x04
+int eeprom_reg_value (unsigned dev_addr, uchar reg, uchar reg_mask, int value)
+{
+ uchar buf;
+ if (i2c_read (dev_addr, reg, 1, &buf, 1) != 0)
+ return 1;
+ if (value)
+ buf |= reg_mask;
+ else
+ buf &= ~reg_mask;
+ if (i2c_write (dev_addr, reg, 1, &buf, 1) != 0)
+ return 1;
+ return 0;
+}
+
+int eeprom_write_enable (unsigned dev_addr, int state)
+{
+ uchar direction = state;
+ uchar gpio_value = !state;
+ uchar addr = BOCOADDR;
+ uchar direct = DIRECT;
+ uchar direct_mask = DIRECTMASK;
+ uchar gprt = GPRT;
+ uchar gprt_mask = GPRTMASK;
+
+ /* state 0: transition from write enabled to write disable */
+ /* state 1: transition from write disabled to write enable */
+
+ if (!state && eeprom_reg_value (addr, gprt, gprt_mask, gpio_value))
+ return 1;
+
+ if (eeprom_reg_value (addr, direct, direct_mask, direction))
+ return 1;
+
+ if (state && eeprom_reg_value (addr, gprt, gprt_mask, gpio_value))
+ return 1;
+
+ return 0;
+}
+#endif
diff --git a/board/keymile/km_arm/sdramregs.txt b/board/keymile/km_arm/sdramregs.txt
new file mode 100644
index 0000000..68c53a7
--- /dev/null
+++ b/board/keymile/km_arm/sdramregs.txt
@@ -0,0 +1,31 @@
+0xFFD10000 0x01112222
+0xFFD10008 0x00001100
+0xFFD100E0 0x1B1B1B1B
+0xFFD20134 0xFFFFFFFF
+0xFFD20138 0x009FFFFF
+0xFFD20154 0x00000000
+0xFFD2014C 0x00000000
+0xFFD20148 0x00000001
+0xFFD01400 0x43000400
+0xFFD01404 0x3a543000
+0xFFD01408 0x34136552
+0xFFD0140C 0x00000033
+0xFFD01410 0x0000000D
+0xFFD01414 0x00000000
+0xFFD01418 0x00000000
+0xFFD0141C 0x00000652
+0xFFD01420 0x00000044
+0xFFD01424 0x0000F07F
+0xFFD01428 0x00074510
+0xFFD0147c 0x00007451
+0xFFD01504 0x07FFFFF1
+0xFFD01508 0x00000000
+0xFFD0150C 0x00000000
+0xFFD01514 0x00000000
+0xFFD0151C 0x00000000
+0xFFD01494 0x00010001
+0xFFD01498 0x00000000
+0xFFD0149C 0x0000fc11
+0xFFD01480 0x00000001
+0x0 0x0
+
diff --git a/board/keymile/km_arm/sdramregs_v1.txt b/board/keymile/km_arm/sdramregs_v1.txt
new file mode 100644
index 0000000..6778a9b
--- /dev/null
+++ b/board/keymile/km_arm/sdramregs_v1.txt
@@ -0,0 +1,28 @@
+0xFFD10000 0x01111111
+0xFFD10008 0x00001100
+0xFFD100E0 0x1B1B1B1B
+0xFFD20134 0xBBBBBBBB
+0xFFD20138 0x00BBBBBB
+0xFFD20154 0x00000200
+0xFFD2014C 0x00001C00
+0xFFD20148 0x00000001
+0xFFD01400 0x43000400
+0xFFD01404 0x36343000
+0xFFD01408 0x2302544B
+0xFFD0140C 0x00000032
+0xFFD01410 0x0000000D
+0xFFD01414 0x00000000
+0xFFD01418 0x00000000
+0xFFD0141C 0x00000642
+0xFFD01420 0x00000040
+0xFFD01424 0x0000F07F
+0xFFD01504 0x07FFFFF1
+0xFFD01508 0x00000000
+0xFFD0150C 0x00000000
+0xFFD01514 0x00000000
+0xFFD0151C 0x00000000
+0xFFD01494 0x00000000
+0xFFD01498 0x00000000
+0xFFD0149C 0x0000E90F
+0xFFD01480 0x00000001
+0x0 0x0
diff --git a/include/configs/km-arm.h b/include/configs/km-arm.h
new file mode 100644
index 0000000..a4f3601
--- /dev/null
+++ b/include/configs/km-arm.h
@@ -0,0 +1,192 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* for linking errors see http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
+
+#ifndef _CONFIG_KM_ARM_H
+#define _CONFIG_KM_ARM_H
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_MARVELL
+#define CONFIG_ARM926EJS /* Basic Architecture */
+#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
+#define CONFIG_KIRKWOOD /* SOC Family Name */
+#define CONFIG_KW88F6281 /* SOC Name */
+#define CONFIG_MACH_SUEN3 /* Machine type */
+
+/* include common defines/options for all Keymile boards */
+#include "keymile-common.h"
+
+#define CONFIG_MD5 /* get_random_hex on krikwood needs MD5 support */
+#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1 for kernel */
+#undef CONFIG_KIRKWOOD_PCIE_INIT /* Disable PCIE Port0 for kernel */
+#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */
+
+#define CONFIG_MISC_INIT_R
+
+/*
+ * NS16550 Configuration
+ */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE (-4)
+#define CONFIG_SYS_NS16550_CLK CONFIG_SYS_TCLK
+#define CONFIG_SYS_NS16550_COM1 KW_UART0_BASE
+
+/*
+ * Serial Port configuration
+ * The following definitions let you select what serial you want to use
+ * for your console driver.
+ */
+
+#define CONFIG_CONS_INDEX 1 /* Console on UART0 */
+
+/*
+ * For booting Linux, the board info and command line data
+ * have to be in the first 8 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CONFIG_BOOTMAPSZ (8 << 20) /* Initial Memmap for Linux */
+#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
+#define CONFIG_INITRD_TAG /* enable INITRD tag */
+#define CONFIG_SETUP_MEMORY_TAGS /* enable memory tag */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_CMD_ELF
+#define CONFIG_CMD_MTDPARTS
+#define CONFIG_CMD_NAND
+#define CONFIG_CMD_NFS
+
+/*
+ * Without NOR FLASH we need this
+ */
+#define CONFIG_SYS_NO_FLASH
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_IMLS
+
+/*
+ * NAND Flash configuration
+ */
+#define CONFIG_SYS_MAX_NAND_DEVICE 1
+#define NAND_MAX_CHIPS 1
+#define CONFIG_NAND_KIRKWOOD
+#define CONFIG_SYS_NAND_BASE 0xd8000000
+
+#define BOOTFLASH_START 0x0
+
+#define CONFIG_KM_CONSOLE_TTY "ttyS0"
+
+/* size in bytes reserved for initial data */
+#define CONFIG_SYS_GBL_DATA_SIZE 128
+
+/*
+ * Other required minimal configurations
+ */
+#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
+#define CONFIG_ARCH_CPU_INIT /* call arch_cpu_init() */
+#define CONFIG_ARCH_MISC_INIT /* call arch_misc_init() */
+#define CONFIG_DISPLAY_CPUINFO /* Display cpu info */
+#define CONFIG_NR_DRAM_BANKS 4
+#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
+#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
+
+/*
+ * Ethernet Driver configuration
+ */
+#define CONFIG_NETCONSOLE /* include NetConsole support */
+#define CONFIG_NET_MULTI /* specify more that one ports available */
+#define CONFIG_MII /* expose smi ove miiphy interface */
+#define CONFIG_KIRKWOOD_EGIGA /* Enable kirkwood Gbe Controller Driver */
+#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */
+#define CONFIG_KIRKWOOD_EGIGA_PORTS {1,0} /* enable port 0 only */
+#define CONFIG_PHY_BASE_ADR 0
+#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */
+#define CONFIG_RESET_PHY_R /* use reset_phy() to init 88E1118 PHY */
+
+/*
+ * UBI related stuff
+ */
+#define CONFIG_SYS_USE_UBI
+
+/*
+ * I2C related stuff
+ */
+#undef CONFIG_HARD_I2C /* I2C with hardware support */
+#define CONFIG_SOFT_I2C /* I2C bit-banged */
+
+#if defined(CONFIG_HARD_I2C)
+#define CONFIG_I2C_KIRKWOOD
+#define CONFIG_I2C_KW_REG_BASE KW_TWSI_BASE
+#define CONFIG_SYS_I2C_SLAVE 0x0
+#define CONFIG_SYS_I2C_SPEED 100000
+#endif
+
+#if defined(CONFIG_SOFT_I2C)
+#define CONFIG_KIRKWOOD_GPIO /* Enable GPIO Support */
+#ifndef __ASSEMBLY__
+#include <asm/arch-kirkwood/gpio.h>
+extern void __set_direction(unsigned pin, int high);
+#define SUEN3_SDA_PIN 8
+#define SUEN3_SCL_PIN 9
+
+#define I2C_ACTIVE __set_direction(SUEN3_SDA_PIN, 0)
+#define I2C_TRISTATE __set_direction(SUEN3_SDA_PIN, 1)
+#define I2C_READ (kw_gpio_get_value(SUEN3_SDA_PIN) ? 1 : 0)
+#define I2C_SDA(bit) kw_gpio_set_value(SUEN3_SDA_PIN, bit);
+#define I2C_SCL(bit) kw_gpio_set_value(SUEN3_SCL_PIN, bit);
+#endif
+
+#define I2C_DELAY udelay(3) /* 1/4 I2C clock duration */
+#define I2C_SOFT_DECLARATIONS
+
+#define CONFIG_SYS_I2C_SLAVE 0x0
+#define CONFIG_SYS_I2C_SPEED 100000
+#endif
+
+#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
+
+#if 1 // test-only cramfs ...
+#define CONFIG_SYS_MAX_FLASH_SECT 256
+
+#ifndef __ASSEMBLY__
+typedef struct {
+ unsigned long size; /* total bank size in bytes */
+ unsigned short sector_count; /* number of erase units */
+ unsigned long flash_id; /* combined device & manufacturer code */
+ unsigned long start[CONFIG_SYS_MAX_FLASH_SECT]; /* virtual sector start address */
+ unsigned char protect[CONFIG_SYS_MAX_FLASH_SECT]; /* sector protection status */
+} flash_info_t;
+#endif
+#endif
+
+#endif /* _CONFIG_KM_ARM_H */
diff --git a/include/configs/mgcoge2_arm_p1a.h b/include/configs/mgcoge2_arm_p1a.h
new file mode 100644
index 0000000..d34cb7e
--- /dev/null
+++ b/include/configs/mgcoge2_arm_p1a.h
@@ -0,0 +1,93 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* for linking errors see http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
+
+#ifndef _CONFIG_MGCOGE2_ARM_P1A_H
+#define _CONFIG_MGCOGE2_ARM_P1A_H
+
+/* include common defines/options for all arm based Keymile boards */
+#include "km-arm.h"
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING "\nKeymile mgcoge2"
+
+#define CONFIG_HOSTNAME mgcoge2
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_IN_EEPROM /* use EEPROM for environment vars */
+#define CONFIG_SYS_DEF_EEPROM_ADDR 0x50
+#define CONFIG_ENV_EEPROM_IS_ON_I2C 1
+#define CONFIG_SYS_EEPROM_WREN 1
+#define CONFIG_ENV_OFFSET 0x40 /* no bracets! */
+#undef CONFIG_ENV_SIZE
+#define CONFIG_ENV_SIZE (0x2000 - CONFIG_ENV_OFFSET)
+#define CONFIG_I2C_ENV_EEPROM_BUS "pca9544a:70:8\0"
+
+#define CONFIG_CMD_SF
+
+#define CONFIG_SPI_FLASH
+#define CONFIG_HARD_SPI
+#define CONFIG_KIRKWOOD_SPI
+#define CONFIG_SPI_FLASH_STMICRO
+#define CONFIG_ENV_SPI_BUS 0
+#define CONFIG_ENV_SPI_CS 0
+#define CONFIG_ENV_SPI_MAX_HZ 50000000 /* 50Mhz */
+
+#define FLASH_GPIO_PIN 0x00010000
+
+#define MTDIDS_DEFAULT "nand0=orion_nand"
+/* test-only: partitioning needs some tuning, this is just for tests */
+#define MTDPARTS_DEFAULT "mtdparts=" \
+ "orion_nand:" \
+ "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+
+#define CONFIG_KM_DEF_ENV_UPDATE \
+ "update=" \
+ "spi on;sf probe 0;sf erase 0 50000;" \
+ "sf write ${u-boot_addr_r} 0 ${filesize};" \
+ "spi off\0"
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_KM_DEF_ENV \
+ "memsize=0x8000000\0" \
+ "newenv=setenv addr 0x100000 && " \
+ "i2c dev 1; mw.b ${addr} 0 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET) " 4\0" \
+ "rootpath=/opt/eldk/arm\0" \
+ "EEprom_ivm=pca9544a:70:9\0" \
+ ""
+
+#endif /* _CONFIG_SUEN3_H */
diff --git a/include/configs/suen3.h b/include/configs/suen3.h
new file mode 100644
index 0000000..f52fcf5
--- /dev/null
+++ b/include/configs/suen3.h
@@ -0,0 +1,100 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* for linking errors see http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
+
+#ifndef _CONFIG_SUEN3_H
+#define _CONFIG_SUEN3_H
+
+/* include common defines/options for all arm based Keymile boards */
+#include "km-arm.h"
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING "\nKeymile SUEN3"
+
+#define CONFIG_HOSTNAME suen3
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_IN_EEPROM /* use EEPROM for environment vars */
+#define CONFIG_SYS_DEF_EEPROM_ADDR 0x50
+#define CONFIG_ENV_EEPROM_IS_ON_I2C 1
+#define CONFIG_SYS_EEPROM_WREN 1
+#define CONFIG_ENV_OFFSET 0x0 /* no bracets! */
+#undef CONFIG_ENV_SIZE
+#define CONFIG_ENV_SIZE (0x2000 - CONFIG_ENV_OFFSET)
+#define CONFIG_I2C_ENV_EEPROM_BUS "pca9547:70:d\0"
+
+/* offset redund: (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */
+#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+#define CONFIG_ENV_OFFSET_REDUND 0x2000 /* no bracets! */
+#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
+
+#define CONFIG_CMD_SF
+
+#define CONFIG_SPI_FLASH
+#define CONFIG_HARD_SPI
+#define CONFIG_KIRKWOOD_SPI
+#define CONFIG_SPI_FLASH_STMICRO
+#define CONFIG_ENV_SPI_BUS 0
+#define CONFIG_ENV_SPI_CS 0
+#define CONFIG_ENV_SPI_MAX_HZ 50000000 /* 50Mhz */
+
+#define FLASH_GPIO_PIN 0x00010000
+
+#define MTDIDS_DEFAULT "nand0=orion_nand"
+/* test-only: partitioning needs some tuning, this is just for tests */
+#define MTDPARTS_DEFAULT "mtdparts=" \
+ "orion_nand:" \
+ "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+
+#define CONFIG_KM_DEF_ENV_UPDATE \
+ "update=" \
+ "spi on;sf probe 0;sf erase 0 50000;" \
+ "sf write ${u-boot_addr_r} 0 ${filesize};" \
+ "spi off\0"
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_KM_DEF_ENV \
+ "memsize=0x8000000\0" \
+ "newenv=setenv addr 0x100000 && " \
+ "i2c dev 1; mw.b ${addr} 0 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET) " 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0" \
+ "rootpath=/opt/eldk/arm\0" \
+ "EEprom_ivm=pca9544a:70:9\0" \
+ ""
+
+#endif /* _CONFIG_SUEN3_H */
diff --git a/include/configs/suen3_p1a.h b/include/configs/suen3_p1a.h
new file mode 100644
index 0000000..731cdc9
--- /dev/null
+++ b/include/configs/suen3_p1a.h
@@ -0,0 +1,79 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* for linking errors see http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
+
+#ifndef _CONFIG_SUEN3_P1A_H
+#define _CONFIG_SUEN3_P1A_H
+
+/* include common defines/options for all arm based Keymile boards */
+#include "km-arm.h"
+
+#define CONFIG_SUEN_P1A
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING "\nKeymile SUEN3 V1"
+
+#define CONFIG_HOSTNAME suen3_v1
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_IN_NAND /* use NAND for environment vars */
+#define CONFIG_ENV_OFFSET (512 << 10) /* Offset to env */
+#define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
+
+#define FLASH_GPIO_PIN 0x00010000
+
+#define MTDIDS_DEFAULT "nand0=orion_nand"
+/* test-only: partitioning needs some tuning, this is just for tests */
+#define MTDPARTS_DEFAULT "mtdparts=" \
+ "orion_nand:" \
+ "512k(u-boot)," \
+ "128k(env)," \
+ "128k(envred)," \
+ "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+
+#define CONFIG_KM_DEF_ENV_UPDATE \
+ "update=" \
+ "nand erase " xstr(BOOTFLASH_START) " 0x60000 && " \
+ "nand write ${u-boot_addr_r} " xstr(BOOTFLASH_START) " "\
+ "0x60000\0"
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_KM_DEF_ENV \
+ "memsize=0x8000000\0" \
+ "newenv=nand erase 0x80000 0x40000\0" \
+ "rootpath=/opt/eldk/arm\0" \
+ "EEprom_ivm=pca9544a:70:9\0" \
+ ""
+
+#endif /* _CONFIG_SUEN3_P1A_H */
diff --git a/include/configs/suen3_p1b_p1c.h b/include/configs/suen3_p1b_p1c.h
new file mode 100644
index 0000000..63f9e6a
--- /dev/null
+++ b/include/configs/suen3_p1b_p1c.h
@@ -0,0 +1,107 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * (C) Copyright 2009
+ * Stefan Roese, DENX Software Engineering, sr at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* for linking errors see http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
+
+#ifndef _CONFIG_SUEN3_H
+#define _CONFIG_SUEN3_H
+
+/* include common defines/options for all arm based Keymile boards */
+#include "km-arm.h"
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING "\nKeymile SUEN3"
+
+#define CONFIG_HOSTNAME suen3
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_IN_EEPROM /* use EEPROM for environment vars */
+#define CONFIG_SYS_DEF_EEPROM_ADDR 0x50
+#define CONFIG_ENV_EEPROM_IS_ON_I2C 1
+#define CONFIG_SYS_EEPROM_WREN 1
+#define CONFIG_ENV_OFFSET 0x40 /* no bracets! */
+#undef CONFIG_ENV_SIZE
+#define CONFIG_ENV_SIZE (0x2000 - CONFIG_ENV_OFFSET)
+#define CONFIG_I2C_ENV_EEPROM_BUS "pca9544a:70:8\0"
+
+#if 0
+#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+/* offset redund: (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */
+#define CONFIG_ENV_OFFSET_REDUND 0x2000 /* no bracets! */
+#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
+ "newenv=setenv addr 0x100000 && " \
+ "i2c dev 1; mw.b ${addr} 0 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET) " 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0" \
+
+#endif
+
+#define CONFIG_CMD_SF
+
+#define CONFIG_SPI_FLASH
+#define CONFIG_HARD_SPI
+#define CONFIG_KIRKWOOD_SPI
+#define CONFIG_SPI_FLASH_STMICRO
+#define CONFIG_ENV_SPI_BUS 0
+#define CONFIG_ENV_SPI_CS 0
+#define CONFIG_ENV_SPI_MAX_HZ 50000000 /* 50Mhz */
+
+#define FLASH_GPIO_PIN 0x00008000
+
+#define MTDIDS_DEFAULT "nand0=orion_nand"
+/* test-only: partitioning needs some tuning, this is just for tests */
+#define MTDPARTS_DEFAULT "mtdparts=" \
+ "orion_nand:" \
+ "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+
+#define CONFIG_KM_DEF_ENV_UPDATE \
+ "update=" \
+ "spi on;sf probe 0;sf erase 0 50000;" \
+ "sf write ${u-boot_addr_r} 0 ${filesize};" \
+ "spi off\0"
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_KM_DEF_ENV \
+ "memsize=0x8000000\0" \
+ "newenv=setenv addr 0x100000 && " \
+ "i2c dev 1; mw.b ${addr} 0 4 && " \
+ "eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
+ " ${addr} " xstr(CONFIG_ENV_OFFSET) " 4\0" \
+ "rootpath=/opt/eldk/arm\0" \
+ "EEprom_ivm=pca9544a:70:9\0" \
+ ""
+
+#endif /* _CONFIG_SUEN3_H */
--
1.6.2.5
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
next reply other threads:[~2010-01-07 7:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-07 7:56 Heiko Schocher [this message]
2010-01-17 23:51 ` [U-Boot] arm: suen3, suen3_v1, mgcoge2_arm_p1a support Wolfgang Denk
2010-01-18 8:34 ` Heiko Schocher
2010-01-18 9:31 ` Stefan Roese
2010-01-27 7:23 ` Heiko Schocher
2010-01-27 7:30 ` [U-Boot] [PATCH 1/2 v2] cramfs: make cramfs usable on non NOR flash Heiko Schocher
2010-01-27 19:28 ` Wolfgang Denk
2010-01-28 7:30 ` Heiko Schocher
2010-01-28 10:15 ` Wolfgang Denk
2010-01-28 11:02 ` Heiko Schocher
2010-01-27 7:31 ` [U-Boot] [PATCH 2/2 v2] arm: suen3, suen3_v1, mgcoge2_arm_p1a support Heiko Schocher
2010-01-27 13:50 ` Tom
2010-01-27 14:43 ` Heiko Schocher
2010-01-28 13:54 ` Tom
2010-01-27 19:49 ` Wolfgang Denk
2010-02-01 7:37 ` [U-Boot] [PATCH 2/2 v3] " Heiko Schocher
2010-02-02 18:07 ` Prafulla Wadaskar
2010-02-03 6:42 ` Wolfgang Denk
2010-02-03 15:52 ` Heiko Schocher
2010-02-03 16:53 ` Stefan Roese
2010-02-03 22:32 ` Scott Wood
2010-02-04 7:24 ` Heiko Schocher
2010-02-08 19:23 ` Scott Wood
2010-02-10 7:09 ` Heiko Schocher
2010-02-10 7:41 ` Prafulla Wadaskar
2010-02-10 9:27 ` Heiko Schocher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B459395.2050301@denx.de \
--to=hs@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.