[U-Boot] [PATCH 0/5] Add support for Seagate FreeAgent DockStar

This patch series adds support for the Seagate FreeAgent DockStar. The DockStar is almost identical to the Marvell SheevaPlug, but has 256M of NAND flash, 128M of SDRAM, and different LED pins.
A new machine ID (2998) has already been registered for this device.
Alexander Holler (2): DockStar: change RAM definitions to one bank (128 MB) DockStar: config
Eric Cooper (3): add DOCKSTAR machine type DockStar: board support (derived from sheevaplug) DockStar: LED support
arch/arm/include/asm/mach-types.h | 13 ++ board/Marvell/dockstar/Makefile | 51 ++++++++ board/Marvell/dockstar/config.mk | 28 +++++ board/Marvell/dockstar/dockstar.c | 185 +++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 +++++++ board/Marvell/dockstar/kwbimage.cfg | 162 ++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/dockstar.h | 217 +++++++++++++++++++++++++++++++++++ 8 files changed, 698 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h create mode 100644 board/Marvell/dockstar/kwbimage.cfg create mode 100644 include/configs/dockstar.h

Signed-off-by: Eric Cooper ecc@cmu.edu --- arch/arm/include/asm/mach-types.h | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index fd28d2b..e0b6090 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -2946,6 +2946,7 @@ extern unsigned int __machine_arch_type; #define MACH_TYPE_NETVIZ 2964 #define MACH_TYPE_FLEXIBITY 2965 #define MACH_TYPE_WLAN_COMPUTER 2966 +#define MACH_TYPE_DOCKSTAR 2998
#ifdef CONFIG_ARCH_EBSA110 # ifdef machine_arch_type @@ -38155,6 +38156,18 @@ extern unsigned int __machine_arch_type; # define machine_is_wlan_computer() (0) #endif
+#ifdef CONFIG_MACH_DOCKSTAR +# ifdef machine_arch_type +# undef machine_arch_type +# define machine_arch_type __machine_arch_type +# else +# define machine_arch_type MACH_TYPE_DOCKSTAR +# endif +# define machine_is_dockstar() (machine_arch_type == MACH_TYPE_DOCKSTAR) +#else +# define machine_is_dockstar() (0) +#endif + /* * These have not yet been registered */

Dear Eric Cooper,
In message 1283869696-10077-2-git-send-email-ecc@cmu.edu you wrote:
Signed-off-by: Eric Cooper ecc@cmu.edu
arch/arm/include/asm/mach-types.h | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index fd28d2b..e0b6090 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -2946,6 +2946,7 @@ extern unsigned int __machine_arch_type; #define MACH_TYPE_NETVIZ 2964 #define MACH_TYPE_FLEXIBITY 2965 #define MACH_TYPE_WLAN_COMPUTER 2966 +#define MACH_TYPE_DOCKSTAR 2998
NAK. We don't edit mach-types.h manually.
If you need it updated, please send a request to do so to the acting ARM custodian (ahem).
But also note that we always sync against the current mainline Linux kernel, and this does not have an entry for DOCKSTAR yet (it ends at WLAN_COMPUTER), so a new sync would not change the file yet.
Best regards,
Wolfgang Denk

Signed-off-by: Eric Cooper ecc@cmu.edu --- board/Marvell/dockstar/Makefile | 51 ++++++++++++ board/Marvell/dockstar/config.mk | 28 +++++++ board/Marvell/dockstar/dockstar.c | 155 +++++++++++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 ++++++++++ boards.cfg | 1 + 5 files changed, 276 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h
diff --git a/board/Marvell/dockstar/Makefile b/board/Marvell/dockstar/Makefile new file mode 100644 index 0000000..da9d29e --- /dev/null +++ b/board/Marvell/dockstar/Makefile @@ -0,0 +1,51 @@ +# +# (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. +# +# 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 := dockstar.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/Marvell/dockstar/config.mk b/board/Marvell/dockstar/config.mk new file mode 100644 index 0000000..2bd9f79 --- /dev/null +++ b/board/Marvell/dockstar/config.mk @@ -0,0 +1,28 @@ +# +# (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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA +# + +TEXT_BASE = 0x00600000 + +# Kirkwood Boot Image configuration file +KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/dockstar/dockstar.c b/board/Marvell/dockstar/dockstar.c new file mode 100644 index 0000000..13cd347 --- /dev/null +++ b/board/Marvell/dockstar/dockstar.c @@ -0,0 +1,155 @@ +/* + * (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. + * + * 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 <miiphy.h> +#include <asm/arch/kirkwood.h> +#include <asm/arch/mpp.h> +#include "dockstar.h" + +DECLARE_GLOBAL_DATA_PTR; + +int board_init(void) +{ + /* + * default gpio configuration + * There are maximum 64 gpios controlled through 2 sets of registers + * the below configuration configures mainly initial LED status + */ + kw_config_gpio(DOCKSTAR_OE_VAL_LOW, + DOCKSTAR_OE_VAL_HIGH, + DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH); + + /* 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_GPO, + MPP8_UART0_RTS, + MPP9_UART0_CTS, + MPP10_UART0_TXD, + MPP11_UART0_RXD, + MPP12_SD_CLK, + MPP13_SD_CMD, + MPP14_SD_D0, + MPP15_SD_D1, + MPP16_SD_D2, + MPP17_SD_D3, + 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_TSMP9, + MPP30_GPIO, + MPP31_GPIO, + MPP32_GPIO, + MPP33_GPIO, + MPP34_GPIO, + MPP35_GPIO, + MPP36_GPIO, + MPP37_GPIO, + MPP38_GPIO, + MPP39_GPIO, + MPP40_GPIO, + MPP41_GPIO, + MPP42_GPIO, + MPP43_GPIO, + MPP44_GPIO, + MPP45_GPIO, + MPP46_GPIO, + MPP47_GPIO, + MPP48_GPIO, + MPP49_GPIO, + 0 + }; + kirkwood_mpp_conf(kwmpp_config); + + /* + * arch number of board + */ + gd->bd->bi_arch_number = MACH_TYPE_DOCKSTAR; + + /* adress of boot parameters */ + gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100; + + return 0; +} + +int dram_init(void) +{ + int i; + + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { + gd->bd->bi_dram[i].start = kw_sdram_bar(i); + gd->bd->bi_dram[i].size = kw_sdram_bs(i); + } + return 0; +} + +#ifdef CONFIG_RESET_PHY_R +/* Configure and enable MV88E1116 PHY */ +void reset_phy(void) +{ + u16 reg; + u16 devadr; + char *name = "egiga0"; + + 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", + __FUNCTION__); + 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 |= (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 */ + miiphy_reset(name, devadr); + + printf("88E1116 Initialized on %s\n", name); +} +#endif /* CONFIG_RESET_PHY_R */ diff --git a/board/Marvell/dockstar/dockstar.h b/board/Marvell/dockstar/dockstar.h new file mode 100644 index 0000000..33f8b19 --- /dev/null +++ b/board/Marvell/dockstar/dockstar.h @@ -0,0 +1,41 @@ +/* + * (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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#ifndef __DOCKSTAR_H +#define __DOCKSTAR_H + +#define DOCKSTAR_OE_LOW (~(0)) +#define DOCKSTAR_OE_HIGH (~(0)) +#define DOCKSTAR_OE_VAL_LOW (1 << 29) /* USB_PWEN low */ +#define DOCKSTAR_OE_VAL_HIGH (1 << 17) /* LED pin high */ + +/* 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 /* __DOCKSTAR_H */ diff --git a/boards.cfg b/boards.cfg index 69c6897..f97927b 100644 --- a/boards.cfg +++ b/boards.cfg @@ -250,6 +250,7 @@ guruplug arm arm926ejs - Marvell kirkwood mv88f6281gtw_ge arm arm926ejs - Marvell kirkwood openrd_base arm arm926ejs - Marvell kirkwood sheevaplug arm arm926ejs - Marvell kirkwood +dockstar arm arm926ejs - Marvell kirkwood imx27lite arm arm926ejs imx27lite logicpd mx27 magnesium arm arm926ejs imx27lite logicpd mx27 omap5912osk arm arm926ejs - ti omap

Dear Eric Cooper,
In message 1283869696-10077-3-git-send-email-ecc@cmu.edu you wrote:
Signed-off-by: Eric Cooper ecc@cmu.edu
board/Marvell/dockstar/Makefile | 51 ++++++++++++ board/Marvell/dockstar/config.mk | 28 +++++++ board/Marvell/dockstar/dockstar.c | 155 +++++++++++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 ++++++++++ boards.cfg | 1 + 5 files changed, 276 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h
Entries to MAINTAINERS and MAKEALL missing.
Board config file missing. Did you try to compile this code?
Also, please rebase your code on top of Heiko's ARM rework patches (enable caches, add relocation). These will go in before your board support.
Best regards,
Wolfgang Denk

From: Alexander Holler holler@ahsoftware.de
Signed-off-by: Eric Cooper ecc@cmu.edu --- board/Marvell/dockstar/kwbimage.cfg | 162 +++++++++++++++++++++++++++++++++++ 1 files changed, 162 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/kwbimage.cfg
diff --git a/board/Marvell/dockstar/kwbimage.cfg b/board/Marvell/dockstar/kwbimage.cfg new file mode 100644 index 0000000..46d504c --- /dev/null +++ b/board/Marvell/dockstar/kwbimage.cfg @@ -0,0 +1,162 @@ +# +# (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. +# +# 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 +# +# Refer docs/README.kwimage for more details about how-to configure +# and create kirkwood boot image +# + +# Boot Media configurations +BOOT_FROM nand +NAND_ECC_MODE default +NAND_PAGE_SIZE 0x0800 + +# 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: 0xc30 (3120 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 0x37543000 # 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: 7= CL+2, 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) +# bit3-0: TRAS lsbs +# 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 0x00000a33 # DDR Timing (High) +# bit6-0: TRFC +# bit8-7: TR2R +# bit10-9: TR2W +# bit12-11: TW2W +# bit31-13: zero required + +DATA 0xFFD01410 0x0000000d # DDR Address Control +# bit1-0: 00, Cs0width=x8 +# bit3-2: 11, Cs0size=1Gb +# bit5-4: 00, Cs1width=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 0x00000C52 # 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 0x00000040 # DDR Extended Mode +# bit0: 0, DDR DLL enabled +# bit1: 0, DDR drive strenght normal +# bit2: 0, DDR ODT control lsd (disabled) +# bit5-3: 000, required +# bit6: 1, DDR ODT control msb, (disabled) +# 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 : 0 +# 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 0x00085520 # DDR2 ODT Read Timing (default values) +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values) + +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0 +DATA 0xFFD01504 0x07FFFFF1 # 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: 0x0F, Size (i.e. 256MB) + +DATA 0xFFD01508 0x10000000 # CS[1]n Base address to 256Mb +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 0x00030000 # DDR ODT Control (Low) +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 0x0000E803 # CPU ODT Control +DATA 0xFFD01480 0x00000001 # DDR Initialization Control +#bit0=1, enable DDR init upon this register write + +# End of Header extension +DATA 0x0 0x0

Dear Eric Cooper,
In message 1283869696-10077-4-git-send-email-ecc@cmu.edu you wrote:
From: Alexander Holler holler@ahsoftware.de
Signed-off-by: Eric Cooper ecc@cmu.edu
board/Marvell/dockstar/kwbimage.cfg | 162 +++++++++++++++++++++++++++++++++++ 1 files changed, 162 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/kwbimage.cfg
NAK. Please merge this into previous patch.
Best regards,
Wolfgang Denk

From: Alexander Holler holler@ahsoftware.de
Change ident string. Include long help messages. Environment is at 0xa0000. Define MTD partitions and default environment variables.
Signed-off-by: Eric Cooper ecc@cmu.edu --- include/configs/dockstar.h | 218 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 218 insertions(+), 0 deletions(-) create mode 100644 include/configs/dockstar.h
diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h new file mode 100644 index 0000000..a1a97a3 --- /dev/null +++ b/include/configs/dockstar.h @@ -0,0 +1,218 @@ +/* + * (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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#ifndef _CONFIG_DOCKSTAR_H +#define _CONFIG_DOCKSTAR_H + +/* + * Version number information + */ +#define CONFIG_IDENT_STRING "\nSeagate FreeAgent DockStar" + +/* + * High Level Configuration Options (easy to change) + */ +#define CONFIG_MARVELL 1 +#define CONFIG_ARM926EJS 1 /* Basic Architecture */ +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */ +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */ +#define CONFIG_KW88F6281 1 /* SOC Name */ +#define CONFIG_MACH_DOCKSTAR /* Machine type */ + +#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 */ +#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */ + +/* + * CLKs configurations + */ +#define CONFIG_SYS_HZ 1000 + +/* + * 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 */ +#define CONFIG_BAUDRATE 115200 +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \ + 115200,230400, 460800, 921600 } +/* auto boot */ +#define CONFIG_BOOTDELAY 3 /* default enable autoboot */ + +/* + * 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_CMDLINE_TAG 1 /* enable passing of ATAGs */ +#define CONFIG_INITRD_TAG 1 /* enable INITRD tag */ +#define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */ + +#define CONFIG_SYS_PROMPT "Marvell>> " /* Command Prompt */ +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */ +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \ + +sizeof(CONFIG_SYS_PROMPT) + 16) /* Print Buff */ + +/* + * Commands configuration + */ +#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */ +#include <config_cmd_default.h> +#define CONFIG_CMD_AUTOSCRIPT +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_ENV +#define CONFIG_CMD_MII +#define CONFIG_CMD_NAND +#define CONFIG_CMD_PING +#define CONFIG_CMD_USB +#define CONFIG_SYS_LONGHELP + +/* + * NAND configuration + */ +#ifdef CONFIG_CMD_NAND +#define CONFIG_NAND_KIRKWOOD +#define CONFIG_SYS_MAX_NAND_DEVICE 1 +#define NAND_MAX_CHIPS 1 +#define CONFIG_SYS_NAND_BASE 0xD8000000 /* KW_DEFADR_NANDF */ +#define NAND_ALLOW_ERASE_ALL 1 +#endif + +/* + * Environment variables configurations + */ +#ifdef CONFIG_CMD_NAND +#define CONFIG_ENV_IS_IN_NAND 1 +#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K */ +#else +#define CONFIG_ENV_IS_NOWHERE 1 /* if env in SDRAM */ +#endif +/* + * max 4k env size is enough, but in case of nand + * it has to be rounded to sector size + */ +#define CONFIG_ENV_SIZE 0x20000 /* 128k */ +#define CONFIG_ENV_ADDR 0xA0000 +#define CONFIG_ENV_OFFSET 0xA0000 /* env starts here */ + +/* + * Default environment variables + */ +#define CONFIG_MTDPARTS "mtdparts=orion_nand:1m(uboot),-(root)\0" + +#define CONFIG_EXTRA_ENV_SETTINGS \ + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ + "mtdparts="CONFIG_MTDPARTS \ + "kernel=/boot/uImage\0" \ + "initrd=/boot/uInitrd\0" \ + "bootargs_root=ubi.mtd=1 root=ubi0:root rootfstype=ubifs ro\0" + +#define CONFIG_BOOTCOMMAND \ + "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \ + "ubi part root; " \ + "ubifsmount root; " \ + "ubifsload 0x800000 ${kernel}; " \ + "ubifsload 0x1100000 ${initrd}; " \ + "bootm 0x800000 0x1100000" + +/* + * Size of malloc() pool + */ +#define CONFIG_SYS_MALLOC_LEN (1024 * 1024) /* 1 MiB for malloc() */ +/* size in bytes reserved for initial data */ +#define CONFIG_SYS_GBL_DATA_SIZE 128 + +/* + * Other required minimal configurations + */ +#define CONFIG_SYS_LONGHELP +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#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_LOAD_ADDR 0x00800000 /* default load adr- 8M */ +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */ +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */ +#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */ +#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ + +/* + * Ethernet Driver configuration + */ +#ifdef CONFIG_CMD_NET +#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_MVGBE /* Enable Marvell Gbe Controller Driver */ +#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ +#define CONFIG_MVGBE_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 mv8831116 PHY */ +#endif /* CONFIG_CMD_NET */ + +/* + * USB/EHCI + */ +#ifdef CONFIG_CMD_USB +#define CONFIG_USB_EHCI /* Enable EHCI USB support */ +#define CONFIG_USB_EHCI_KIRKWOOD /* on Kirkwood platform */ +#define CONFIG_EHCI_IS_TDI +#define CONFIG_USB_STORAGE +#define CONFIG_DOS_PARTITION +#define CONFIG_ISO_PARTITION +#define CONFIG_SUPPORT_VFAT +#endif /* CONFIG_CMD_USB */ + +/* + * File system + */ +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_CMD_JFFS2 +#define CONFIG_CMD_UBI +#define CONFIG_CMD_UBIFS +#define CONFIG_RBTREE +#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ +#define CONFIG_MTD_PARTITIONS +#define CONFIG_CMD_MTDPARTS +#define CONFIG_LZO + +#endif /* _CONFIG_DOCKSTAR_H */

Dear Eric Cooper,
In message 1283869696-10077-5-git-send-email-ecc@cmu.edu you wrote:
From: Alexander Holler holler@ahsoftware.de
Change ident string. Include long help messages. Environment is at 0xa0000. Define MTD partitions and default environment variables.
Signed-off-by: Eric Cooper ecc@cmu.edu
Please squash into patch that adds support for this board.
Best regards,
Wolfgang Denk

derived from patches posted by Jeff Doozan in the uBoot forum at http://forum.doozan.com
Signed-off-by: Eric Cooper ecc@cmu.edu --- board/Marvell/dockstar/dockstar.c | 30 ++++++++++++++++++++++++++++++ include/configs/dockstar.h | 1 - 2 files changed, 30 insertions(+), 1 deletions(-)
diff --git a/board/Marvell/dockstar/dockstar.c b/board/Marvell/dockstar/dockstar.c index 13cd347..7788837 100644 --- a/board/Marvell/dockstar/dockstar.c +++ b/board/Marvell/dockstar/dockstar.c @@ -153,3 +153,33 @@ void reset_phy(void) printf("88E1116 Initialized on %s\n", name); } #endif /* CONFIG_RESET_PHY_R */ + +#define GREEN_LED (1 << 14) +#define ORANGE_LED (1 << 15) +#define BOTH_LEDS (GREEN_LED | ORANGE_LED) +#define NEITHER_LED 0 + +static void set_leds(u32 leds, u32 blinking) +{ + struct kwgpio_registers *r = (struct kwgpio_registers *)KW_GPIO1_BASE; + u32 oe = readl(&r->oe) | BOTH_LEDS; + writel(oe & ~leds, &r->oe); /* active low */ + u32 bl = readl(&r->blink_en) & ~BOTH_LEDS; + writel(bl | blinking, &r->blink_en); +} + +void show_boot_progress(int val) +{ + switch (val) { + case 15: /* booting Linux */ + set_leds(BOTH_LEDS, NEITHER_LED); + break; + case 64: /* Ethernet initialization */ + set_leds(GREEN_LED, GREEN_LED); + break; + default: + if (val < 0) /* error */ + set_leds(ORANGE_LED, ORANGE_LED); + break; + } +} diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h index a1a97a3..ecd5f27 100644 --- a/include/configs/dockstar.h +++ b/include/configs/dockstar.h @@ -181,7 +181,6 @@ #define CONFIG_NET_MULTI /* specify more that one ports available */ #define CONFIG_MII /* expose smi ove miiphy interface */ #define CONFIG_MVGBE /* Enable Marvell Gbe Controller Driver */ -#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ #define CONFIG_PHY_BASE_ADR 0 #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */

Dear Eric Cooper,
In message 1283869696-10077-6-git-send-email-ecc@cmu.edu you wrote:
derived from patches posted by Jeff Doozan in the uBoot forum at http://forum.doozan.com
Please squash into patch that adds support for this board.
diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h index a1a97a3..ecd5f27 100644 --- a/include/configs/dockstar.h +++ b/include/configs/dockstar.h @@ -181,7 +181,6 @@ #define CONFIG_NET_MULTI /* specify more that one ports available */ #define CONFIG_MII /* expose smi ove miiphy interface */ #define CONFIG_MVGBE /* Enable Marvell Gbe Controller Driver */ -#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */
This is a modification which is completely unrelated to that patch anyway.
Best regards,
Wolfgang Denk

Hello.
On 07-09-2010 18:28, Eric Cooper wrote:
derived from patches posted by Jeff Doozan in the uBoot forum at http://forum.doozan.com
Signed-off-by: Eric Cooperecc@cmu.edu
[...]
diff --git a/board/Marvell/dockstar/dockstar.c b/board/Marvell/dockstar/dockstar.c index 13cd347..7788837 100644 --- a/board/Marvell/dockstar/dockstar.c +++ b/board/Marvell/dockstar/dockstar.c @@ -153,3 +153,33 @@ void reset_phy(void) printf("88E1116 Initialized on %s\n", name); } #endif /* CONFIG_RESET_PHY_R */
+#define GREEN_LED (1<< 14) +#define ORANGE_LED (1<< 15) +#define BOTH_LEDS (GREEN_LED | ORANGE_LED) +#define NEITHER_LED 0
+static void set_leds(u32 leds, u32 blinking) +{
- struct kwgpio_registers *r = (struct kwgpio_registers *)KW_GPIO1_BASE;
- u32 oe = readl(&r->oe) | BOTH_LEDS;
- writel(oe& ~leds,&r->oe); /* active low */
- u32 bl = readl(&r->blink_en)& ~BOTH_LEDS;
- writel(bl | blinking,&r->blink_en);
+}
+void show_boot_progress(int val) +{
- switch (val) {
case 15: /* booting Linux */
*case* should be aligned with *switch*. Don't align using spaces.
set_leds(BOTH_LEDS, NEITHER_LED);
break;
case 64: /* Ethernet initialization */
set_leds(GREEN_LED, GREEN_LED);
break;
default:
if (val < 0) /* error */
set_leds(ORANGE_LED, ORANGE_LED);
break;
- }
+}
WBR, Sergei

Am 07.09.2010 16:28, schrieb Eric Cooper:
This patch series adds support for the Seagate FreeAgent DockStar. The DockStar is almost identical to the Marvell SheevaPlug, but has 256M of NAND flash, 128M of SDRAM, and different LED pins.
A new machine ID (2998) has already been registered for this device.
Alexander Holler (2): DockStar: change RAM definitions to one bank (128 MB) DockStar: config
Eric Cooper (3): add DOCKSTAR machine type DockStar: board support (derived from sheevaplug) DockStar: LED support
arch/arm/include/asm/mach-types.h | 13 ++ board/Marvell/dockstar/Makefile | 51 ++++++++ board/Marvell/dockstar/config.mk | 28 +++++ board/Marvell/dockstar/dockstar.c | 185 +++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 +++++++ board/Marvell/dockstar/kwbimage.cfg | 162 ++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/dockstar.h | 217 +++++++++++++++++++++++++++++++++++ 8 files changed, 698 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h create mode 100644 board/Marvell/dockstar/kwbimage.cfg create mode 100644 include/configs/dockstar.h
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Hello Eric,
can you rework your patch set and send v2? Or do you need help?
Thomas

Thanks for your time.
I 'm just working on a u-boot on the board with CN5010, but it looks like there are some problems with GDB and BDI3000. I have built the debug environment covering GDB & BDI3000 & my board, but later I sadly found that the breakpoint doesn't work.
Could you give me some suggestions?
Thanks! Shuyou

Dear "sywang",
In message 20100927093617.042302812F@theia.denx.de you wrote:
I 'm just working on a u-boot on the board with CN5010, but it looks like there are some problems with GDB and BDI3000. I have built the debug environment covering GDB & BDI3000 & my board, but later I sadly found that the breakpoint doesn't work.
We don't know your hardware, and we don't know your code.
We cannot support you with stuff that is kept closed. And we explained this before.
Please contact Cavium technical support.
Best regards,
Wolfgang Denk

Thanks for your comments.
Who has done this? Please contact me.
Thanks! Shuyou
-----Original Message----- From: Wolfgang Denk [mailto:wd@denx.de] Sent: 2010年9月27日 18:08 To: sywang Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] How to debug u-boot with GDB & BDI3000
Dear "sywang",
In message 20100927093617.042302812F@theia.denx.de you wrote:
I 'm just working on a u-boot on the board with CN5010, but it looks like there are some problems with GDB and BDI3000. I have built the debug environment covering GDB & BDI3000 & my board, but later I sadly found
that
the breakpoint doesn't work.
We don't know your hardware, and we don't know your code.
We cannot support you with stuff that is kept closed. And we explained this before.
Please contact Cavium technical support.
Best regards,
Wolfgang Denk

On Mon, Sep 27, 2010 at 11:07:52AM +0200, Thomas Weber wrote:
can you rework your patch set and send v2? Or do you need help?
I was going to wait until the sheevaplug or guruplug boards had been modified for the ARM relocation changes and then base my v2 on that. I don't really know enough about the hardware to do it myself, and since I don't have a JTAG environment ready in case I mess it up, I don't really want to "experiment" :-)

start with sheevaplug configuration add modifications by Alexander Holler holler@ahsoftware.de change RAM definitions to one bank (128 MB) change ident string change environment to 0xA0000 define MTD partitions and default environment variables add support for LEDs
Signed-off-by: Eric Cooper ecc@cmu.edu --- Changes for v2: - rebased on master, post ARM and kirkwood relocation changes - squashed into single commit Pending patches that this depends on: Gray Remlin: kirkwood: Fix uninitialised DRAM struct Prafulla Wadaskar: Kirkwood: bugfix: broken early console messages
MAINTAINERS | 4 + MAKEALL | 1 + board/Marvell/dockstar/Makefile | 51 ++++++++++ board/Marvell/dockstar/config.mk | 28 ++++++ board/Marvell/dockstar/dockstar.c | 178 +++++++++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 ++++++++ board/Marvell/dockstar/kwbimage.cfg | 162 +++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/dockstar.h | 119 +++++++++++++++++++++++ 9 files changed, 585 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h create mode 100644 board/Marvell/dockstar/kwbimage.cfg create mode 100644 include/configs/dockstar.h
diff --git a/MAINTAINERS b/MAINTAINERS index 5108c54..0a25971 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -585,6 +585,10 @@ Po-Yu Chuang ratbert@faraday-tech.com
a320evb FA526 (ARM920T-like) (a320 SoC)
+Eric Cooper ecc@cmu.edu + + dockstar ARM926EJS (Kirkwood SoC) + George G. Davis gdavis@mvista.com
assabet SA1100 diff --git a/MAKEALL b/MAKEALL index c1f3842..83679b4 100755 --- a/MAKEALL +++ b/MAKEALL @@ -327,6 +327,7 @@ LIST_ARM9=" \ cp966 \ da830evm \ da850evm \ + dockstar \ edb9301 \ edb9302 \ edb9302a \ diff --git a/board/Marvell/dockstar/Makefile b/board/Marvell/dockstar/Makefile new file mode 100644 index 0000000..da9d29e --- /dev/null +++ b/board/Marvell/dockstar/Makefile @@ -0,0 +1,51 @@ +# +# (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. +# +# 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 := dockstar.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/Marvell/dockstar/config.mk b/board/Marvell/dockstar/config.mk new file mode 100644 index 0000000..761c2bb --- /dev/null +++ b/board/Marvell/dockstar/config.mk @@ -0,0 +1,28 @@ +# +# (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. +# +# 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 +# + +CONFIG_SYS_TEXT_BASE = 0x00600000 + +# Kirkwood Boot Image configuration file +KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/dockstar/dockstar.c b/board/Marvell/dockstar/dockstar.c new file mode 100644 index 0000000..f4cf59e --- /dev/null +++ b/board/Marvell/dockstar/dockstar.c @@ -0,0 +1,178 @@ +/* + * (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. + * + * 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 <miiphy.h> +#include <asm/arch/kirkwood.h> +#include <asm/arch/mpp.h> +#include "dockstar.h" + +DECLARE_GLOBAL_DATA_PTR; + +int board_early_init_f(void) +{ + /* + * default gpio configuration + * There are maximum 64 gpios controlled through 2 sets of registers + * the below configuration configures mainly initial LED status + */ + kw_config_gpio(DOCKSTAR_OE_VAL_LOW, + DOCKSTAR_OE_VAL_HIGH, + DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH); + + /* 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_GPO, + MPP8_UART0_RTS, + MPP9_UART0_CTS, + MPP10_UART0_TXD, + MPP11_UART0_RXD, + MPP12_SD_CLK, + MPP13_SD_CMD, + MPP14_SD_D0, + MPP15_SD_D1, + MPP16_SD_D2, + MPP17_SD_D3, + 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_TSMP9, + MPP30_GPIO, + MPP31_GPIO, + MPP32_GPIO, + MPP33_GPIO, + MPP34_GPIO, + MPP35_GPIO, + MPP36_GPIO, + MPP37_GPIO, + MPP38_GPIO, + MPP39_GPIO, + MPP40_GPIO, + MPP41_GPIO, + MPP42_GPIO, + MPP43_GPIO, + MPP44_GPIO, + MPP45_GPIO, + MPP46_GPIO, + MPP47_GPIO, + MPP48_GPIO, + MPP49_GPIO, + 0 + }; + kirkwood_mpp_conf(kwmpp_config); + return 0; +} + +int board_init(void) +{ + /* + * arch number of board + */ + gd->bd->bi_arch_number = MACH_TYPE_DOCKSTAR; + + /* address of boot parameters */ + gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100; + + return 0; +} + +#ifdef CONFIG_RESET_PHY_R +/* Configure and enable MV88E1116 PHY */ +void reset_phy(void) +{ + u16 reg; + u16 devadr; + char *name = "egiga0"; + + 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", + __FUNCTION__); + 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 |= (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 */ + miiphy_reset(name, devadr); + + printf("88E1116 Initialized on %s\n", name); +} +#endif /* CONFIG_RESET_PHY_R */ + +#define GREEN_LED (1 << 14) +#define ORANGE_LED (1 << 15) +#define BOTH_LEDS (GREEN_LED | ORANGE_LED) +#define NEITHER_LED 0 + +static void set_leds(u32 leds, u32 blinking) +{ + struct kwgpio_registers *r = (struct kwgpio_registers *)KW_GPIO1_BASE; + u32 oe = readl(&r->oe) | BOTH_LEDS; + writel(oe & ~leds, &r->oe); /* active low */ + u32 bl = readl(&r->blink_en) & ~BOTH_LEDS; + writel(bl | blinking, &r->blink_en); +} + +void show_boot_progress(int val) +{ + switch (val) { + case 15: /* booting Linux */ + set_leds(BOTH_LEDS, NEITHER_LED); + break; + case 64: /* Ethernet initialization */ + set_leds(GREEN_LED, GREEN_LED); + break; + default: + if (val < 0) /* error */ + set_leds(ORANGE_LED, ORANGE_LED); + break; + } +} diff --git a/board/Marvell/dockstar/dockstar.h b/board/Marvell/dockstar/dockstar.h new file mode 100644 index 0000000..33f8b19 --- /dev/null +++ b/board/Marvell/dockstar/dockstar.h @@ -0,0 +1,41 @@ +/* + * (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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#ifndef __DOCKSTAR_H +#define __DOCKSTAR_H + +#define DOCKSTAR_OE_LOW (~(0)) +#define DOCKSTAR_OE_HIGH (~(0)) +#define DOCKSTAR_OE_VAL_LOW (1 << 29) /* USB_PWEN low */ +#define DOCKSTAR_OE_VAL_HIGH (1 << 17) /* LED pin high */ + +/* 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 /* __DOCKSTAR_H */ diff --git a/board/Marvell/dockstar/kwbimage.cfg b/board/Marvell/dockstar/kwbimage.cfg new file mode 100644 index 0000000..46d504c --- /dev/null +++ b/board/Marvell/dockstar/kwbimage.cfg @@ -0,0 +1,162 @@ +# +# (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. +# +# 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 +# +# Refer docs/README.kwimage for more details about how-to configure +# and create kirkwood boot image +# + +# Boot Media configurations +BOOT_FROM nand +NAND_ECC_MODE default +NAND_PAGE_SIZE 0x0800 + +# 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: 0xc30 (3120 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 0x37543000 # 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: 7= CL+2, 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) +# bit3-0: TRAS lsbs +# 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 0x00000a33 # DDR Timing (High) +# bit6-0: TRFC +# bit8-7: TR2R +# bit10-9: TR2W +# bit12-11: TW2W +# bit31-13: zero required + +DATA 0xFFD01410 0x0000000d # DDR Address Control +# bit1-0: 00, Cs0width=x8 +# bit3-2: 11, Cs0size=1Gb +# bit5-4: 00, Cs1width=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 0x00000C52 # 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 0x00000040 # DDR Extended Mode +# bit0: 0, DDR DLL enabled +# bit1: 0, DDR drive strenght normal +# bit2: 0, DDR ODT control lsd (disabled) +# bit5-3: 000, required +# bit6: 1, DDR ODT control msb, (disabled) +# 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 : 0 +# 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 0x00085520 # DDR2 ODT Read Timing (default values) +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values) + +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0 +DATA 0xFFD01504 0x07FFFFF1 # 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: 0x0F, Size (i.e. 256MB) + +DATA 0xFFD01508 0x10000000 # CS[1]n Base address to 256Mb +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 0x00030000 # DDR ODT Control (Low) +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 0x0000E803 # CPU ODT Control +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/boards.cfg b/boards.cfg index 3a965e9..6542be4 100644 --- a/boards.cfg +++ b/boards.cfg @@ -361,6 +361,7 @@ guruplug arm arm926ejs - Marvell kirkwood mv88f6281gtw_ge arm arm926ejs - Marvell kirkwood openrd_base arm arm926ejs - Marvell kirkwood sheevaplug arm arm926ejs - Marvell kirkwood +dockstar arm arm926ejs - Marvell kirkwood imx27lite arm arm926ejs imx27lite logicpd mx27 magnesium arm arm926ejs imx27lite logicpd mx27 omap5912osk arm arm926ejs - ti omap diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h new file mode 100644 index 0000000..c9b4580 --- /dev/null +++ b/include/configs/dockstar.h @@ -0,0 +1,119 @@ +/* + * (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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#ifndef _CONFIG_DOCKSTAR_H +#define _CONFIG_DOCKSTAR_H + +/* + * Version number information + */ +#define CONFIG_IDENT_STRING "\nSeagate FreeAgent DockStar" + +/* + * High Level Configuration Options (easy to change) + */ +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */ +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */ +#define CONFIG_KW88F6281 1 /* SOC Name */ +#define CONFIG_MACH_DOCKSTAR /* 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_DHCP +#define CONFIG_CMD_ENV +#define CONFIG_CMD_MII +#define CONFIG_CMD_NAND +#define CONFIG_CMD_PING +#define CONFIG_CMD_USB +/* + * mv-common.h should be defined after CMD configs since it used them + * to enable certain macros + */ +#include "mv-common.h" + +/* + * Environment variables configurations + */ +#ifdef CONFIG_CMD_NAND +#define CONFIG_ENV_IS_IN_NAND 1 +#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K */ +#else +#define CONFIG_ENV_IS_NOWHERE 1 /* if env in SDRAM */ +#endif +/* + * max 4k env size is enough, but in case of nand + * it has to be rounded to sector size + */ +#define CONFIG_ENV_SIZE 0x20000 /* 128k */ +#define CONFIG_ENV_ADDR 0xA0000 +#define CONFIG_ENV_OFFSET 0xA0000 /* env starts here */ + +/* + * Default environment variables + */ +#define CONFIG_BOOTCOMMAND \ + "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \ + "ubi part root; " \ + "ubifsmount root; " \ + "ubifsload 0x800000 ${kernel}; " \ + "ubifsload 0x1100000 ${initrd}; " \ + "bootm 0x800000 0x1100000" + +#define CONFIG_MTDPARTS "mtdparts=orion_nand:1m(uboot),-(root)\0" + +#define CONFIG_EXTRA_ENV_SETTINGS \ + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ + "mtdparts="CONFIG_MTDPARTS \ + "kernel=/boot/uImage\0" \ + "initrd=/boot/uInitrd\0" \ + "bootargs_root=ubi.mtd=1 root=ubi0:root rootfstype=ubifs ro\0" + +/* + * Ethernet Driver configuration + */ +#ifdef CONFIG_CMD_NET +#define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ +#define CONFIG_PHY_BASE_ADR 0 +#endif /* CONFIG_CMD_NET */ + +/* + * File system + */ +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_CMD_JFFS2 +#define CONFIG_CMD_UBI +#define CONFIG_CMD_UBIFS +#define CONFIG_RBTREE +#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ +#define CONFIG_MTD_PARTITIONS +#define CONFIG_CMD_MTDPARTS +#define CONFIG_LZO + +#endif /* _CONFIG_DOCKSTAR_H */

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Eric Cooper Sent: Wednesday, October 20, 2010 8:25 PM To: u-boot@lists.denx.de Cc: Eric Cooper Subject: [U-Boot] [PATCH v2] Seagate FreeAgent DockStar support
start with sheevaplug configuration add modifications by Alexander Holler holler@ahsoftware.de change RAM definitions to one bank (128 MB) change ident string change environment to 0xA0000 define MTD partitions and default environment variables add support for LEDs
Signed-off-by: Eric Cooper ecc@cmu.edu
Changes for v2:
- rebased on master, post ARM and kirkwood relocation changes
- squashed into single commit
Pending patches that this depends on: Gray Remlin: kirkwood: Fix uninitialised DRAM struct Prafulla Wadaskar: Kirkwood: bugfix: broken early console messages
MAINTAINERS | 4 + MAKEALL | 1 + board/Marvell/dockstar/Makefile | 51 ++++++++++
This is not Marvell owned board, so it must go in board/Seagate or board/dockstar folder
board/Marvell/dockstar/config.mk | 28 ++++++ board/Marvell/dockstar/dockstar.c | 178 +++++++++++++++++++++++++++++++++++ board/Marvell/dockstar/dockstar.h | 41 ++++++++ board/Marvell/dockstar/kwbimage.cfg | 162 +++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/dockstar.h | 119 +++++++++++++++++++++++ 9 files changed, 585 insertions(+), 0 deletions(-) create mode 100644 board/Marvell/dockstar/Makefile create mode 100644 board/Marvell/dockstar/config.mk create mode 100644 board/Marvell/dockstar/dockstar.c create mode 100644 board/Marvell/dockstar/dockstar.h create mode 100644 board/Marvell/dockstar/kwbimage.cfg create mode 100644 include/configs/dockstar.h
diff --git a/MAINTAINERS b/MAINTAINERS index 5108c54..0a25971 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -585,6 +585,10 @@ Po-Yu Chuang ratbert@faraday-tech.com
a320evb FA526 (ARM920T-like) (a320 SoC)
+Eric Cooper ecc@cmu.edu
- dockstar ARM926EJS (Kirkwood SoC)
George G. Davis gdavis@mvista.com
assabet SA1100 diff --git a/MAKEALL b/MAKEALL index c1f3842..83679b4 100755 --- a/MAKEALL +++ b/MAKEALL @@ -327,6 +327,7 @@ LIST_ARM9=" \ cp966 \ da830evm \ da850evm \
- dockstar \ edb9301 \ edb9302 \ edb9302a \
diff --git a/board/Marvell/dockstar/Makefile b/board/Marvell/dockstar/Makefile new file mode 100644 index 0000000..da9d29e --- /dev/null +++ b/board/Marvell/dockstar/Makefile @@ -0,0 +1,51 @@ +# +# (C) Copyright 2009 +# Marvell Semiconductor <www.marvell.com> +# Written-by: Prafulla Wadaskar prafulla@marvell.com
This is to be updated, you can say "based/referenced" Ditto for other files
Regards.. Prafulla . .

On Wed, Oct 20, 2010 at 09:52:31PM -0700, Prafulla Wadaskar wrote:
This is not Marvell owned board, so it must go in board/Seagate or board/dockstar folder
board/Seagate/dockstar/ would be my preference, since there are similar products like the "Go Flex" that might go in board/Seagate/ someday.
Any problem with this, given that I am not affiliated with Seagate in any way?

Dear Eric Cooper,
In message 20101021150117.GB6772@localhost you wrote:
On Wed, Oct 20, 2010 at 09:52:31PM -0700, Prafulla Wadaskar wrote:
This is not Marvell owned board, so it must go in board/Seagate or board/dockstar folder
board/Seagate/dockstar/ would be my preference, since there are similar products like the "Go Flex" that might go in board/Seagate/ someday.
Any problem with this, given that I am not affiliated with Seagate in any way?
Not at all. It's the board vendor directory, but everybody can submit code for any boards from any vendors.
Best regards,
Wolfgang Denk

Dear Eric Cooper,
In message 1287586475-18588-1-git-send-email-ecc@cmu.edu you wrote: ...
diff --git a/MAKEALL b/MAKEALL index c1f3842..83679b4 100755 --- a/MAKEALL +++ b/MAKEALL @@ -327,6 +327,7 @@ LIST_ARM9=" \ cp966 \ da830evm \ da850evm \
- dockstar \ edb9301 \ edb9302 \ edb9302a \
This is not needed any more for any boards registered in boards.cfg
diff --git a/board/Marvell/dockstar/config.mk b/board/Marvell/dockstar/config.mk new file mode 100644 index 0000000..761c2bb --- /dev/null +++ b/board/Marvell/dockstar/config.mk @@ -0,0 +1,28 @@ +# +# (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. +# +# 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 +#
+CONFIG_SYS_TEXT_BASE = 0x00600000
Please move this as #define into the board config file.
+# Kirkwood Boot Image configuration file +KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg
I would like to get rid of this, too. But this needs discussion with Prafulla.
Best regards,
Wolfgang Denk

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Wolfgang Denk Sent: Thursday, October 21, 2010 11:47 AM To: Eric Cooper Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH v2] Seagate FreeAgent DockStar support
+# Kirkwood Boot Image configuration file +KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg
I would like to get rid of this, too. But this needs discussion with Prafulla.
Hi Wolfgang We can rename KWD_CONFIG to CONFIG_SYS_KWB_CONFIG and have default assignment as above If for some boards default assignment stands invalid, those can be redefined in board config file.
I will post a patch for this, waiting for your comments/ack.
Regards.. Prafulla . .

Dear Prafulla Wadaskar,
In message F766E4F80769BD478052FB6533FA745D19A6A465C9@SC-VEXCH4.marvell.com you wrote:
We can rename KWD_CONFIG to CONFIG_SYS_KWB_CONFIG and have default assignment as above If for some boards default assignment stands invalid, those can be redefined in board config file.
I will post a patch for this, waiting for your comments/ack.
Thanks, but please wait a second... I have something cooking already.
Best regards,
Wolfgang Denk

After moving the definition of CONFIG_SYS_TEXT_BASE to the respective board config files, all Marvell kirkwood board have just a single and common entry in their config.mk files:
KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg
Replace the only reference to KWD_CONFIG in the top level Makefile by an equivalent setting, and remove all kirkwood config.mk files.
Signed-off-by: Wolfgang Denk wd@denx.de Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Siddarth Gore gores@marvell.com Cc: Simon Kagstrom simon.kagstrom@netinsight.net Cc: Heiko Schocher hs@denx.de Cc: Eric Cooper ecc@cmu.edu --- Hi,
this is a (basicly untested) proposal how to clean up support for the kirkwood boards. Unfortunately I have no hardware available to test any of this, so I need your help here.
Thanks.
Wolfgang Denk
Makefile | 4 ++- board/Marvell/guruplug/config.mk | 27 ------------------------- board/Marvell/mv88f6281gtw_ge/config.mk | 28 -------------------------- board/Marvell/openrd_base/config.mk | 33 ------------------------------- board/Marvell/rd6281a/config.mk | 28 -------------------------- board/Marvell/sheevaplug/config.mk | 28 -------------------------- board/keymile/km_arm/config.mk | 28 -------------------------- include/configs/guruplug.h | 2 + include/configs/km_arm.h | 2 + include/configs/mv88f6281gtw_ge.h | 2 + include/configs/openrd_base.h | 2 + include/configs/rd6281a.h | 2 + include/configs/sheevaplug.h | 2 + 13 files changed, 15 insertions(+), 173 deletions(-) delete mode 100644 board/Marvell/guruplug/config.mk delete mode 100644 board/Marvell/mv88f6281gtw_ge/config.mk delete mode 100644 board/Marvell/openrd_base/config.mk delete mode 100644 board/Marvell/rd6281a/config.mk delete mode 100644 board/Marvell/sheevaplug/config.mk delete mode 100644 board/keymile/km_arm/config.mk
diff --git a/Makefile b/Makefile index 06c71a2..2ec1172 100644 --- a/Makefile +++ b/Makefile @@ -357,7 +357,9 @@ $(obj)u-boot.imx: $(obj)u-boot.bin -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
$(obj)u-boot.kwb: $(obj)u-boot.bin - $(obj)tools/mkimage -n $(KWD_CONFIG) -T kwbimage \ + $(obj)tools/mkimage \ + -n $(SRCTREE)/board/$(CONFIG_BOARDDIR)/kwbimage.cfg \ + -T kwbimage \ -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
$(obj)u-boot.sha1: $(obj)u-boot.bin diff --git a/board/Marvell/guruplug/config.mk b/board/Marvell/guruplug/config.mk deleted file mode 100644 index 12d7737..0000000 --- a/board/Marvell/guruplug/config.mk +++ /dev/null @@ -1,27 +0,0 @@ -# -# (C) Copyright 2009 -# Marvell Semiconductor <www.marvell.com> -# Written-by: Siddarth Gore gores@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 -# - -CONFIG_SYS_TEXT_BASE = 0x00600000 - -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/mv88f6281gtw_ge/config.mk b/board/Marvell/mv88f6281gtw_ge/config.mk deleted file mode 100644 index 761c2bb..0000000 --- a/board/Marvell/mv88f6281gtw_ge/config.mk +++ /dev/null @@ -1,28 +0,0 @@ -# -# (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. -# -# 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 -# - -CONFIG_SYS_TEXT_BASE = 0x00600000 - -# Kirkwood Boot Image configuration file -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/openrd_base/config.mk b/board/Marvell/openrd_base/config.mk deleted file mode 100644 index 5a49280..0000000 --- a/board/Marvell/openrd_base/config.mk +++ /dev/null @@ -1,33 +0,0 @@ -# -# (C) Copyright 2009 -# Net Insight <www.netinsight.net> -# Written-by: Simon Kagstrom simon.kagstrom@netinsight.net -# -# Based on sheevaplug: -# (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. -# -# 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 -# - -CONFIG_SYS_TEXT_BASE = 0x00600000 - -# Kirkwood Boot Image configuration file -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/rd6281a/config.mk b/board/Marvell/rd6281a/config.mk deleted file mode 100644 index 761c2bb..0000000 --- a/board/Marvell/rd6281a/config.mk +++ /dev/null @@ -1,28 +0,0 @@ -# -# (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. -# -# 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 -# - -CONFIG_SYS_TEXT_BASE = 0x00600000 - -# Kirkwood Boot Image configuration file -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/Marvell/sheevaplug/config.mk b/board/Marvell/sheevaplug/config.mk deleted file mode 100644 index 761c2bb..0000000 --- a/board/Marvell/sheevaplug/config.mk +++ /dev/null @@ -1,28 +0,0 @@ -# -# (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. -# -# 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 -# - -CONFIG_SYS_TEXT_BASE = 0x00600000 - -# Kirkwood Boot Image configuration file -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/board/keymile/km_arm/config.mk b/board/keymile/km_arm/config.mk deleted file mode 100644 index df4828c..0000000 --- a/board/keymile/km_arm/config.mk +++ /dev/null @@ -1,28 +0,0 @@ -# -# (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 -# - -CONFIG_SYS_TEXT_BASE = 0x004000000 - -# Kirkwood Boot Image configuration file -KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg diff --git a/include/configs/guruplug.h b/include/configs/guruplug.h index 2c2682c..64f6f06 100644 --- a/include/configs/guruplug.h +++ b/include/configs/guruplug.h @@ -39,6 +39,8 @@ #define CONFIG_MACH_GURUPLUG /* Machine type */ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_SYS_TEXT_BASE 0x00600000 + /* * Commands configuration */ diff --git a/include/configs/km_arm.h b/include/configs/km_arm.h index faa0f50..4254341 100644 --- a/include/configs/km_arm.h +++ b/include/configs/km_arm.h @@ -40,6 +40,8 @@ #define CONFIG_KW88F6281 /* SOC Name */ #define CONFIG_MACH_SUEN3 /* Machine type */
+#define CONFIG_SYS_TEXT_BASE 0x004000000 + /* include common defines/options for all Keymile boards */ #include "keymile-common.h" #undef CONFIG_CMD_DTT diff --git a/include/configs/mv88f6281gtw_ge.h b/include/configs/mv88f6281gtw_ge.h index d323829..69bd221 100644 --- a/include/configs/mv88f6281gtw_ge.h +++ b/include/configs/mv88f6281gtw_ge.h @@ -39,6 +39,8 @@ #define CONFIG_MACH_MV88F6281GTW_GE /* Machine type */ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_SYS_TEXT_BASE 0x00600000 + /* * Commands configuration */ diff --git a/include/configs/openrd_base.h b/include/configs/openrd_base.h index cfdd09c..a60c4c9 100644 --- a/include/configs/openrd_base.h +++ b/include/configs/openrd_base.h @@ -44,6 +44,8 @@ #define CONFIG_MACH_OPENRD_BASE /* Machine type */ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_SYS_TEXT_BASE 0x00600000 + /* * Commands configuration */ diff --git a/include/configs/rd6281a.h b/include/configs/rd6281a.h index 60f9579..634a2b7 100644 --- a/include/configs/rd6281a.h +++ b/include/configs/rd6281a.h @@ -39,6 +39,8 @@ #define CONFIG_MACH_RD6281A /* Machine type */ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_SYS_TEXT_BASE 0x00600000 + /* * Commands configuration */ diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h index 83dd8ff..2629344 100644 --- a/include/configs/sheevaplug.h +++ b/include/configs/sheevaplug.h @@ -39,6 +39,8 @@ #define CONFIG_MACH_SHEEVAPLUG /* Machine type */ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_SYS_TEXT_BASE 0x00600000 + /* * Commands configuration */

-----Original Message----- From: Wolfgang Denk [mailto:wd@denx.de] Sent: Thursday, October 21, 2010 12:08 PM To: u-boot@lists.denx.de Cc: Wolfgang Denk; Prafulla Wadaskar; Siddarth Gore; Simon Kagstrom; Heiko Schocher; Eric Cooper Subject: [RFC] [PATCH] kirkwood: get rid of config.mk files
After moving the definition of CONFIG_SYS_TEXT_BASE to the respective board config files, all Marvell kirkwood board have just a single and common entry in their config.mk files:
KWD_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/kwbimage.cfg
Replace the only reference to KWD_CONFIG in the top level Makefile by an equivalent setting, and remove all kirkwood config.mk files.
Signed-off-by: Wolfgang Denk wd@denx.de Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Siddarth Gore gores@marvell.com Cc: Simon Kagstrom simon.kagstrom@netinsight.net Cc: Heiko Schocher hs@denx.de Cc: Eric Cooper ecc@cmu.edu
Hi,
this is a (basicly untested) proposal how to clean up support for the kirkwood boards. Unfortunately I have no hardware available to test any of this, so I need your help here.
Thanks.
Wolfgang Denk
Makefile | 4 ++- board/Marvell/guruplug/config.mk | 27
board/Marvell/mv88f6281gtw_ge/config.mk | 28
board/Marvell/openrd_base/config.mk | 33
board/Marvell/rd6281a/config.mk | 28
board/Marvell/sheevaplug/config.mk | 28
board/keymile/km_arm/config.mk | 28
include/configs/guruplug.h | 2 + include/configs/km_arm.h | 2 + include/configs/mv88f6281gtw_ge.h | 2 + include/configs/openrd_base.h | 2 + include/configs/rd6281a.h | 2 + include/configs/sheevaplug.h | 2 + 13 files changed, 15 insertions(+), 173 deletions(-) delete mode 100644 board/Marvell/guruplug/config.mk delete mode 100644 board/Marvell/mv88f6281gtw_ge/config.mk delete mode 100644 board/Marvell/openrd_base/config.mk delete mode 100644 board/Marvell/rd6281a/config.mk delete mode 100644 board/Marvell/sheevaplug/config.mk delete mode 100644 board/keymile/km_arm/config.mk
diff --git a/Makefile b/Makefile index 06c71a2..2ec1172 100644 --- a/Makefile +++ b/Makefile @@ -357,7 +357,9 @@ $(obj)u-boot.imx: $(obj)u-boot.bin -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
$(obj)u-boot.kwb: $(obj)u-boot.bin
$(obj)tools/mkimage -n $(KWD_CONFIG) -T kwbimage \
$(obj)tools/mkimage \
-n $(SRCTREE)/board/$(CONFIG_BOARDDIR)/kwbimage.cfg \
Hi Wolfgang This will not address other forecasted use cases like- 1. if the new board is added to boards/ (i.e. no BOARDDIR) 2. it will force each board to have it's own kwbimage.cfg even though two boards need same configuration, i.e. code duplication.
In my opinion, we can keep this default setup with CONFIG_SYS_KWD_CONFIG support in addition.
Regards.. Prafulla . .

Dear Prafulla,
In message F766E4F80769BD478052FB6533FA745D19A6A465EB@SC-VEXCH4.marvell.com you wrote:
$(obj)tools/mkimage -n $(KWD_CONFIG) -T kwbimage \
$(obj)tools/mkimage \
-n $(SRCTREE)/board/$(CONFIG_BOARDDIR)/kwbimage.cfg \
Note: I have to admit that I don't really understand what the command is supposed to do (which is why I asked you for help with the testing).
The "-n" option to mkimage means "set image name to 'name'", so the file name given as argument here would only change the name string inside the image, but not affect the image content at all.
I guess this is not how it's supposed to work?
This will not address other forecasted use cases like-
if the new board is added to boards/ (i.e. no BOARDDIR)
it will force each board to have it's own kwbimage.cfg even though two
boards need same configuration, i.e. code duplication.
In my opinion, we can keep this default setup with CONFIG_SYS_KWD_CONFIG support in addition.
I'm not sure what exactly you mean here. Do you man to replace
$(SRCTREE)/board/$(CONFIG_BOARDDIR)/kwbimage.cfg
by something like
$(SRCTREE)/board/$(CONFIG_SYS_KWD_CONFIG)
? I would agree with that, too.
But I definitely want to avoid to have any such board specific configuration information in the config.mk files. Ideally, I want to get completely rid of all board specific config.mk files.
Best regards,
Wolfgang Denk

-----Original Message----- From: Wolfgang Denk [mailto:wd@denx.de] Sent: Thursday, October 21, 2010 1:52 PM To: Prafulla Wadaskar Cc: u-boot@lists.denx.de; Siddarth Gore; Simon Kagstrom; Heiko Schocher; Eric Cooper Subject: Re: [RFC] [PATCH] kirkwood: get rid of config.mk files
Dear Prafulla,
In message <F766E4F80769BD478052FB6533FA745D19A6A465EB@SC-VEXCH4.marvell. com> you wrote:
$(obj)tools/mkimage -n $(KWD_CONFIG) -T kwbimage \
$(obj)tools/mkimage \
-n $(SRCTREE)/board/$(CONFIG_BOARDDIR)/kwbimage.cfg \
Note: I have to admit that I don't really understand what the command is supposed to do (which is why I asked you for help with the testing).
Hi Wolfgang Shall I take this opporunity to modify test and repost this patch?
Regards.. Prafulla . .

Dear Prafulla Wadaskar,
In message F766E4F80769BD478052FB6533FA745D19A6A465FB@SC-VEXCH4.marvell.com you wrote:
Shall I take this opporunity to modify test and repost this patch?
Yes, please do! Thanks!
Best regards,
Wolfgang Denk
participants (6)
-
Eric Cooper
-
Prafulla Wadaskar
-
Sergei Shtylyov
-
sywang
-
Thomas Weber
-
Wolfgang Denk