aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mcs814x/base-files/lib
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2012-06-19 14:48:56 +0000
committerFlorian Fainelli <florian@openwrt.org>2012-06-19 14:48:56 +0000
commitfea5404e8a8b3d0190c8386f190b723477acebd4 (patch)
tree7b34e2be994fc0c2bdd15a6868864b39be34d6bc /target/linux/mcs814x/base-files/lib
parent208fa63215795719b6875e7f5bc2090400c5ea1e (diff)
downloadmaster-187ad058-fea5404e8a8b3d0190c8386f190b723477acebd4.tar.gz
master-187ad058-fea5404e8a8b3d0190c8386f190b723477acebd4.tar.bz2
master-187ad058-fea5404e8a8b3d0190c8386f190b723477acebd4.zip
[mcs814x] add Moschip MSC814x support
This target currently only supports Moschip's MCS8140 SoC, but support for other chips in the same family (MCS8142, MCS8144) will be easy to add. Target support is entirely using Device Tree for probing peripherals. Drivers support include: - PCI - USB 1 & 2 - watchdog - random number generator - UART - timer - internal Ethernet PHY - Ethernet MAC core Support for the following boards is included using Device Tree - Devolo dLAN USB Extender - Tigal RBT-832 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32462 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mcs814x/base-files/lib')
-rw-r--r--target/linux/mcs814x/base-files/lib/mcs814x.sh42
-rwxr-xr-xtarget/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh9
2 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/mcs814x/base-files/lib/mcs814x.sh b/target/linux/mcs814x/base-files/lib/mcs814x.sh
new file mode 100644
index 0000000000..e4360fdb8f
--- /dev/null
+++ b/target/linux/mcs814x/base-files/lib/mcs814x.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+
+MCS814X_BOARD_NAME=
+MCS814X_MODEL=
+
+mcs814x_board_detect() {
+ local machine
+ local name
+
+ machine=$(cat /proc/device-tree/model)
+
+ case "$machine" in
+ *"Devolo dLAN USB Extender")
+ name="dlan-usb-extender"
+ ;;
+ *"Tigal RBT-832")
+ name="rbt-832"
+ ;;
+ esac
+
+ [ -z "$name" ] && name="unknown"
+
+ [ -z "$MCS814X_BOARD_NAME" ] && MCS814X_BOARD_NAME="$name"
+ [ -z "$MCS814X_MODEL" ] && MCS814X_MODEL="$machine"
+
+ [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
+
+ echo "$MCS814X_BOARD_NAME" > /tmp/sysinfo/board_name
+ echo "$MCS814X_MODEL" > /tmp/sysinfo/model
+}
+
+mcs814x_board_name() {
+ local name
+
+ [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
+ [ -z "$name" ] && name="unknown"
+
+ echo "$name"
+}
diff --git a/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh b/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh
new file mode 100755
index 0000000000..d509770c55
--- /dev/null
+++ b/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+do_mcs814x() {
+ . /lib/mcs814x.sh
+
+ mcs814x_board_detect
+}
+
+boot_hook_add preinit_main do_mcs814x