[OpenWrt-Devel] [PATCH] kirkwood: add support for Linksys EA3500

Dan Walters dan at walters.io
Wed Oct 15 10:11:39 EDT 2014


Support for the Linksys EA3500.  Here's the patch, and I entered the
basic device info (including the serial console connections) on the
wiki at http://wiki.openwrt.org/toh/linksys/ea3500 .  Hope it can be
of use to someone else, I know I've been waiting a long while to run
OpenWRT on my router!

-Dan

Signed-off-by: Dan Walters <dan at walters.io>

---
 package/boot/uboot-envtools/files/kirkwood         |   1 +
 .../kirkwood/base-files/etc/uci-defaults/01_leds   |   3 +
 .../base-files/etc/uci-defaults/02_network         |   3 +
 target/linux/kirkwood/base-files/lib/kirkwood.sh   |   4 +
 target/linux/kirkwood/image/Makefile               |   3 +
 .../linux/kirkwood/patches-3.14/170-ea3500.patch   | 164 +++++++++++++++++++++
 target/linux/kirkwood/profiles/115-router.mk       |  16 ++
 7 files changed, 194 insertions(+)
 create mode 100644 target/linux/kirkwood/patches-3.14/170-ea3500.patch

diff --git a/package/boot/uboot-envtools/files/kirkwood b/package/boot/uboot-envtools/files/kirkwood
index ef6c113..b15b8f9 100644
--- a/package/boot/uboot-envtools/files/kirkwood
+++ b/package/boot/uboot-envtools/files/kirkwood
@@ -14,6 +14,7 @@ touch /etc/config/ubootenv
 board=$(kirkwood_board_name)
 
 case "$board" in
+"ea3500" | \
 "ea4500" | \
 "ib62x0" | \
 "pogo_e02")
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 07c1a0e..41191f7 100644
--- a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
@@ -13,6 +13,9 @@ case "$board" in
 	ucidef_set_led_default "health" "status:green:health" "1"
 	ucidef_set_led_default "fault" "status:orange:fault" "1"
 	;;
+"ea3500")
+	ucidef_set_led_default "power" "ea3500:green:power" "1"
+	;;
 "ea4500")
 	ucidef_set_led_default "health" "ea4500:white:health" "1"
 	ucidef_set_led_default "pulse" "ea4500:white:pulse" "1"
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 e795d65..bc7e793 100644
--- a/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
@@ -40,6 +40,9 @@ case "$board" in
 "pogo_e02")
 	set_lan_dhcp "eth0"
 	;;
+"ea3500")
+	ucidef_set_interfaces_lan_wan "eth0" "eth1"
+	;;
 "ea4500")
 	ucidef_set_interfaces_lan_wan "eth0" "eth1"
 	;;
diff --git a/target/linux/kirkwood/base-files/lib/kirkwood.sh b/target/linux/kirkwood/base-files/lib/kirkwood.sh
index ba080f4..323a997 100755
--- a/target/linux/kirkwood/base-files/lib/kirkwood.sh
+++ b/target/linux/kirkwood/base-files/lib/kirkwood.sh
@@ -29,6 +29,10 @@ kirkwood_board_detect() {
 		name="pogo_e02"
 		;;
 
+	"Linksys EA3500")
+		name="ea3500"
+		;;
+
 	"Linksys EA4500")
 		name="ea4500"
 		;;
diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile
index e3c6f0b..3852cac 100644
--- a/target/linux/kirkwood/image/Makefile
+++ b/target/linux/kirkwood/image/Makefile
@@ -117,6 +117,9 @@ Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
 Image/BuildKernel/Template/DOCKSTAR=$(call Image/BuildKernel/Template,dockstar)
 Image/InstallKernel/Template/DOCKSTAR=$(call Image/InstallKernel/Template,dockstar)
 
+Image/BuildKernel/Template/EA3500=$(call Image/BuildKernel/Template,ea3500)
+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)
 
diff --git a/target/linux/kirkwood/patches-3.14/170-ea3500.patch b/target/linux/kirkwood/patches-3.14/170-ea3500.patch
new file mode 100644
index 0000000..155d9fc
--- /dev/null
+++ b/target/linux/kirkwood/patches-3.14/170-ea3500.patch
@@ -0,0 +1,164 @@
+diff -ruN a/arch/arm/boot/dts/kirkwood-ea3500.dts b/arch/arm/boot/dts/kirkwood-ea3500.dts
+--- a/arch/arm/boot/dts/kirkwood-ea3500.dts	1969-12-31 19:00:00.000000000 -0500
++++ b/arch/arm/boot/dts/kirkwood-ea3500.dts	2014-10-13 15:13:15.695625124 -0500
+@@ -0,0 +1,149 @@
++/*
++ * kirkwood-ea3500.dts - Device Tree file for Linksys EA3500
++ *
++ * (c) 2013 Jonas Gorski <jogo at openwrt.org>
++ * (c) 2013 Deutsche Telekom Innovation Laboratories
++ * (c) 2014 Luka Perkov <luka at openwrt.org>
++ * (c) 2014 Dan Walters <dan at walters.io>
++ *
++ * 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.
++ */
++
++/dts-v1/;
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6282.dtsi"
++
++/ {
++	model = "Linksys EA3500";
++	compatible = "linksys,ea3500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++	memory {
++		device_type = "memory";
++		reg = <0x00000000 0x4000000>;
++	};
++
++	chosen {
++		bootargs = "console=ttyS0,115200n8 earlyprintk";
++	};
++
++	mbus {
++		pcie-controller {
++			status = "okay";
++
++			pcie at 1,0 {
++				status = "okay";
++			};
++
++			pcie at 2,0 {
++				status = "okay";
++			};
++		};
++	};
++
++	ocp at f1000000 {
++		pinctrl: pinctrl at 10000 {
++			pmx_led_green_power: pmx-led-green-power {
++				marvell,pins = "mpp7";
++				marvell,function = "gpo";
++			};
++			pmx_btn_wps: pmx-btn-wps {
++				marvell,pins = "mpp47";
++				marvell,function = "gpio";
++			};
++			pmx_btn_reset: pmx-btn-reset {
++				marvell,pins = "mpp48";
++				marvell,function = "gpio";
++			};
++		};
++
++		rtc at 10300 {
++			status = "disabled";
++		};
++
++		serial at 12000 {
++			status = "okay";
++		};
++
++	};
++
++	gpio_keys {
++		compatible = "gpio-keys";
++		#address-cells = <1>;
++		#size-cells = <0>;
++		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
++		pinctrl-names = "default";
++
++		button at 15 {
++			label = "WPS Button";
++			linux,code = <KEY_WPS_BUTTON>;
++			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
++		};
++
++		button at 16 {
++			label = "Reset Button";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	gpio-leds {
++		compatible = "gpio-leds";
++		pinctrl-0 = < &pmx_led_green_power >;
++		pinctrl-names = "default";
++
++		green-power {
++			label = "ea3500:green:power";
++			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
++		};
++	};
++};
++
++&nand {
++	status = "okay";
++	pinctrl-0 = <&pmx_nand>;
++	pinctrl-names = "default";
++
++	partition at 0 {
++		label = "u-boot";
++		reg = <0x0000000 0x80000>;
++		read-only;
++	};
++
++	partition at 80000 {
++		label = "u-boot environment";
++		reg = <0x80000 0x20000>;
++	};
++
++	partition at 200000 {
++		label = "kernel";
++		reg = <0x200000 0x200000>;
++	};
++
++	partition at 400000 {
++		label = "root";
++		reg = <0x400000 0x1200000>;
++	};
++};
++
++&mdio {
++	status = "okay";
++};
++
++&eth0 {
++	status = "okay";
++	ethernet0-port at 0 {
++		speed = <1000>;
++		duplex = <1>;
++	};
++};
++
++&eth1 {
++	status = "okay";
++	ethernet1-port at 0 {
++		speed = <1000>;
++		duplex = <1>;
++	};
++};
+diff -ruN a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+--- a/arch/arm/boot/dts/Makefile	2014-10-13 15:07:28.935284626 -0500
++++ b/arch/arm/boot/dts/Makefile	2014-10-13 15:07:53.676759195 -0500
+@@ -90,6 +90,7 @@
+ 	kirkwood-dns325.dtb \
+ 	kirkwood-dockstar.dtb \
+ 	kirkwood-dreamplug.dtb \
++	kirkwood-ea3500.dtb \
+ 	kirkwood-ea4500.dtb \
+ 	kirkwood-goflexnet.dtb \
+ 	kirkwood-guruplug-server-plus.dtb \
diff --git a/target/linux/kirkwood/profiles/115-router.mk b/target/linux/kirkwood/profiles/115-router.mk
index 000aa74..ef7f228 100644
--- a/target/linux/kirkwood/profiles/115-router.mk
+++ b/target/linux/kirkwood/profiles/115-router.mk
@@ -5,6 +5,22 @@
 # See /LICENSE for more information.
 #
 
+define Profile/EA3500
+  NAME:=Linksys EA3500
+  PACKAGES:= \
+	kmod-mwl8k kmod-usb2 kmod-usb-storage \
+	uboot-envtools
+endef
+
+define Profile/EA3500/Description
+ Package set compatible with Linksys EA3500 board.
+endef
+
+EA3500_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
+EA3500_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
+
+$(eval $(call Profile,EA3500))
+
 define Profile/EA4500
   NAME:=Linksys EA4500
   PACKAGES:= \
-- 
1.9.1
_______________________________________________
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