aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/arc770/base-files
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-11-22 19:06:07 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-11-22 19:06:07 +0000
commit576621f1e353339fe81ece6cff7e8bcd12cbc7b8 (patch)
treed6f0c3870842c1abf95b0cfbf411169d24694f1c /target/linux/arc770/base-files
parent3a0266b4716aa12fe1756d7e52a0e5bec760d48d (diff)
downloadupstream-576621f1e353339fe81ece6cff7e8bcd12cbc7b8.tar.gz
upstream-576621f1e353339fe81ece6cff7e8bcd12cbc7b8.tar.bz2
upstream-576621f1e353339fe81ece6cff7e8bcd12cbc7b8.zip
linux: add support of Synopsys ARC770-based boards
This patch introduces support of new boards with ARC cores. [1] Synopsys SDP board This is a new-generation development board from Synopsys that consists of base-board and CPU tile-board (which might have a real ASIC or FPGA with CPU image). It sports a lot of DesignWare peripherals like GMAC, USB, SPI, I2C etc and is intended to be used for early development of ARC-based products. [2] nSIM This is a virtual board implemented in Synopsys proprietary software simulator (even though available for free for open source community). This board has only serial port as a peripheral and so it is meant to be used for runtime testing which is especially useful during bring-up of new tools and platforms. What's also important ARC cores are very configurable so there're many variations of options like cache sizes, their line lengths, additional hardware blocks like multipliers, dividers etc. And this board could be used to make sure built software still runs on different HW configurations. Cc: Felix Fietkau <nbd@openwrt.org> Cc: Jo-Philipp Wich <jow@openwrt.org> Cc: Jonas Gorski <jogo@openwrt.org> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> SVN-Revision: 47589
Diffstat (limited to 'target/linux/arc770/base-files')
-rw-r--r--target/linux/arc770/base-files/etc/uci-defaults/02_network23
-rw-r--r--target/linux/arc770/base-files/lib/arc.sh50
-rw-r--r--target/linux/arc770/base-files/lib/preinit/01_preinit_arc.sh9
3 files changed, 82 insertions, 0 deletions
diff --git a/target/linux/arc770/base-files/etc/uci-defaults/02_network b/target/linux/arc770/base-files/etc/uci-defaults/02_network
new file mode 100644
index 0000000000..87cfe81db5
--- /dev/null
+++ b/target/linux/arc770/base-files/etc/uci-defaults/02_network
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+
+[ -e /etc/config/network ] && exit 0
+
+touch /etc/config/network
+
+. /lib/arc.sh
+. /lib/functions/uci-defaults.sh
+
+ucidef_set_interface_loopback
+
+case "$( arc_board_name )" in
+"arc-sdp"*)
+ ucidef_set_interface_raw "lan" "eth0" "dhcp"
+ ;;
+esac
+
+uci commit network
+
+exit 0
diff --git a/target/linux/arc770/base-files/lib/arc.sh b/target/linux/arc770/base-files/lib/arc.sh
new file mode 100644
index 0000000000..2b4fb93ce9
--- /dev/null
+++ b/target/linux/arc770/base-files/lib/arc.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+
+# defaults
+ARC_BOARD_NAME="generic"
+ARC_BOARD_MODEL="Generic ARC board"
+
+arc_board_detect() {
+ local board
+ local model
+ local compatible
+
+ [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
+
+ model="$( cat /proc/device-tree/model )"
+ compatible="$( cat /proc/device-tree/compatible )"
+
+ case "$compatible" in
+ "snps,axs101""snps,arc-sdp")
+ board="arc-sdp";
+ ;;
+ "snps,nsim")
+ board="arc-nsim";
+ ;;
+ esac
+
+ if [ "$board" != "" ]; then
+ ARC_BOARD_NAME="$board"
+ fi
+
+ if [ "$model" != "" ]; then
+ ARC_BOARD_MODEL="$model"
+ fi
+
+ echo "$ARC_BOARD_NAME" > /tmp/sysinfo/board_name
+ echo "$ARC_BOARD_MODEL" > /tmp/sysinfo/model
+ echo "Detected $ARC_BOARD_NAME // $ARC_BOARD_MODEL"
+}
+
+arc_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/arc770/base-files/lib/preinit/01_preinit_arc.sh b/target/linux/arc770/base-files/lib/preinit/01_preinit_arc.sh
new file mode 100644
index 0000000000..192c91bf2d
--- /dev/null
+++ b/target/linux/arc770/base-files/lib/preinit/01_preinit_arc.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+do_arc() {
+ . /lib/arc.sh
+
+ arc_board_detect
+}
+
+boot_hook_add preinit_main do_arc