diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-11-22 19:06:07 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-11-22 19:06:07 +0000 |
commit | 576621f1e353339fe81ece6cff7e8bcd12cbc7b8 (patch) | |
tree | d6f0c3870842c1abf95b0cfbf411169d24694f1c /target/linux/arc770/base-files | |
parent | 3a0266b4716aa12fe1756d7e52a0e5bec760d48d (diff) | |
download | openwrt-576621f1e353339fe81ece6cff7e8bcd12cbc7b8.tar.gz openwrt-576621f1e353339fe81ece6cff7e8bcd12cbc7b8.tar.bz2 openwrt-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_network | 23 | ||||
-rw-r--r-- | target/linux/arc770/base-files/lib/arc.sh | 50 | ||||
-rw-r--r-- | target/linux/arc770/base-files/lib/preinit/01_preinit_arc.sh | 9 |
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 |