diff options
9 files changed, 460 insertions, 25 deletions
| diff --git a/package/uboot-kirkwood/Makefile b/package/uboot-kirkwood/Makefile index d0835e7a3..8724aef6d 100644 --- a/package/uboot-kirkwood/Makefile +++ b/package/uboot-kirkwood/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk  include $(INCLUDE_DIR)/kernel.mk  PKG_NAME:=u-boot -PKG_VERSION:=2010.03 +PKG_VERSION:=2010.09  PKG_RELEASE:=1  PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/package/uboot-kirkwood/files/board/Marvell/iconnect/Makefile b/package/uboot-kirkwood/files/board/Marvell/iconnect/Makefile new file mode 100644 index 000000000..0301f987c --- /dev/null +++ b/package/uboot-kirkwood/files/board/Marvell/iconnect/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	:= iconnect.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/package/uboot-kirkwood/files/board/Marvell/iconnect/config.mk b/package/uboot-kirkwood/files/board/Marvell/iconnect/config.mk new file mode 100644 index 000000000..2bd9f79fc --- /dev/null +++ b/package/uboot-kirkwood/files/board/Marvell/iconnect/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/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.c b/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.c new file mode 100644 index 000000000..b188fa3ed --- /dev/null +++ b/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.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 "iconnect.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(ICONNECT_OE_VAL_LOW, +			ICONNECT_OE_VAL_HIGH, +			ICONNECT_OE_LOW, ICONNECT_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_TW_SDA, +		MPP9_TW_SCK, +		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_GE1_0, +		MPP21_GE1_1, +		MPP22_GE1_2, +		MPP23_GE1_3, +		MPP24_GE1_4, +		MPP25_GE1_5, +		MPP26_GE1_6, +		MPP27_GE1_7, +		MPP28_GPIO, +		MPP29_GPIO, +		MPP30_GE1_10, +		MPP31_GE1_11, +		MPP32_GE1_12, +		MPP33_GE1_13, +		MPP34_GE1_14, +		MPP35_GPIO, +		MPP36_AUDIO_SPDIFI, +		MPP37_AUDIO_SPDIFO, +		MPP38_GPIO, +		MPP39_TDM_SPI_CS0, +		MPP40_TDM_SPI_SCK, +		MPP41_TDM_SPI_MISO, +		MPP42_TDM_SPI_MOSI, +		MPP43_TDM_CODEC_INTn, +		MPP44_GPIO, +		MPP45_TDM_PCLK, +		MPP46_TDM_FS, +		MPP47_TDM_DRX, +		MPP48_TDM_DTX, +		MPP49_GPIO, +		0 +}; +	kirkwood_mpp_conf(kwmpp_config); + +	/* +	 * arch number of board +	 */ +	gd->bd->bi_arch_number = MACH_TYPE_ICONNECT; + +	/* 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/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.h b/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.h new file mode 100644 index 000000000..835adbaf5 --- /dev/null +++ b/package/uboot-kirkwood/files/board/Marvell/iconnect/iconnect.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 __ICONNECT_H +#define __ICONNECT_H + +#define ICONNECT_OE_LOW			(~(1 << 7)) +#define ICONNECT_OE_HIGH			(~(1 << 2 | 1 << 12)) +#define ICONNECT_OE_VAL_LOW		(0) +#define ICONNECT_OE_VAL_HIGH		(1 << 12) + +/* 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 /* __ICONNECT_H */ diff --git a/package/uboot-kirkwood/files/board/Marvell/iconnect/kwbimage.cfg b/package/uboot-kirkwood/files/board/Marvell/iconnect/kwbimage.cfg new file mode 100644 index 000000000..37042f5a4 --- /dev/null +++ b/package/uboot-kirkwood/files/board/Marvell/iconnect/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 0x000000cc	#  DDR Address Control +# bit1-0:   00, Cs0width=x8 +# bit3-2:   11, Cs0size=1Gb +# bit5-4:   00, Cs1width=x8 +# bit7-6:   11, Cs1size=1Gb +# 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 0x0FFFFFF1	# CS[0]n Size +# bit0:    1,  Window enabled +# bit1:    0,  Write Protect disabled +# bit3-2:  00, CS0 hit selected +# bit23-4: ones, required +# bit31-24: 0x0F, Size (i.e. 256MB) + +DATA 0xFFD01508 0x00000000	# CS[1]n Base address to 256Mb +DATA 0xFFD0150C 0x00000000	# CS[1]n Size 256Mb Window enabled for CS1 + +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/package/uboot-kirkwood/files/include/configs/dockstar.h b/package/uboot-kirkwood/files/include/configs/dockstar.h index fa3d19959..e19552c69 100644 --- a/package/uboot-kirkwood/files/include/configs/dockstar.h +++ b/package/uboot-kirkwood/files/include/configs/dockstar.h @@ -172,9 +172,9 @@  #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_MVGBE	/* 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_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 */ diff --git a/package/uboot-kirkwood/patches/010-dockstar.patch b/package/uboot-kirkwood/patches/010-dockstar.patch index 209fada92..e2d891d57 100644 --- a/package/uboot-kirkwood/patches/010-dockstar.patch +++ b/package/uboot-kirkwood/patches/010-dockstar.patch @@ -1,22 +1,10 @@ ---- a/Makefile -+++ b/Makefile -@@ -3039,6 +3039,9 @@ - sheevaplug_config: unconfig - 	@$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood -  -+dockstar_config: unconfig -+	@$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood -+ - smdk2400_config	:	unconfig - 	@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 samsung s3c24x0 -  ---- a/include/asm-arm/mach-types.h -+++ b/include/asm-arm/mach-types.h -@@ -2699,6 +2699,7 @@ - #define MACH_TYPE_MX53_EVK             2716 - #define MACH_TYPE_IGEP0030             2717 - #define MACH_TYPE_AXELL_H40_H50_CTRL   2718 -+#define MACH_TYPE_DOCKSTAR             2998 -  - #ifdef CONFIG_ARCH_EBSA110 - # ifdef machine_arch_type +--- a/boards.cfg ++++ b/boards.cfg +@@ -251,6 +251,7 @@ guruplug	arm	arm926ejs	-		Marvell		kirkw + 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/package/uboot-kirkwood/patches/020-iconnect.patch b/package/uboot-kirkwood/patches/020-iconnect.patch new file mode 100644 index 000000000..525d38544 --- /dev/null +++ b/package/uboot-kirkwood/patches/020-iconnect.patch @@ -0,0 +1,10 @@ +--- a/boards.cfg ++++ b/boards.cfg +@@ -252,6 +252,7 @@ mv88f6281gtw_ge	arm	arm926ejs	-		Marvell + openrd_base	arm	arm926ejs	-		Marvell		kirkwood + sheevaplug	arm	arm926ejs	-		Marvell		kirkwood + dockstar	arm	arm926ejs	-		Marvell		kirkwood ++iconnect	arm	arm926ejs	-		Marvell		kirkwood + imx27lite	arm	arm926ejs	imx27lite	logicpd		mx27 + magnesium	arm	arm926ejs	imx27lite	logicpd		mx27 + omap5912osk	arm	arm926ejs	-		ti		omap | 
