#!/bin/sh rt2x00_eeprom_die() { echo "rt2x00 eeprom: " "$*" exit 1 } rt2x00_eeprom_extract() { local part=$1 local offset=$2 local count=$3 local mtd . /lib/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 2>/dev/null || \ rt2x00_eeprom_die "failed to extract from $mtd" } FW="/lib/firmware/$FIRMWARE" [ -e "$FW" ] && exit 0 . /lib/ramips.sh board=$(ramips_board_name) case "$FIRMWARE" in "soc_wmac.eeprom") case $board in *) rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!" ;; esac ;; "rt2x00pci_1_0.eeprom") case $board in cy-swr1100) rt2x00_eeprom_extract "factory" 8192 512 ;; br-6475nd | rt-n56u | whr-600d | whr-1166d) rt2x00_eeprom_extract "factory" 32768 512 ;; esac ;; esac