aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-kirkwood
diff options
context:
space:
mode:
authorLuka Perkov <luka@openwrt.org>2014-02-15 23:53:07 +0000
committerLuka Perkov <luka@openwrt.org>2014-02-15 23:53:07 +0000
commit777e7c3ff5d0030dc7d24a43b70dfd2d3b2a5a4c (patch)
tree22369c6f07709713097307c6861bbcb49de325a7 /package/boot/uboot-kirkwood
parentcde033f9181a0dda07d06fc62db7f2692c1bf475 (diff)
downloadupstream-777e7c3ff5d0030dc7d24a43b70dfd2d3b2a5a4c.tar.gz
upstream-777e7c3ff5d0030dc7d24a43b70dfd2d3b2a5a4c.tar.bz2
upstream-777e7c3ff5d0030dc7d24a43b70dfd2d3b2a5a4c.zip
uboot-kirkwood: update to 2013.10
Tested on: * Cloud Engines Pogoplug E02 * RaidSonic ICY BOX IB-NAS62x0 * Iomega Iconnect Some users are avoiding to replace their bootloader, because of that add support for second stage u-boot image. Having ubifs capable bootloader is required in order to boot current OpenWrt trunk. Sample ib62x0 commands for running second stage bootloader: tftpboot 0x800000 uboot-kirkwood-ib62x0_second_stage/openwrt-kirkwood-ib62x0_second_stage-u-boot.img bootm 0x800000 Sample ib62x0 commands for flashing second stage bootloader: tftpboot 0x800000 uboot-kirkwood-ib62x0_second_stage/openwrt-kirkwood-ib62x0_second_stage-u-boot.img nand erase 0x100000 0x100000 ; nand write 0x800000 0x100000 0x${filesize} nand read 0x800000 0x100000 0x100000 ; bootm 0x800000 While at it include parallel build support, use alphabetic order of the boards and introduce common OpenWrt configuration. Signed-off-by: Luka Perkov <luka@openwrt.org> Tested-by (on ib62x0): Luka Perkov <luka@openwrt.org> Tested-by (on dockstar): Alexander Couzens <lynxis@fe80.eu> Tested-by (on iconnect): Wojciech Dubowik <wojciech.dubowik@neratec.com> CC: Felix Kaechele <heffer@fedoraproject.org> CC: Wojciech Dubowik <wojciech.dubowik@neratec.com> CC: Alexander Couzens <lynxis@fe80.eu> CC: Daniel Engberg <daniel.engberg@pyret.net> CC: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 39590
Diffstat (limited to 'package/boot/uboot-kirkwood')
-rw-r--r--package/boot/uboot-kirkwood/Makefile55
-rw-r--r--package/boot/uboot-kirkwood/patches/0001-kirkwood-ib62x0-use-device-tree-and-update-config.patch89
-rw-r--r--package/boot/uboot-kirkwood/patches/110-dockstar.patch134
-rw-r--r--package/boot/uboot-kirkwood/patches/120-iconnect.patch57
-rw-r--r--package/boot/uboot-kirkwood/patches/130-ib62x0.patch31
-rw-r--r--package/boot/uboot-kirkwood/patches/200-openwrt-config.patch100
6 files changed, 439 insertions, 27 deletions
diff --git a/package/boot/uboot-kirkwood/Makefile b/package/boot/uboot-kirkwood/Makefile
index 375d115280..328da81cff 100644
--- a/package/boot/uboot-kirkwood/Makefile
+++ b/package/boot/uboot-kirkwood/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2010-2012 OpenWrt.org
+# Copyright (C) 2010-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=u-boot
-PKG_VERSION:=2012.10
+PKG_VERSION:=2013.10
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
@@ -16,9 +16,11 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:= \
http://mirror2.openwrt.org/sources \
ftp://ftp.denx.de/pub/u-boot
-PKG_MD5SUM:=8655f63b1e5c4647295ac9ce44660be3
+PKG_MD5SUM:=a076a044b64371edc52f7e562b13f6b2
PKG_TARGETS:=bin
+PKG_BUILD_PARALLEL:=1
+
include $(INCLUDE_DIR)/package.mk
define uboot/Default
@@ -27,23 +29,44 @@ define uboot/Default
IMAGE:=
endef
-define uboot/sheevaplug
- TITLE:=U-Boot for the SheevaPlug
+define uboot/dockstar
+ TITLE:=U-Boot for Seagate DockStar
endef
-define uboot/dockstar
- TITLE:=U-Boot for the Seagate DockStar
+define uboot/dockstar_second_stage
+ TITLE:=second stage U-Boot for Seagate DockStar
+endef
+
+define uboot/ib62x0
+ TITLE:=U-Boot for RaidSonic ICY BOX NAS6210 and NAS6220
+endef
+
+define uboot/ib62x0_second_stage
+ TITLE:=second stage U-Boot for RaidSonic ICY BOX NAS6210 and NAS6220
endef
define uboot/iconnect
- TITLE:=U-Boot for the Iomega iConnect Wireless
+ TITLE:=U-Boot for Iomega iConnect Wireless
endef
-define uboot/ib62x0
- TITLE:=U-Boot for the RaidSonic ICY BOX NAS6210 and NAS6220
+define uboot/iconnect_second_stage
+ TITLE:=second stage U-Boot for Iomega iConnect Wireless
+endef
+
+define uboot/pogo_e02
+ TITLE:=U-Boot for Cloud Engines Pogoplug E02
+endef
+
+define uboot/sheevaplug
+ TITLE:=U-Boot for SheevaPlug
endef
-UBOOTS:=sheevaplug dockstar iconnect ib62x0
+UBOOTS:= \
+ dockstar dockstar_second_stage \
+ ib62x0 ib62x0_second_stage \
+ iconnect iconnect_second_stage \
+ pogo_e02 \
+ sheevaplug
define Package/uboot/template
define Package/uboot-kirkwood-$(1)
@@ -69,14 +92,18 @@ UBOOT_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-u-boot.bin
endif
define Build/Configure
- $(MAKE) -C $(PKG_BUILD_DIR) \
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
$(UBOOT_CONFIG)_config
endef
define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) \
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
u-boot.kwb \
CROSS_COMPILE=$(TARGET_CROSS)
+ mkimage -A $(ARCH) -O linux -T kernel -C none \
+ -a 0x600000 -e 0x600000 \
+ -n 'OpenWrt Das U-Boot uImage' \
+ -d $(PKG_BUILD_DIR)/u-boot.bin $(PKG_BUILD_DIR)/u-boot.img
endef
define Package/uboot/install/default
@@ -85,6 +112,8 @@ define Package/uboot/install/default
$(BIN_DIR)/uboot-$(BOARD)-$(1)/openwrt-$(BOARD)-$(1)-u-boot.bin
$(CP) $(PKG_BUILD_DIR)/u-boot.kwb \
$(BIN_DIR)/uboot-$(BOARD)-$(1)/openwrt-$(BOARD)-$(1)-u-boot.kwb
+ $(CP) $(PKG_BUILD_DIR)/u-boot.img \
+ $(BIN_DIR)/uboot-$(BOARD)-$(1)/openwrt-$(BOARD)-$(1)-u-boot.img
$(INSTALL_DIR) $(BIN_DIR)/u-boot-kwboot/
$(CP) $(PKG_BUILD_DIR)/tools/kwboot \
$(BIN_DIR)/u-boot-kwboot/
diff --git a/package/boot/uboot-kirkwood/patches/0001-kirkwood-ib62x0-use-device-tree-and-update-config.patch b/package/boot/uboot-kirkwood/patches/0001-kirkwood-ib62x0-use-device-tree-and-update-config.patch
new file mode 100644
index 0000000000..de8023689e
--- /dev/null
+++ b/package/boot/uboot-kirkwood/patches/0001-kirkwood-ib62x0-use-device-tree-and-update-config.patch
@@ -0,0 +1,89 @@
+From 2701517a2bbf17544b408738438b0dd17718d4dd Mon Sep 17 00:00:00 2001
+From: Luka Perkov <luka@openwrt.org>
+Date: Wed, 14 Nov 2012 23:32:55 +0100
+Subject: [PATCH] kirkwood: ib62x0: use device tree and update config
+
+Signed-off-by: Luka Perkov <luka@openwrt.org>
+CC: Prafulla Wadaskar <prafulla@marvell.com>
+---
+v1->v2:
+
+ * keep CONFIG_MACH_TYPE define for backwards compatibility
+---
+http://patchwork.ozlabs.org/patch/287388/
+Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
+---
+ include/configs/ib62x0.h | 38 +++++++++++++++++++++++---------------
+ 1 file changed, 23 insertions(+), 15 deletions(-)
+
+--- a/include/configs/ib62x0.h
++++ b/include/configs/ib62x0.h
+@@ -28,6 +28,11 @@
+ #define CONFIG_MACH_TYPE MACH_TYPE_NAS6210
+
+ /*
++ * Enable device tree support
++ */
++#define CONFIG_OF_LIBFDT
++
++/*
+ * Compression configuration
+ */
+ #define CONFIG_BZIP2
+@@ -41,6 +46,7 @@
+ #define CONFIG_SYS_MVFS
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_ENV
++#define CONFIG_CMD_BOOTZ
+ #define CONFIG_CMD_IDE
+ #define CONFIG_CMD_MII
+ #define CONFIG_CMD_NAND
+@@ -66,7 +72,7 @@
+ #define CONFIG_ENV_IS_NOWHERE
+ #endif
+ #define CONFIG_ENV_SIZE 0x20000
+-#define CONFIG_ENV_OFFSET 0x80000
++#define CONFIG_ENV_OFFSET 0xe0000
+
+ /*
+ * Default environment variables
+@@ -74,24 +80,26 @@
+ #define CONFIG_BOOTCOMMAND \
+ "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \
+ "ubi part root; " \
+- "ubifsmount ubi:root; " \
++ "ubifsmount ubi:rootfs; " \
+ "ubifsload 0x800000 ${kernel}; " \
+- "ubifsload 0x1100000 ${initrd}; " \
+- "bootm 0x800000 0x1100000"
+-
+-#define CONFIG_MTDPARTS \
+- "mtdparts=orion_nand:" \
+- "0x80000@0x0(uboot)," \
+- "0x20000@0x80000(uboot_env)," \
+- "-@0xa0000(root)\0"
++ "ubifsload 0x700000 ${fdt}; " \
++ "ubifsumount; " \
++ "fdt addr 0x700000; fdt resize; fdt chosen; " \
++ "bootz 0x800000 - 0x700000"
++
++#define CONFIG_MTDPARTS \
++ "mtdparts=orion_nand:" \
++ "0xe0000@0x0(uboot)," \
++ "0x20000@0xe0000(uboot_env)," \
++ "-@0x100000(root)\0"
+
+-#define CONFIG_EXTRA_ENV_SETTINGS \
++#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=2 root=ubi0:root rootfstype=ubifs\0"
++ "kernel=/boot/zImage\0" \
++ "fdt=/boot/ib62x0.dtb\0" \
++ "bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rw\0"
+
+ /*
+ * Ethernet driver configuration
diff --git a/package/boot/uboot-kirkwood/patches/110-dockstar.patch b/package/boot/uboot-kirkwood/patches/110-dockstar.patch
index 4ff7e57bbb..b0a7f54980 100644
--- a/package/boot/uboot-kirkwood/patches/110-dockstar.patch
+++ b/package/boot/uboot-kirkwood/patches/110-dockstar.patch
@@ -1,23 +1,104 @@
--- a/include/configs/dockstar.h
+++ b/include/configs/dockstar.h
-@@ -83,22 +83,19 @@
+@@ -15,21 +15,26 @@
+ /*
+ * Version number information
+ */
+-#define CONFIG_IDENT_STRING "\nSeagate FreeAgent DockStar"
++#define CONFIG_IDENT_STRING " Seagate FreeAgent DockStar"
+
+ /*
+- * High Level Configuration Options (easy to change)
++ * High level configuration options
+ */
+-#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_FEROCEON_88FR131 /* CPU Core subversion */
++#define CONFIG_KIRKWOOD /* SOC Family Name */
++#define CONFIG_KW88F6281 /* SOC Name */
+ #define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+
+ /*
++ * Machine type
++ */
++#define CONFIG_MACH_DOCKSTAR
++
++/*
+ * Commands configuration
+ */
+-#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */
++#define CONFIG_SYS_NO_FLASH /* declare no flash (NOR/SPI) */
++#define CONFIG_SYS_MVFS
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_DHCP
+ #define CONFIG_CMD_ENV
+@@ -37,55 +42,58 @@
+ #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"
+
+-#undef CONFIG_SYS_PROMPT /* previously defined in mv-common.h */
+-#define CONFIG_SYS_PROMPT "DockStar> " /* Command Prompt */
++#undef CONFIG_SYS_PROMPT
++#define CONFIG_SYS_PROMPT "dockstar => "
+
+ /*
+- * Environment variables configurations
++ * Environment variables configuration
+ */
+ #ifdef CONFIG_CMD_NAND
+-#define CONFIG_ENV_IS_IN_NAND 1
+-#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K */
++#define CONFIG_ENV_IS_IN_NAND
++#define CONFIG_ENV_SECT_SIZE 0x20000
+ #else
+-#define CONFIG_ENV_IS_NOWHERE 1 /* if env in SDRAM */
++#define CONFIG_ENV_IS_NOWHERE
+ #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 0x60000
+-#define CONFIG_ENV_OFFSET 0x60000 /* env starts here */
++#define CONFIG_ENV_SIZE 0x20000
++#define CONFIG_ENV_OFFSET 0xe0000
+
+ /*
* Default environment variables
*/
#define CONFIG_BOOTCOMMAND \
-- "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \
+ "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \
- "ubi part root; " \
-- "ubifsmount root; " \
+- "ubifsmount ubi:root; " \
- "ubifsload 0x800000 ${kernel}; " \
- "ubifsload 0x1100000 ${initrd}; " \
- "bootm 0x800000 0x1100000"
-+ "${x_bootcmd_kernel}; " \
-+ "setenv bootargs ${x_bootargs} ${x_bootargs_root}; " \
-+ "${x_bootcmd_usb}; bootm 0x6400000;"
-
+-
-#define CONFIG_MTDPARTS "mtdparts=orion_nand:1m(uboot),-(root)\0"
++ "ubi part root; " \
++ "ubifsmount ubi:rootfs; " \
++ "ubifsload 0x800000 ${kernel}; " \
++ "ubifsload 0x700000 ${fdt}; " \
++ "ubifsumount; " \
++ "fdt addr 0x700000; fdt resize; fdt chosen; " \
++ "bootz 0x800000 - 0x700000"
++
+#define CONFIG_MTDPARTS \
-+ "orion_nand:1M(u-boot),1M@1M(second_stage_u-boot)," \
-+ "3M@2M(kernel),32M@5M(rootfs),219M@37M(data) rw\0"
++ "mtdparts=orion_nand:" \
++ "0xe0000@0x0(uboot)," \
++ "0x20000@0xe0000(uboot_env)," \
++ "0x100000@0x100000(second_stage_uboot)," \
++ "-@0x200000(root)\0"
#define CONFIG_EXTRA_ENV_SETTINGS \
- "console=console=ttyS0,115200\0" \
@@ -26,10 +107,35 @@
- "kernel=/boot/uImage\0" \
- "initrd=/boot/uInitrd\0" \
- "bootargs_root=ubi.mtd=1 root=ubi0:root rootfstype=ubifs ro\0"
-+ "x_bootargs=console=ttyS0,115200 mtdparts="CONFIG_MTDPARTS \
-+ "x_bootcmd_kernel=nand read 0x6400000 0x200000 0x300000\0" \
-+ "x_bootargs_root=root=/dev/mtdblock3 rw rootfstype=jffs2\0" \
-+ "x_bootcmd_usb=usb start\0"
++ "console=console=ttyS0,115200\0" \
++ "mtdids=nand0=orion_nand\0" \
++ "mtdparts="CONFIG_MTDPARTS \
++ "kernel=/boot/zImage\0" \
++ "fdt=/boot/dockstar.dtb\0" \
++ "bootargs_root=ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw\0"
/*
- * Ethernet Driver configuration
+- * Ethernet Driver configuration
++ * Ethernet driver configuration
+ */
+ #ifdef CONFIG_CMD_NET
+ #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */
+@@ -101,7 +109,7 @@
+ #define CONFIG_CMD_UBI
+ #define CONFIG_CMD_UBIFS
+ #define CONFIG_RBTREE
+-#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */
++#define CONFIG_MTD_DEVICE
+ #define CONFIG_MTD_PARTITIONS
+ #define CONFIG_CMD_MTDPARTS
+ #define CONFIG_LZO
+--- a/boards.cfg
++++ b/boards.cfg
+@@ -190,6 +190,7 @@ Active arm arm926ejs kirkw
+ Active arm arm926ejs kirkwood Marvell openrd openrd_ultimate openrd:BOARD_IS_OPENRD_ULTIMATE -
+ Active arm arm926ejs kirkwood raidsonic ib62x0 ib62x0 - Luka Perkov <luka@openwrt.org>
+ Active arm arm926ejs kirkwood Seagate - dockstar - Eric Cooper <ecc@cmu.edu>
++Active arm arm926ejs kirkwood Seagate dockstar dockstar_second_stage dockstar:SECOND_STAGE Luka Perkov <luka@openwrt.org>
+ Active arm arm926ejs kirkwood Seagate - goflexhome - Suriyan Ramasami <suriyan.r@gmail.com>
+ Active arm arm926ejs lpc32xx timll devkit3250 devkit3250 - Vladimir Zapolskiy <vz@mleia.com>
+ Active arm arm926ejs mb86r0x syteco jadecpu jadecpu - Matthias Weisser <weisserm@arcor.de>
diff --git a/package/boot/uboot-kirkwood/patches/120-iconnect.patch b/package/boot/uboot-kirkwood/patches/120-iconnect.patch
new file mode 100644
index 0000000000..36655a98a5
--- /dev/null
+++ b/package/boot/uboot-kirkwood/patches/120-iconnect.patch
@@ -0,0 +1,57 @@
+--- a/include/configs/iconnect.h
++++ b/include/configs/iconnect.h
+@@ -65,30 +65,35 @@
+ #define CONFIG_ENV_IS_NOWHERE
+ #endif
+ #define CONFIG_ENV_SIZE 0x20000
+-#define CONFIG_ENV_OFFSET 0x80000
++#define CONFIG_ENV_OFFSET 0xe0000
+
+ /*
+ * Default environment variables
+ */
+ #define CONFIG_BOOTCOMMAND \
+ "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \
+- "ubi part rootfs; " \
++ "ubi part root; " \
+ "ubifsmount ubi:rootfs; " \
+ "ubifsload 0x800000 ${kernel}; " \
+- "bootm 0x800000"
++ "ubifsload 0x700000 ${fdt}; " \
++ "ubifsumount; " \
++ "fdt addr 0x700000; fdt resize; fdt chosen; " \
++ "bootz 0x800000 - 0x700000"
+
+ #define CONFIG_MTDPARTS \
+- "mtdparts=orion_nand:" \
+- "0x80000@0x0(uboot)," \
+- "0x20000@0x80000(uboot_env)," \
+- "-@0xa0000(rootfs)\0"
++ "mtdparts=orion_nand:" \
++ "0xe0000@0x0(uboot)," \
++ "0x20000@0xe0000(uboot_env)," \
++ "0x100000@0x100000(second_stage_uboot)," \
++ "-@0x200000(root)\0"
+
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+ "console=console=ttyS0,115200\0" \
+ "mtdids=nand0=orion_nand\0" \
+ "mtdparts="CONFIG_MTDPARTS \
+- "kernel=/boot/uImage\0" \
+- "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
++ "kernel=/boot/zImage\0" \
++ "fdt=/boot/iconnect.dtb\0" \
++ "bootargs_root=ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw\0"
+
+ /*
+ * Ethernet driver configuration
+--- a/boards.cfg
++++ b/boards.cfg
+@@ -164,6 +164,7 @@ Active arm arm926ejs kirkw
+ Active arm arm926ejs kirkwood cloudengines - pogo_e02 - Dave Purdy <david.c.purdy@gmail.com>
+ Active arm arm926ejs kirkwood d-link - dns325 - Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+ Active arm arm926ejs kirkwood iomega - iconnect - Luka Perkov <luka@openwrt.org>
++Active arm arm926ejs kirkwood iomega iconnect iconnect_second_stage iconnect:SECOND_STAGE Luka Perkov <luka@openwrt.org>
+ Active arm arm926ejs kirkwood karo tk71 tk71 - -
+ Active arm arm926ejs kirkwood keymile km_arm km_kirkwood km_kirkwood:KM_KIRKWOOD Valentin Longchamp <valentin.longchamp@keymile.com>
+ Active arm arm926ejs kirkwood keymile km_arm km_kirkwood_pci km_kirkwood:KM_KIRKWOOD_PCI Valentin Longchamp <valentin.longchamp@keymile.com>
diff --git a/package/boot/uboot-kirkwood/patches/130-ib62x0.patch b/package/boot/uboot-kirkwood/patches/130-ib62x0.patch
new file mode 100644
index 0000000000..9a086e08b1
--- /dev/null
+++ b/package/boot/uboot-kirkwood/patches/130-ib62x0.patch
@@ -0,0 +1,31 @@
+--- a/boards.cfg
++++ b/boards.cfg
+@@ -190,6 +190,7 @@ Active arm arm926ejs kirkw
+ Active arm arm926ejs kirkwood Marvell openrd openrd_client openrd:BOARD_IS_OPENRD_CLIENT -
+ Active arm arm926ejs kirkwood Marvell openrd openrd_ultimate openrd:BOARD_IS_OPENRD_ULTIMATE -
+ Active arm arm926ejs kirkwood raidsonic ib62x0 ib62x0 - Luka Perkov <luka@openwrt.org>
++Active arm arm926ejs kirkwood raidsonic ib62x0 ib62x0_second_stage ib62x0:SECOND_STAGE Luka Perkov <luka@openwrt.org>
+ Active arm arm926ejs kirkwood Seagate - dockstar - Eric Cooper <ecc@cmu.edu>
+ Active arm arm926ejs kirkwood Seagate dockstar dockstar_second_stage dockstar:SECOND_STAGE Luka Perkov <luka@openwrt.org>
+ Active arm arm926ejs kirkwood Seagate - goflexhome - Suriyan Ramasami <suriyan.r@gmail.com>
+--- a/include/configs/ib62x0.h
++++ b/include/configs/ib62x0.h
+@@ -91,7 +91,8 @@
+ "mtdparts=orion_nand:" \
+ "0xe0000@0x0(uboot)," \
+ "0x20000@0xe0000(uboot_env)," \
+- "-@0x100000(root)\0"
++ "0x100000@0x100000(second_stage_uboot)," \
++ "-@0x200000(root)\0"
+
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+ "console=console=ttyS0,115200\0" \
+@@ -99,7 +100,7 @@
+ "mtdparts="CONFIG_MTDPARTS \
+ "kernel=/boot/zImage\0" \
+ "fdt=/boot/ib62x0.dtb\0" \
+- "bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rw\0"
++ "bootargs_root=ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw\0"
+
+ /*
+ * Ethernet driver configuration
diff --git a/package/boot/uboot-kirkwood/patches/200-openwrt-config.patch b/package/boot/uboot-kirkwood/patches/200-openwrt-config.patch
new file mode 100644
index 0000000000..0c3e6781cc
--- /dev/null
+++ b/package/boot/uboot-kirkwood/patches/200-openwrt-config.patch
@@ -0,0 +1,100 @@
+--- a/include/configs/dockstar.h
++++ b/include/configs/dockstar.h
+@@ -114,4 +114,6 @@
+ #define CONFIG_CMD_MTDPARTS
+ #define CONFIG_LZO
+
++#include "openwrt-kirkwood-common.h"
++
+ #endif /* _CONFIG_DOCKSTAR_H */
+--- a/include/configs/ib62x0.h
++++ b/include/configs/ib62x0.h
+@@ -144,4 +144,6 @@
+ #define CONFIG_MTD_PARTITIONS
+ #define CONFIG_CMD_MTDPARTS
+
++#include "openwrt-kirkwood-common.h"
++
+ #endif /* _CONFIG_IB62x0_H */
+--- a/include/configs/iconnect.h
++++ b/include/configs/iconnect.h
+@@ -117,4 +117,6 @@
+ #define CONFIG_MTD_PARTITIONS
+ #define CONFIG_CMD_MTDPARTS
+
++#include "openwrt-kirkwood-common.h"
++
+ #endif /* _CONFIG_ICONNECT_H */
+--- /dev/null
++++ b/include/configs/openwrt-kirkwood-common.h
+@@ -0,0 +1,52 @@
++/*
++ * Copyright (C) 2013 Luka Perkov <luka@openwrt.org>
++ *
++ * SPDX-License-Identifier: GPL-2.0+
++ */
++
++#ifndef __OPENWRT_KIRKWOOD_COMMON_H
++#define __OPENWRT_KIRKWOOD_COMMON_H
++
++/* Commands */
++#define CONFIG_CMD_BOOTZ
++
++#if defined(CONFIG_CMD_NET)
++#define CONFIG_CMD_DHCP
++#define CONFIG_CMD_PING
++#endif
++
++/* Auto boot */
++#undef CONFIG_BOOTDELAY
++#define CONFIG_BOOTDELAY 3
++
++/* Ethernet */
++#if defined(CONFIG_CMD_NET)
++#define CONFIG_SERVERIP 192.168.1.2
++#define CONFIG_IPADDR 192.168.1.1
++#endif
++
++/* second stage loader */
++#if defined(CONFIG_SECOND_STAGE)
++#undef CONFIG_ENV_IS_IN_NAND
++#undef CONFIG_ENV_SECT_SIZE
++#define CONFIG_ENV_IS_NOWHERE
++#endif
++
++/* Flattened Device Tree */
++#define CONFIG_OF_LIBFDT
++
++/* Flattened uImage Tree */
++#define CONFIG_FIT
++#define CONFIG_FIT_VERBOSE
++
++/* Various */
++#define CONFIG_BZIP2
++#define CONFIG_LZMA
++#define CONFIG_LZO
++
++/* Unnecessary */
++#undef CONFIG_BOOTM_NETBSD
++#undef CONFIG_BOOTM_PLAN9
++#undef CONFIG_BOOTM_RTEMS
++
++#endif /* __OPENWRT_KIRKWOOD_COMMON_H */
+--- a/include/configs/pogo_e02.h
++++ b/include/configs/pogo_e02.h
+@@ -102,4 +102,6 @@
+ #define CONFIG_CMD_MTDPARTS
+ #define CONFIG_LZO
+
++#include "openwrt-kirkwood-common.h"
++
+ #endif /* _CONFIG_POGO_E02_H */
+--- a/include/configs/sheevaplug.h
++++ b/include/configs/sheevaplug.h
+@@ -95,4 +95,6 @@
+ #define CONFIG_CMD_MTDPARTS
+ #define CONFIG_LZO
+
++#include "openwrt-kirkwood-common.h"
++
+ #endif /* _CONFIG_SHEEVAPLUG_H */