[OpenWrt-Devel] [PATCH 4/8] sunxi: implement board_detect for device-tree kernels

Daniel Golle daniel at makrotopia.org
Sun Jan 18 18:36:53 EST 2015


board_detect previously relied on parsing the kernel cmdline
out of the U-Boot environment stored on the the MMC card in order
to get the board= parameter.
Use /proc/device-tree/model instead.

Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 target/linux/sunxi/base-files/lib/sunxi.sh | 168 ++++++++++++++++++++++-------
 1 file changed, 130 insertions(+), 38 deletions(-)

diff --git a/target/linux/sunxi/base-files/lib/sunxi.sh b/target/linux/sunxi/base-files/lib/sunxi.sh
index adf9f84..b0a3874 100644
--- a/target/linux/sunxi/base-files/lib/sunxi.sh
+++ b/target/linux/sunxi/base-files/lib/sunxi.sh
@@ -1,45 +1,137 @@
 #!/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"
 }
-- 
2.2.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list