Просмотр исходного кода

lantiq: adds hotplug handler for loading rt2x00 firmware

SVN-Revision: 29000
John Crispin 14 лет назад
Родитель
Сommit
2cff80f015

+ 39 - 0
target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom

@@ -0,0 +1,39 @@
+#!/bin/sh
+# based on gabors ralink wisoc implementation
+
+rt2x00_eeprom_die() {
+	echo "rt2x00 eeprom: " "$*"
+	exit 1
+}
+
+rt2x00_eeprom_extract() {
+	local part=$1
+	local offset=$2
+	local count=$3
+	local mtd
+
+	. /etc/functions.sh
+
+	mtd=$(find_mtd_part $part)
+	[ -n "$mtd" ] || \
+		rt2x00_eeprom_die "no mtd device found for partition $part"
+
+	dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
+		rt2x00_eeprom_die "failed to extract from $mtd"
+}
+
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+
+case "$FIRMWARE" in
+"RT2860.eeprom" )
+	local board=$(grep ^machine /proc/cpuinfo | sed "s/machine.*: \(.*\) - .*/\1/g")
+	case $board in
+	ARV7525PW)
+		rt2x00_eeprom_extract "board_config" 1040 272
+		;;
+	*)
+		rt2x00_eeprom_die "board $board is not supported yet"
+		;;
+	esac
+	;;
+esac