openwrtv3/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
Martin Blumenstingl e9de6e5203 lantiq: do not "local" variables outside of a function
Older busybox versions allowed using the local keyword outside of
functions, whereas 1.25.0 (which was introduced in 06fa1c46fc) do not
allow this anymore (leading to the following error when executing the
script: "file: local: line nn: not in a function").

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-09-24 01:17:17 +02:00

60 lines
1.2 KiB
Bash

#!/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 swab=$4
local mtd
. /lib/functions.sh
mtd=$(find_mtd_part $part)
[ -n "$mtd" ] || \
rt2x00_eeprom_die "no mtd device found for partition $part"
if [ $swab -gt 0 ]; then
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=2 skip=$offset count=$count conv=swab || \
rt2x00_eeprom_die "failed to extract from $mtd"
else
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
rt2x00_eeprom_die "failed to extract from $mtd"
fi
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions/lantiq.sh
case "$FIRMWARE" in
"RT2860.eeprom" )
board=$(lantiq_board_name)
case $board in
ARV7506PW11|ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
rt2x00_eeprom_extract "board_config" 520 256 1
;;
ARV7525PW)
rt2x00_eeprom_extract "board_config" 1040 512 0
;;
*)
rt2x00_eeprom_die "board $board is not supported yet"
;;
esac
;;
"RT3062.eeprom" )
board=$(lantiq_board_name)
case $board in
VGV7510KW22)
rt2x00_eeprom_extract "board_config" 520 256 1
;;
*)
rt2x00_eeprom_die "board $board is not supported yet"
;;
esac
;;
esac