treewide: remove execute bit and shebang from board.d files
[openwrt/staging/rmilecki.git] / target / linux / oxnas / base-files / etc / board.d / 02_network
old mode 100755 (executable)
new mode 100644 (file)
index a025027..747034c
@@ -1,12 +1,60 @@
-#!/bin/sh
 
 . /lib/functions/uci-defaults.sh
 . /lib/functions/system.sh
 
-board_config_update
+bootloader_cmdline_var() {
+       local param
+       local pval
+       for arg in $(cat /proc/device-tree/chosen/bootloader-args); do
+               param="$(echo $arg | cut -d'=' -f 1)"
+               pval="$(echo $arg | cut -d'=' -f 2-)"
+
+               if [ "$param" = "$1" ]; then
+                       echo "$pval"
+               fi
+       done
+}
+
+legacy_boot_mac_adr() {
+       local macstr
+       local oIFS
+       macstr="$(bootloader_cmdline_var mac_adr)"
+       oIFS="$IFS"
+       IFS=","
+       set -- $macstr
+       printf "%02x:%02x:%02x:%02x:%02x:%02x" $1 $2 $3 $4 $5 $6
+       IFS="$oIFS"
+}
+
+oxnas_setup_interfaces()
+{
+       local board="$1"
 
-ucidef_set_interface_lan "eth0" "dhcp"
+       case $board in
+       *)
+               ucidef_set_interface_lan "eth0" "dhcp"
+               ;;
+       esac
+}
 
+oxnas_setup_macs()
+{
+       local board="$1"
+       local lan_mac=""
+
+       case $board in
+       shuttle,kd20)
+               lan_mac="$(legacy_boot_mac_adr)"
+               ;;
+       esac
+
+       [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
+}
+
+board_config_update
+board=$(board_name)
+oxnas_setup_interfaces $board
+oxnas_setup_macs $board
 board_config_flush
 
 exit 0