forked from Ivasoft/openwrt
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>
61 lines
1.2 KiB
Bash
61 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
|