From 06edafd079348f84ce58807f70c1cff428a18934 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Thu, 18 Oct 2012 07:23:03 +0000
Subject: ramips: add user space support for the DIR-645

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 33844
---
 target/linux/ramips/base-files/etc/diag.sh           |  3 +++
 .../ramips/base-files/etc/uci-defaults/fixseama      | 20 ++++++++++++++++++++
 .../linux/ramips/base-files/etc/uci-defaults/network | 12 ++++++++++++
 .../ramips/base-files/lib/preinit/06_set_iface_mac   |  5 +++++
 target/linux/ramips/base-files/lib/ramips.sh         |  3 +++
 .../linux/ramips/base-files/lib/upgrade/platform.sh  |  7 +++++++
 6 files changed, 50 insertions(+)
 create mode 100755 target/linux/ramips/base-files/etc/uci-defaults/fixseama

(limited to 'target/linux/ramips/base-files')

diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 4720130..5fad728 100755
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -39,6 +39,9 @@ get_status_led() {
 	dir-300-b1 | dir-600-b1 | dir-600-b2 | dir-615-h1 | dir-620-a1)
 		status_led="d-link:green:status"
 		;;
+	dir-645)
+		status_led="d-link:green:wps"
+		;;
 	dap-1350)
 		status_led="d-link:blue:power"
 		;;
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/fixseama b/target/linux/ramips/base-files/etc/uci-defaults/fixseama
new file mode 100755
index 0000000..d8bed79
--- /dev/null
+++ b/target/linux/ramips/base-files/etc/uci-defaults/fixseama
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+
+. /lib/ramips.sh
+
+fix_seama_header() {
+	local part=$1
+
+	mtd fixseama $part
+}
+
+board=$(ramips_board_name)
+
+case "$board" in
+dir-645)
+	fix_seama_header kernel
+	;;
+esac
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network
index bbb02e8..de33acb 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/network
+++ b/target/linux/ramips/base-files/etc/uci-defaults/network
@@ -63,6 +63,13 @@ ramips_setup_interfaces()
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		;;
 
+	dir-645)
+		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+		ucidef_add_switch "switch0" "1" "1"
+		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
+		ucidef_add_switch_vlan "switch0" "2" "0 6t"
+		;;
+
 	f5d8235-v1 | \
 	f5d8235-v2 | \
 	ur-336un)
@@ -159,6 +166,11 @@ ramips_setup_macs()
 		wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
 		;;
 
+	dir-645)
+		lan_mac=$(ramips_get_mac_nvram nvram lanmac)
+		wan_mac=$(ramips_get_mac_nvram nvram wanmac)
+		;;
+
 	esr-9753 | \
 	ur-336un)
 		lan_mac=$(ramips_get_mac_binary devdata 16388)
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
index 591c549..0ff2189 100644
--- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
+++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
@@ -30,6 +30,11 @@ preinit_set_mac_address() {
                 mac=$(ramips_get_mac_binary devdata 16388)
                 ifconfig eth0 hw ether $mac 2>/dev/null
                 ;;
+	dir-645)
+		mac=$(ramips_get_mac_nvram nvram lanmac)
+		mac=$(maccalc or "$mac" "02:00:00:00:00:00")
+		ifconfig eth0 hw ether $mac 2>/dev/null
+		;;
 	dap-1350)
 		mac=$(ramips_get_mac_binary devdata 46)
 		ifconfig eth0 hw ether $mac 2>/dev/null
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 90c28b7..90afa49 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -92,6 +92,9 @@ ramips_board_name() {
 	*"DIR-615 H1")
 		name="dir-615-h1"
 		;;
+	*"DIR-645")
+		name="dir-645"
+		;;
         *"DAP-1350")
                 name="dap-1350"
                 ;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index 2857599..ba04a4a 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -57,6 +57,13 @@ platform_check_image() {
 		}
 		return 0
 		;;
+	dir-645)
+		[ "$magic" != "5ea3a417" ] && {
+			echo "Invalid image type."
+			return 1
+		}
+		return 0
+		;;
 	esac
 
 	echo "Sysupgrade is not yet supported on $board."
-- 
cgit v1.1