#!/bin/sh 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 "RT288X.eeprom" | \ "RT305X.eeprom") . /lib/ramips.sh local board=$(ramips_board_name) case $board in dir-300-b1 | \ dir-600-b1 | \ dir-600-b2) rt2x00_eeprom_extract "devdata" 16384 272 ;; rt-g32-b1) rt2x00_eeprom_extract "devconf" 0 272 ;; f5d8235-v2) rt2x00_eeprom_extract "u-boot" 262144 272 ;; argus-atp52b | \ bc2 | \ esr-9753 | \ fonera20n | \ hw550-3g | \ mofi3500-3gn | \ pwh2004 | \ nbg-419n | \ nw718 | \ omni-emb | \ rt-n15 | \ v22rw-2x2 | \ wcr-150gn | \ whr-g300n | \ wl-351 | \ wli-tx4-ag300n | \ wr512-3gn) rt2x00_eeprom_extract "factory" 0 272 ;; *) rt2x00_eeprom_die "board $board is not supported yet" ;; esac ;; esac