da10797381557ed89a00b93dfdb90e6625e4c68e
[openwrt/openwrt.git] / target / linux / lantiq / base-files / etc / hotplug.d / firmware / 10-rt2x00-eeprom
1 #!/bin/sh
2 # based on gabors ralink wisoc implementation
3
4 rt2x00_eeprom_die() {
5 echo "rt2x00 eeprom: " "$*"
6 exit 1
7 }
8
9 rt2x00_eeprom_extract() {
10 local part=$1
11 local offset=$2
12 local count=$3
13 local swab=$4
14 local mtd
15
16 . /lib/functions.sh
17
18 mtd=$(find_mtd_part $part)
19 [ -n "$mtd" ] || \
20 rt2x00_eeprom_die "no mtd device found for partition $part"
21
22 if [ $swab -gt 0 ]; then
23 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=2 skip=$offset count=$count conv=swab || \
24 rt2x00_eeprom_die "failed to extract from $mtd"
25 else
26 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
27 rt2x00_eeprom_die "failed to extract from $mtd"
28 fi
29 }
30
31 [ -e /lib/firmware/$FIRMWARE ] && exit 0
32 . /lib/functions/lantiq.sh
33
34 case "$FIRMWARE" in
35 "RT2860.eeprom" )
36 local board=$(lantiq_board_name)
37 case $board in
38 ARV7506PW11|ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
39 rt2x00_eeprom_extract "board_config" 520 256 1
40 ;;
41 ARV7525PW)
42 rt2x00_eeprom_extract "board_config" 1040 512 0
43 ;;
44 *)
45 rt2x00_eeprom_die "board $board is not supported yet"
46 ;;
47 esac
48 ;;
49 "RT3062.eeprom" )
50 local board=$(lantiq_board_name)
51 case $board in
52 VGV7510KW22)
53 rt2x00_eeprom_extract "board_config" 520 256 1
54 ;;
55 *)
56 rt2x00_eeprom_die "board $board is not supported yet"
57 ;;
58 esac
59 ;;
60 esac