[OpenWrt-Devel] [PATCH] kirkwood: add support for the Seagate GoflexHome

L. D. Pinney ldpinney at gmail.com
Fri May 8 15:54:49 EDT 2015


Add Support for the Seagate GoflexHome <http://wiki.openwrt.org/toh/seagate/goflexhome>

Signed-off-by: L. D. Pinney <ldpinney at gmail.com>
---

 target/linux/kirkwood/base-files/etc/diag.sh                 |   1 +
 target/linux/kirkwood/base-files/etc/uci-defaults/01_leds    |   1 +
 target/linux/kirkwood/base-files/etc/uci-defaults/02_network |   1 +
 target/linux/kirkwood/base-files/lib/kirkwood.sh             |   4 +++
 target/linux/kirkwood/image/Makefile                         |   3 ++
 target/linux/kirkwood/patches-3.18/180-goflexhome.patch      | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 target/linux/kirkwood/profiles/110-nas.mk                    |  17 ++++++++++
 7 files changed, 167 insertions(+)

diff --git a/target/linux/kirkwood/base-files/etc/diag.sh b/target/linux/kirkwood/base-files/etc/diag.sh
index 29445d5..716e6c9 100755
--- a/target/linux/kirkwood/base-files/etc/diag.sh
+++ b/target/linux/kirkwood/base-files/etc/diag.sh
@@ -7,6 +7,7 @@
 get_status_led() {
 	case $(kirkwood_board_name) in
 	dockstar|\
+	goflexhome|\
 	goflexnet|\
 	pogo_e02)
 		status_led="status:orange:fault"
diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
index 0f7a906..a8ba1f6 100644
--- a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
@@ -20,6 +20,7 @@ case "$board" in
 	ucidef_set_led_default "health" "health" "ea4500:white:health" "1"
 	ucidef_set_led_default "pulse" "pulse" "ea4500:white:pulse" "1"
 	;;
+"goflexhome" | \
 "goflexnet")
         ucidef_set_led_default "health" "health" "status:green:health" "1"
         ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"
diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/02_network b/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
index 4ed0ab4..f0628cd 100644
--- a/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
@@ -29,6 +29,7 @@ ucidef_set_interface_loopback
 
 case "$board" in
 "dockstar"|\
+"goflexhome"|\
 "goflexnet"|\
 "iconnect"|\
 "ib62x0"|\
diff --git a/target/linux/kirkwood/base-files/lib/kirkwood.sh b/target/linux/kirkwood/base-files/lib/kirkwood.sh
index c088581..aa16daf 100755
--- a/target/linux/kirkwood/base-files/lib/kirkwood.sh
+++ b/target/linux/kirkwood/base-files/lib/kirkwood.sh
@@ -17,6 +17,10 @@ kirkwood_board_detect() {
 		name="dockstar"
 		;;
 
+        "Seagate GoFlex Home")
+                name="goflexhome"
+                ;;
+
 	"Seagate GoFlex Net")
 		name="goflexnet"
 		;;
diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile
index ede7cb3..8413a41 100644
--- a/target/linux/kirkwood/image/Makefile
+++ b/target/linux/kirkwood/image/Makefile
@@ -123,6 +123,9 @@ Image/InstallKernel/Template/EA3500=$(call Image/InstallKernel/Template,ea3500)
 Image/BuildKernel/Template/EA4500=$(call Image/BuildKernel/Template,ea4500)
 Image/InstallKernel/Template/EA4500=$(call Image/InstallKernel/Template,ea4500)
 
+Image/BuildKernel/Template/GOFLEXHOME=$(call Image/BuildKernel/Template,goflexhome)
+Image/InstallKernel/Template/GOFLEXHOME=$(call Image/InstallKernel/Template,goflexhome)
+
 Image/BuildKernel/Template/GOFLEXNET=$(call Image/BuildKernel/Template,goflexnet)
 Image/InstallKernel/Template/GOFLEXNET=$(call Image/InstallKernel/Template,goflexnet)
 
diff --git a/target/linux/kirkwood/patches-3.18/180-goflexhome.patch b/target/linux/kirkwood/patches-3.18/180-goflexhome.patch
new file mode 100644
index 0000000..b224f53
--- /dev/null
+++ b/target/linux/kirkwood/patches-3.18/180-goflexhome.patch
@@ -0,0 +1,140 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -125,6 +126,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-
+	kirkwood-ds411slim.dtb \
+	kirkwood-ea3500.dtb \
+	kirkwood-ea4500.dtb \
++	kirkwood-goflexhome.dtb \
+	kirkwood-goflexnet.dtb \
+	kirkwood-guruplug-server-plus.dtb \
+	kirkwood-ib62x0.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-goflexhome.dts
+@@ -0,0 +1,127 @@
++/dts-v1/;
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6281.dtsi"
++
++/ {
++	model = "Seagate GoFlex Home";
++	compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++	memory {
++		device_type = "memory";
++		reg = <0x00000000 0x8000000>;
++	};
++
++	chosen {
++		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
++		stdout-path = &uart0;
++	};
++
++	ocp at f1000000 {
++		pinctrl: pin-controller at 10000 {
++			pmx_usb_power_enable: pmx-usb-power-enable {
++				marvell,pins = "mpp29";
++				marvell,function = "gpio";
++			};
++			pmx_led_white: pmx-led-white {
++				marvell,pins = "mpp40";
++				marvell,function = "gpio";
++			};
++			pmx_led_green: pmx-led_green {
++				marvell,pins = "mpp46";
++				marvell,function = "gpio";
++			};
++			pmx_led_orange: pmx-led-orange {
++				marvell,pins = "mpp47";
++				marvell,function = "gpio";
++			};
++		};
++		serial at 12000 {
++			status = "ok";
++		};
++
++		sata at 80000 {
++			status = "okay";
++			nr-ports = <2>;
++		};
++
++	};
++	gpio-leds {
++		compatible = "gpio-leds";
++
++		health {
++			label = "status:green:health";
++			gpios = <&gpio1 14 1>;
++			linux,default-trigger = "default-on";
++		};
++		fault {
++			label = "status:orange:fault";
++			gpios = <&gpio1 15 1>;
++		};
++		misc {
++			label = "status:white:misc";
++			gpios = <&gpio1 8 1>;
++			linux,default-trigger = "ide-disk";
++		};
++	};
++	regulators {
++		compatible = "simple-bus";
++		#address-cells = <1>;
++		#size-cells = <0>;
++		pinctrl-0 = <&pmx_usb_power_enable>;
++		pinctrl-names = "default";
++
++		usb_power: regulator at 1 {
++			compatible = "regulator-fixed";
++			reg = <1>;
++			regulator-name = "USB Power";
++			regulator-min-microvolt = <5000000>;
++			regulator-max-microvolt = <5000000>;
++			enable-active-high;
++			regulator-always-on;
++			regulator-boot-on;
++			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
++		};
++	};
++};
++
++&nand {
++	chip-delay = <40>;
++	status = "okay";
++
++	partition at 0 {
++		label = "u-boot";
++		reg = <0x0000000 0x100000>;
++		read-only;
++	};
++
++	partition at 100000 {
++		label = "uImage";
++		reg = <0x0100000 0x400000>;
++	};
++
++	partition at 500000 {
++		label = "pogoplug";
++		reg = <0x0500000 0x2000000>;
++	};
++
++	partition at 2500000 {
++		label = "root";
++		reg = <0x02500000 0xd800000>;
++	};
++};
++
++&mdio {
++	status = "okay";
++
++	ethphy0: ethernet-phy at 0 {
++		reg = <0>;
++	};
++};
++
++&eth0 {
++	status = "okay";
++	ethernet0-port at 0 {
++		phy-handle = <&ethphy0>;
++	};
++};
diff --git a/target/linux/kirkwood/profiles/110-nas.mk b/target/linux/kirkwood/profiles/110-nas.mk
index d87c45c..748efac 100644
--- a/target/linux/kirkwood/profiles/110-nas.mk
+++ b/target/linux/kirkwood/profiles/110-nas.mk
@@ -20,6 +20,23 @@ DOCKSTAR_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
 
 $(eval $(call Profile,DOCKSTAR))
 
+define Profile/GOFLEXHOME
+  NAME:=Seagate GoFlexHome
+  PACKAGES:= \
+	kmod-ata-core kmod-ata-marvell-sata \
+	kmod-rtc-marvell kmod-usb2 kmod-usb-storage \
+	uboot-envtools
+endef
+
+define Profile/GOFLEXHOME/Description
+ Package set compatible with Seagate GoFlexHome
+endef
+
+GOFLEXHOME_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
+GOFLEXHOME_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
+
+$(eval $(call Profile,GOFLEXHOME))
+
 define Profile/GOFLEXNET
   NAME:=Seagate GoFlexNet
   PACKAGES:= \
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list