#!/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 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 . /lib/functions.sh board=$(board_name) case "$FIRMWARE" in "rt2x00.eeprom" ) case $board in hg556a_c) rt2x00_eeprom_extract "cal_data" 130560 512 ;; hg622 |\ hg655b) rt2x00_eeprom_extract "cal_data" 0 512 ;; *) rt2x00_eeprom_die "board $board is not supported yet" ;; esac ;; esac