sunxi: implement board_detect for device-tree kernels
authorZoltan HERPAI <wigyori@uid0.hu>
Fri, 30 Jan 2015 00:11:30 +0000 (00:11 +0000)
committerZoltan HERPAI <wigyori@uid0.hu>
Fri, 30 Jan 2015 00:11:30 +0000 (00:11 +0000)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44211 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/sunxi/base-files/lib/sunxi.sh

index adf9f84..b0a3874 100644 (file)
 #!/bin/sh
 
 # defaults
-SUNXI_BOARD_NAME="generic sunxi"
-SUNXI_BOARD_MODEL="generic sunxi"
-SUNXI_ENV_DEV=/dev/mmcblk0
-
-#Helper functions 
-get_cmdline_opt() 
-{
-cat /proc/cmdline | awk -F$1= '{print $2}' | awk '{print $1}'
-}
+SUNXI_BOARD_NAME="generic"
+SUNXI_BOARD_MODEL="Generic sunxi board"
 
-#Since fw_getenv doesn't work with blockdevs let's make a hack
-uboot_getenv() 
-{
-    dd if=$SUNXI_ENV_DEV bs=1024 skip=544 count=128 2>dev/null |\strings|grep $1|cut -d"=" -f2
-}
+sunxi_board_detect() {
+       local board
+       local model
 
-#Actual routines go below
-sunxi_env_dev()
-{
-    local dev
-    dev=`get_cmdline_opt root|cut -d"p" -f1`
-    SUNXI_ENV_DEV=$dev
-    echo "probing $dev for uboot env data"
-}
+       [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
 
-sunxi_board_detect() {
-    local board
-    local model
-    sunxi_env_dev
-    [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
-    board="`uboot_getenv wrt_board`"
-    model="`uboot_getenv wrt_model`"
-    if [ "$board" != "" ]; then
-       SUNXI_BOARD_NAME="$board"
-    fi
-    if [ "$model" != "" ]; then
-       SUNXI_BOARD_MODEL="$model"
-    fi
-    echo "$SUNXI_BOARD_NAME" > /tmp/sysinfo/board_name
-    echo "$SUNXI_BOARD_MODEL" > /tmp/sysinfo/model
-    echo "Detected $SUNXI_BOARD_NAME // $SUNXI_BOARD_MODEL"
+       model="$( cat /proc/device-tree/model )"
+
+       case "$model" in
+               "Mele A1000")
+                       board="a1000"
+                       ;;
+
+               "BA10 tvbox")
+                       board="ba10-tvbox"
+                       ;;
+
+               "Cubietech Cubieboard")
+                       board="cubieboard"
+                       ;;
+
+               "Miniand Hackberry")
+                       board="hackberry"
+                       ;;
+
+               "INet-97F Rev 02")
+                       board="inet97fv2"
+                       ;;
+
+               "PineRiver Mini X-Plus")
+                       board="mini-xplus"
+                       ;;
+
+               "Olimex A10-OLinuXino-LIME")
+                       board="olinuxino-lime"
+                       ;;
+
+               "LinkSprite pcDuino")
+                       board="pcduino"
+                       ;;
+
+               "Olimex A10s-Olinuxino Micro")
+                       board="olinuxino-micro"
+                       ;;
+
+               "R7 A10s hdmi tv-stick")
+                       board="r7-tv-dongle"
+                       ;;
+
+               "HSG H702")
+                       board="hsg-h702"
+                       ;;
+
+               "Olimex A13-Olinuxino")
+                       board="olinuxino"
+                       ;;
+
+               "Olimex A13-Olinuxino Micro")
+                       board="olinuxino-micro"
+                       ;;
+
+               "Allwinner A31 APP4 EVB1 Evaluation Board")
+                       board="app4-evb1"
+                       ;;
+
+               "WITS A31 Colombus Evaluation Board")
+                       board="colombus"
+                       ;;
+
+               "Merrii A31 Hummingbird")
+                       board="hummingbird"
+                       ;;
+
+               "Mele M9 / A1000G Quad top set box")
+                       board="m9"
+                       ;;
+
+               "LeMaker Banana Pi")
+                       board="bananapi"
+                       ;;
+
+               "LeMaker Banana Pro")
+                       board="bananapro"
+                       ;;
+
+               "Cubietech Cubieboard2")
+                       board="cubieboard2"
+                       ;;
+
+               "Cubietech Cubietruck")
+                       board="cubietruck"
+                       ;;
+
+               "Merrii A20 Hummingbird")
+                       board="hummingbird"
+                       ;;
+
+               "I12 / Q5 / QT840A A20 tvbox")
+                       board="i12-tvbox"
+                       ;;
+
+               "Olimex A20-OLinuXino-LIME")
+                       board="olinuxino-lime"
+                       ;;
+
+               "Olimex A20-Olinuxino Micro")
+                       board="olinuxino-micro"
+                       ;;
+
+               "LinkSprite pcDuino3")
+                       board="pcduino3"
+                       ;;
+
+               "Ippo Q8H Dual Core Tablet (v5)")
+                       board="ippo-q8h-v5"
+                       ;;
+       esac
+
+       if [ "$board" != "" ]; then
+               SUNXI_BOARD_NAME="$board"
+       fi
+
+       if [ "$model" != "" ]; then
+               SUNXI_BOARD_MODEL="$model"
+       fi
+
+
+       echo "$SUNXI_BOARD_NAME" > /tmp/sysinfo/board_name
+       echo "$SUNXI_BOARD_MODEL" > /tmp/sysinfo/model
+       echo "Detected $SUNXI_BOARD_NAME // $SUNXI_BOARD_MODEL"
 }