kirkwood-dockstar.dtb \
        kirkwood-dreamplug.dtb \
        kirkwood-goflexnet.dtb \
+       kirkwood-guruplug-server-plus.dtb \
        kirkwood-ib62x0.dtb \
        kirkwood-iconnect.dtb \
        kirkwood-iomega_ix2_200.dtb \
 
--- /dev/null
+/dts-v1/;
+
+/include/ "kirkwood.dtsi"
+/include/ "kirkwood-6281.dtsi"
+
+/ {
+       model = "Globalscale Technologies Guruplug Server Plus";
+       compatible = "globalscale,guruplug-server-plus", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+
+                       pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
+                                     &pmx_led_wmode_r &pmx_led_wmode_g >;
+                       pinctrl-names = "default";
+
+                       pmx_led_health_r: pmx-led-health-r {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_health_g: pmx-led-health-g {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_wmode_r: pmx-led-wmode-r {
+                               marvell,pins = "mpp48";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_wmode_g: pmx-led-wmode-g {
+                               marvell,pins = "mpp49";
+                               marvell,function = "gpio";
+                       };
+               };
+               serial@12000 {
+                       clock-frequency = <200000000>;
+                       status = "ok";
+               };
+
+               nand@3000000 {
+                       status = "okay";
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x00000000 0x00100000>;
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               label = "uImage";
+                               reg = <0x00100000 0x00400000>;
+                       };
+
+                       partition@500000 {
+                               label = "data";
+                               reg = <0x00500000 0x1fb00000>;
+                       };
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <1>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               health-r {
+                       label = "guruplug:red:health";
+                       gpios = <&gpio1 14 1>;
+               };
+               health-g {
+                       label = "guruplug:green:health";
+                       gpios = <&gpio1 15 1>;
+               };
+               wmode-r {
+                       label = "guruplug:red:wmode";
+                       gpios = <&gpio1 16 1>;
+               };
+               wmode-g {
+                       label = "guruplug:green:wmode";
+                       gpios = <&gpio1 17 1>;
+               };
+       };
+};
 
          Say 'Y' here if you want your kernel to support the
          Marvell Kirkwood using flattened device tree.
 
+config MACH_GURUPLUG_DT
+       bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell GuruPlug Reference Board (Flattened Device Tree).
+
 config MACH_DREAMPLUG_DT
        bool "Marvell DreamPlug (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
 
 
 obj-$(CONFIG_ARCH_KIRKWOOD_DT)         += board-dt.o
 obj-$(CONFIG_MACH_DREAMPLUG_DT)                += board-dreamplug.o
+obj-$(CONFIG_MACH_GURUPLUG_DT)         += board-guruplug.o
 obj-$(CONFIG_MACH_ICONNECT_DT)         += board-iconnect.o
 obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT)   += board-dnskw.o
 obj-$(CONFIG_MACH_IB62X0_DT)           += board-ib62x0.o
 
        if (of_machine_is_compatible("globalscale,dreamplug"))
                dreamplug_init();
 
+       if (of_machine_is_compatible("globalscale,guruplug"))
+               guruplug_dt_init();
+
        if (of_machine_is_compatible("dlink,dns-kirkwood"))
                dnskw_init();
 
 
 static const char * const kirkwood_dt_board_compat[] = {
        "globalscale,dreamplug",
+       "globalscale,guruplug",
        "dlink,dns-320",
        "dlink,dns-325",
        "iom,iconnect",
 
--- /dev/null
+/*
+ * arch/arm/mach-kirkwood/board-guruplug.c
+ *
+ * Marvell Guruplug Reference Board Init for drivers not converted to
+ * flattened device tree yet.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/mv643xx_eth.h>
+#include <linux/gpio.h>
+#include <linux/platform_data/mmc-mvsdio.h>
+#include "common.h"
+
+static struct mv643xx_eth_platform_data guruplug_ge00_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
+};
+
+static struct mv643xx_eth_platform_data guruplug_ge01_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
+};
+
+static struct mvsdio_platform_data guruplug_mvsdio_data = {
+       /* unfortunately the CD signal has not been connected */
+};
+
+void __init guruplug_dt_init(void)
+{
+       /*
+        * Basic setup. Needs to be called early.
+        */
+       kirkwood_ge00_init(&guruplug_ge00_data);
+       kirkwood_ge01_init(&guruplug_ge01_data);
+       kirkwood_sdio_init(&guruplug_mvsdio_data);
+}
 
 #else
 static inline void dreamplug_init(void) {};
 #endif
+#ifdef CONFIG_MACH_GURUPLUG_DT
+void guruplug_dt_init(void);
+#else
+static inline void guruplug_dt_init(void) {};
+#endif
 #ifdef CONFIG_MACH_TS219_DT
 void qnap_dt_ts219_init(void);
 #else